[AVX-512ER] vrsqrt28ps auto generation
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
2
3         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
4         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
5
6 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
7
8         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
9
10 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
11             Ilya Enkovich  <ilya.enkovich@intel.com>
12
13         PR target/71549
14         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
15         New member function to convert V1TImode register to SUBREG
16         TImode in debug insn.
17         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
18         after changing register mode to V1TImode.
19
20 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
21
22         * config/aarch64/aarch64-cores.def (vulcan): New core.
23         * config/aarch64/aarch64-tune.md: Regenerate.
24         * doc/invoke.texi: Document vulcan as an available option.
25
26 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
27
28         * cse.c (canon_asm_operands): New function extracted from...
29         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
30         either standalone or member of a PARALLEL.
31
32 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
33
34         PR target/30417
35         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
36         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
37         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
38
39 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
40
41         PR target/71103
42         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
43         constant addresses if can_create_pseudo_p.
44
45 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
46
47         PR tree-optimization/71588
48         * tree-ssa-strlen.c (valid_builtin_call): New function.
49         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
50         it.
51
52 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
53
54         PR middle-end/71581
55         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
56         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
57         for conversion of scalar user var to complex type and use the
58         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
59         punt.
60
61         PR rtl-optimization/71591
62         * toplev.c (toplev::run_self_tests): If no_backend, complain and
63         don't run any tests.
64
65 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
66
67         PR target/71571
68         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
69         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
70         space for PIC with non-v32 and the common non-PIC "jump".
71
72 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
73
74         PR target/71559
75         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
76         returned values and add UN*/LTGT/*ORDERED cases with values matching
77         D operand modifier on vcmp for AVX.
78
79 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
80
81         * config/aarch64/aarch64.opt
82         (mpc-relative-literal-loads): Rename internal option name.
83         * config/aarch64/aarch64.c
84         (aarch64_nopcrelative_literal_loads): Rename to
85         aarch64_pcrelative_literal_loads.
86         (aarch64_expand_mov_immediate): Likewise.
87         (aarch64_secondary_reload): Likewise.
88         (aarch64_can_use_per_function_literal_pools_p): Likewise.
89         (aarch64_override_options_after_change_1): Rename and simplify logic.
90         (aarch64_classify_symbol): Merge large model checks into switch,
91         remove pc-relative load check.
92
93 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
94
95         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
96         costs relative to the cost of a register move.
97
98 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
99
100         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
101         (vcvt_n_f64_u64): Likewise.
102         (vcvt_n_s64_f64): Likewise.
103         (vcvt_n_u64_f64): Likewise.
104         (vcvt_f64_s64): Likewise.
105         (vrecpe_f64): Likewise.
106         (vcvt_f64_u64): Likewise.
107         (vrecps_f64): Likewise.
108
109 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
110
111         * config/aarch64/aarch64.md
112         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
113         iterators.
114         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
115         attributes.
116         * config/aarch64/aarch64-builtins.c
117         (aarch64_types_binop_uss_qualifiers): Delete.
118         (TYPES_BINOP_USS): Likewise.
119         (aarch64_types_binop_sus_qualifiers): Likewise.
120         (TYPES_BINOP_SUS): Likewise.
121         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
122         (TYPES_FCVTIMM_SUS): Likewise.
123         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
124         rather than BINOP.
125         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
126         (fcvtzs): Use SHIFTIMM rather than BINOP.
127         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
128
129 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
130
131         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
132         costs relative to the cost of a register move.
133
134 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
135
136         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
137         Allow scalar/single vector modes to be tieable.
138
139 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
140
141         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
142
143 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
144
145         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
146         "alignement".
147         * tree.h (TYPE_ALIGN): Likewise.
148
149 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
150
151         PR target/71103
152         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
153
154 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
155
156         * config/avr/avr.c (avr_print_operand): Fix "format not a string
157         literal" build warnings.
158         (avr_print_operand_address): Dito.
159
160 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
161
162         PR target/71375
163         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
164         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
165
166 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
167
168         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
169
170 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
171
172         PR bootstrap/71435
173         * reload1.c (reload): Pass 0 to finish_spills when called because
174         update_eliminables_and_spill returns true and remove did_spill.
175         (finish_spills): Adjust comment and document GLOBAL parameter.
176
177 2016-06-17  DJ Delorie  <dj@redhat.com>
178
179         PR target/71338
180         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
181         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
182         (umulqihi3_virt): Likewise.
183         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
184         (umulqihi3_real): Likewise.
185
186 2016-06-17  Martin Liska  <mliska@suse.cz>
187
188         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
189
190 2016-06-17  Martin Liska  <mliska@suse.cz>
191
192         * predict.def: PRED_LOOP_EXIT from 92 to 85.
193
194 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
195
196         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
197         __FAST_MATH__.
198         (vaddq_f32): Likewise.
199         (vmul_f32): Likewise.
200         (vmulq_f32): Likewise.
201         (vsub_f32): Likewise.
202         (vsubq_f32): Likewise.
203
204 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
205
206         PR tree-optimization/71347
207         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
208         cost for all uses in group.
209
210 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
211
212         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
213         insert gimple seq if it's not empty.
214
215 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
216
217         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
218         member OFFSET.
219         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
220         rather than OFFSET.
221         (comp_dr_with_seg_len_pair): Ditto.
222         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
223         struct dr_with_seg_len_pair against DR_OFFSET.
224         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
225         DR_OFFSET directly.
226
227 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
228
229         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
230
231 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
232
233         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
234         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
235         (pa_output_millicode_call): Likewise.
236         (pa_output_call): Likewise.
237         (pa_output_indirect_call): Likewise.
238         (pa_asm_output_mi_thunk): Likewise.
239
240 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
241
242         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
243
244 2016-06-16  Martin Liska  <mliska@suse.cz>
245
246         * predict.c (combine_predictions_for_insn): When we find a first
247         match predictor, we should consider just predictors with
248         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
249         DS theory predictor.
250         (combine_predictions_for_bb): Likewise.
251
252 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
253
254         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
255         with base of reference to struct.
256
257 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
258
259         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
260
261 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
262
263         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
264         progmem_swtable_section.
265         (progmem_swtable_section): Remove.
266         (avr_asm_function_rodata_section): Remove.
267         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
268         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
269
270 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
271
272         * config/i386/driver-i386.c (host_detect_local_cpu): Set
273         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
274         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
275         signature_CENTAUR_ebx.
276         * config/i386/i386.c (ix86_option_override_internal): Add
277         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
278         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
279         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
280
281 2016-06-16  Martin Liska  <mliska@suse.cz>
282
283         * predict.def: Add fortran loop preheader predictor.
284         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
285         fold IFN_BUILTIN_EXPECT with a known constant argument.
286
287 2016-06-16  Martin Liska  <mliska@suse.cz>
288
289         * predict.def: Add 'Fortran' to display text of all
290         PRED_FORTRAN_* predictors.
291
292 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
293
294         PR target/71242
295         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
296         [IA64_BUILTIN_NANSQ]: Ditto.
297         (ia64_fold_builtin): New function.
298         (TARGET_FOLD_BUILTIN): New define.
299         (ia64_init_builtins) Declare const_string_type node.
300         Add __builtin_nanq and __builtin_nansq builtin functions.
301         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
302
303 2016-06-16  Nick Clifton  <nickc@redhat.com>
304
305         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
306         MSP430_HWMULT_ prefix to enum values.
307         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
308         * config/msp430/msp430.c: Update use of enum values.
309         * config/msp430/msp430.md: Likewise.
310         * config/msp430/msp430.opt: Likewise.
311
312 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
313
314         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
315         of comparsions in the last iteration.
316
317 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
318             Joern Rennecke  <joern.rennecke@embecosm.com>
319
320         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
321         addresses.
322         (arc_needs_pcl_p): Add GOTOFFPC.
323         (arc_legitimate_pic_addr_p): Likewise.
324         (arc_output_pic_addr_const): Likewise.
325         (arc_legitimize_pic_address): Generate a pc-relative address using
326         GOTOFFPC.
327         (arc_output_libcall): Use @pcl syntax.
328         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
329         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
330         (*movsi_insn): Use @pcl syntax.
331         (doloop_begin_i): Likewise.
332
333 2016-06-16  Martin Liska  <mliska@suse.cz>
334
335         * predict.def: Define a new predictor.
336
337 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
338
339         * config/arc/arc.opt (mtp-regno): Update text.
340
341 2016-06-16  Renlin Li  <renlin.li@arm.com>
342
343         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
344
345 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
346
347         PR target/71554
348         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
349         (setcc + and peephole2): Likewise.
350
351         PR rtl-optimization/71532
352         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
353         memory slots.
354
355 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
356
357         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
358         DImode constants with XXSPLTIB in vector registers.
359         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
360         vsx_extract_<mode>_internal{1,2} into a single insn that handles
361         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
362         extraction of the element at the top of the register as a scalar
363         value.
364         (vsx_extract_<mode>_internal1): Likewise.
365         (vsx_extract_<mode>_internal2): Likewise.
366         * config/rs6000/constraints.md (wi constraint): Remove a comment
367         about DImode not being allowed in Altivec registers.
368         (wB constraint): New constraint for constants that can be
369         generated in Altivec registers with VSPLTISW/VUPKHSW.
370         * config/rs6000/predicates.md (xxspltib_constant_split): Update
371         comments.
372         (xxspltib_constant_nosplit): Likewise.
373         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
374         support for -mupper-regs-di to enable DImode to go into Altivec
375         registers.
376         (POWERPC_MASKS): Likewise.
377         (power7 cpu): Likewise.
378         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
379         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
380         for DImode being allowed in Altivec registers.  Update wi/wj
381         constraints.  Set scalar_in_vmx_p flag.
382         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
383         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
384         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
385         (rs6000_opt_masks): Add -mupper-regs-di.
386         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
387         direct move to use wi and not wj.
388         (lfiwzx): Likewise.
389         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
390         alternative.
391         (floatunssi<mode>2_lfiwzx_mem): Likewise.
392         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
393         any VSX register, instead of just Altivec registers, to allow
394         either operand to be an Altivec register or both.
395         (fixuns_trunc<mode>di2_fctiduz): Likewise.
396         (movdi_internal32): Add support for -mupper-regs-di.  Add support
397         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
398         the alternatives and attributes to be lined up to be easier to
399         read.
400         (movdi_internal64): Likewise.
401         (64-bit DImode splitters): Change predicates to only split loading
402         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
403         load constants in ISA 3.0 or ISA 2.07 respectively.
404         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
405         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
406         mention -mcpu=power9 sets these options.
407         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
408         wB constraint.
409
410 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
411
412         PR target/67353
413         * config/avr/avr.c (avr_set_current_function): Warn misspelled
414         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
415         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
416         by default to warn misspelled interrupt/ signal handler.
417         * doc/invoke.texi (AVR Options): Document it. Update description
418         for -nodevicelib option.
419
420 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
421
422         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
423         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
424         (aarch64_<sur>shll2_n<mode>): Likewise.
425
426 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
427
428         PR middle-end/71529
429         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
430         DECL_CONTEXT for copied arguments.
431
432 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
433
434         PR tree-optimization/71483
435         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
436         for slp
437
438 2016-06-15  Martin Liska  <mliska@suse.cz>
439
440         * predict.c (tree_predict_by_opcode): Call predict_edge_def
441         instead of predict_edge w/o a probability.
442
443 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
444
445         PR tree-optimization/71439
446         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
447         live PHIs.
448
449 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
450
451         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
452         register subregs in SET_SRC.
453
454 2016-06-15  Richard Biener  <rguenther@suse.de>
455
456         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
457         store restrictions.
458
459 2016-06-15  Richard Biener  <rguenther@suse.de>
460
461         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
462         not consider dependences between accesses that belong to the
463         same group.
464         (vect_analyze_data_ref_dependences): Do not analyze read-read
465         or self-dependences.
466
467 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
468
469         * spellcheck-tree.c: Include spellcheck-tree.h rather than
470         spellcheck.h.
471         (find_closest_identifier): Reimplement in terms of
472         best_match<tree,tree>.
473         * spellcheck-tree.h: New file.
474         * spellcheck.c (struct edit_distance_traits<const char *>): New
475         struct.
476         (find_closest_string): Reimplement in terms of
477         best_match<const char *, const char *>.
478         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
479         overload to spellcheck-tree.h.
480         (find_closest_identifier): Likewise.
481         (struct edit_distance_traits<T>): New template.
482         (class best_match): New class.
483
484 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
485
486         * selftest-run-tests.c (selftest::run_tests): Call
487         selftest::spellcheck_tree_c_tests.
488         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
489         * spellcheck-tree.c: Include selftest.h and stringpool.h.
490         (selftest::test_find_closest_identifier): New function.
491         (selftest::spellcheck_tree_c_tests): New function.
492         * spellcheck.c (selftest::test_find_closest_string): Verify that
493         the order of the vec does not affect the results for this case.
494         (selftest::test_data): New array.
495         (selftest::test_metric_conditions): New function.
496         (selftest::spellcheck_c_tests): Add a test of case-comparison.
497         Call selftest::test_metric_conditions.
498
499 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
500
501         * config/rs6000/rs6000-builtin.def (commentary): Typo.
502         (BU_P9_MISC_1): Likewise.
503         (BU_P9_64BIT_MISC_0): Likewise.
504         (BU_P9_MISC_0): Likewise.
505
506 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
507
508         * gcc-rich-location.c
509         (gcc_rich_location::add_fixit_misspelled_id): New method.
510         * gcc-rich-location.h
511         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
512
513 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
514
515         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
516         FreeBSD 11 and above.
517
518 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
519
520         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
521
522 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
523
524         * expmed.h: Close parenthesis in "at your option" in copyright
525         boilerplate.
526         * lower-subreg.h: Likewise.
527
528 2016-06-14  Richard Biener  <rguenther@suse.de>
529
530         PR middle-end/71526
531         * genmatch.c (expr::gen_transform): Use in_type for comparisons
532         if available.
533
534 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
535
536         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
537         New function.
538         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
539         mask+shift version.
540         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
541         New prototype.
542         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
543         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
544
545 2016-06-14  Richard Biener  <rguenther@suse.de>
546
547         PR tree-optimization/71522
548         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
549         copying into float copying.
550
551 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
552
553         PR tree-optimization/71520
554         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
555         (replace_block_by): Move user labels from bb1 to bb2.
556
557 2016-06-14  Richard Biener  <rguenther@suse.de>
558
559         PR middle-end/71310
560         PR bootstrap/71510
561         * expr.h (get_bit_range): Declare.
562         * expr.c (get_bit_range): Export.
563         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
564         word_mode again to constrain the bitfield access.
565
566 2016-06-14  Richard Biener  <rguenther@suse.de>
567
568         PR tree-optimization/71521
569         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
570         division int_const_binop against zero divisor.
571
572 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
573
574         * config/i386/i386.md (signbittf2): New expander.
575         * config/i386/sse.md (ptesttf2): New insn pattern.
576
577 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
578
579         PR bootstrap/71481
580         * input.c (selftest::test_reading_source_line): Avoid reading from
581         __FILE__ by creating a tempfile with known content and reading
582         from that instead.
583
584 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
585
586         * pretty-print.c (assert_pp_format_colored): Skip the test if
587         GCC_COLORS is set.
588         (test_pp_format): Remove comment about GCC_COLORS.
589
590 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
591
592         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
593         * pretty-print.c (assert_pp_format_va): Add location param and use
594         it with ASSERT_STREQ_AT.
595         (assert_pp_format): Add location param and pass it to
596         assert_pp_format_va.
597         (assert_pp_format_colored): Likewise.
598         (ASSERT_PP_FORMAT_1): New.
599         (ASSERT_PP_FORMAT_2): New.
600         (ASSERT_PP_FORMAT_3): New.
601         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
602         explicitly, or implicitly via the above macros.
603         * selftest.c (selftest::pass): Use a selftest::location rather
604         than file and line.
605         (selftest::fail): Likewise.  Print the function name.
606         (selftest::fail_formatted): Likewise.
607         (selftest::assert_streq): Use a selftest::location rather than
608         file and line.
609         * selftest.h (selftest::location): New struct.
610         (SELFTEST_LOCATION): New macro.
611         (selftest::pass): Accept a const location & rather than file
612         and line.
613         (selftest::fail): Likewise.
614         (selftest::fail_formatted): Likewise.
615         (selftest::assert_streq): Likewise.
616         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
617         (ASSERT_FALSE): Likewise.
618         (ASSERT_EQ): Likewise.
619         (ASSERT_NE): Likewise.
620         (ASSERT_STREQ): Likewise.
621         (ASSERT_PRED1): Likewise.
622         (ASSERT_STREQ_AT): New macro.
623
624 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
625
626         * selftest.c (selftest::fail_formatted): New function.
627         (selftest::assert_streq): New function.
628         * selftest.h (selftests::fail_formatted): New decl.
629         (selftest::assert_streq): New decl.
630         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
631
632 2016-06-13  Jeff Law  <law@redhat.com>
633
634         PR tree-optimization/71403
635         * tree-ssa-threadbackward.c
636         (convert_and_register_jump_thread_path): No longer accept reference
637         to path.  Do not pop items off the path anymore.
638         (fsm_find_control_statement_thread_paths): Do not allow threading
639         to a deeper loop nest.  Pop the last item off the path here rather
640         than in convert_and_register_jump_thread_path.
641
642 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
643             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
644
645         [AArch64] Emit division using the Newton series
646
647         * config/aarch64/aarch64-protos.h
648         (cpu_approx_modes): Add new member "division".
649         (aarch64_emit_approx_div): Declare new function.
650         * config/aarch64/aarch64.c
651         (generic_approx_modes): New member "division".
652         (exynosm1_approx_modes): Likewise.
653         (xgene1_approx_modes): Likewise.
654         (aarch64_emit_approx_div): Define new function.
655         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
656         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
657         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
658         * doc/invoke.texi (-mlow-precision-div): Describe new option.
659
660 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
661             Wilco Dijkstra  <wilco.dijkstra@arm.com>
662
663         [AArch64] Emit square root using the Newton series
664
665         * config/aarch64/aarch64-protos.h
666         (aarch64_emit_approx_rsqrt): Replace with new function
667         "aarch64_emit_approx_sqrt".
668         (cpu_approx_modes): New member "sqrt".
669         * config/aarch64/aarch64.c
670         (generic_approx_modes): New member "sqrt".
671         (exynosm1_approx_modes): Likewise.
672         (xgene1_approx_modes): Likewise.
673         (aarch64_emit_approx_rsqrt): Replace with new function
674         "aarch64_emit_approx_sqrt".
675         (aarch64_override_options_after_change_1): Handle new option.
676         * config/aarch64/aarch64-simd.md
677         (rsqrt<mode>2): Use new function instead.
678         (sqrt<mode>2): New expansion and insn definitions.
679         * config/aarch64/aarch64.md: Likewise.
680         * config/aarch64/aarch64.opt
681         (mlow-precision-sqrt): Add new option description.
682         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
683
684 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
685
686         [AArch64] Add more choices for the reciprocal square root approximation
687
688         Allow a target to prefer such operation depending on the operation mode.
689
690         * config/aarch64/aarch64-protos.h
691         (AARCH64_APPROX_MODE): New macro.
692         (AARCH64_APPROX_{NONE,ALL}): Likewise.
693         (cpu_approx_modes): New structure.
694         (tune_params): New member "approx_modes".
695         * config/aarch64/aarch64-tuning-flags.def
696         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
697         * config/aarch64/aarch64.c
698         (generic_approx_modes): New core "cpu_approx_modes" structure.
699         (exynosm1_approx_modes): Likewise.
700         (xgene1_approx_modes): Likewise.
701         (generic_tunings): New member "approx_modes".
702         (cortexa35_tunings): Likewise.
703         (cortexa53_tunings): Likewise.
704         (cortexa57_tunings): Likewise.
705         (cortexa72_tunings): Likewise.
706         (exynosm1_tunings): Likewise.
707         (thunderx_tunings): Likewise.
708         (xgene1_tunings): Likewise.
709         (use_rsqrt_p): New argument for the mode and use new member from
710         "tune_params".
711         (aarch64_builtin_reciprocal): Devise mode from builtin.
712         (aarch64_optab_supported_p): New argument for the mode.
713         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
714
715 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
716
717         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
718         RS6000_BTM_MODULO flag into the set of flags that are considered
719         to be part of the common configuration.
720
721 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
722
723         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
724         difference unsigned.
725         (vec_absdb): New macro for vector absolute difference unsigned
726         byte.
727         (vec_absdh): New macro for vector absolute difference unsigned
728         half-word.
729         (vec_absdw): New macro for vector absolute difference unsigned word.
730         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
731         (vadu<mode>3): New insn.
732         (*p9_vadu<mode>3): New insn.
733         * config/rs6000/rs6000-builtin.def (vadub): New built-in
734         definition.
735         (vaduh): New built-in definition.
736         (vaduw): New built-in definition.
737         (vadu): New overloaded built-in definition.
738         (vadub): New overloaded built-in definition.
739         (vaduh): New overloaded built-in definition.
740         (vaduw): New overloaded built-in definition.
741         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
742         overloaded vector absolute difference unsigned functions.
743         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
744         the ISA 3.0 vector absolute difference unsigned built-in functions.
745
746 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
747
748         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
749         update shared_lookup_references only once after changing operands.
750
751 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
752
753         PR middle-end/71373
754         * tree-nested.c (convert_nonlocal_omp_clauses)
755         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
756
757         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
758         * tree.def (CASE_LABEL_EXPR): Likewise.
759
760 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
761
762         PR bootstrap/71481
763         * input.c (test_builtins): Fix an assertion.
764
765 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
766
767         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
768         (paritysi2): Ditto.
769         (isinfxf2): Ditto.
770         (isinf<mode>2): Ditto.
771
772 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
773
774         * ggc-tests.c (test_finalization): Only test need_finalization_p
775         for GCC_VERSION >= 4003.
776
777 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
778
779         * config/s390/vecintrin.h: Fix file description in comment.
780
781 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
782
783         * config/s390/s390-builtin-types.def: Change builtin type naming
784         scheme to match builtin-types.def.
785
786 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
787
788         * fold-const.c (optimize_minmax_comparison): Remove.
789         (fold_comparison): Remove call to the above.
790         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
791         New transformations.
792
793 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
794
795         PR tree-optimization/71416
796         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
797         multiple entries
798
799 2016-06-13  Martin Liska  <mliska@suse.cz>
800
801         * predict.c (enum predictor_reason): Prefix enum with REASON_.
802         (combine_predictions_for_insn): Likewise.
803         (prune_predictions_for_bb): Likewise.
804         (combine_predictions_for_bb): Likewise.
805
806 2016-06-13  Richard Biener  <rguenther@suse.de>
807
808         PR tree-optimization/71505
809         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
810         assert match comment.
811
812 2016-06-13  Marek Polacek  <polacek@redhat.com>
813
814         PR middle-end/71476
815         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
816         gimplify_switch_expr.
817         (warn_switch_unreachable_r): New function.
818
819 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
820
821         PR target/71379
822         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
823         one.
824
825 2016-06-13  Richard Biener  <rguenther@suse.de>
826
827         PR middle-end/64516
828         * fold-const.c (fold_unary_loc): Preserve alignment when
829         folding a VIEW_CONVERT_EXPR into a MEM_REF.
830
831 2016-06-13  Martin Liska  <mliska@suse.cz>
832
833         PR sanitizer/71458
834         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
835         w/ -fsanitize=bounds.
836
837 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
838
839         * config/i386/i386.c (ix86_init_builtins): Calculate
840         FLOAT128_FTYPE_CONST_STRING function type only once.
841         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
842         built-in functions are available for x86-32 and x86-64 targets.
843
844 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
845
846         PR target/71241
847         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
848         New primitive type.
849         (FLOAT128_FTYPE_CONST_STRING): New function type.
850         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
851         [IX86_BUILTIN_NANSQ]: Ditto.
852         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
853         (ix86_init_builtin_types): Declare const_string_type_node.
854         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
855         builtin functions.
856         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
857         * doc/extend.texi (x86 Built-in Functions): Document
858         __builtin_nanq and __builtin_nansq.
859
860 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
861
862         PR target/71061
863         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
864         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
865         length for pop patterns.
866         (arm_attr_length_push_multi): Update comments.
867         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
868         attribute.
869         (*pop_multiple_with_writeback_and_return): Likewise.
870         (*pop_multiple_with_return): Likewise.
871
872 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
873
874         PR middle-end/71310
875         * fold-const.c (optimize_bit_field_compare): Don't try to use
876         word_mode unconditionally for reading the bit field, look at
877         DECL_BIT_FIELD_REPRESENTATIVE instead.
878
879 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
880
881         PR middle-end/71478
882         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
883         vector integer type.
884
885 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
886
887         PR middle-end/71494
888         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
889         without LABEL_DECL, set *handled_ops_p to false instead of true.
890
891 2016-06-10  Martin Sebor  <msebor@redhat.com>
892
893         PR c/71392
894         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
895         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
896         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
897         them.
898         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
899         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
900         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
901         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
902         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
903         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
904         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
905         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
906
907 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
908
909         * config/arm/arm.h (pool_vector_label,
910         return_used_this_function): Remove.
911
912 2016-06-10  Jeff Law  <law@redhat.com>
913
914         PR tree-optimization/71335
915         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
916         zero length paths here.
917         (convert_and_register_jump_thread_path): Remove hacks related to
918         duplicated blocks in the jump thread path.
919         (fsm_find_control_statement_thread_paths): Avoid putting the same
920         block on the thread path twice, but ensure the thread path is
921         unchanged from the caller's point of view.
922
923 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
924
925         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
926         * predict.def (PRED_LOOP_BRANCH): Remove.
927
928 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
929
930         * Makefile.in (OBJS): Add ggc-tests.o.
931         (GTFILES): Add ggc-tests.c.
932         * ggc-tests.c: New file.
933         * selftest-run-tests.c (selftest::run_tests): Call
934         selftest::ggc_tests_c_tests.
935         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
936
937 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
938
939         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
940
941 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
942
943         PR sanitizer/71480
944         * varasm.c (place_block_symbol): Adjust alignment for asan protected
945         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
946
947 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
948
949         * profile.c: Include cfgloop.h.
950         (branch_prob): Compute estimated number of iterations.
951         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
952         recompute estimate number of iterations from profile.
953
954 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
955
956         PR inline-asm/68843
957         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
958         must be grouped on top of stack.  Don't force early clobber
959         on ordinary reg outputs.
960
961 2016-06-10  Richard Biener  <rguenther@suse.de>
962
963         * targhooks.c (default_builtin_vectorization_cost): Adjust
964         vec_construct cost.
965
966 2016-06-10  Richard Biener  <rguenther@suse.de>
967
968         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
969         to fold the RHS to a constant if possible.
970
971 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
972
973         PR middle-end/71373
974         * tree-nested.c (convert_nonlocal_omp_clauses)
975         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
976         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
977         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
978
979         * gimplify.c (gimplify_adjust_omp_clauses): Discard
980         OMP_CLAUSE_TILE.
981         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
982
983         * omp-low.c (scan_sharing_clauses): Don't expect
984         OMP_CLAUSE__CACHE_.
985
986 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
987
988         PR tree-optimization/71407
989         PR tree-optimization/71416
990         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
991         BIT_FIELD_REF type.
992
993 2016-06-10  Richard Biener  <rguenther@suse.de>
994
995         PR middle-end/71477
996         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
997
998 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
999
1000         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1001
1002 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1003             Jiong Wang  <jiong.wang@arm.com>
1004
1005         PR rtl-optimization/70751
1006         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1007         spilled into memory.
1008
1009 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1010
1011         Revert:
1012         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1013
1014         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1015         sysroot/usr/lib/32api for additional win32 libraries,
1016         fixes failing Cygwin bootstrapping.
1017
1018 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1019
1020         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1021         Delete.
1022
1023 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1024
1025         PR bootstrap/71471
1026         * pretty-print.c (pp_indent): Specify that %p is printed in a
1027         host-dependent manner.
1028         (test_pp_format): Remove the test for %p.
1029
1030 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1031
1032         * config/mips/mips.c (mips_output_jump): Fix formatting.
1033
1034 2016-06-09  Richard Biener  <rguenther@suse.de>
1035
1036         PR tree-optimization/71462
1037         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1038         removed blocks.
1039
1040 2016-06-09  Martin Liska  <mliska@suse.cz>
1041
1042         * predict.c (dump_prediction): Add new argument.
1043         (enum predictor_reason): New enum.
1044         (struct predictor_hash): New struct.
1045         (predictor_hash::hash): New function.
1046         (predictor_hash::equal): Likewise.
1047         (not_removed_prediction_p): New function.
1048         (prune_predictions_for_bb): Likewise.
1049         (combine_predictions_for_bb): Prune predictions.
1050
1051 2016-06-09  Martin Liska  <mliska@suse.cz>
1052
1053         * predict.c (filter_predictions): New function.
1054         (remove_predictions_associated_with_edge): Use the filter
1055         function.
1056         (equal_edge_p): New function.
1057
1058 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1059
1060         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1061         Correct usage of @samp vs @option, add @samp where appropriate.
1062         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1063         Add armv6s-m and document it, as it is no official ARM name.
1064
1065 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1066
1067         * ifcvt.c (struct noce_if_info): Add transform_name field.
1068         (noce_try_move): Set if_info->transform_name to the function name.
1069         (noce_try_ifelse_collapse): Likewise.
1070         (noce_try_store_flag): Likewise.
1071         (noce_try_inverse_constants): Likewise.
1072         (noce_try_store_flag_constants): Likewise.
1073         (noce_try_addcc): Likewise.
1074         (noce_try_store_flag_mask): Likewise.
1075         (noce_try_cmove): Likewise.
1076         (noce_try_cmove_arith): Likewise.
1077         (noce_try_minmax): Likewise.
1078         (noce_try_abs): Likewise.
1079         (noce_try_sign_mask): Likewise.
1080         (noce_try_bitop): Likewise.
1081         (noce_convert_multiple_sets): Likewise.
1082         (noce_process_if_block): Print if_info->transform_name to
1083         dump_file if transformation succeeded.
1084
1085 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1086
1087         * config/arm/cortex-a57.md (cortex_a57_alu):
1088         Handle csel type.
1089
1090 2016-06-08  Martin Sebor  <msebor@redhat.com>
1091             Jakub Jelinek  <jakub@redhat.com>
1092
1093         PR c++/70507
1094         PR c/68120
1095         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1096         BUILT_IN_MUL_OVERFLOW_P): New builtins.
1097         * builtins.c: Include gimple-fold.h.
1098         (fold_builtin_arith_overflow): Handle
1099         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1100         (fold_builtin_3): Likewise.
1101         * doc/extend.texi (Integer Overflow Builtins): Document
1102         __builtin_{add,sub,mul}_overflow_p.
1103
1104 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1105
1106         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1107         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1108
1109 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1110
1111         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1112         Rewrite, looking one level down for records and arrays.
1113
1114 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1115
1116         * pretty-print.c: Include "selftest.h".
1117         (pp_format): Fix comment.
1118         (identifier_to_locale): Likewise.
1119         (selftest::test_basic_printing): New function.
1120         (selftest::assert_pp_format): New function.
1121         (selftest::test_pp_format): New function.
1122         (selftest::pretty_print_c_tests): New function.
1123         * selftest-run-tests.c (selftest::run_tests): Call
1124         selftest::pretty_print_c_tests.
1125         * selftest.h (pretty_print_c_tests): New declaration.
1126
1127 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1128
1129         * invoke.texi (max-loop-headers-insns): Document.
1130         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1131         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1132         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1133
1134 2016-06-08  Richard Biener  <rguenther@suse.de>
1135
1136         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1137         on strided SLP loads and fall back to scalar loads in case
1138         we can't chunk them.
1139
1140 2016-06-08  Richard Biener  <rguenther@suse.de>
1141
1142         PR tree-optimization/71452
1143         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1144         type used for the SSA rewrite has enough precision to cover
1145         the dynamic type of the location.
1146
1147 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1148             Richard Biener  <rguenther@suse.de>
1149
1150         PR c++/71448
1151         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1152         the same as DECL_P (base0) for indirect_base0.  Use equality_code
1153         in one further place.
1154
1155 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1156
1157         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1158         to one word if the field is known to overlap other words.
1159         (extract_bit_field_1): Likewise.
1160         (store_split_bit_field): Remove compensating code.
1161         (extract_split_bit_field): Likewise.
1162
1163 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1164
1165         PR debug/71432
1166         PR ada/71413
1167         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1168
1169 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1170
1171         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1172         VDQF.
1173         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1174         (arch64_addpv4sf): Delete.
1175         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1176         "gen_aarch64_addpv4sf".
1177         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
1178         builtin.
1179         (vpadds_f32): Likewise.
1180         (vpaddq_f32): Likewise.
1181         (vpaddq_f64): Likewise.
1182
1183 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1184
1185         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1186         VALLF.
1187         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1188         to VALLF.  Rename to "fabd<mode>3".
1189         "*fabd_scalar<mode>3): Delete.
1190         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1191         Use builtin.
1192         (vabdd_f64): Likewise.
1193         (vabd_f32): Likewise.
1194         (vabd_f64): Likewise.
1195         (vabdq_f32): Likewise.
1196         (vabdq_f64): Likewise.
1197
1198 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1199
1200         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1201         VALLF.
1202         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1203         "aarch64_rsqrts<mode>".
1204         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1205         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
1206         builtin.
1207         (vrsqrtsd_f64): Likewise.
1208         (vrsqrts_f32): Likewise.
1209         (vrsqrts_f64): Likewise.
1210         (vrsqrtsq_f32): Likewise.
1211         (vrsqrtsq_f64): Likewise.
1212
1213 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1214
1215         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1216         VALLF.
1217         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1218         "aarch64_rsqrte<mode>".
1219         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1220         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
1221         builtin.
1222         (vrsqrted_f64): Likewise.
1223         (vrsqrte_f32): Likewise.
1224         (vrsqrte_f64): Likewise.
1225         (vrsqrteq_f32): Likewise.
1226         (vrsqrteq_f64): Likewise.
1227
1228 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1229
1230         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1231         (ucvtf): Likewise.
1232         (fcvtzs): Likewise.
1233         (fcvtzu): Likewise.
1234         * config/aarch64/aarch64-simd.md
1235         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1236         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1237         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1238         Use builtin.
1239         (vcvt_n_f32_u32): Likewise.
1240         (vcvt_n_s32_f32): Likewise.
1241         (vcvt_n_u32_f32): Likewise.
1242         (vcvtq_n_f32_s32): Likewise.
1243         (vcvtq_n_f32_u32): Likewise.
1244         (vcvtq_n_f64_s64): Likewise.
1245         (vcvtq_n_f64_u64): Likewise.
1246         (vcvtq_n_s32_f32): Likewise.
1247         (vcvtq_n_s64_f64): Likewise.
1248         (vcvtq_n_u32_f32): Likewise.
1249         (vcvtq_n_u64_f64): Likewise.
1250         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1251         (VSDQ_SDI): Likewise.
1252         (fcvt_target): Support V4DI, V4SI and V2SI.
1253         (FCVT_TARGET): Likewise.
1254
1255 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1256
1257         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
1258         (TYPES_BINOP_SUS): Likewise.
1259         (aarch64_simd_builtin_data): Update include file name.
1260         (aarch64_builtins): Likewise.
1261         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
1262         for conversion between scalar float-point and fixed-point.
1263         (ucvtf): Likewise.
1264         (fcvtzs): Likewise.
1265         (fcvtzu): Likewise.
1266         * config/aarch64/aarch64.md
1267         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
1268         pattern for conversion between scalar float to fixed-pointer.
1269         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
1270         (UNSPEC_FCVTZS): New UNSPEC enumeration.
1271         (UNSPEC_FCVTZU): Likewise.
1272         (UNSPEC_SCVTF): Likewise.
1273         (UNSPEC_UCVTF): Likewise.
1274         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
1275         Use builtin.
1276         (vcvtd_n_f64_u64): Likewise.
1277         (vcvtd_n_s64_f64): Likewise.
1278         (vcvtd_n_u64_f64): Likewise.
1279         (vcvtd_n_f32_s32): Likewise.
1280         (vcvts_n_f32_u32): Likewise.
1281         (vcvtd_n_s32_f32): Likewise.
1282         (vcvts_n_u32_f32): Likewise.
1283         * config/aarch64/iterators.md (fcvt_target): Support integer to float
1284         mapping.
1285         (FCVT_TARGET): Likewise.
1286         (FCVT_FIXED2F): New iterator.
1287         (FCVT_F2FIXED): Likewise.
1288         (fcvt_fixed_insn): New define_int_attr.
1289
1290 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1291
1292         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
1293         some statements was removed.
1294
1295 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
1296
1297         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
1298         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
1299         (vect_can_advance_ivs_p): likewise.
1300         (vect_update_ivs_after_vectorizer): likewise.
1301         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
1302         (vect_analyze_scalar_cycles_1): likewise.
1303         (vect_analyze_loop_operations): likewise.
1304         (report_vect_op): likewise.
1305         (vect_is_slp_reduction): likewise.
1306         (vect_is_simple_reduction): likewise.
1307         (get_initial_def_for_induction): likewise.
1308         (vect_transform_loop): likewise.
1309         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
1310         (vect_recog_sad_pattern): likewise.
1311         (vect_recog_widen_sum_pattern): likewise.
1312         (vect_recog_widening_pattern): likewise.
1313         (vect_recog_divmod_pattern): likewise.
1314         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
1315         (vect_analyze_slp_instance): likewise.
1316         (vect_transform_slp_perm_load): likewise.
1317         (vect_schedule_slp_instance): likewise.
1318
1319 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1320
1321         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
1322         (return_prediction): PRED_CONST_RETURN predict return as not taken.
1323         * predict.def (PRED_CONTINUE): Change hitrate 50->67
1324         (PRED_LOOP_BRANCH): Document predictor as broken.
1325         (PRED_LOOP_EXIT): Change hitrate 91->92.
1326         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
1327         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
1328         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
1329         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
1330         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
1331         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
1332         (PRED_CALL): Chane hitrate 71->67.
1333         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
1334         (PRED_GOTO): Document as unused right now.
1335         (PRED_CONST_RETURN): Change hitrate 67->69
1336         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
1337         (PRED_NULL_RETURN): Change hitrate 91->90.
1338         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
1339         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
1340         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
1341
1342 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
1343
1344         * config/rs6000/altivec.h: Add __builtin_vec_mul.
1345         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
1346         special case Altivec builtin.
1347         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1348         VSX_BUILTIN_VEC_MUL (replaced with special case code).
1349         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1350         code for ALTIVEC_BUILTIN_VEC_MUL.
1351         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1352         for __builtin_vec_mul.
1353
1354 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
1355
1356         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
1357         -mno-htm.
1358
1359 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
1360
1361         * spellcheck.c (selftest::test_find_closest_string): New function.
1362         (spellcheck_c_tests): Call the above.
1363
1364 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1365
1366         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
1367
1368 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
1369
1370         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
1371         Yv=Yv,C alternatives.
1372
1373 2016-06-07  Richard Biener  <rguenther@suse.de>
1374
1375         PR c/61564
1376         * common.opt (ffast-math): Make Optimization.
1377
1378 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
1379             Prachi Godbole  <prachi.godbole@imgtec.com>
1380
1381         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
1382         `fabs' and `fneg' type attributes.
1383         (p5600_fpu_fabs): Add `fmove' to the comment.
1384
1385 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1386
1387         * gimple.c: Include builtins.h
1388         (gimple_inexpensive_call_p): New function.
1389         * gimple.h (gimple_inexpensive_call_p): Declare.
1390         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
1391         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
1392         fix formatting.
1393
1394 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1395
1396         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
1397         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
1398         warning_at_rich_loc, warning_n, pedwarn, permerror,
1399         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
1400         sorry, fatal_error, internal_error, internal_error_no_backtrace):
1401         Use the above.
1402
1403 2016-06-07  Richard Biener  <rguenther@suse.de>
1404
1405         PR tree-optimization/71428
1406         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
1407         BIT_FIELD_REF op vs. load.
1408
1409 2016-06-07  Richard Biener  <rguenther@suse.de>
1410
1411         PR middle-end/71423
1412         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
1413         for signed ops.
1414
1415 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1416
1417         * config/pa/pa.md (call): Generate indirect long calls to non-local
1418         functions on TARGET_64BIT.
1419         (call_value): Likewise.
1420
1421 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1422
1423         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
1424         pattern and subsequent splitters.
1425         (call_val_reg_64bit_post_reload): Likewise.
1426
1427 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1428
1429         PR middle-end/71408
1430         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
1431         propagate_op_to_single_use.
1432
1433 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1434
1435         PR middle-end/71281
1436         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
1437
1438 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
1439
1440         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
1441         (enum x86_dirflag_state): New enum.
1442         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
1443         (machine_function): Remove needs_cld.
1444         (ix86_current_function_needs_cld): Remove.
1445         * config/i386/i386.c (ix86_set_func_type): Set
1446         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
1447         (ix86_expand_prologue): Do not emit CLD here.
1448         (ix86_dirflag_mode_needed): New function.
1449         (ix86_dirflag_mode_entry): Ditto.
1450         (ix86_mode_needed): Handle X86_DIRFLAG entity.
1451         (ix86_mode_after): Ditto.
1452         (ix86_mode_entry): Ditto.
1453         (ix86_mode_exit): Ditto.
1454         (ix86_emit_mode_set): Ditto.
1455         * config/i386/i386.md (strmov_singleop): Set
1456         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
1457         Do not set ix86_current_function_needs_cld.
1458         (rep_mov): Ditto.
1459         (strset_singleop): Ditto.
1460         (rep_stos): Ditto.
1461         (cmpstrnqi_nz_1): Ditto.
1462         (cmpstrnqi_1): Ditto.
1463         (strlenqi_1): Ditto.
1464
1465 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
1466
1467         PR tree-optimization/71259
1468         * tree-vect-slp.c (vect_get_constant_vectors): For
1469         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
1470         one for constant op, and use COND_EXPR for non-constant.
1471
1472 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
1473
1474         * Makefile.in (OBJS): Add function-tests.o,
1475         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
1476         selftest-run-tests.o.
1477         (OBJS-libcommon): Add selftest.o.
1478         (OBJS-libcommon-target): Add selftest.o.
1479         (all.internal): Add "selftest".
1480         (all.cross): Likewise.
1481         (selftest): New phony target.
1482         (s-selftest): New target.
1483         (selftest-gdb): New phony target.
1484         (COLLECT2_OBJS): Add selftest.o.
1485         * bitmap.c: Include "selftest.h".
1486         (selftest::test_gc_alloc): New function.
1487         (selftest::test_set_range): New function.
1488         (selftest::test_clear_bit_in_middle): New function.
1489         (selftest::test_copying): New function.
1490         (selftest::test_bitmap_single_bit_set_p): New function.
1491         (selftest::bitmap_c_tests): New function.
1492         * common.opt (fself-test): New.
1493         * diagnostic-show-locus.c: Include "selftest.h".
1494         (make_range): New function.
1495         (test_range_contains_point_for_single_point): New function.
1496         (test_range_contains_point_for_single_line): New function.
1497         (test_range_contains_point_for_multiple_lines): New function.
1498         (assert_eq): New function.
1499         (test_get_line_width_without_trailing_whitespace): New function.
1500         (selftest::diagnostic_show_locus_c_tests): New function.
1501         * et-forest.c: Include "selftest.h".
1502         (selftest::test_single_node): New function.
1503         (selftest::test_simple_tree): New function.
1504         (selftest::test_disconnected_nodes): New function.
1505         (selftest::et_forest_c_tests): New function.
1506         * fold-const.c: Include "selftest.h".
1507         (selftest::assert_binop_folds_to_const): New function.
1508         (selftest::assert_binop_folds_to_nonlvalue): New function.
1509         (selftest::test_arithmetic_folding): New function.
1510         (selftest::fold_const_c_tests): New function.
1511         * function-tests.c: New file.
1512         * gimple.c: Include "selftest.h".
1513         Include "gimple-pretty-print.h".
1514         (selftest::verify_gimple_pp): New function.
1515         (selftest::test_assign_single): New function.
1516         (selftest::test_assign_binop): New function.
1517         (selftest::test_nop_stmt): New function.
1518         (selftest::test_return_stmt): New function.
1519         (selftest::test_return_without_value): New function.
1520         (selftest::gimple_c_tests): New function.
1521         * hash-map-tests.c: New file.
1522         * hash-set-tests.c: New file.
1523         * input.c: Include "selftest.h".
1524         (selftest::assert_loceq): New function.
1525         (selftest::test_accessing_ordinary_linemaps): New function.
1526         (selftest::test_unknown_location): New function.
1527         (selftest::test_builtins): New function.
1528         (selftest::test_reading_source_line): New function.
1529         (selftest::input_c_tests): New function.
1530         * rtl-tests.c: New file.
1531         * selftest-run-tests.c: New file.
1532         * selftest.c: New file.
1533         * selftest.h: New file.
1534         * spellcheck.c: Include "selftest.h".
1535         (selftest::levenshtein_distance_unit_test_oneway): New function,
1536         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
1537         (selftest::levenshtein_distance_unit_test): Likewise.
1538         (selftest::spellcheck_c_tests): Likewise.
1539         * toplev.c: Include selftest.h.
1540         (toplev::run_self_tests): New.
1541         (toplev::main): Handle -fself-test.
1542         * toplev.h (toplev::run_self_tests): New.
1543         * tree.c: Include "selftest.h".
1544         (selftest::test_integer_constants): New function.
1545         (selftest::test_identifiers): New function.
1546         (selftest::test_labels): New function.
1547         (selftest::tree_c_tests): New function.
1548         * tree-cfg.c: Include "selftest.h".
1549         (selftest::push_fndecl): New function.
1550         (selftest::test_linear_chain): New function.
1551         (selftest::test_diamond): New function.
1552         (selftest::test_fully_connected): New function.
1553         (selftest::tree_cfg_c_tests): New function.
1554         * vec.c: Include "selftest.h".
1555         (selftest::safe_push_range): New function.
1556         (selftest::test_quick_push): New function.
1557         (selftest::test_safe_push): New function.
1558         (selftest::test_truncate): New function.
1559         (selftest::test_safe_grow_cleared): New function.
1560         (selftest::test_pop): New function.
1561         (selftest::test_safe_insert): New function.
1562         (selftest::test_ordered_remove): New function.
1563         (selftest::test_unordered_remove): New function.
1564         (selftest::test_block_remove): New function.
1565         (selftest::reverse_cmp): New function.
1566         (selftest::test_qsort): New function.
1567         (selftest::vec_c_tests): New function.c.
1568         * wide-int.cc: Include selftest.h and wide-int-print.h.
1569         (selftest::from_int <wide_int>): New function.
1570         (selftest::from_int <offset_int>): New function.
1571         (selftest::from_int <widest_int>): New function.
1572         (selftest::assert_deceq): New function.
1573         (selftest::assert_hexeq): New function.
1574         (selftest::test_printing <VALUE_TYPE>): New function template.
1575         (selftest::test_ops <VALUE_TYPE>): New function template.
1576         (selftest::test_comparisons <VALUE_TYPE>): New function template.
1577         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
1578         template.
1579         (selftest::wide_int_cc_tests): New function.
1580
1581 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1582
1583         PR middle-end/37780
1584         * ifcvt.c (noce_try_ifelse_collapse): New function.
1585         Declare prototype.
1586         (noce_process_if_block): Call noce_try_ifelse_collapse.
1587         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
1588         (simplify_ternary_operation): Use the above to simplify
1589         conditional CLZ/CTZ expressions.
1590
1591 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1592
1593         PR middle-end/37780
1594         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
1595         define_insn_and_split.
1596
1597 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1598
1599         PR middle-end/37780
1600         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
1601
1602 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1603
1604         PR c/24414
1605         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
1606         Implicitly clobber memory for basic asm with non-empty assembler
1607         string.  Use targetm.md_asm_adjust also here.
1608         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
1609         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
1610         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
1611         non-empty assembler string.
1612         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
1613         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
1614         (decode_asm_operands): Handle basic asm in PARALLEL block.
1615         (extract_insn): Handle basic asm in PARALLEL block.
1616         * doc/extend.texi: Mention new behavior of basic asm.
1617         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
1618         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
1619         branch_needs_nop_p): Use asm_noperands.
1620
1621 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
1622
1623         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
1624         Include the M7 SPARC DFA scheduler.
1625         New attribute v3pipe.
1626         Annotate insns with v3pipe where appropriate.
1627         Define cpu_feature vis4.
1628         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
1629         Add (V8QI "8") to vbits.
1630         Add insns {add,sub}v8qi3
1631         Add insns ss{add,sub}v8qi3
1632         Add insns us{add,sub}{v8qi,v4hi}3
1633         Add insns {min,max}{v8qi,v4hi,v2si}3
1634         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
1635         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
1636         * config/sparc/niagara4.md: Add a comment explaining the
1637         discrepancy between the documented latenty numbers and the
1638         implemented ones.
1639         * config/sparc/niagara7.md: New file.
1640         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
1641         supports SPARC5 and VIS 4.0 instructions.
1642         * configure: Regenerate.
1643         * config.in: Likewise.
1644         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
1645         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
1646         TARGET_CPU_niagara7.
1647         (ASM_CPU64_DEFAULT_SPEC): Likewise.
1648         (CPP_CPU_SPEC): Handle niagara7.
1649         (ASM_CPU_SPEC): Likewise.
1650         * config/sparc/sparc-opts.h (processor_type): Add
1651         PROCESSOR_NIAGARA7.
1652         (mvis4): New option.
1653         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
1654         (AS_NIAGARA7_FLAG): Define.
1655         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
1656         (CPP_CPU64_DEFAULT_SPEC): Likewise.
1657         (CPP_CPU_SPEC): Handle niagara7.
1658         (ASM_CPU_SPEC): Likewise.
1659         * config/sparc/sparc.c (niagara7_costs): Define.
1660         (sparc_option_override): Handle niagara7 and adjust cache-related
1661         parameters with better values for niagara cpus.  Also support VIS4.
1662         (sparc32_initialize_trampoline): Likewise.
1663         (sparc_use_sched_lookahead): Likewise.
1664         (sparc_issue_rate): Likewise.
1665         (sparc_register_move_cost): Likewise.
1666         (dump_target_flag_bits): Support VIS4.
1667         (sparc_vis_init_builtins): Likewise.
1668         (sparc_builtins): Likewise.
1669         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
1670         VIS4 4.0.
1671         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
1672         UltraSparc M7.
1673         * config/sparc/sparc.opt (sparc_processor_type): New value
1674         niagara7.
1675         * config/sparc/visintrin.h (__attribute__): Prototypes for the
1676         VIS4 builtins.
1677         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
1678         -mvis4.
1679         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
1680         VIS4 builtins.
1681
1682 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
1683
1684         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
1685
1686 2016-06-06  Richard Biener  <rguenther@suse.de>
1687
1688         PR tree-optimization/71398
1689         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
1690         remove edges.
1691
1692 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
1693
1694         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
1695         ft32_expand_prolog, ft32_expand_epilogue):
1696         Handle pretend_args.
1697         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
1698         * config/ft32/ft32.md: Add pretend_returner.
1699
1700 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
1701
1702         PR target/71389
1703         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
1704         Copy op1 RTX to avoid invalid sharing.
1705         (ix86_expand_vector_move_misalign): Ditto.
1706
1707 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
1708
1709         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
1710         ATTRIBUTE_UNUSED.
1711
1712 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
1713
1714         * predict.c (predicted_by_loop_heuristics_p): New function.
1715         (predict_iv_comparison): Use it.
1716         (predict_loops): Walk from innermost loops; do not predict edges
1717         leaving multiple loops multiple times; implement
1718         PRED_LOOP_ITERATIONS_MAX heuristics.
1719         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
1720
1721 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
1722
1723         * cfg.c (check_bb_profile): Do not report mismatched profiles when
1724         only edges out of BB are EH edges.
1725
1726 2016-06-04  Martin Sebor  <msebor@redhat.com>
1727             Marcin Baczyński  <marbacz@gmail.com>
1728
1729         PR c/48116
1730         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
1731         a void expression in a void function.
1732
1733 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
1734
1735         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
1736         aux; dump reasons of decisions.
1737         (should_duplicate_loop_header_p): Likewise.
1738         (do_while_loop_p): Likewise.
1739         (ch_base::copy_headers): Dump asi num insns duplicated.
1740
1741 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
1742
1743         PR tree-optimization/71405
1744         * tree-ssa.c (execute_update_addresses_taken): For clobber with
1745         incompatible type, build a new clobber with the right type instead
1746         of building a VIEW_CONVERT_EXPR around it.
1747
1748 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
1749
1750         PR tree-optimization/52171
1751         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
1752         by_pieces_ninsns instead of move_by_pieces_ninsns.
1753
1754 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
1755
1756         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
1757         for reg+reg addressing mode.
1758
1759 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1760
1761         * rs6000-c.c (c/c-tree.h): Add #include.
1762         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
1763         in C++ when found in the base position of vec_ld or vec_st.
1764
1765 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
1766
1767         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
1768         use of profile unless profile status is PROFILE_READ.
1769         * profile.c (compute_branch_probabilities): Set profile status
1770         only after reporting predictor hitrates.
1771
1772 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
1773
1774         PR target/71276
1775         PR target/71277
1776         * common.opt (ffp-int-builtin-inexact): New option.
1777         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
1778         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
1779         (ceil@var{m}2): Document dependence on this option.
1780         * ipa-inline-transform.c (inline_call): Handle
1781         flag_fp_int_builtin_inexact.
1782         * ipa-inline.c (can_inline_edge_p): Likewise.
1783         * config/i386/i386.md (rintxf2): Do not test
1784         flag_unsafe_math_optimizations.
1785         (rint<mode>2_frndint): New define_insn.
1786         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
1787         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
1788         for 387 instead of extending and truncating.
1789         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
1790         !flag_trapping_math instead of flag_unsafe_math_optimizations.
1791         Change to frndint<mode>2_<rounding>.
1792         (frndintxf2_<rounding>_i387): Likewise.  Change to
1793         frndint<mode>2_<rounding>_i387.
1794         (<rounding_insn>xf2): Likewise.
1795         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
1796         !flag_trapping_math instead of flag_unsafe_math_optimizations for
1797         x87.  Test TARGET_ROUND || !flag_trapping_math ||
1798         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
1799         SSE.  Use ROUND_NO_EXC in constant operand of
1800         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
1801         for 387 instead of extending and truncating.
1802
1803 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1804             Julia Koval  <julia.koval@intel.com>
1805
1806         PR target/66960
1807         PR target/67630
1808         PR target/67634
1809         PR target/67841
1810         PR target/68037
1811         PR target/68618
1812         PR target/68661
1813         PR target/69575
1814         PR target/69596
1815         PR target/69734
1816         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
1817         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
1818         all registers, except for function return registers if there are
1819         no caller-saved registers.
1820         (ix86_set_func_type): New function.
1821         (ix86_set_current_function): Call ix86_set_func_type to set
1822         no_caller_saved_registers and func_type.  Call reinit_regs if
1823         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
1824         nor x87 instructions in interrupt handler nor function with
1825         no_caller_saved_registers attribute.
1826         (ix86_function_ok_for_sibcall): Return false if there are no
1827         caller-saved registers.
1828         (type_natural_mode): Don't warn ABI change for MMX in interrupt
1829         handler.
1830         (ix86_function_arg_advance): Skip for callee in interrupt handler.
1831         (ix86_function_arg): Return special arguments in interrupt handler.
1832         (ix86_promote_function_mode): Promote pointer to word_mode only
1833         for normal functions.
1834         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
1835         interrupt handler.
1836         (ix86_epilogue_uses): New function.
1837         (ix86_hard_regno_scratch_ok): Likewise.
1838         (ix86_save_reg): Preserve all registers in interrupt handler
1839         after reload.  Preserve all registers, except for function return
1840         registers, if there are no caller-saved registers after reload.
1841         (find_drap_reg): Always use callee-saved register if there are
1842         no caller-saved registers.
1843         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
1844         for interrupt handler.
1845         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
1846         Emit cld instruction if stringops are used in interrupt handler
1847         or interrupt handler isn't a leaf function.
1848         (ix86_expand_epilogue): Generate interrupt return for interrupt
1849         handler and pop the 'ERROR_CODE' off the stack before interrupt
1850         return in exception handler.
1851         (ix86_expand_call): Disallow calling interrupt handler directly.
1852         If there are no caller-saved registers, mark all registers that
1853         are clobbered by the call which returns as clobbered.
1854         (ix86_handle_no_caller_saved_registers_attribute): New function.
1855         (ix86_handle_interrupt_attribute): Likewise.
1856         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
1857         attributes.
1858         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
1859         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
1860         accumulation in interrupt function if stack may be realigned to
1861         avoid DRAP.
1862         (EPILOGUE_USES): New.
1863         (function_type): New enum.
1864         (machine_function): Add func_type and no_caller_saved_registers.
1865         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
1866         (interrupt_return): New pattern.
1867         * doc/extend.texi: Document x86 interrupt and
1868         no_caller_saved_registers attributes.
1869
1870 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
1871
1872         PR tree-optimization/52171
1873         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
1874         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
1875         Look for constant strings.  Move some code to emit_block_cmp_hints
1876         and use it.
1877         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
1878         * defaults.h (COMPARE_MAX_PIECES): New macro.
1879         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
1880         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
1881         (clear_by_pieces_1): Don't declare.  Move definition before use.
1882         (can_do_by_pieces): New static function.
1883         (can_move_by_pieces): Use it.  Return bool.
1884         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
1885         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
1886         (class pieces_addr); New.
1887         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
1888         pieces_addr::adjust, pieces_addr::increment_address,
1889         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
1890         functions for it.
1891         (class op_by_pieces_d): New.
1892         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
1893         functions for it.
1894         (class move_by_pieces_d, class compare_by_pieces_d,
1895         class store_by_pieces_d): New subclasses of op_by_pieces_d.
1896         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
1897         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
1898         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
1899         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
1900         compare_by_pieces_d::finish_mode): New member functions.
1901         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
1902         functions.
1903         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
1904         (emit_block_cmp_hints): New function.
1905         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
1906         use the newly defined classes.
1907         * expr.h (by_pieces_constfn): New typedef.
1908         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
1909         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
1910         (move_by_pieces_ninsns): Don't declare.
1911         (can_move_by_pieces): Change return value to bool.
1912         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
1913         (compare_by_pieces_branch_ratio): New hook.
1914         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
1915         (by_pieces_ninsns): Declare.
1916         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
1917         COMPARE_BY_PIECES.
1918         (default_compare_by_pieces_branch_ratio): New function.
1919         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
1920         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
1921         * doc/tm.texi: Regenerate.
1922         * tree-ssa-strlen.c: Include "builtins.h".
1923         (handle_builtin_memcmp): New static function.
1924         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
1925         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
1926
1927 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
1928
1929         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
1930         relevant stmts which are simple and invariant.
1931         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
1932         instead of simple and invariant
1933
1934 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
1935
1936         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
1937         (vectorizable_reduction): Check for new relevant state.
1938         (vectorizable_live_operation): vectorize live stmts using
1939         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
1940         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
1941         (vect_stmt_relevant_p): Check for stmts which are only used live.
1942         (process_use): Use of a stmt does not inherit it's live value.
1943         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
1944         (vect_analyze_stmt): Check for new relevant state.
1945         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
1946         outside the loop, but not inside it.
1947
1948 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
1949
1950         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
1951         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
1952         (vect_get_vec_def_for_operand): Split out code.
1953
1954 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
1955
1956         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
1957
1958 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
1959
1960         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
1961
1962 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1963
1964         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
1965
1966 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/71387
1969         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
1970         to noreturn e->callee->decl that has void return type and void
1971         arguments, adjust gimple_call_fntype and remove lhs even if it had
1972         previously addressable type.
1973
1974 2016-06-02  Jeff Law  <law@redhat.com>
1975
1976         PR tree-optimization/71328
1977         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
1978         error when checking for a jump back onto the copied path.
1979
1980 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
1981
1982         * config/microblaze/microblaze.c (get_branch_target): Add return
1983         NULL_RTX for the non-CALL_P case.
1984         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
1985         (insert_wic): Remove unused local "j".
1986
1987 2016-06-02  Martin Liska  <mliska@suse.cz>
1988
1989         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
1990
1991 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
1992             Julia Koval  <julia.koval@intel.com>
1993
1994         * function.c (assign_parm_setup_stack): Force source into a
1995         register if needed.
1996         * target.def (function_incoming_arg): Update documentation to
1997         allow arbitrary address computation based on hard register.
1998         * doc/tm.texi: Regenerated.
1999
2000 2016-06-02  Martin Liska  <mliska@suse.cz>
2001
2002         * predict.c (combine_predictions_for_bb): Fix first match in
2003         cases where a first predictor contains more than one occurence
2004         in list of predictors.  Take the best value in such case.
2005
2006 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2007
2008         PR rtl-optimization/71295
2009         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2010         offset would go over the size of the inner mode reject it.
2011
2012 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2013
2014         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2015         x=x,x and v=v,m instead of x=x,m.
2016
2017         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2018         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
2019         alternative to v=rm,C.
2020
2021         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2022         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
2023         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
2024         instead of vex for the last two above mentioned alternatives.
2025
2026 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2027
2028         PR target/70830
2029         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2030
2031 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2032
2033         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2034
2035 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2036
2037         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2038         from int to unsigned.
2039
2040 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2041
2042         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2043         alternatives, eliminating preferred register class.  Add support
2044         for the MTVSRDD instruction in ISA 3.0.
2045         (vsx_splat_v4si_internal): Use splat_input_operand instead of
2046         reg_or_indexed_operand.
2047         (vsx_splat_v4sf_internal): Likewise.
2048
2049 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2050
2051         PR target/71186
2052         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2053         for loading up all 0's or all 1's.
2054
2055 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2056
2057         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2058
2059 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2060
2061         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2062         extension.
2063         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2064         * gcc.c (set_source_date_epoch_envvar): New function, sets
2065         the SOURCE_DATE_EPOCH environment variable to the current time.
2066
2067 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2068
2069         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2070         the factor for live Phi nodes.
2071
2072 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2073
2074         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2075         * tree-parloops.c (parallelize_loops): likewise.
2076         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2077         tree_unswitch_outer_loop): likewise.
2078
2079 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2080
2081         PR middle-end/71371
2082         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2083         around creation of the temporary.
2084
2085 2016-06-01  Richard Biener  <rguenther@suse.de>
2086
2087         PR tree-optimization/71366
2088         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2089         (unloop_loops): Move removing edges here ...
2090         (try_unroll_loop_completely): ... from here.
2091         (try_peel_loop): ... and here.
2092         (tree_unroll_loops_completely_1): Track parent loops via
2093         bitmap of header BBs.
2094         (tree_unroll_loops_completely): Adjust for that.
2095
2096 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2097
2098         * config/rs6000/altivec.h (vec_slv): New macro.
2099         (vec_srv): New macro.
2100         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2101         (UNSPEC_VSRV): New value.
2102         (vslv): New insn.
2103         (vsrv): New insn.
2104         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2105         (vsrv): New builtin definition.
2106         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2107         define argument types for new builtin.
2108         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2109         new builtin.
2110         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2111         functions.
2112
2113 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2114             Jocelyn Mayer  <l_indien@magic.fr>
2115
2116         PR target/67310
2117         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2118         detect processor family for signature_CENTAUR_ebx.
2119         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2120         signature_CENTAUR_ebx.
2121         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2122         <default>: Pass x86-64 for has_longmode.
2123
2124 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2125
2126         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2127         undefined weak.
2128
2129 2016-06-01  Richard Biener  <rguenther@suse.de>
2130
2131         PR tree-optimization/71261
2132         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2133         of stmts successfully put in the bool pattern.  Remove
2134         single-use restriction.
2135         (adjust_bool_pattern_cast): Add cast at the use site via the
2136         pattern def sequence.
2137         (adjust_bool_pattern): Remove recursion, maintain a hash-map
2138         of patterned defs.  Use the pattern def seqence instead of
2139         multiple independent patterns.
2140         (sort_after_uid): New qsort compare function.
2141         (adjust_bool_stmts): New function to process stmts in the bool
2142         pattern in IL order.
2143         (vect_recog_bool_pattern): Adjust.
2144         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2145         (ifcvt_walk_pattern_tree): Likewise.
2146         (stmt_is_root_of_bool_pattern): Likewise.
2147         (ifcvt_repair_bool_pattern): Likewise.
2148         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2149
2150 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2151
2152         * loop-unroll.c (decide_unroll_constant_iterations,
2153         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2154         likely upper bounds.
2155         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2156
2157 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2158
2159         * tree-core.h (enum omp_clause_code): Remove
2160         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2161
2162 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2163
2164         * config/arm/sync.md (arm_store_exclusive<mode>):
2165         Use 'H' output modifier on operands[2] rather than creating a new
2166         entry in out-of-bounds memory of the operands array.
2167         (arm_store_release_exclusivedi): Likewise.
2168
2169 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2170
2171         * config/arm/arm.c (arm_fusion_enabled_p): New function.
2172         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2173         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2174         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2175
2176 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2177
2178         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2179         into account live statements for mask producers.
2180
2181 2016-06-01  Richard Biener  <rguenther@suse.de>
2182
2183         PR tree-optimization/71311
2184         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2185         restrict to non-INTEGER_CST @0.
2186
2187 2016-06-01  Richard Biener  <rguenther@suse.de>
2188
2189         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2190         (relational patterns): Use :c to avoid pattern duplications.
2191
2192 2016-06-01  Richard Biener  <rguenther@suse.de>
2193
2194         * genmatch.c (comparison_code_p): New predicate.
2195         (swap_tree_comparison): New function.
2196         (commutate): Add for_vec parameter to append new for entries.
2197         Support commutating relational operators by swapping it alongside
2198         operands.
2199         (lower_commutative): Adjust.
2200         (dt_simplify::gen): Do not pass artificial operators to gen
2201         functions.
2202         (decision_tree::gen): Do not add artificial operators as parameters.
2203         (parser::parse_expr): Verify operator commutativity when :c is
2204         applied.  Allow :C to override this.
2205         * match.pd: Adjust patterns to use :C instead of :c where required.
2206
2207 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2208
2209         PR tree-optimization/71077
2210         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2211         the combining step, use boolean_false_node and boolean_true_node
2212         as the designated false/true return values.
2213
2214 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2215
2216         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2217         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2218         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2219         PRED_LOOP_EXIT.
2220
2221 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2222
2223         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2224         of flags impliying the register renaming.
2225         * toplev.c (process_options): Do not imply flag_rename_registers with
2226         loop peeling.
2227
2228 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2229
2230         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2231         default implementation.
2232
2233 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2234
2235         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2236
2237 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2238
2239         * config/sh/constraints.md (b): Remove constraint.
2240         * config/sh/predicates.md (arith_reg_operand): Remove
2241         TARGET_REGISTER_P.
2242         * config/sh/sh-modes.def (PDI): Remove.
2243         * config/sh/sh.c (sh_target_reg_class,
2244         sh_optimize_target_register_callee_saved): Remove functions.
2245         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2246         (sh_expand_epilogue): Update comment.
2247         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2248         sh_secondary_reload): Remove TARGET_REGS related code.
2249         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2250         TARGET_REGISTER_P): Remove macros.
2251         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2252         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2253         TR1_REG, TR2_REG): Remove constants.
2254         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2255
2256 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2257
2258         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
2259         define_expand patterns.
2260         (adddi3_compact): Rename to adddi3.
2261         (subdi3_compact): Rename to subdi3.
2262         (*negdi2): Rename to negdi2.
2263         (*abs<mode>2): Rename to abs<mode>2.
2264
2265 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2266
2267         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
2268         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
2269         (atomic_sub_fetchsi): ... this new pattern.
2270         (mvtc): Add CC_REG clobber.
2271
2272 2016-05-31  Marek Polacek  <polacek@redhat.com>
2273
2274         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
2275
2276 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2277
2278         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
2279         aarch64_fusion_enabled_p to check for fusion capabilities.
2280
2281 2016-05-31  Richard Biener  <rguenther@suse.de>
2282
2283         PR tree-optimization/71352
2284         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
2285         minus one and a negate.
2286
2287 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2288
2289         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
2290         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2291         Delete prototype.
2292         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
2293         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
2294         Remove use of aarch64_simd_attr_length_move, set length attribute
2295         directly.
2296         (*aarch64_be_movoi): Likewise.
2297         (*aarch64_be_movci): Likewise.
2298         (*aarch64_be_movxi): Likewise.
2299
2300 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2301
2302         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
2303         It no longer does that.
2304         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
2305
2306 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
2307
2308         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
2309         attribute __unused__.
2310
2311 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2312
2313         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
2314         * config/arm/arm.c (arm_arch_thumb1): Define.
2315         (arm_option_override): Initialize arm_arch_thumb1.
2316         * config/arm/arm.h (arm_arch_thumb1): Declare.
2317         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
2318         support Thumb-1 ISA.
2319
2320 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2321
2322         PR target/71346
2323         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
2324         `Yv' for scalar operand.
2325
2326 2016-05-31  Tom de Vries  <tom@codesourcery.com>
2327
2328         PR tree-optimization/69068
2329         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
2330         phis with more than two args.
2331
2332 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
2333
2334         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
2335         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
2336         target.
2337
2338 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
2339
2340         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
2341         tune_64.
2342         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2343         support on SPARC.
2344         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
2345         cpu_32, cpu_64, tune_32 and tune_64.
2346         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2347
2348 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2349
2350         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2351
2352 2016-05-30  Andi Kleen  <ak@linux.intel.com>
2353
2354         * auto-profile.c (read_profile): Replace asserts with errors
2355         when file does not exist.
2356         * gcov-io.c (gcov_read_words): Dito.
2357
2358 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2359
2360         * tree-cfg.c (print_loop): Print likely upper bounds.
2361
2362 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2363
2364         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
2365         * opts.c (default_options): Enable peel loops at -O3.
2366         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
2367         (try_peel_loop): Do not re-peel already peeled loops;
2368         use likely upper bounds; fix profile updating.
2369         (pass_complete_unroll::execute): Initialize peeled_loops.
2370
2371 2016-05-30  Martin Liska  <mliska@suse.cz>
2372
2373         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
2374         computed costs by frequency of BB they belong to.
2375         (get_scaled_computation_cost_at): New function.
2376
2377 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
2378             Marc Glisse  <marc.glisse@inria.fr>
2379
2380         PR tree-optimization/71289
2381         * match.pd (-1 / B < A, A > -1 / B): New transformations.
2382
2383 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2384
2385         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
2386
2387 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2388
2389         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
2390         for peeled copies; avoid underflow when updating estimates; correctly
2391         scale loop profile.
2392
2393 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2394
2395         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
2396         r236875. Corrected oe3 to oe2 as obvious.
2397
2398 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2399
2400         PR middle-end/71269
2401         PR middle-end/71252
2402         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
2403         that inserted stmt will not dominate stmts that defines its operand.
2404         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
2405         (rewrite_expr_tree_parallel): Likewise.
2406
2407 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2408
2409         PR middle-end/71252
2410         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
2411         all fields including stmt_to_insert are swapped.
2412
2413 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2414
2415         * predict.h (force_edge_cold): Declare.
2416         * predict.c (force_edge_cold): New function.
2417         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
2418         updating.
2419         (canonicalize_loop_induction_variables): Fix formating.
2420
2421 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2422
2423         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
2424         (visium_expand_copysign): Use gen_int_mode directly.
2425         (visium_compute_frame_size): Minor tweaks.
2426
2427 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2428
2429         * tree-vect-loop.c (vect_analyze_loop_2): Use
2430         likely_max_stmt_executions_int.
2431
2432 2016-05-30  Tom de Vries  <tom@codesourcery.com>
2433
2434         PR tree-optimization/69067
2435         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
2436
2437 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
2438
2439         PR target/71245
2440         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2441         New peepholes to remove unneeded fild/fistp pairs.
2442         (define_peephole2 atomic_loaddi_fpu): Ditto.
2443
2444 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2445
2446         * predict.c (maybe_hot_frequency_p): Avoid division.
2447
2448 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2449
2450         * doc/install.texi: Use https for shop.fsf.org.
2451
2452 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2453
2454         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
2455         likely_max_stmt_executions_int.
2456
2457 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2458
2459         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2460         likely_max_stmt_executions_int.
2461
2462 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2463
2464         * profile.c (compute_branch_probabilities): Do not report hitrates
2465         here.
2466         (branch_prob): Report hitrates here.
2467         * predict.c (gimple_predict_edge): Do not assert profile status;
2468         fix formatting issues.
2469
2470 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2471
2472         * predict.c (edge_predicted_by_p): New function.
2473         (predict_paths_for_bb): Do not put multiple predictions of the same type
2474         on one edge.
2475
2476 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2477
2478         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
2479         commit.
2480
2481 2016-05-28  Alan Modra  <amodra@gmail.com>
2482
2483         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
2484
2485 2016-05-28  Alan Modra  <amodra@gmail.com>
2486
2487         PR rtl-optimization/71275
2488         * ira.c (ira): Free dominance info.
2489
2490 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
2491
2492         * doc/sourcebuild.texi: New address for upstream Go repository.
2493
2494 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2495
2496         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
2497         (TARGET_ARM_V7M): Likewise.
2498
2499 2016-05-26  Jeff Law  <law@redhat.com>
2500
2501         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
2502         (thread_across_edge): Remove calls to find_jump_threads_backwards.
2503         * passes.def: Add jump threading passes before DOM/VRP.
2504         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
2505         argument to a basic block from an edge.  Remove tests which are
2506         handled elsewhere.
2507         (pass_data_thread_jumps, class pass_thread_jumps): New.
2508         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
2509         (make_pass_thread_jumps): Likewise.
2510         * tree-pass.h (make_pass_thread_jumps): Declare.
2511
2512 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2513
2514         * config/visium/visium-protos.h (split_double_move): Rename into...
2515         (visium_split_double_move): ...this.
2516         (visium_split_double_add): Declare.
2517         * config/visium/visium.c (split_double_move): Rename into...
2518         (visium_split_double_move): ...this.
2519         (visium_split_double_add): New function.
2520         (visium_expand_copysign): Renumber operands for consistency.
2521         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
2522         (DFmode move splitter): Likewise.
2523         (*addi3_insn): Split by means of visium_split_double_add.
2524         (*adddi3_insn_flags): Delete.
2525         (*plus_plus_sltu<subst_arith>): New insn.
2526         (*subdi3_insn): Split by means of visium_split_double_add.
2527         (subdi3_insn_flags): Delete.
2528         (*minus_minus_sltu<subst_arith>): New insn.
2529         (*negdi2_insn): Split by means of visium_split_double_add.
2530         (*negdi2_insn_flags): Delete.
2531
2532 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
2533
2534         * configure.ac: Treat a --with-headers option without argument
2535         the same as the default (i.e. consult sys-include directory).
2536         * configure: Regenerate.
2537
2538 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2539
2540         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
2541         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
2542         prototype.
2543         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
2544         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2545
2546 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2547
2548         PR target/63596
2549         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
2550         tree-stdarg analysis results.
2551         (aarch64_setup_incoming_varargs): Likewise.
2552
2553 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2554
2555         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
2556         va_list_gpr_counter_field and va_list_fpr_counter_field.
2557
2558 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
2559
2560         PR67609
2561         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
2562         * config/aarch64/aarch64.c
2563         (aarch64_cannot_change_mode_class): Remove function.
2564         * config/aarch64/aarch64-protos.h
2565         (aarch64_cannot_change_mode_class): Remove.
2566
2567 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2568
2569         * cfgloop.c (record_niter_bound): Record likely upper bounds.
2570         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
2571         get_likely_max_loop_iterations_int): New.
2572         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
2573         any_likely_upper_bound.
2574         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
2575         Declare.
2576         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
2577         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
2578         upper bound.
2579         (unroll_loop_constant_iterations): Likewise.
2580         (unroll_loop_runtime_iterations): Likewise.
2581         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
2582         * lto-streamer-out.c (output_cfg): Likewise.
2583         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
2584         bounds.
2585         (canonicalize_loop_induction_variables): Dump likely upper bounds.
2586         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
2587         (likely_max_loop_iterations): New.
2588         (likely_max_loop_iterations_int): New.
2589         (likely_max_stmt_executions): New.
2590         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
2591         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
2592         likely_max_stmt_executions): Declare.
2593
2594 2016-05-27  Marek Polacek  <polacek@redhat.com>
2595
2596         PR middle-end/71308
2597         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
2598
2599 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2600
2601         * config/s390/s390.md (2x risbg splitters): Use
2602         reg_overlap_mentioned_p instead of rtx_equal_p.
2603
2604 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2605
2606         * combine.c (make_compound_operation): Take known zero bits into
2607         account when checking for possible zero_extend.
2608
2609 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2610
2611         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
2612         Use const_int_operand for operand 2 predicate.  Simplify expand code
2613         as a result.
2614
2615 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
2616
2617         PR middle-end/71279
2618         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
2619         into comparison.
2620
2621 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2622
2623         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
2624         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
2625         that returns CC_SESWPmode and CC_ZESWPmode.
2626         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
2627         and CC_SESWPmode.
2628         (aarch64_rtx_costs): Likewise.
2629
2630 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2631
2632         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
2633         for ISA 3.0 min/max support.
2634         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
2635         conditional move support.
2636         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
2637         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
2638         available.
2639         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
2640         conditional moves where the comparison type is different from move
2641         type.
2642         (fp_minmax): New code iterator for smin/smax.
2643         (minmax): New code attributes for min/max.
2644         (SMINMAX): Likewise.
2645         (smax<mode>3): Combine min, max insns into one insn using the
2646         fp_minmax code iterator.  Add support for ISA 3.0 min/max
2647         instructions that don't need -ffast-math.
2648         (s<minmax><mode>3): Likewise.
2649         (smax<mode>3_vsx): Likewise.
2650         (smin<mode>3): Likewise.
2651         (s<minmax><mode>3_vsx): Likewise.
2652         (smin<mode>3_vsx): Likewise.
2653         (pre-VSX min/max splitters): Likewise.
2654         (s<minmax><mode>3_fpr): Likewise.
2655         (movsfcc): Rewrite floating point conditional moves to combine
2656         SFmode/DFmode into a single insn.
2657         (mov<mode>cc): Likewise.
2658         (movdfcc): Likewise.
2659         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
2660         SFDF2 iterators to handle all combinations.
2661         (fseldfsf4): Likewise.
2662         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
2663         (fseldfdf4): Likewise.
2664         (fselsfdf4): Likewise.
2665         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
2666         comparison instructions that set a 0/-1 mask, and use it for
2667         floating point conditional move via XXSEL.
2668         (fpmask<mode>): Likewise.
2669         (xxsel<mode>): Likewise.
2670         * config/rs6000/predicates.md (min_max_operator): Delete, no
2671         longer used.
2672         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
2673         instructions that generate a 0/-1 mask for use with XXSEL.
2674         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
2675         say whether floating point min/max is available, either through
2676         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
2677         (TARGET_MINMAX_DF): Likewise.
2678
2679 2016-05-27  Alan Modra  <amodra@gmail.com>
2680
2681         PR rtl-optimization/71275
2682         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
2683         for update_equiv_regs and combine_and_move_insns.
2684
2685 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
2686
2687         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
2688         if_then_else or cond RTXes to calculate attribute value.
2689         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
2690         <attr "length_immediate>: Ditto.
2691         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
2692         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
2693         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
2694         <attr "type">: Ditto.
2695         <attr "prefix_data16">: Ditto.
2696         <attr "prefix_extra">: Ditto.
2697         <attr "length_immediate">: Ditto.
2698         <attr "prefix">: Ditto.
2699         (vec_set<mode>_0) <attr "isa">: Ditto.
2700         <attr "prefix_extra">: Ditto.
2701         <attr "length_immediate">: Ditto.
2702         <attr "prefix">: Ditto.
2703         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
2704         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
2705         (sse2_storelpd) <attr "prefix_data16">: Ditto.
2706         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
2707         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
2708         <attr "length_immediate">: Ditto.
2709         <attr "prefix">: Ditto.
2710         (sse2_movsd) <attr "length_immediate">: Ditto.
2711         <attr "prefix">: Ditto.
2712         (vec_concatv2df)  <attr "isa">: Ditto.
2713         <attr "prefix">: Ditto.
2714         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
2715         (*vec_extractv2di_1) <attr "isa">: Ditto.
2716         <attr "type">: Ditto.
2717         <attr "length_immediate">: Ditto.
2718         <attr "prefix_rex">: Ditto.
2719         <attr "prefix_extra">: Ditto.
2720         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
2721         <attr "prefix_extra">: Ditto.
2722         <attr "length_immediate">: Ditto.
2723         (vec_concatv2di) <attr "isa">: Ditto.
2724         <attr "prefix_extra">: Ditto.
2725         <attr "length_immediate">: Ditto.
2726         <attr "prefix">: Ditto.
2727
2728 2016-05-26  Martin Liska  <mliska@suse.cz>
2729
2730         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
2731         function.
2732         (operator+): Likewise.
2733         (operator-): Likewise.
2734         (comp_cost::operator+=): Likewise.
2735         (comp_cost::operator-=): Likewise.
2736         (comp_cost::operator/=): Likewise.
2737         (comp_cost::operator*=): Likewise.
2738         (operator<): Likewise.
2739         (operator==): Likewise.
2740         (operator<=): Likewise.
2741         (new_cost): Remove.
2742         (infinite_cost_p): Likewise.
2743         (add_costs): Likewise.
2744         (sub_costs): Likewise.
2745         (compare_costs): Likewise.
2746         (set_group_iv_cost): Use the newly introduced functions.
2747         (get_address_cost): Likewise.
2748         (get_shiftadd_cost): Likewise.
2749         (force_expr_to_var_cost): Likewise.
2750         (split_address_cost): Likewise.
2751         (ptr_difference_cost): Likewise.
2752         (difference_cost): Likewise.
2753         (get_computation_cost_at): Likewise.
2754         (determine_group_iv_cost_generic): Likewise.
2755         (determine_group_iv_cost_address): Likewise.
2756         (determine_group_iv_cost_cond): Likewise.
2757         (autoinc_possible_for_pair): Likewise.
2758         (determine_group_iv_costs): Likewise.
2759         (cheaper_cost_pair): Likewise.
2760         (iv_ca_recount_cost): Likewise.
2761         (iv_ca_set_no_cp): Likewise.
2762         (iv_ca_set_cp): Likewise.
2763         (iv_ca_cost): Likewise.
2764         (iv_ca_new): Likewise.
2765         (iv_ca_dump): Likewise.
2766         (iv_ca_narrow): Likewise.
2767         (iv_ca_prune): Likewise.
2768         (iv_ca_replace): Likewise.
2769         (try_add_cand_for): Likewise.
2770         (try_improve_iv_set): Likewise.
2771         (find_optimal_iv_set): Likewise.
2772
2773 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
2774
2775         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
2776         that internal functions will clobber all caller-saved registers.
2777
2778 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
2779
2780         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
2781         Return a better case_values_threshold when optimizing.
2782
2783 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
2784
2785         * config/aarch64/aarch64-simd.md (aarch64_combinez):
2786         Add ? to integer variant.
2787         (aarch64_combinez_be): Likewise.
2788
2789 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
2790
2791         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
2792         instead of x constraint.
2793         (vcvtps2ph256<mask_name>): Likewise.
2794
2795         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
2796         alternative.  Formatting fix.
2797
2798         * config/i386/sse.md
2799         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
2800         to ...
2801         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
2802         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
2803         maybe_evex prefix instead of vex.
2804         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
2805         EXT_REX_SSE_REG_P (op0) case in the splitter.
2806
2807 2016-05-25  Jeff Law  <law@redhat.com>
2808
2809         PR tree-optimization/71272
2810         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
2811         Update comments.  Add test for empty path.
2812
2813 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
2814
2815         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
2816         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
2817         special case builtin.
2818         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2819         code for ALTIVEC_BUILTIN_VEC_CMPNE.
2820         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2821         for __builtin_vec_cmpne.
2822
2823 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2824
2825         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
2826         redundant test and bail out if the type of the new operand is not
2827         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
2828
2829 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
2830
2831         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
2832         (x_ix86_target_flags_explicit): Remove.
2833         * config/i386/i386.c (ix86_function_specific_save): Do not copy
2834         x_ix86_target_flags_explicit.
2835         (ix86_function_specific_restore): Ditto.
2836
2837 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
2838             H.J. Lu  <hongjiu.lu@intel.com>
2839
2840         PR target/70738
2841         * common/config/i386/i386-common.c
2842         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
2843         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
2844         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
2845         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
2846         (-mgeneral-regs-only): Add new option.
2847         * config/i386/i386.c (ix86_option_override_internal): Don't enable
2848         x87 instructions if only general registers are allowed.
2849         (ix86_target_string): Add ix86_flags argument. Handle additional
2850         flags options through ix86_flags argument.  Update all callers.
2851         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
2852
2853 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2854
2855         PR rtl-optimization/66940
2856         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
2857         decrementing desired_val will not overflow before performing these
2858         operations.
2859
2860 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
2861
2862         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
2863         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
2864         * config/i386/i386.c (enum ix86_builtins): Add
2865         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
2866         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
2867         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
2868         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
2869         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
2870         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
2871         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
2872         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
2873         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
2874         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
2875         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
2876         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
2877         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
2878         __builtin_ia32_cvtps2dq512_mask.
2879         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
2880         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
2881         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
2882         * config/i386/sse.md
2883         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
2884         Rename to ...
2885         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
2886         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
2887         to ...
2888         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
2889         (avx512f_vec_pack_sfix_v8df): New define_expand.
2890         (avx512f_roundpd512): Rename to ...
2891         (avx512f_round<castmode>512): ... this.  Change iterator.
2892         (avx512f_roundps512_sfix): New define_expand.
2893         (round<mode>2_sfix): Change iterator.
2894
2895 2016-05-25  Nick Clifton  <nickc@redhat.com>
2896
2897         * config/msp430/msp430.c (msp430_attr): Produce an error if a
2898         static interrupt handler is detected.
2899         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
2900         default linker script.
2901         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
2902         the low part of a symbolic pointer.
2903
2904 2016-05-25  Richard Biener  <rguenther@suse.de>
2905
2906         PR tree-optimization/71261
2907         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
2908         interesting stmt instead of immediate uses when looking
2909         for the use operand to replace.
2910
2911 2016-05-25  Martin Liska  <mliska@suse.cz>
2912
2913         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
2914
2915 2016-05-25  Richard Biener  <rguenther@suse.de>
2916
2917         PR tree-optimization/71264
2918         * tree-vect-stmts.c (vect_init_vector): Properly deal with
2919         vector type val.
2920
2921 2016-05-25  Martin Liska  <mliska@suse.cz>
2922
2923         PR tree-optimization/71239
2924         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
2925         if DECL_SIZE is NULL.
2926
2927 2016-05-25  Richard Biener  <rguenther@suse.de>
2928
2929         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
2930         * tree-if-conv.c (pass_data_if_conversion): Use it.
2931
2932 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2933
2934         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
2935         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
2936         * varpool.c (varpool_node::get_availability): Likewise.
2937
2938 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2939
2940         * config/rs6000/altivec.md (VNEG iterator): New iterator for
2941         VNEGW/VNEGD instructions.
2942         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
2943         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
2944         support for ISA 3.0 VNEGW/VNEGD instructions.
2945
2946 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
2947
2948         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
2949         pointers inside OACC_DATA regions.
2950         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
2951         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
2952         (gimplify_adjust_omp_clauses): Fix typo in comment.
2953
2954 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2955
2956         * config/rs6000/altivec.md (VParity): New mode iterator for vector
2957         parity built-in functions.
2958         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
2959         zeros.
2960         (p9v_parity<mode>2): Likewise.
2961         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
2962         parity.
2963         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
2964         (parity<mode>2): ISA 3.0 expander for vector parity.
2965         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
2966         power9 built-ins.
2967         (BU_P9_64BIT_MISC_0): Likewise.
2968         (BU_P9_MISC_0): Likewise.
2969         (BU_P9V_AV_1): Likewise.
2970         (BU_P9V_AV_2): Likewise.
2971         (BU_P9V_AV_3): Likewise.
2972         (BU_P9V_AV_P): Likewise.
2973         (BU_P9V_VSX_1): Likewise.
2974         (BU_P9V_OVERLOAD_1): Likewise.
2975         (BU_P9V_OVERLOAD_2): Likewise.
2976         (BU_P9V_OVERLOAD_3): Likewise.
2977         (VCTZB): Add vector count trailing zeros support.
2978         (VCTZH): Likewise.
2979         (VCTZW): Likewise.
2980         (VCTZD): Likewise.
2981         (VPRTYBD): Add vector parity support.
2982         (VPRTYBQ): Likewise.
2983         (VPRTYBW): Likewise.
2984         (VCTZ): Add overloaded vector count trailing zeros support.
2985         (VPRTYB): Add overloaded vector parity support.
2986         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2987         overloaded vector count trailing zeros and parity instructions.
2988         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
2989         vector parity support.
2990         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
2991         trailing zeros support.
2992         (vec_cntlz): Likewise.
2993         (vec_vctzb): Likewise.
2994         (vec_vctzd): Likewise.
2995         (vec_vctzh): Likewise.
2996         (vec_vctzw): Likewise.
2997         (vec_vprtyb): Add ISA 3.0 vector parity support.
2998         (vec_vprtybd): Likewise.
2999         (vec_vprtybw): Likewise.
3000         (vec_vprtybq): Likewise.
3001         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3002         the ISA 3.0 vector count trailing zeros and vector parity built-in
3003         functions.
3004
3005 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3006
3007         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3008         when there is stmt_to_insert.
3009
3010 2016-05-24  Martin Sebor  <msebor@redhat.com>
3011
3012         PR c++/71147
3013         * tree.h (complete_or_array_type_p): New inline function.
3014
3015 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3016
3017         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3018         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3019         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3020
3021         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3022         Limit 1st alternative to noavx isa, split 2nd alternative into one
3023         noavx and one avx alternative, use *x and Bm in the former and
3024         x and m in the latter.
3025
3026         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3027         of sse4 for the first alternative, drop %v from the template
3028         and d operand modifier.  Split second alternative into one sse4_noavx
3029         and one avx alternative, use *x instead of *v in the former and v
3030         instead of *v in the latter.
3031         (*sse4_1_extractps): Use noavx isa instead of * for the first
3032         alternative, drop %v from the template.  Split second alternative into
3033         one noavx and one avx alternative, use *x instead of *v in the
3034         former and v instead of *v in the latter.
3035         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3036         with noavx and the last one with avx.
3037         (sse4_1_phminposuw): Guard first alternative with noavx isa,
3038         split the second one into one noavx and one avx alternative,
3039         use *x and Bm in the former and x and m in the latter one.
3040         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3041         alternatives.
3042
3043         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3044         first two alternatives to noavx, use *x instead of *v in the second
3045         one, add avx alternative without *.
3046         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3047         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3048         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3049
3050 2016-05-24  Jeff Law  <law@redhat.com>
3051
3052         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3053         New function, extracted from...
3054         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
3055         Allow simple copies and constant initializations in the SSA chain.
3056
3057 2016-05-24  Marek Polacek  <polacek@redhat.com>
3058
3059         PR c/71249
3060         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3061         scope.
3062
3063 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3064
3065         PR c++/71257
3066         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3067         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3068         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3069         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3070         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3071
3072 2016-05-24  Richard Biener  <rguenther@suse.de>
3073
3074         PR tree-optimization/71240
3075         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3076         has integral type.
3077
3078 2016-05-24  Richard Biener  <rguenther@suse.de>
3079
3080         PR tree-optimization/71230
3081         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3082
3083 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3084
3085         * tree-vectorizer.h (vectorizable_comparison): Delete.
3086         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3087         PURE_SLP_STMT check.
3088         * tree-vect-stmts.c (vectorizable_call): Likewise.
3089         (vectorizable_simd_clone_call): Likewise.
3090         (vectorizable_conversion): Likewise.
3091         (vectorizable_assignment): Likewise.
3092         (vectorizable_shift): Likewise.
3093         (vectorizable_operation): Likewise.
3094         (vectorizable_load): Likewise.
3095         (vectorizable_condition): Likewise.
3096         (vectorizable_store): Likewise.  Assert that we don't have
3097         hybrid SLP.
3098         (vectorizable_comparison): Make static.  Remove redundant
3099         PURE_SLP_STMT check.
3100         (vect_transform_stmt): Assert that we always have an slp_node
3101         if PURE_SLP_STMT.
3102
3103 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3104
3105         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
3106         operands[2] against 1 with comparison against CONST1_RTX.
3107         (<shift>di3_neon): Likewise.
3108         * config/arm/predicates.md (const0_operand): Replace with comparison
3109         against CONST0_RTX.
3110
3111 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3112
3113         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3114         operands[2] against 1 with comparison against CONST1_RTX.
3115         (ashrdi3): Likewise.
3116         (lshrdi3): Likewise.
3117         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3118         UINTVAL.
3119         (ashrsi3): Likewise.
3120         (lshrsi3): Likewise.
3121         (rotrsi3): Likewise.
3122         (define_split above *compareqi_eq0): Likewise.
3123         (define_split above "prologue"): Likewise.
3124         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3125         * config/arm/predicates.md (shift_operator): Likewise.
3126         (shift_nomul_operator): Likewise.
3127         (sat_shift_operator): Likewise.
3128         (thumb1_cmp_operand): Likewise.
3129         (const_neon_scalar_shift_amount_operand): Replace manual range
3130         check with IN_RANGE.
3131         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3132         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3133
3134 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3135
3136         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3137         with HOST_WIDE_INT_1.
3138         (insv): Likewise.
3139         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3140         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3141         (arm_canonicalize_comparison): Likewise.
3142         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3143         HOST_WIDE_INT_1.
3144         (thumb1_size_rtx_costs): Likewise.
3145         (vfp_const_double_index): Replace cast of 1 to unsigned
3146         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3147         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3148         HOST_WIDE_INT_1.
3149         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3150         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3151         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3152         HOST_WIDE_INT with HOST_WIDE_INT_1.
3153
3154 2016-05-24  Marek Polacek  <polacek@redhat.com>
3155
3156         * tree-cfg.h (should_remove_lhs_p): New predicate.
3157         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3158         * gimplify.c (gimplify_modify_expr): Likewise.
3159         * tree-cfg.c (verify_gimple_call): Likewise.
3160         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3161         * gimple-fold.c: Include "tree-cfg.h".
3162         (gimple_fold_call): Use should_remove_lhs_p.
3163
3164 2016-05-24  Richard Biener  <rguenther@suse.de>
3165
3166         PR tree-optimization/71253
3167         * cfganal.h (control_dependences): Make robust against edge
3168         and BB removal.
3169         (control_dependences::control_dependences): Remove edge_list argument.
3170         (control_dependences::get_edge): Remove.
3171         (control_dependences::get_edge_src): Add.
3172         (control_dependences::get_edge_dest): Likewise.
3173         (control_dependences::m_el): Make a vector of edge src/dest index.
3174         * cfganal.c (control_dependences::find_control_dependence): Adjust.
3175         (control_dependences::control_dependences): Likewise.
3176         (control_dependences::~control_dependence): Likewise.
3177         (control_dependences::get_edge): Remove.
3178         (control_dependences::get_edge_src): Add.
3179         (control_dependences::get_edge_dest): Likewise.
3180         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3181         get_edge_src.
3182         (perform_tree_ssa_dce): Adjust.
3183         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3184         get_edge_src.
3185         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3186         conditional on changed.
3187
3188 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3189
3190         PR target/69857
3191         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3192         return.  Reindent transformation comment and mention the ARM state
3193         behavior.
3194
3195 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3196
3197         PR middle-end/71252
3198         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3199         after build_and_add_sum creates new use stmt.
3200
3201 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3202
3203         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3204         load_lanes/grouped_load classification comes first.  Don't check
3205         whether the vectorization factor is a multiple of the group size
3206         for load_lanes.
3207
3208 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3209
3210         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3211         GROUP_GAP for single-element interleaving.
3212         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3213         variable.
3214
3215 2016-05-24  Richard Biener  <rguenther@suse.de>
3216
3217         PR middle-end/70434
3218         PR c/69504
3219         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3220         bases which are accessed with non-invariant indices.
3221         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3222         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3223
3224 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3225
3226         PR middle-end/71170
3227         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3228         (add_to_ops_vec): Add stmt_to_insert.
3229         (add_repeat_to_ops_vec): Init stmt_to_insert.
3230         (insert_stmt_before_use): New.
3231         (transform_add_to_multiply): Remove mult_stmt insertion and add it
3232         to ops vector.
3233         (get_ops): Init stmt_to_insert.
3234         (maybe_optimize_range_tests): Likewise.
3235         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3236         (rewrite_expr_tree_parallel): Likewise.
3237         (reassociate_bb): Likewise.
3238
3239 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3240
3241         PR target/71201
3242         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3243         ISA 3.0 xxperm fusion alternative.
3244         (altivec_vperm_v8hiv16qi): Likewise.
3245         (altivec_vperm_<mode>_uns_internal): Likewise.
3246         (vperm_v8hiv4si): Likewise.
3247         (vperm_v16qiv8hi): Likewise.
3248
3249 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3250             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3251
3252         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3253         vpermr/xxpermr on ISA 3.0.
3254         (altivec_expand_vec_perm_le): Likewise.
3255         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3256         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3257         ISA 3.0.
3258
3259 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
3260
3261         * config/i386/i386.h (IS_STACK_MODE): Enable for
3262         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
3263         SSE_FLOAT_MODE_P macros.
3264         * config/i386/i386.c (ix86_preferred_reload_class): Use
3265         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
3266         Cleanup regclass processing for CONST_DOUBLE_P.
3267         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
3268         (ix86_rtx_costs): Remove redundant TARGET_80387 check
3269         with IS_STACK_MODE macro.
3270         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
3271         with TARGET_SSE2.
3272         (*movdf_internal): Use IS_STACK_MODE macro.
3273         (*movsf_internal): Ditto.
3274
3275 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
3276
3277         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
3278         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
3279
3280 2016-05-23  Jeff Law  <law@redhat.com>
3281
3282         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
3283         extracted from ...
3284         (fsm_find_control_statement_thread_paths): Call it.
3285
3286 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3287
3288         PR ipa/71234
3289         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
3290         from_global_constant if t is not NULL.
3291
3292 2016-05-23  Marek Polacek  <polacek@redhat.com>
3293
3294         PR c/49859
3295         * common.opt (Wswitch-unreachable): New option.
3296         * doc/invoke.texi: Document -Wswitch-unreachable.
3297         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
3298         warning.
3299
3300 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
3301
3302         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
3303         TMR_INDEX is non-NULL.
3304
3305 2016-05-23  Richard Biener  <rguenther@suse.de>
3306
3307         PR tree-optimization/71230
3308         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
3309         (try_special_add_to_ops): ... here.  Always test for single-use.
3310
3311 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3312
3313         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3314         default block if a PHI node in the original one would be resized.
3315
3316 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3317
3318         PR tree-optimization/58135
3319         * tree-vect-slp.c: When group size is not multiple
3320         of vector size, allow splitting of store group at
3321         vector boundary.
3322
3323 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
3324
3325         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
3326
3327 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
3328
3329         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3330         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
3331         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
3332         of 64x2.
3333
3334         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
3335         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
3336         v constraint instead of x and vinserti32x4 insn.
3337
3338         * config/i386/sse.md (i128vldq): New mode iterator.
3339         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
3340         avx512dq and avx512vl alternatives.
3341
3342         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
3343         constraint, use maybe_evex prefix instead of vex.
3344         (vec_dupv4sf): Use v constraint instead of x for output
3345         operand except for noavx alternative, use Yv constraint
3346         instead of x for input.  Use maybe_evex prefix instead of vex.
3347         (*vec_dupv4si): Likewise.
3348         (*vec_dupv2di): Likewise.
3349
3350 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
3351
3352         PR middle-end/40921
3353         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
3354         (linearize_expr_tree): Call try_special_add_to_ops.
3355         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
3356
3357 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3358
3359         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
3360         to computed stack_usage.
3361
3362 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3363
3364         PR target/71103
3365         * config/avr/avr.md (define_expand "mov<mode>"): If the source
3366         operand is subreg (symbol_ref) then move the symbol ref to register.
3367
3368 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
3369
3370         * tree.c (array_at_struct_end_p): Look through MEM_REF.
3371
3372 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3373
3374         PR middle-end/71179
3375         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
3376         VECTOR type.
3377
3378 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3379
3380         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
3381         ranges by calling get_single_symbol and tidy up.  Look more closely
3382         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
3383
3384 2016-05-20  Jeff Law  <law@redhat.com>
3385
3386         * bitmap.c (bitmap_find_bit): Remove useless test.
3387
3388 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3389
3390         * function.c (thread_prologue_and_epilogue_insns): Commit the
3391         insertion of the epilogue.
3392
3393 2016-05-20  Martin Jambor  <mjambor@suse.cz>
3394
3395         PR tree-optimization/70884
3396         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3397         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3398         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3399         of constant pool data as a reason for scalarization.
3400
3401 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3402
3403         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3404         for naked functions.
3405         (thumb1_expand_prologue): Likewise.
3406
3407 2016-05-20  Nathan Sidwell  <nathan@acm.org>
3408
3409         * config/nvptx/nptx.c (nvptx_option_override): Only set
3410         flag_toplevel_reorder, if not explicitly specified.  Set
3411         flag_no_common, unless explicitly specified.
3412
3413 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3414
3415         * calls.c (can_implement_as_sibling_call_p): Mark param
3416         reg_parm_stack_space with ATTRIBUTE_UNUSED.
3417
3418 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3419
3420         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
3421         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
3422         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
3423         constants.
3424         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
3425         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
3426         and CASE_CONST_ANY.
3427
3428 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
3429
3430         * config/nvptx/nvptx.md (sincossf3): New pattern.
3431
3432 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3433
3434         * calls.c (maybe_complain_about_tail_call): New function.
3435         (initialize_argument_information): Call
3436         maybe_complain_about_tail_call when clearing *may_tailcall.
3437         (can_implement_as_sibling_call_p): Call
3438         maybe_complain_about_tail_call when returning false.
3439         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
3440         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
3441         if tail-call optimization fails.
3442         * cfgexpand.c (expand_call_stmt): Initialize
3443         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
3444         * gimple-pretty-print.c (dump_gimple_call): Dump
3445         gimple_call_must_tail_p.
3446         * gimple.c (gimple_build_call_from_tree): Call
3447         gimple_call_set_must_tail with the value of
3448         CALL_EXPR_MUST_TAIL_CALL.
3449         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
3450         (gimple_call_set_must_tail): New function.
3451         (gimple_call_must_tail_p): New function.
3452         * print-tree.c (print_node): Update printing of TREE_STATIC
3453         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
3454         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
3455         trailing comment listing applicable flags.
3456         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
3457
3458 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3459
3460         * calls.c (expand_call): Move "Rest of purposes for tail call
3461         optimizations to fail" to...
3462         (can_implement_as_sibling_call_p): ...this new function, and
3463         split into multiple "if" statements.
3464
3465 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3466
3467         * cfgloop.h (expected_loop_iterations_unbounded,
3468         expected_loop_iterations): Unconstify.
3469         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
3470         profile with known upper bound; return 3 when profile is absent.
3471         (expected_loop_iterations): Update.
3472
3473 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3474
3475         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
3476         and get_max_loop_iterations_int.
3477
3478 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3479
3480         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
3481         realistic upper bounds here.
3482
3483 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3484
3485         PR c++/71210
3486         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3487         calls if the LHS is variable length or has addressable type.
3488         If targets[0]->decl is a noreturn call with void return type and
3489         zero arguments, adjust fntype and remove lhs in that case.
3490
3491 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
3492
3493         PR tree-optimization/71079
3494         PR tree-optimization/71206
3495         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
3496
3497 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3498
3499         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
3500         (get_vec_alignment_for_array_decl): Likewise.
3501         (get_vec_alignment_for_record_decl): Likewise.
3502         (increase_alignment::execute): Move code to find alignment to
3503         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
3504         (type_align_map): New hash_map.
3505
3506 2016-05-20  Richard Guenther  <rguenther@suse.de>
3507
3508         PR tree-optimization/29756
3509         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
3510         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
3511         * fold-const.c (operand_equal_p): Likewise.
3512         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
3513         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
3514         * tree-inline.c (estimate_operator_cost): Likewise.
3515         * tree-pretty-print.c (dump_generic_node): Likewise.
3516         * tree-ssa-operands.c (get_expr_operands): Likewise.
3517         * cfgexpand.c (expand_debug_expr): Likewise.
3518         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3519         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
3520         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
3521         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
3522         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
3523         (execute_update_addresses_taken): Do it.
3524
3525 2016-05-20  Richard Biener  <rguenther@suse.de>
3526
3527         PR tree-optimization/71185
3528         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
3529         register operations.
3530
3531 2016-05-20  Richard Biener  <rguenther@suse.de>
3532
3533         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
3534         gimple_seq_add_seq_without_update.
3535         (release_bb_predicate): Assert we have no operands to free.
3536         (if_convertible_loop_p_1): Calculate post dominators later.
3537         Do not free BB predicates here.
3538         (combine_blocks): Do not recompute BB predicates.
3539         (version_loop_for_if_conversion): Save BB predicates around
3540         loop versioning.
3541
3542 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3543
3544         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
3545         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
3546         code.  Ignore sibcalls on EDGE_IGNORE edges.
3547         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
3548         on edges for sibcalls that run without prologue.  The rest of the
3549         function is combined from...
3550         (fix_fake_fallthrough_edge): ... this, and ...
3551         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
3552         function argument, make it a local variable.
3553
3554 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
3555
3556         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
3557         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
3558         for 32-bit mode and SEH for 64-bit.
3559         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
3560         TARGET_64BIT_DEFAULT.
3561
3562 2016-05-19  Ryan Burn  <contact@rnburn.com>
3563
3564         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
3565         * gengtype.c (open_base_files): Add cilk.h to ifiles.
3566
3567 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
3568
3569         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
3570         force pending loads from memory.
3571
3572 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3573
3574         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3575         (UNSPEC_DARN_32): New unspec constant.
3576         (UNSPEC_DARN_RAW): New unspec constant.
3577         (darn_32): New instruction.
3578         (darn_raw): New instruction.
3579         (darn): New instruction.
3580         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3581         support and documentation for this macro.
3582         (BU_P9_MISC_1): New macro definition.
3583         (BU_P9_64BIT_MISC_0): New macro definition.
3584         (BU_P9_MISC_0): New macro definition.
3585         (darn_32): New builtin definition.
3586         (darn_raw): New builtin definition.
3587         (darn): New builtin definition.
3588         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3589         RS6000_BUILTIN_0 directives to surround each occurrence of
3590         #include "rs6000-builtin.def".
3591         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3592         RS6000_BTM_64BIT flags to the returned mask, depending on
3593         configuration.
3594         (def_builtin): Correct an error in the assignments made to the
3595         debugging variable attr_string.
3596         (rs6000_expand_builtin): Add support for no-operand built-in
3597         functions.
3598         (builtin_function_type): Remove fatal_error assertion that is no
3599         longer valid.
3600         (rs6000_common_init_builtins): Add support for no-operand built-in
3601         functions.
3602         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3603         definition.
3604         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3605         definition.
3606         (RS6000_BTM_64BIT): New macro definition.
3607         * doc/extend.texi: Document __builtin_darn (void),
3608         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3609         functions.
3610
3611 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
3612
3613         * tree-vect-loop.c (vect_analyze_loop_2): Use also
3614         max_loop_iterations_int.
3615
3616 2016-05-19  Marek Polacek  <polacek@redhat.com>
3617
3618         PR tree-optimization/71031
3619         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
3620         condition and adjust the code a bit.
3621
3622 2016-05-19  Martin Liska  <mliska@suse.cz>
3623
3624         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
3625         auto_vec instead of vec.
3626
3627 2016-05-19  Martin Liska  <mliska@suse.cz>
3628
3629         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
3630
3631 2016-05-19  Martin Liska  <mliska@suse.cz>
3632
3633         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
3634
3635 2016-05-19  Martin Liska  <mliska@suse.cz>
3636
3637         * ipa-pure-const.c (set_function_state): Remove an existing
3638         funct_state.
3639         (remove_node_data): Do not free it as it's released
3640         in set_function_state.
3641
3642 2016-05-19  Martin Liska  <mliska@suse.cz>
3643
3644         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
3645         bitmap.
3646
3647 2016-05-19  Martin Liska  <mliska@suse.cz>
3648
3649         * omp-simd-clone.c (simd_clone_adjust): Release vector.
3650
3651 2016-05-19  Martin Liska  <mliska@suse.cz>
3652
3653         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
3654         an auto_vec instead of re-creating it.
3655
3656 2016-05-19  Martin Liska  <mliska@suse.cz>
3657
3658         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
3659         auto_vec instead of vec.
3660
3661 2016-05-19  Martin Liska  <mliska@suse.cz>
3662
3663         * lto-section-in.c (lto_get_section_data): Call
3664         lto_check_version with additional argument.
3665         * lto-streamer.c (lto_check_version): Add new argument.
3666         * lto-streamer.h (lto_check_version): Likewise.
3667
3668 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3669
3670         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
3671         Don't add cost of inner memory when handling sign-extended loads.
3672
3673 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
3674
3675         PR rtl-optimization/71148
3676         * cse.c (cse_main): Free dominance info.
3677         (rest_of_handle_cse): Don't free dominance info.
3678         (rest_of_handle_cse2): Likewise.
3679         (rest_of_handle_cse_after_global_opts): Likewise.
3680
3681 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3682
3683         PR target/71056
3684         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
3685         NULL_TREE early if NEON is not available.  Remove now redundant check
3686         in ARM_CHECK_BUILTIN_MODE.
3687
3688 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
3689
3690         PR sanitizer/64354
3691         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
3692         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
3693         * doc/cpp.texi: Document new macros.
3694
3695 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
3696
3697         PR tree-optimization/69848
3698         * tree-vect-loop.c (vectorizable_reduction): Don't factor
3699         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
3700
3701 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3702
3703         * function.c (thread_prologue_and_epilogue_insn): Move the
3704         "goto epilogue_done" one block later.
3705
3706 2016-05-19  Richard Biener  <rguenther@suse.de>
3707
3708         PR tree-optimization/70729
3709         * passes.def: Move LIM pass before PRE.  Remove no longer
3710         required copyprop and move first DCE out of the loop pipeline.
3711
3712 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
3713
3714         PR driver/69265
3715         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
3716         (OBJS-libcommon-target): ...here.
3717         * opts-common.c: Include spellcheck.h.
3718         (cmdline_handle_error): Build a vec of valid options and use it
3719         to suggest provide hints for misspelled arguments.
3720
3721 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
3722
3723         PR c++/71100
3724         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
3725         lhs if it has TREE_ADDRESSABLE type.
3726
3727 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
3728
3729         PR target/71145
3730         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
3731         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
3732
3733 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3734
3735         PR ipa/69708
3736         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
3737         input for NOP_EXPR pass-through functions.
3738         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
3739         aggregate global constant VAR_DECLs in constant jump functions.
3740
3741 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3742
3743         PR ipa/69708
3744         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
3745         from TREE_READONLY parameters.
3746
3747 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3748
3749         PR ipa/69708
3750         * cgraph.h (cgraph_indirect_call_info): New field
3751         guaranteed_unmodified.
3752         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
3753         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
3754         appropriate.
3755         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
3756         pass the parameter value to ipa_find_agg_cst_for_param.
3757         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
3758         guaranteed_unmodified, store AA results there instead of bailing out
3759         if present.
3760         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
3761         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
3762         (find_constructor_constant_at_offset): New function.
3763         (ipa_find_agg_cst_from_init): Likewise.
3764         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
3765         static initializers of contants, report back through a new paameter
3766         from_global_constant if that was the case.
3767         (try_make_edge_direct_simple_call): Also pass parameter value to
3768         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
3769         appropriate.
3770         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
3771         (ipa_read_indirect_edge_info): Likewise.
3772         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
3773         (ipa_load_from_parm_agg): Likewise.
3774
3775 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
3776
3777         PR rtl-optimization/71150
3778         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
3779         check.
3780
3781 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3782
3783         PR target/70915
3784         * config/rs6000/constraints.md (wE constraint): New constraint
3785         for a vector constant that can be loaded with XXSPLTIB.
3786         (wM constraint): New constraint for a vector constant of a 1's.
3787         (wS constraint): New constraint for a vector constant that can be
3788         loaded with XXSPLTIB and a vector sign extend instruction.
3789         * config/rs6000/predicates.md (xxspltib_constant_split): New
3790         predicates for wE/wS constraints.
3791         (xxspltib_constant_nosplit): Likewise.
3792         (easy_vector_constant): Add support for constants that can be
3793         loaded via XXSPLTIB.
3794         (all_ones_constant): New predicate for vector constant with all
3795         1's set.
3796         (splat_input_operand): Add support for ISA 3.0 word splat operations.
3797         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
3798         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
3799         instruction and possibly with a sign extension.
3800         (output_vec_const_move): Add support for XXSPLTIB. If we are
3801         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
3802         instead of XXLXOR/XXLORC.
3803         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
3804         operations.
3805         (rs6000_legitimize_reload_address): Likewise.
3806         (rs6000_output_move_128bit): Use output_vec_const_move to emit
3807         constants.
3808         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
3809         combine VSX_M and VSX_M2 into one iterator.
3810         (VSX_M2): Likewise.
3811         (VSINT_84): New iterators for loading constants with XXSPLTIB.
3812         (VSINT_842): Likewise.
3813         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
3814         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
3815         XXSPLTIB instruction.
3816         (xxspltib_<mode>_nosplit): Likewise.
3817         (xxspltib_<mode>_split): New insn to load up constants with
3818         XXSPLTIB and a sign extend instruction.
3819         (vsx_mov<mode>): Replace single move that handled all vector types
3820         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
3821         moves (when -mvsx-timode is in effect) into the main vector
3822         moves.  Eliminate separate moves for <VSr> <VSa>, where the
3823         preferred register class (<VSr>) is listed first, and the
3824         secondary register class (<VSa>) is listed second with a '?' to
3825         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
3826         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
3827         that if the register was involved in a slow operation, the
3828         clear/set operation does not wait for the slow operation to
3829         finish.  Adjust the length attributes for 32-bit mode.  Use
3830         rs6000_output_move_128bit and drop the use of the string
3831         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
3832         spacing so that the alternatives and attributes don't generate
3833         long lines, and put things in columns, so that it is easier to
3834         match up the operands and attributes with the insn alternatives.
3835         (vsx_mov<mode>_64bit): Likewise.
3836         (vsx_mov<mode>_32bit): Likewise.
3837         (vsx_movti_64bit): Fold movti into normal vector moves.
3838         (vsx_movti_32bit): Likewise.
3839         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
3840         splat instructions.
3841         (vsx_splat_v4si_internal): Likewise.
3842         (vsx_splat_v4sf_internal): Likewise.
3843         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
3844         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
3845         extend vector elements.
3846         (vsx_sign_extend_hi_<mode>): Likewise.
3847         (vsx_sign_extend_si_v2di): Likewise.
3848         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
3849         declaration.
3850         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
3851         constraints.  Add trailing period to wL documentation.
3852
3853 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
3854
3855         PR middle-end/71020
3856         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
3857         * tree-dfa.c (replace_abnormal_ssa_names): New function.
3858         * tree-call-cdce.c: Include tree-dfa.h.
3859         (can_guard_call_p): New function, extracted from...
3860         (can_use_internal_fn): ...here.
3861         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
3862         and return void.
3863         (shrink_wrap_one_built_in_call): Likewise.
3864         (use_internal_fn): Likewise.
3865         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
3866         and return void.  Call replace_abnormal_ssa_names.
3867         (pass_call_cdce::execute): Check can_guard_call_p during the
3868         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
3869         will always change something.
3870
3871 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3872
3873         PR ipa/70646
3874         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
3875         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
3876
3877 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3878
3879         PR ipa/70646
3880         * ipa-inline.h (condition): New field size.
3881         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
3882         for comaprison and store it into the new condition.
3883         (evaluate_conditions_for_known_args): Use condition size to check
3884         access sizes for all but CHANGED conditions.
3885         (unmodified_parm_1): New parameter size_p, store access size into it.
3886         (unmodified_parm): Likewise.
3887         (unmodified_parm_or_parm_agg_item): Likewise.
3888         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
3889         (set_cond_stmt_execution_predicate): Extract access sizes and store
3890         them to conditions.
3891         (set_switch_stmt_execution_predicate): Likewise.
3892         (will_be_nonconstant_expr_predicate): Likewise.
3893         (will_be_nonconstant_predicate): Likewise.
3894         (inline_read_section): Stream condition size.
3895         (inline_write_summary): Likewise.
3896
3897 2016-05-18  Richard Biener  <rguenther@suse.de>
3898
3899         * tree-ssa-loop-im.c (determine_max_movement): Properly add
3900         condition cost to PHI cost instead of total_cost.
3901
3902 2016-05-18  Martin Liska  <mliska@suse.cz>
3903
3904         PR fortran/70856
3905         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
3906         merged variables.
3907
3908 2016-05-18  Richard Biener  <rguenther@suse.de>
3909
3910         * lto-streamer.h (LTO_major_version): Bump to 6.
3911
3912 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
3913
3914         * function.c (make_split_prologue_seq, make_prologue_seq,
3915         make_epilogue_seq): New functions, factored out from...
3916         (thread_prologue_and_epilogue_insns): Here.
3917
3918 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
3919
3920         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
3921         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
3922         of before.  Add a comment.
3923
3924 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
3925
3926         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
3927         expression pointer, not pointer to the pointer.
3928
3929 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
3930
3931         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
3932         (avx2_pbroadcast<mode>): Add another alternative with v instead
3933         of x constraints in it, using <pbroadcast_evex_isa> isa.
3934         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
3935
3936         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
3937         constraint x instead of v in second alternative, add avx512bw
3938         alternative.
3939
3940         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
3941         constraint x instead of v in second alternative, add avx512bw
3942         alternative.
3943
3944         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
3945         constraint x instead of v in second alternative, add avx512bw
3946         alternative.
3947
3948         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
3949         avx512bw alternative.
3950
3951 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
3952
3953         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
3954         array to 128 chars.
3955         (define_insn "*andnottf3"): Ditto.
3956         (define_insn "*<code><mode>3"/any_logic): Ditto.
3957         (define_insn "*<code>tf3"/any_logic): Ditto.
3958         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
3959         operand to block AVX-512VL insn variant emit when it is not enabled.
3960
3961 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
3962
3963         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
3964         constraint fot SF mode.
3965
3966 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
3967             Kirill Yukhin  <kirill.yukhin@intel.com>
3968
3969         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
3970         modifiers.
3971         (define_insn "rsqrt14<mode>"): Ditto.
3972         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
3973         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3974         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
3975         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3976         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
3977         Ditto.
3978         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
3979         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
3980         * config/i386/i386.c (ix86_print_operand): Expand check for size
3981         override codes for Intel syntax.
3982
3983 2016-05-18  Richard Biener  <rguenther@suse.de>
3984
3985         PR tree-optimization/71168
3986         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
3987         initialization earlier.
3988
3989 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
3990
3991         * config/aarch64/aarch64-simd.md
3992         (aarch64_reduc_plus_internal<mode>): Rename to...
3993         (reduc_plus_scal): ...This, and remove previous implementation.
3994
3995 2016-05-18  Richard Biener  <rguenther@suse.de>
3996
3997         * passes.def: Put late dse and cd_dce in canonical order.
3998
3999 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4000
4001         * ipa-inline-transform.c (preserve_function_body_p): Look for
4002         first non-thunk clone.
4003         (save_function_body): Save into first non-thunk.
4004         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4005         up call stmt id.
4006         (lto_output_node): Inline thunks don't need body in every
4007         partition.
4008         * lto-streamer-in.c: Do not fixup thunk clones.
4009         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4010         thunks.
4011         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4012         folding suceeds.
4013
4014 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4015
4016         PR middle-end/63586
4017         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4018         (reassociate_bb): Call transform_add_to_multiply.
4019
4020 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4021
4022         * config/aarch64/aarch64.c (all_extensions): Removed unused
4023         static variable.
4024
4025 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4026
4027         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4028         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4029
4030 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4031
4032         PR tree-optimization/54579
4033         PR middle-end/55299
4034         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4035
4036 2016-05-17  Marek Polacek  <polacek@redhat.com>
4037
4038         PR ipa/71146
4039         * tree-inline.c (expand_call_inline): Call
4040         maybe_remove_unused_call_args.
4041
4042 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4043
4044         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4045         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4046         * doc/md.texi (fmin@var{m}3): Likewise.
4047
4048 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4049
4050         * match.pd (X & C): New transformation.
4051
4052 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4053
4054         * match.pd (~X & Y): New transformation.
4055
4056 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4057
4058         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4059         information for new SSA_NAME.
4060         (simplify_conversion_using_ranges): Get range through get_range_info
4061         instead of get_value_range.
4062
4063 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4064
4065         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4066         Remove inline assembly.
4067         (vmvn_s16): Likewise.
4068         (vmvn_s32): Likewise.
4069         (vmvn_u8): Likewise.
4070         (vmvn_u16): Likewise.
4071         (vmvn_u32): Likewise.
4072         (vmvnq_s8): Likewise.
4073         (vmvnq_s16): Likewise.
4074         (vmvnq_s32): Likewise.
4075         (vmvnq_u8): Likewise.
4076         (vmvnq_u16): Likewise.
4077         (vmvnq_u32): Likewise.
4078         (vmvn_p8): Likewise.
4079         (vmvnq_p16): Likewise.
4080
4081 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4082
4083         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4084         Use builtin.
4085         (vmul_n_s16): Likewise.
4086         (vmul_n_s32): Likewise.
4087         (vmul_n_u16): Likewise.
4088         (vmul_n_u32): Likewise.
4089         (vmulq_n_f32): Likewise.
4090         (vmulq_n_f64): Likewise.
4091         (vmulq_n_s16): Likewise.
4092         (vmulq_n_s32): Likewise.
4093         (vmulq_n_u16): Likewise.
4094         (vmulq_n_u32): Likewise.
4095
4096 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4097
4098         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4099         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4100
4101 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4102
4103         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4104         to *aarch64_fma4_elt_from_dup<mode>.
4105         (*aarch64_fnma4_elt_to_128df): Rename to
4106         *aarch64_fnma4_elt_from_dup<mode>.
4107         * config/aarch64/arm_neon.h (vfma_n_f64): New.
4108         (vfms_n_f32): Likewise.
4109         (vfms_n_f64): Likewise.
4110         (vfmsq_n_f32): Likewise.
4111         (vfmsq_n_f64): Likewise.
4112
4113 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4114
4115         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4116
4117 2016-05-17  Richard Biener  <rguenther@suse.de>
4118
4119         PR tree-optimization/71132
4120         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4121         Only add control dependences for blocks in the loop.
4122         (build_rdg): Adjust.
4123         (generate_code_for_partition): Return whether loop should
4124         be destroyed and delay that.
4125         (distribute_loop): Likewise.
4126         (pass_loop_distribution::execute): Record loops to be destroyed
4127         and perform delayed destroying of loops.
4128
4129 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4130
4131         PR target/70809
4132         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4133
4134 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4135
4136         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4137
4138 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4139
4140         PR target/71114
4141         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4142         insertion point for instructions generated by validize_mem.
4143
4144 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4145
4146         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4147         in brackets.
4148
4149 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4150
4151         * config/aarch64/aarch64.c
4152         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4153         rather than a macro.
4154
4155 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4156
4157         * doc/invoke.texi (AArch64 Options): Various updates.
4158
4159 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4160
4161         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4162         into instrumentation thunks.
4163         * cif-code.def (CIF_CHKP): New.
4164
4165 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4166
4167         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4168
4169 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4170
4171         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4172         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4173
4174 2016-05-16  Marek Polacek  <polacek@redhat.com>
4175
4176         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4177         commentary.
4178
4179 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4180
4181         PR hsa/70857
4182         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4183         the outlined kernel function.
4184
4185 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4186
4187         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4188         (ISA_HAS_DLSA): Ditto.
4189
4190 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4191
4192         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4193
4194 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4195
4196         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4197         (nvptx_name_replacement): Restore.  Add comment.
4198         (write_fn_proto, write_fn_proto_from_insn,
4199         nvptx_output_call_insn): Restore
4200         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4201
4202 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4203
4204         * config/aarch64/aarch64.md
4205         (add<mode>3_compareC_cconly_imm): Remove use of %w.
4206         (add<mode>3_compareC_imm): Likewise.
4207         (<optab>si3_uxtw): Split into register and immediate variants.
4208         (andsi3_compare0_uxtw): Likewise.
4209         (and<mode>3_compare0): Likewise.
4210         (and<mode>3nr_compare0): Likewise.
4211         (stack_protect_test_<mode>): Don't use %x for memory operands.
4212
4213 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4214
4215         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4216
4217 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4218
4219         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4220         Split integer shifts into shift_reg and bfm.
4221         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4222         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4223         (ror<mode>3_insn): Likewise.
4224         (<optab>si3_insn_uxtw): Likewise.
4225         (<optab><mode>3_insn): Change to rotate_imm.
4226         (extr<mode>5_insn_alt): Likewise.
4227         (extrsi5_insn_uxtw): Likewise.
4228         (extrsi5_insn_uxtw_alt): Likewise.
4229
4230 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4231
4232         * doc/tm.texi: Regenerate.
4233         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4234         (TARGET_INVALID_RETURN_TYPE): Remove.
4235         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4236         TARGET_INVALID_RETURN_TYPE.
4237         * target.def (invalid_parameter_type): Remove.
4238         (invalid_return_type): Remove.
4239
4240 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4241
4242         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4243         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4244         calls from thunk.
4245         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4246         gimple body.
4247         (preserve_function_body_p): No need to preserve function body
4248         * cif-codes.def (CIF_THUNK): Remove.
4249         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4250
4251 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4252
4253         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4254
4255 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4256
4257         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
4258         for thunks.
4259
4260 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4261
4262         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
4263         (inline_small_functions): Do not look for function symbol when
4264         resetting caches.
4265
4266 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4267
4268         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
4269         of inline thunks
4270
4271 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4272             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4273             Jiong Wang  <jiong.wang@arm.com>
4274
4275         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
4276         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
4277         Define __ARM_FP16_ARGS when appropriate.
4278         * config/arm/arm.c (arm_invalid_parameter_type): Remove
4279         declaration.
4280         (arm_invalid_return_type): Likewise.
4281         (TARGET_INVALID_PARAMETER_TYPE): Remove.
4282         (TARGET_INVALID_RETURN_TYPE): Remove.
4283         (aapcs_vfp_sub_candidate): Allow HFmode.
4284         (aapcs_vfp_allocate): Add comment.  Support HFmode.
4285         (aapcs_vfp_allocate_return_reg): Likewise.
4286         (struct aapcs_cp_arg_layout): Slightly reword comments for
4287         is_return_candidate and allocate_return_reg.
4288         (output_mov_vfp): Update assert.
4289         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
4290         condition.
4291         (arm_invalid_parameter_type): Remove.
4292         (amr_invalid_return_type): Remove.
4293         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
4294         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
4295         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
4296
4297 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4298
4299         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4300         * config/aarch64/arch64-protos.h
4301         (aarch64_legitimize_reload_address): Remove.
4302         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4303         Remove.
4304
4305 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4306
4307         * configure.ac: Add ACX_NONCANONICAL_HOST.
4308         * configure: Regenerate.
4309         * Makefile.in: Set host_noncanonical.
4310
4311 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
4312
4313         PR target/71097
4314         * config/i386/i386.md (*movtf_internal): Before register allocation,
4315         do not allow FP constants for CM_MEDIUM memory model, allow only
4316         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
4317         (*movxf_internal): Ditto.
4318         (*movdf_internal): Ditto.
4319         (*movsf_internal): Ditto.
4320
4321 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
4322
4323         PR rtl-optimization/67483
4324         * combine.c (make_compound_operation): Don't call extract_left_shift
4325         with negative shift amounts.
4326
4327 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
4328
4329         PR bootstrap/71071
4330         * fold-const.c (fold_checksum_tree): Allow modification
4331         of TYPE_ALIAS_SET during folding.
4332
4333         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
4334         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
4335         (ix86_split_to_parts): Likewise.  Fix up formatting.
4336
4337 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4338
4339         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
4340         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
4341         printf format.
4342
4343 2016-05-13  Nathan Sidwell  <nathan@acm.org>
4344
4345         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
4346         (nvptx_name_replacement): Delete.
4347         (write_fn_proto, write_fn_proto_from_insn,
4348         nvptx_output_call_insn): Remove nvptx_name_replacement call.
4349         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
4350         * langhooks.c (add_builtin_funcction_common): Call
4351         targetm.mangle_decl_assembler_name.
4352
4353         * config/nvptx/nvptx.c (write_fn_proto): Handle
4354         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
4355
4356 2016-05-13  Martin Liska  <mliska@suse.cz>
4357
4358         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
4359         and PRIu64 in printf format.
4360
4361 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4362
4363         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
4364         comment.
4365
4366 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4367
4368         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4369         Change --param max-completely-peeled-times to
4370         --param max-completely-peel-times in dump file printing.
4371
4372 2016-05-13  Richard Biener  <rguenther@suse.de>
4373
4374         PR tree-optimization/42587
4375         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
4376         (find_bswap_or_nop_1): Likewise.
4377         (bswap_replace): Likewise.
4378
4379 2016-05-13  Martin Liska  <mliska@suse.cz>
4380
4381         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
4382         Initialize a variable with default value.
4383
4384 2016-05-13  Martin Liska  <mliska@suse.cz>
4385
4386         * doc/invoke.texi: Enhance explanation of error recovery
4387         of sanitizers.
4388
4389 2016-05-13  Martin Liska  <mliska@suse.cz>
4390
4391         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
4392         (struct cost_pair): Change inv_expr_id (int) to inv_expr
4393         (iv_inv_expr_ent *).
4394         (struct iv_inv_expr_ent): Comment struct fields.
4395         (sort_iv_inv_expr_ent): New function.
4396         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
4397         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
4398         a hash_map between iv_inv_expr_ent and number of usages.
4399         (niter_for_exit): Fix coding style.
4400         (tree_ssa_iv_optimize_init): Use renamed variable.
4401         (determine_base_object): Fix coding style.
4402         (alloc_iv): Likewise.
4403         (find_interesting_uses_outside): Likewise.
4404         (add_candidate_1): Likewise.
4405         (add_standard_iv_candidates): Likewise.
4406         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
4407         (prepare_decl_rtl): Fix coding style.
4408         (get_address_cost): Likewise.
4409         (get_shiftadd_cost): Likewise.
4410         (force_expr_to_var_cost): Likewise.
4411         (compare_aff_trees): Likewise.
4412         (get_expr_id): Restructure the function.
4413         (get_loop_invariant_expr_id): Renamed to
4414         get_loop_invariant_expr.
4415         (get_computation_cost_at): Replace usage of inv_expr_id with
4416         inv_expr.
4417         (get_computation_cost): Likewise.
4418         (determine_group_iv_cost_generic): Likewise.
4419         (determine_group_iv_cost_address): Likewise.
4420         (iv_period): Fix coding style.
4421         (iv_elimination_compare_lt): Likewise.
4422         (may_eliminate_iv): Likewise.
4423         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
4424         inv_expr.
4425         (determine_group_iv_costs): Dump invariant expressions.
4426         (iv_ca_recount_cost): Use the newly added hash_map.
4427         (iv_ca_set_remove_invariants): Fix coding style.
4428         (iv_ca_set_add_invariants): Fix coding style.
4429         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
4430         invariants.
4431         (iv_ca_set_cp): Likewise.
4432         (iv_ca_new): Initialize the newly added hash_map and remove
4433         initialization of fields.
4434         (iv_ca_free): Delete the hash_map.
4435         (iv_ca_dump): Dump invariant expressions.
4436         (iv_ca_extend): Fix coding style.
4437         (try_add_cand_for): Likewise.
4438         (create_new_ivs): Dump information about # of avg iterations and
4439         # of used invariant expressions.
4440         (rewrite_use_compare): Fix coding style.
4441         (free_loop_data): Set default value for max_inv_expr_id.
4442
4443 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4444
4445         * cse.c (rest_of_handle_cse): Use cleanup_cfg
4446         returned value cse_cfg_altered computation.
4447         (rest_of_handle_cse2): Likewise.
4448         (rest_of_handle_cse_after_global_opts): Likewise.
4449
4450 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4451
4452         PR target/53440
4453         * config/arm/arm.c (arm32_output_mi_thunk): New.
4454         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
4455         to split Thumb1 vs TARGET_32BIT functionality.
4456         (arm_thumb1_mi_thunk): New.
4457
4458 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4459
4460         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
4461         to true.
4462
4463 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4464
4465         PR target/71080
4466         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
4467
4468 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4469
4470         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
4471         (expand_builtin_trap): Emit a regular call.
4472         (set_builtin_user_assembler_name): Remove obsolete cases.
4473         * dse.c (scan_insn): Adjust.
4474         * except.c: Include calls.h.
4475         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
4476         emit a regular call to setjmp.
4477         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
4478         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
4479         (emit_block_move_via_libcall): Delete.
4480         (block_move_fn): Delete.
4481         (init_block_move_fn): Likewise.
4482         (emit_block_move_libcall_fn): Likewise.
4483         (emit_block_op_via_libcall): New function.
4484         (set_storage_via_libcall): Tidy up and use memset builtin.
4485         (block_clear_fn): Delete.
4486         (init_block_clear_fn): Likewise.
4487         (clear_storage_libcall_fn): Likewise.
4488         (expand_assignment): Call emit_block_move_via_libcall.
4489         Do not include gt-expr.h.
4490         * expr.h (emit_block_op_via_libcall): Declare.
4491         (emit_block_copy_via_libcall): New inline function.
4492         (emit_block_move_via_libcall): Likewise.
4493         (emit_block_comp_via_libcall): Likewise.
4494         (block_clear_fn): Delete.
4495         (init_block_move_fn): Likewise.
4496         (init_block_clear_fn): Likewise.
4497         (emit_block_move_via_libcall): Likewise.
4498         (set_storage_via_libcall): Add default parameter value.
4499         * libfuncs.h (enum libfunc_index): Remove obsolete values.
4500         (abort_libfunc): Delete.
4501         (memcpy_libfunc): Likewise.
4502         (memmove_libfunc): Likewise.
4503         (memcmp_libfunc): Likewise.
4504         (memset_libfunc): Likewise.
4505         (setbits_libfunc): Likewise.
4506         (setjmp_libfunc): Likewise.
4507         (longjmp_libfunc): Likewise.
4508         (profile_function_entry_libfunc): Likewise.
4509         (profile_function_exit_libfunc): Likewise.
4510         (gcov_flush_libfunc): Likewise.
4511         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
4512         and DECL_VISIBILITY on the declaration.
4513         (init_optabs): Do not initialize obsolete libfuncs.
4514         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
4515         * tree-core.h (ECF_RET1): Define.
4516         (ECF_TM_PURE): Adjust.
4517         (ECF_TM_BUILTIN): Likewise.
4518         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
4519         (build_common_builtin_nodes): Initialize abort builtin.
4520         Add ECF_RET1 on memcpy, memmove and memset builtins.
4521         Pass final flags for alloca and alloca_with_align builtins.
4522         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
4523         obsolete builtins.
4524         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
4525         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
4526         set_storage_via_libcall and call emit_block_copy_via_libcall.
4527
4528 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
4529
4530         * config/i386/i386.md (*call_got_x32): Change operand 0 to
4531         DImode before it is passed to ix86_output_call_operand.
4532         (*call_value_got_x32): Ditto for operand 1.
4533
4534 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
4535
4536         PR rtl-optimization/70904
4537         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
4538         reload for wide mode.
4539
4540 2016-05-12  Marek Polacek  <polacek@redhat.com>
4541
4542         PR c/70756
4543         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
4544         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
4545         * langhooks.h (incomplete_type_error): Likewise.
4546         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
4547         parameter, pass it down to incomplete_type_error.
4548         * tree.h (size_in_bytes): New inline overload.
4549         (size_in_bytes_loc): Renamed from size_in_bytes.
4550
4551 2016-05-12  Richard Biener  <rguenther@suse.de>
4552
4553         PR tree-optimization/71059
4554         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
4555         nary before looking up or entering the expression into the VN
4556         hashes.
4557         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
4558         Make sure to re-use NARYs without result as inserted by
4559         phi-translation.
4560
4561 2016-05-12  Richard Biener  <rguenther@suse.de>
4562
4563         PR tree-optimization/71062
4564         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
4565         field.
4566         * tree-ssa-structalias.c (set_uids_in_ptset): Set
4567         vars_contains_restrict if the var is a restrict tag.
4568         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
4569         do not disambiguate pointers against it.
4570         (dump_points_to_solution): Re-structure and adjust for new
4571         vars_contains_restrict flag.
4572         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
4573
4574 2016-05-12  Martin Liska  <mliska@suse.cz>
4575
4576         * doc/invoke.texi: Explain connection between
4577         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
4578
4579 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4580
4581         PR tree-optimization/71006
4582         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4583         consider COND_EXPR as a mask producer.
4584
4585 2016-05-12  Marek Polacek  <polacek@redhat.com>
4586
4587         PR driver/71063
4588         * opts.c (common_handle_option): Detect missing argument for --help^.
4589
4590 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4591
4592         PR target/70830
4593         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4594         when popping the PC and within an interrupt handler routine.
4595         Add missing tab to output of "ldmfd".
4596         (output_return_instruction): Output LDMFD with SP update rather
4597         than POP when returning from interrupt handler.
4598
4599 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
4600
4601         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
4602         TARGET_64BIT && TARGET_AVX512DQ.
4603         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
4604         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
4605         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
4606         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
4607         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
4608         (*vec_extractv4si_zext): Add avx512dq alternative.
4609         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
4610         use v instead of x constraint in other alternatives where possible.
4611
4612         * config/i386/sse.md (sse2_loadld): Use v instead of x
4613         constraint in alternatives 0,1,4.
4614
4615         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
4616         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
4617         v constraints instead of x and <pinsr_evex_isa> isa attribute.
4618
4619         PR target/71019
4620         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
4621         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
4622         is not emitted unless TARGET_AVX512BW.
4623         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
4624         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
4625         for the result operand.
4626
4627         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
4628         constraint instead of x in avx alternatives.  Use maybe_evex instead
4629         of vex prefix.
4630
4631         * config/i386/constraints.md (Yv): New constraint.
4632         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
4633         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
4634         * config/i386/i386.md (avx512fvecmode): New mode attr.
4635         (*pushtf): Use v constraint instead of x.
4636         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
4637         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
4638         (*absneg<mode>2): Use Yv constraint instead of x constraint.
4639         (*absnegtf2_sse): Likewise.
4640         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
4641         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
4642         avx512f alternatives.
4643         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
4644
4645 2016-05-12  Richard Biener  <rguenther@suse.de>
4646
4647         PR tree-optimization/71060
4648         * tree-data-ref.c (initialize_data_dependence_relation): Do not
4649         require exact match of DR_BASE_OBJECT but only matching address and
4650         type.
4651
4652 2016-05-12  Richard Biener  <rguenther@suse.de>
4653
4654         PR tree-optimization/70986
4655         * cfganal.c: Include cfgloop.h.
4656         (dfs_find_deadend): Prefer to take edges exiting loops.
4657
4658 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4659
4660         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
4661         compile and run time.
4662
4663 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
4664
4665         PR c/43651
4666         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
4667
4668 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
4669
4670         * config/i386/i386.c (legitimize_pic_address): Use
4671         copy_to_suggested_reg instead of gen_movsi.
4672
4673 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4674
4675         * config/rs6000/predicates.md (quad_memory_operand): Move most of
4676         the code into quad_address_p and call it to share code with
4677         vsx_quad_dform_memory_operand.
4678         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
4679         d-form support.
4680         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
4681         bit instead of being a separate word.  Split -mpower9-dform into
4682         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
4683         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
4684         for the register class supporting 128-bit quad word memory offsets.
4685         (mode_supports_vsx_dform_quad): Helper function to return if the
4686         register class uses quad word memory offsets.
4687         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
4688         (rs6000_debug_reg_global): Always print if we are using LRA or not.
4689         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
4690         instructions are enabled, set up the appropriate addr_masks for
4691         128-bit types.
4692         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
4693         -mpower9-dform-scalar, instead of -mpower9-dform.
4694         (rs6000_option_override_internal): Split -mpower9-dform into two
4695         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
4696         -mpower9-dform switch sets or clears both.  If we are not using
4697         the LRA register allocator, do not enable -mpower9-dform-vector by
4698         default.  If we are using LRA, enable -mpower9-dform-vector and
4699         -mvsx-timode if it is appropriate.  Issue a warning if either
4700         -mpower9-dform-vector or -mvsx-timode are explicitly used without
4701         enabling LRA.
4702         (quad_address_offset_p): New helper function to return if the
4703         offset is legal for quad word memory instructions.
4704         (quad_address_p): New function to determin if GPR or vector
4705         register quad word memory addresses are legal.
4706         (mem_operand_gpr): Validate quad word address offsets.
4707         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
4708         d-form (register + offset) instructions.
4709         (offsettable_ok_by_alignment): Likewise.
4710         (rs6000_legitimate_offset_address_p): Likewise.
4711         (legitimate_lo_sum_address_p): Likewise.
4712         (rs6000_legitimize_address): Likewise.
4713         (rs6000_legitimize_reload_address): Add more debug statements for
4714         -mdebug=addr.
4715         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
4716         d-form instructions.
4717         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
4718         d-form instructions.  Distinguish different cases in debug
4719         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
4720         d-form instructions.
4721         (rs6000_preferred_reload_class): Likewise.
4722         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
4723         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
4724         of the ISA 2.06 indexed memory instructions.
4725         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
4726         use them to save/restore the saved vector registers instead of
4727         using Altivec instructions.
4728         (rs6000_emit_epilogue): Likewise.
4729         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
4730         (rs6000_opt_masks): Split -mpower9-dform into
4731         -mpower9-dform-scalar and -mpower9-dform-vector.
4732         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
4733         was not selected.
4734         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
4735         ISA 3.0 vector indexed memory instructions, and fold the code into
4736         the normal mov<mode> patterns.
4737         (p9_vecstore_<mode>): Likewise.
4738         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
4739         instructions.
4740         (vsx_movti_64bit): Likewise.
4741         (vsx_movti_32bit): Likewise.
4742         * config/rs6000/constraints.md (wO constraint): New constraint for
4743         ISA 3.0 vector d-form support.
4744         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
4745         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
4746         include -mpower9-dform-vector until we switch over to LRA.
4747         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
4748         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
4749         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
4750         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4751         for -mpower9-dform and -mlra.
4752         * doc/md.texi (wO constraint): Document wO constraint.
4753
4754 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
4755
4756         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
4757         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
4758         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
4759         Move handling of non-insn arguments inline into the sole user:
4760         (output_trans_func): ...here.
4761         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
4762         in emitted function prototype.
4763         (output_internal_insn_latency_func): Ditto.  Simplify.
4764         (output_internal_maximal_insn_latency_func): Ditto.  Delete
4765         always-unused argument.
4766         (output_insn_latency_func): Ditto.
4767         (output_maximal_insn_latency_func): Ditto.
4768
4769 2016-05-11  Richard Biener  <rguenther@suse.de>
4770
4771         PR tree-optimization/71055
4772         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
4773         sth with precision not equal to access size verify we don't chop
4774         off bits.
4775
4776 2016-05-11  Richard Biener  <rguenther@suse.de>
4777
4778         PR debug/71057
4779         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
4780         (dwarf2out_finish): Move retry_incomplete_types call ...
4781         (dwarf2out_early_finish): ... here.
4782
4783 2016-05-11  Richard Biener  <rguenther@suse.de>
4784
4785         PR middle-end/71002
4786         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
4787         if the langhook insists on it.
4788         * fold-const.c (make_bit_field_ref): Add arg for the original
4789         reference and preserve its alias-set.
4790         (decode_field_reference): Take exp by reference and adjust it
4791         to the original memory reference.
4792         (optimize_bit_field_compare): Adjust callers.
4793         (fold_truth_andor_1): Likewise.
4794         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
4795
4796 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4797
4798         PR middle-end/70807
4799         * cfgrtl.h (delete_insn_and_edges): Now return bool.
4800         * cfgrtl.c (delete_insn_and_edges): Likewise.
4801         * config/i386/i386.c (convert_scalars_to_vector): Remove
4802         redundant code.
4803         * cse.c (cse_insn): Compute cse_cfg_altered.
4804         (delete_trivially_dead_insns): Likewise.
4805         (cse_cc_succs): Likewise.
4806         (rest_of_handle_cse): Free dominance info if required.
4807         (rest_of_handle_cse2): Likewise.
4808         (rest_of_handle_cse_after_global_opts): Likewise.
4809
4810 2016-05-11  Alan Modra  <amodra@gmail.com>
4811
4812         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
4813         abi_v4_pass_in_fpr): New functions.
4814         (rs6000_function_arg_boundary): Exclude complex IBM long double
4815         from 64-bit alignment when ABI_V4.
4816         (rs6000_function_arg, rs6000_function_arg_advance_1,
4817         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
4818
4819 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
4820
4821         PR rtl-optimization/71028
4822         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
4823         jump with just a return in the fallthrough block if the branch
4824         block contains just a return as well.
4825
4826 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
4827
4828         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
4829         * match.pd ((X & Y) ^ Y): ... this.
4830         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
4831         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
4832
4833 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
4834
4835         * read-md.c (require_char_ws): New function.
4836         (read_string): Simplify using require_char_ws.
4837         (handle_constants): Likewise.
4838         (handle_enum): Likewise.
4839         (handle_file): Likewise.
4840         * read-md.h (require_char_ws): New declaration.
4841         * read-rtl.c (read_conditions): Simplify using require_char_ws.
4842         (read_mapping): Likewise.
4843         (read_rtx_code): Likewise.
4844         (read_nested_rtx): Likewise.
4845
4846 2016-05-10  James Norris  <jnorris@codesourcery.com>
4847
4848         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
4849         if offloading is enabled and -fopenacc or -fopenmp is specified.
4850         (CRTOFFLOADEND): Likewise.
4851         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
4852         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
4853
4854 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
4855
4856         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
4857         gotoff_operand code paths.  Use copy_to_suggested_regs and
4858         expand_simple_binop where appropriate.  Cleanup.
4859
4860 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4861
4862         PR target/70799
4863         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
4864         integer constants.
4865         (dimode_scalar_chain::vector_const_cost): New.
4866         (dimode_scalar_chain::compute_convert_gain): Handle constants.
4867         (dimode_scalar_chain::convert_op): Likewise.
4868         (dimode_scalar_chain::convert_insn): Likewise.
4869
4870 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
4871
4872         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
4873         unary operation, not a binary one.
4874
4875 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4876
4877         PR middle-end/70877
4878         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
4879         calls with type casted fndecl.
4880
4881 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4882
4883         PR tree-optimization/70786
4884         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
4885         * calls.c (initialize_argument_information): Bind bounds
4886         with corresponding args passed by reference.
4887
4888 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
4889
4890         PR target/70927
4891         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
4892         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
4893         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
4894         accordingly.
4895
4896 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4897
4898         PR target/70963
4899         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
4900         code for a zero scale factor.
4901         (vsx_xvcvdpuxds_scale): Likewise.
4902
4903 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
4904
4905         * diagnostic-show-locus.c (layout::layout): Call show_ruler
4906         if show_ruler_p was set on the context.
4907         (layout::show_ruler): New method.
4908         * diagnostic.h (struct diagnostic_context): Add field
4909         "show_ruler_p".
4910
4911 2016-05-10  Richard Biener  <rguenther@suse.de>
4912
4913         PR tree-optimization/71039
4914         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
4915         (chk_uses): New function.
4916         (propagate_with_phi): Verify we can safely replicate the lhs of an
4917         aggregate assignment on all incoming edges.
4918
4919 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
4920
4921         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
4922         Forward declare.
4923         (rx_atomic_sequence): New class.
4924         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
4925         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
4926         non-inline.
4927         (rx_atomic_sequence::rx_atomic_sequence,
4928         rx_atomic_sequence::~rx_atomic_sequence): New functions.
4929         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
4930         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
4931         CTRLREG_INTB): New constants.
4932         (FETCHOP): New code iterator.
4933         (fethcop_name, fetchop_name2): New iterator code attributes.
4934         (QIHI): New mode iterator.
4935         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
4936         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
4937         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
4938
4939 2016-05-10  Martin Liska  <mliska@suse.cz>
4940
4941         * tree-inline.c (remap_dependence_clique): Do not remap
4942         debugging statements.
4943
4944 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4945
4946         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
4947         ("*fixuns_truncdfdi2_z13")
4948         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
4949         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
4950         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
4951
4952 2016-05-10  Richard Biener  <rguenther@suse.de>
4953
4954         PR tree-optimization/70497
4955         PR tree-optimization/28367
4956         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
4957         split out from ...
4958         (visit_reference_op_load): ... here.
4959         (vn_reference_lookup_3): Use it to handle subreg-like accesses
4960         with simplified BIT_FIELD_REFs.
4961         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
4962         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
4963         correctly.
4964
4965 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
4966
4967         * dwarf2out.c (add_abstract_origin_attribute): Adjust
4968         documentation comment.  For BLOCK nodes, add a
4969         DW_AT_abstract_origin attribute that points to the DIE generated
4970         for the origin BLOCK.
4971         (gen_lexical_block_die): Call add_abstract_origin_attribute for
4972         blocks from inlined functions.
4973
4974 2016-05-10  Alan Modra  <amodra@gmail.com>
4975
4976         PR target/70947
4977         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
4978         regrename modifying insns saving lr before __morestack call.
4979         * config/rs6000/rs6000.md (split_stack_return): Similarly for
4980         insns restoring lr after __morestack call.
4981
4982 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
4983
4984         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
4985         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
4986         expanders.
4987         * config/i386/sse.md (vec_interleave_high<mode>,
4988         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
4989         <avx512>_vpermt2var<mode>3_maskz): Likewise.
4990
4991 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4992
4993         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
4994         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
4995         parallel reassociation for power8 and forward.
4996
4997 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
4998
4999         * config/i386/i386.md (absneg splitters with general regs): Use
5000         general_reg_operand predicate.
5001         (btsq peephole2): Use x86_64_immediate_operand to check if new
5002         value is suitable for immediate operand.  Generate emitted insn
5003         using RTL expressions.
5004         (btcq peephole2): Ditto.
5005         (btrq peephole2): Ditto.  Generate correct immediate operand
5006         for AND masking.
5007
5008 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5009
5010         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5011         bitpos.
5012
5013 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5014
5015         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5016         pointer dereference.
5017
5018 2016-05-09  Richard Biener  <rguenther@suse.de>
5019
5020         PR tree-optimization/70985
5021         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5022         op0 isn't a gimple register.
5023
5024 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5025
5026         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5027         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5028         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5029         (i6400_fpu_mult): New cpu units.
5030         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5031         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5032         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5033         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5034         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5035         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5036         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5037         (i6400_msa_long_float4, i6400_msa_long_float5)
5038         (i6400_msa_long_float8, i6400_msa_fdiv_df)
5039         (i6400_msa_fdiv_sf): New reservations.
5040         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5041         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5042         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5043         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5044         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5045         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5046         (msa_short_cmp, msa_short_float2, msa_short_logic3)
5047         (msa_short_store4, msa_long_load, msa_short_store)
5048         (msa_long_logic, msa_long_float2, msa_long_float4)
5049         (msa_long_float5, msa_long_float8, msa_long_mult)
5050         (msa_long_fdiv, msa_long_div): New reservations.
5051
5052 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
5053             Sameera Deshpande  <sameera.deshpande@imgtec.com>
5054             Matthew Fortune  <matthew.fortune@imgtec.com>
5055             Graham Stott  <graham.stott@imgtec.com>
5056             Chao-ying Fu  <chao-ying.fu@imgtec.com>
5057
5058         * config.gcc: Add MSA header file for mips*-*-* target.
5059         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5060         (Ubv8i, Urv8):  New constraints.
5061         * config/mips/mips-ftypes.def: Add function types for MSA
5062         builtins.
5063         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5064         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5065         * config/mips/mips-msa.md: New file.
5066         * config/mips/mips-protos.h
5067         (mips_split_128bit_const_insns): New prototype.
5068         (mips_msa_idiv_insns): Likewise.
5069         (mips_split_128bit_move): Likewise.
5070         (mips_split_128bit_move_p): Likewise.
5071         (mips_split_msa_copy_d): Likewise.
5072         (mips_split_msa_insert_d): Likewise.
5073         (mips_split_msa_fill_d): Likewise.
5074         (mips_expand_msa_branch): Likewise.
5075         (mips_const_vector_same_val_p): Likewise.
5076         (mips_const_vector_same_bytes_p): Likewise.
5077         (mips_const_vector_same_int_p): Likewise.
5078         (mips_const_vector_shuffle_set_p): Likewise.
5079         (mips_const_vector_bitimm_set_p): Likewise.
5080         (mips_const_vector_bitimm_clr_p): Likewise.
5081         (mips_msa_vec_parallel_const_half): Likewise.
5082         (mips_msa_output_division): Likewise.
5083         (mips_ldst_scaled_shift): Likewise.
5084         (mips_expand_vec_cond_expr): Likewise.
5085         * config/mips/mips.c (enum mips_builtin_type): Add
5086         MIPS_BUILTIN_MSA_TEST_BRANCH.
5087         (mips_gen_const_int_vector_shuffle): New prototype.
5088         (mips_const_vector_bitimm_set_p): New function.
5089         (mips_const_vector_bitimm_clr_p): Likewise.
5090         (mips_const_vector_same_val_p): Likewise.
5091         (mips_const_vector_same_bytes_p): Likewise.
5092         (mips_const_vector_same_int_p): Likewise.
5093         (mips_const_vector_shuffle_set_p): Likewise.
5094         (mips_symbol_insns): Forbid loading symbols via immediate for
5095         MSA.
5096         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5097         stores.
5098         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5099         MSA.
5100         (mips_lx_address_p): Add support load indexed address for MSA.
5101         (mips_address_insns): Add calculation of instructions needed for
5102         stores and loads for MSA.
5103         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
5104         CONST_VECTOR for MSA and let it fall through.
5105         (mips_ldst_scaled_shift): New function.
5106         (mips_subword_at_byte): Likewise.
5107         (mips_msa_idiv_insns): Likewise.
5108         (mips_legitimize_move): Validate MSA moves.
5109         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
5110         calculation of costs for MSA division.
5111         (mips_split_move_p): Check if MSA moves need splitting.
5112         (mips_split_move): Split MSA moves if necessary.
5113         (mips_split_128bit_move_p): New function.
5114         (mips_split_128bit_move): Likewise.
5115         (mips_split_msa_copy_d): Likewise.
5116         (mips_split_msa_insert_d): Likewise.
5117         (mips_split_msa_fill_d): Likewise.
5118         (mips_output_move): Handle MSA moves.
5119         (mips_expand_msa_branch): New function.
5120         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5121         Reinstate 'y' modifier.
5122         (mips_file_start): Add MSA .gnu_attribute.
5123         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5124         FPRs.
5125         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5126         (mips_class_max_nregs): Add register size for MSA supported mode.
5127         (mips_cannot_change_mode_class): Allow conversion between MSA
5128         vector modes and TImode.
5129         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5130         instruction.
5131         (mips_secondary_reload_class): Force MSA loads/stores via memory.
5132         (mips_preferred_simd_mode): Add preffered modes for MSA.
5133         (mips_vector_mode_supported_p): Add MSA supported modes.
5134         (mips_autovectorize_vector_sizes): New function.
5135         (mips_msa_output_division): Likewise.
5136         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5137         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5138         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5139         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5140         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5141         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5142         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5143         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5144         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5145         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5146         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5147         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5148         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5149         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5150         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5151         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5152         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5153         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5154         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5155         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5156         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5157         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5158         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5159         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5160         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5161         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5162         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5163         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5164         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5165         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5166         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5167         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5168         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5169         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5170         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5171         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5172         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5173         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5174         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5175         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5176         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5177         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5178         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5179         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5180         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5181         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5182         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5183         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5184         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5185         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5186         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5187         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5188         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5189         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5190         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5191         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5192         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5193         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5194         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5195         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5196         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5197         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5198         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5199         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5200         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5201         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5202         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5203         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5204         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5205         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5206         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5207         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5208         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5209         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5210         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5211         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5212         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5213         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5214         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5215         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5216         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5217         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5218         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5219         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5220         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5221         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5222         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5223         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5224         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5225         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5226         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5227         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5228         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5229         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5230         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5231         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5232         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5233         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5234         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5235         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5236         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5237         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5238         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5239         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5240         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5241         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5242         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5243         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5244         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5245         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5246         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5247         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5248         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5249         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5250         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5251         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5252         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5253         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5254         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5255         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5256         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5257         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
5258         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
5259         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
5260         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
5261         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
5262         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
5263         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
5264         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
5265         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
5266         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
5267         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
5268         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
5269         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
5270         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
5271         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
5272         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
5273         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
5274         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
5275         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
5276         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
5277         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
5278         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
5279         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
5280         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
5281         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
5282         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
5283         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
5284         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
5285         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
5286         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
5287         move_v builtins.
5288         (mips_get_builtin_decl_index): New array.
5289         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
5290         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
5291         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
5292         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
5293         (mips_init_builtins): Initialize mips_get_builtin_decl_index
5294         array.
5295         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5296         hook.
5297         (mips_expand_builtin_insn): Prepare operands for
5298         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
5299         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
5300         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
5301         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
5302         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
5303         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
5304         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
5305         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
5306         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
5307         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
5308         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
5309         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
5310         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
5311         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
5312         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
5313         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
5314         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
5315         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
5316         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
5317         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
5318         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
5319         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
5320         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
5321         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
5322         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
5323         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
5324         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
5325         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
5326         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
5327         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
5328         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
5329         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
5330         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
5331         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
5332         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
5333         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
5334         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
5335         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
5336         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
5337         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
5338         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
5339         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
5340         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
5341         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
5342         These are set implicitly and an error is reported if overridden.
5343         (mips_expand_builtin_msa_test_branch): New function.
5344         (mips_expand_msa_shuffle): Likewise.
5345         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
5346         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
5347         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
5348         (mips_expand_vec_unpack): Add support for MSA.
5349         (mips_expand_vector_init): Likewise.
5350         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
5351         instead of const0_rtx.
5352         (mips_msa_vec_parallel_const_half): New function.
5353         (mips_gen_const_int_vector): Likewise.
5354         (mips_gen_const_int_vector_shuffle): Likewise.
5355         (mips_expand_msa_cmp): Likewise.
5356         (mips_expand_vec_cond_expr): Likewise.
5357         * config/mips/mips.h
5358         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
5359         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
5360         specified.
5361         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
5362         (ISA_HAS_MSA): New macro.
5363         (UNITS_PER_MSA_REG): Likewise.
5364         (BITS_PER_MSA_REG): Likewise.
5365         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
5366         (MSA_REG_FIRST): New macro.
5367         (MSA_REG_LAST): Likewise.
5368         (MSA_REG_NUM): Likewise.
5369         (MSA_REG_P): Likewise.
5370         (MSA_REG_RTX_P): Likewise.
5371         (MSA_SUPPORTED_MODE_P): Likewise.
5372         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
5373         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
5374         * config/mips/mips.md: Include mips-msa.md.
5375         (alu_type): Add simd_add.
5376         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
5377         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
5378         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
5379         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
5380         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
5381         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
5382         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
5383         simd_move, simd_load, simd_store.  Choose "multi" for moves
5384         for "qword_mode".
5385         (qword_mode): New attribute.
5386         (insn_count): Add instruction count for quad moves.
5387         Increase the count for MIPS SIMD division.
5388         (UNITMODE): Add UNITMODEs for vector types.
5389         (addsub): New code iterator.
5390         * config/mips/mips.opt (mmsa): New option.
5391         * config/mips/msa.h: New file.
5392         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
5393         specified.
5394         * config/mips/mti-linux.h: Likewise.
5395         * config/mips/predicates.md
5396         (const_msa_branch_operand): New constraint.
5397         (const_uimm3_operand): Likewise.
5398         (const_uimm4_operand): Likewise.
5399         (const_uimm5_operand): Likewise.
5400         (const_uimm8_operand): Likewise.
5401         (const_imm5_operand): Likewise.
5402         (aq10b_operand): Likewise.
5403         (aq10h_operand): Likewise.
5404         (aq10w_operand): Likewise.
5405         (aq10d_operand): Likewise.
5406         (const_m1_operand): Likewise.
5407         (reg_or_m1_operand): Likewise.
5408         (const_exp_2_operand): Likewise.
5409         (const_exp_4_operand): Likewise.
5410         (const_exp_8_operand): Likewise.
5411         (const_exp_16_operand): Likewise.
5412         (const_vector_same_val_operand): Likewise.
5413         (const_vector_same_simm5_operand): Likewise.
5414         (const_vector_same_uimm5_operand): Likewise.
5415         (const_vector_same_uimm6_operand): Likewise.
5416         (const_vector_same_uimm8_operand): Likewise.
5417         (par_const_vector_shf_set_operand): Likewise.
5418         (reg_or_vector_same_val_operand): Likewise.
5419         (reg_or_vector_same_simm5_operand): Likewise.
5420         (reg_or_vector_same_uimm6_operand): Likewise.
5421         * doc/extend.texi (MIPS SIMD Architecture Functions): New
5422         section.
5423         * doc/invoke.texi (-mmsa): Document new option.
5424
5425 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5426
5427         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
5428         * configure: Regenerate.
5429         * config.in: Regenerate.
5430         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
5431         on -fvtable-verify.
5432         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
5433         (ENDFILE_VTV_SPEC): Define.
5434
5435 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
5436
5437         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
5438         registers in all interrupt handlers if necessary.
5439         (rl78_option_override): Add warning.
5440         (MUST_SAVE_MDUC_REGISTERS): New macro.
5441         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
5442         * config/rl78/rl78.c (check_mduc_usage): New function.
5443         (mduc_regs): New structure to hold MDUC register data.
5444         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
5445         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
5446         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
5447         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
5448         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
5449         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
5450
5451 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
5452
5453         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
5454         (tree-ssa-loop-niter.h): Ditto.
5455         (idx_within_array_bound, ref_within_array_bound): New functions.
5456         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
5457         Factor out check on writable base object to ...
5458         (base_object_writable): ... here.
5459
5460 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5461
5462         * config/arm/arm.md (probe_stack): Add modes to set source
5463         and destination.
5464
5465 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
5466
5467         * regrename.c (base_reg_class_for_rename): New static function.
5468         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
5469
5470 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
5471
5472         * cgraph.c (thunk_adjust): Export.
5473         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
5474         * cgraphunit.c (thunk_adjust): Export.
5475         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
5476         thunks.
5477         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
5478         inlinable.
5479         * tree-inline.c (expand_call_inline): Expand thunks inline.
5480
5481 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
5482
5483         PR target/70998
5484         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
5485         (*sse2_vd_cvtss2sd): Ditto.
5486         * config/i386/i386.md
5487         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
5488         Generate *sse2_vd_cvtsd2ss pattern.
5489         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
5490         Generate *sse2_vd_cvtss2sd pattern.
5491
5492 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5493
5494         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
5495         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
5496         users.
5497
5498 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5499
5500         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
5501         * config/sh/sh.c: Define and declare variables on first use throughout
5502         the file.
5503         (current_function_interrupt): Change to bool type.
5504         (frame_insn): Rename to emit_frame_insn and update users.
5505         (push_regs): Use bool for 'interrupt_handler' argument.
5506         (save_schedule_s): Remove.
5507         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
5508         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
5509         targetm.asm_out.unaligned_op.di.
5510         (gen_far_branch): Remove redundant forward declaration.
5511         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
5512         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
5513         (sh_set_return_address, sh_function_ok_for_sibcall,
5514         scavenge_reg): Update comments.
5515         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
5516         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
5517         (sh_attr_renesas_p): Remove unnecessary parentheses.
5518         (branch_dest): Simplify.
5519         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
5520         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
5521         (CUMULATIVE_ARGS): Change macro to typedef.
5522         (current_function_interrupt): Change to bool type.
5523         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
5524         Surround with __cplusplus ifdef.
5525         (sh_compare_op0, sh_compare_op1): Remove.
5526         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
5527
5528 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
5529
5530         * config/arm/arm.md: (arch): Add neon.
5531         (arch_enabled): Return yes for arch neon when TARGET_NEON.
5532         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
5533         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
5534         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
5535         attributes for alt renumbering.  Mark alt 3 as non-predicable.
5536         (thumb2_movdf_vfp): Likewise.
5537
5538 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
5539
5540         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
5541         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
5542         (*andqi_1): Add preferred_for_speed attribute to disparage
5543         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
5544         (*<code>qi_1): Ditto.
5545         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
5546         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
5547         (*ashlqi3_1): Ditto.
5548         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
5549         Add preferred_for_size attribute to disparage alternative 0 and
5550         preferred_for_speed attribute to disparage alternative 1 for
5551         TARGET_PARTIAL_REG_STALL targets.
5552
5553 2016-05-07  Tom de Vries  <tom@codesourcery.com>
5554
5555         PR tree-optimization/70956
5556         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
5557         def.
5558
5559 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
5560
5561         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
5562         * config/sh/sh.c (sh_cbranch_distance): Implement it.
5563         * config/sh/sh.md (branch_zero): Remove define_attr.
5564         (define_delay): Disable delay slot if branch distance is one insn.
5565
5566 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5567
5568         * config/i386/i386.md (LEAMODE): New mode attribute.
5569         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
5570         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
5571         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
5572         operand 2 predicate.
5573         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
5574         (*lea<mode>_general_3): Ditto.
5575         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
5576
5577 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5578
5579         * genmddump.c (main): Convert argv from char ** to const char **.
5580
5581 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5582
5583         * coretypes.h (OVERRIDE): New macro.
5584         (FINAL): New macro.
5585
5586 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5587
5588         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
5589         allow coalescing if the types are compatible.
5590
5591 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5592
5593         * pass_manager.h (pass_manager::register_pass_name): New method.
5594         (pass_manager::get_pass_by_name): New method.
5595         (pass_manager::create_pass_tab): New method.
5596         (pass_manager::m_name_to_pass_map): New field.
5597         * passes.c (name_to_pass_map): Delete global in favor of field
5598         "m_name_to_pass_map" of pass_manager.
5599         (register_pass_name): Rename from a function to...
5600         (pass_manager::register_pass_name): ...this method, updating
5601         for renaming of global "name_to_pass_map" to field
5602         "m_name_to_pass_map".
5603         (create_pass_tab): Rename from a function to...
5604         (pass_manager::create_pass_tab): ...this method, updating
5605         for renaming of global "name_to_pass_map" to field.
5606         (get_pass_by_name): Rename from a function to...
5607         (pass_manager::get_pass_by_name): ...this method.
5608         (enable_disable_pass): Convert use of get_pass_by_name to
5609         a method call, locating the pass_manager singleton.
5610
5611 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5612
5613         * genattr-common.c (main): Convert argv from char ** to const char **.
5614         * genattr.c (main): Likewise.
5615         * genattrtab.c (main): Likewise.
5616         * genautomata.c (initiate_automaton_gen): Likewise.
5617         (main): Likewise.
5618         * gencodes.c (main): Likewise.
5619         * genconditions.c (main): Likewise.
5620         * genconfig.c (main): Likewise.
5621         * genconstants.c (main): Likewise.
5622         * genemit.c (main): Likewise.
5623         * genenums.c (main): Likewise.
5624         * genextract.c (main): Likewise.
5625         * genflags.c (main): Likewise.
5626         * genmddeps.c (main): Likewise.
5627         * genopinit.c (main): Likewise.
5628         * genoutput.c (main): Likewise.
5629         * genpeep.c (main): Likewise.
5630         * genpreds.c (main): Likewise.
5631         * genrecog.c (main): Likewise.
5632         * gensupport.c (init_rtx_reader_args_cb): Likewise.
5633         (init_rtx_reader_args): Likewise.
5634         * gensupport.h (init_rtx_reader_args_cb): Likewise.
5635         (init_rtx_reader_args): Likewise.
5636         * gentarget-def.c (main): Likewise.
5637         * read-md.c (read_md_files): Likewise.
5638         * read-md.h (read_md_files): Likewise.
5639
5640 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5641
5642         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
5643         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
5644         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
5645         Remove unused predicate.
5646         (register_and_not_fp_reg_operand): Ditto.
5647
5648 2016-05-06  Martin Liska  <mliska@suse.cz>
5649
5650         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
5651         instead of vec as the vector is local to the function.
5652
5653 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5654
5655         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
5656         avx512bw alternative.
5657
5658         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
5659         before the ashr<mode>3 pattern.
5660
5661         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
5662         v instead of x in vex or maybe_vex alternatives, use
5663         maybe_evex instead of vex in prefix.
5664
5665         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
5666         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
5667         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
5668         in vex or maybe_vex alternatives, use maybe_evex instead of vex
5669         in prefix.
5670
5671         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
5672         v instead of x in vex or maybe_vex alternatives, use
5673         maybe_evex instead of vex in prefix.
5674
5675         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
5676         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
5677         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
5678         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
5679         alternatives, use maybe_evex instead of vex in prefix.
5680
5681         * config/i386/sse.md (vec_interleave_lowv4sf,
5682         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
5683         v instead of x in vex or maybe_vex alternatives, use
5684         maybe_evex instead of vex in prefix.
5685
5686         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
5687         v instead of x in vex or maybe_vex alternatives, use
5688         maybe_evex instead of vex in prefix.
5689
5690         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
5691         v constraint instead of x.
5692
5693 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
5694
5695         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
5696         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
5697         equality first.
5698
5699 2016-05-06  Richard Biener  <rguenther@suse.de>
5700
5701         PR tree-optimization/70948
5702         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5703         Properly clobber all fields of va_list for __builtin_va_start.
5704
5705 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
5706
5707         PR debug/70935
5708         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
5709         loop latch destination.
5710
5711 2016-05-06  Martin Liska  <mliska@suse.cz>
5712
5713         * tree-ssa-uninit.c: Apply manual changes
5714         to the GNU coding style.
5715         (prune_uninit_phi_opnds): Rename from
5716         prune_uninit_phi_opnds_in_unrealizable_paths.
5717
5718 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5719
5720         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
5721         mspace): Remove deprecated options.
5722         * doc/invoke.texi (SH options): Remove -mspace.
5723
5724 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5725
5726         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
5727
5728 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5729
5730         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
5731         corresponding combine split pattern.
5732
5733 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5734
5735         PR target/58219
5736         * config/sh/predicates.md (long_displacement_mem_operand): New.
5737         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
5738         Add movi20, movi20s alternatives.  Adjust length attribute for
5739         alternatives.
5740         (movsi_ie): Allow for any FPU.  Adjust length attribute for
5741         alternatives.
5742         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
5743         attribute for alternatives.
5744         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
5745         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
5746         length attribute for alternatives.
5747
5748 2016-05-06  Richard Biener  <rguenther@suse.de>
5749
5750         PR tree-optimization/70960
5751         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
5752
5753 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5754
5755         PR target/52933
5756         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
5757         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
5758
5759 2016-05-06  Marek Polacek  <polacek@redhat.com>
5760
5761         PR sanitizer/70875
5762         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
5763
5764 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5765
5766         PR target/54089
5767         * config/sh/sh.md (*rotcr): Add another variant.
5768
5769 2016-05-06  Richard Biener  <rguenther@suse.de>
5770
5771         PR middle-end/70931
5772         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
5773
5774 2016-05-06  Richard Biener  <rguenther@suse.de>
5775
5776         PR middle-end/70941
5777         * fold-const.c (split_tree): Always convert to the original type
5778         before negating.
5779
5780 2016-05-06  Richard Biener  <rguenther@suse.de>
5781
5782         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
5783         (fwprop_addr): Likewise.
5784
5785 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5786
5787         PR target/70873
5788         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
5789         New prototype.
5790         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
5791         * config/i386/i386.md (push mem splitter): Use find_constant_src in
5792         the splitter condition.
5793         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
5794         the splitter condition.
5795         (FP float_extend load splitter): Ditto.
5796
5797 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
5798
5799         * config/i386/i386.md (peehole2 patterns): Change true_regnum
5800         to REGNO in all peephole2 patterns.
5801         (post-reload splitters): Change true_regnum to REGNO in
5802         post-reload splitters.
5803         (zero_extend splitters): Use general_reg_operand and
5804         nonimmediate_gr_operand predicates.
5805
5806 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
5807
5808         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
5809         v constraint instead of x.
5810
5811 2016-05-05  Alan Modra  <amodra@gmail.com>
5812
5813         PR target/68662
5814         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
5815         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
5816         TARGET_NO_FP_IN_TOC for -mrelocatable.
5817         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
5818         TARGET_RELOCATABLE test.
5819         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5820         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5821         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5822         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5823         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5824         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5825         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5826         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5827         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
5828         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
5829         Likewise.
5830         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
5831         (rs6000_stack_info): Likewise.
5832         (rs6000_elf_asm_out_constructor): Likewise.
5833         (rs6000_elf_asm_out_destructor): Likewise.
5834         (rs6000_elf_declare_function_name): Likewise.
5835         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
5836         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
5837         Don't define.
5838
5839 2016-05-05  Alan Modra  <amodra@gmail.com>
5840
5841         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
5842
5843 2016-05-05  Alan Modra  <amodra@gmail.com>
5844
5845         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
5846         out-of-line gpr restore for one or two regs if that would add
5847         a save of lr.
5848
5849 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
5850
5851         PR target/70873
5852         * config/i386/i386.md
5853         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
5854         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
5855         as operand 0 predicate.
5856         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
5857         Ditto.
5858         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
5859         Ditto.  Emit the pattern using RTX.
5860
5861         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
5862         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
5863         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
5864         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
5865         Ditto.
5866         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
5867         sse_reg_operand as operand 0 predicate.
5868
5869         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
5870         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
5871         instead of gen_rtx_REG.
5872         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
5873         Ditto.
5874
5875 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
5876
5877         * function.c (emit_use_return_register_into_block): Delete.
5878         (gen_return_pattern): Delete.
5879         (emit_return_into_block): Delete.
5880         (active_insn_between): Delete.
5881         (convert_jumps_to_returns): Delete.
5882         (emit_return_for_exit): Delete.
5883         (thread_prologue_and_epilogue_insns): Delete all code dealing with
5884         simple_return for shrink-wrapped blocks.
5885         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
5886         end of blocks that need one.
5887         (get_unconverted_simple_return): Delete.
5888         (convert_to_simple_return): Delete.
5889         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
5890         (convert_to_simple_return): Ditto.
5891
5892 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
5893
5894         * cfgcleanup.c (bb_is_just_return): New function.
5895         (try_optimize_cfg): Simplify jumps to return, branches to return,
5896         and branches around return.
5897
5898 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
5899
5900         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
5901         branch to a return.
5902
5903 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
5904
5905         PR c++/70906
5906         PR c++/70933
5907         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
5908         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
5909         assert flags & OEP_HASH_CHECK, instead of asserting it
5910         never happens.  Handle TARGET_EXPR.
5911         * fold-const.c (operand_equal_p): For hash verification,
5912         or in OEP_HASH_CHECK into flags.
5913
5914 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
5915
5916         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
5917         comment.
5918         (compute_samebase_partition_bases): Fix typo.
5919
5920 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
5921
5922         * config/i386/sse.md (vec_interleave_highv8sf,
5923         vec_interleave_lowv8sf, vec_interleave_highv4df,
5924         vec_interleave_lowv4df): Remove constraints from expanders.
5925
5926         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
5927
5928 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
5929
5930         * tree-inline.c (expand_call_inline): Fix path dealing with
5931         making lhs of call statement undefined.
5932
5933 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
5934
5935         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
5936         Check availability on NODE, too.
5937         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
5938         (cgraph_node::call_for_symbol_and_aliases): Likewise.
5939         (varpool_node::call_for_symbol_and_aliase): Likewise.
5940         * ipa-pure-const.c (add_new_function): Analyze all bodies.
5941         (propagate_pure_const): Propagate across interposable functions, too.
5942         (skip_function_for_local_pure_const): Do not skip interposable bodies
5943         with aliases.
5944         (pass_local_pure_const::execute): Update.
5945
5946 2016-05-04  Marek Polacek  <polacek@redhat.com>
5947
5948         * doc/invoke.texi: Document -Wdangling-else.
5949
5950 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5951
5952         * config.gcc: Error out when conflicting multilib is detected.  Do not
5953         loop over multilibs since no combination is legal.
5954
5955 2016-05-04  Alan Modra  <amodra@gmail.com>
5956
5957         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
5958         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
5959         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
5960         Align .toc.
5961
5962 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
5963
5964         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
5965         Clean up p5600 comments.
5966
5967 2016-05-04  Richard Biener  <rguenther@suse.de>
5968
5969         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
5970         constructor simplifications.
5971         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
5972
5973 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
5974
5975         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
5976         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
5977         result.set_rtx is null instead of aborting.
5978         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
5979         Always enable.
5980         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
5981         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
5982         *mov<mode>_store_postinc): New patterns.
5983
5984 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
5985
5986         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
5987         as commutative.  Check both conversions are NOP.
5988         ((A & B) OP (C & B)): Remove.
5989
5990 2016-05-04  Alan Modra  <amodra@gmail.com>
5991
5992         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
5993
5994 2016-05-04  Alan Modra  <amodra@gmail.com>
5995
5996         PR target/70866
5997         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
5998         when cr2,3,4 are all fixed regs.
5999
6000 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6001
6002         PR rtl-optimization/57193
6003         * opts.c (default_options_table): Revert OPT_frename_registers change.
6004         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6005
6006 2016-05-03  Martin Sebor  <msebor@redhat.com>
6007
6008         PR c++/66561
6009         * builtins.c (fold_builtin_FILE): New function.
6010         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6011         (fold_builtin_0): Call them.
6012         * gimplify.c (gimplify_call_expr): Remove the handling of
6013         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6014
6015         PR c++/66561
6016         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6017         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6018         constants.
6019
6020         PR c++/66639
6021         * doc/extend.texi (Function Names as Strings): Update __func__,
6022         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6023         constants.
6024
6025 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6026             Richard Biener  <rguenther@suse.de>
6027
6028         PR tree-optimization/70916
6029         * tree-if-conv.c: Include cfganal.h.
6030         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6031         and remove_fake_exit_edges around the optimization pass.
6032
6033 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6034
6035         * cgraph.c (symbol_table::create_edge): Set inline_failed.
6036         (cgraph_edge::make_direct): Likewise.
6037         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6038         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6039         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6040         (CIF_THUNK): New code.
6041         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6042         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6043         (compute_inline_parameters): Set inline_failed for thunks.
6044         (inline_analyze_function): Cleanup.
6045         * ipa-inline.c (can_inline_edge_p): Do not deal with
6046         call_stmt_cannot_inline_p.
6047         (can_early_inline_edge_p): Likewise.
6048         (early_inliner): Initialize inline_failed.
6049         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6050
6051 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6052
6053         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6054         from nonimm_ssenomem_operand.
6055         (nonimm_ssenomem_operand): New predicate.
6056         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6057         as operand 0 predicate.
6058         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6059         Disable unsupported alternatives using "enabled" attribute.
6060         Use register_ssemem_operand as operand 0 predicate.
6061         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6062
6063 2016-05-03  Marek Polacek  <polacek@redhat.com>
6064
6065         PR c/70859
6066         * input.c (expansion_point_location): New function.
6067         * input.h (expansion_point_location): Declare.
6068
6069 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6070
6071         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6072         occurence with frame_offset_ ones.
6073
6074 2016-05-03  Alan Modra  <amodra@gmail.com>
6075
6076         PR rtl-optimization/70890
6077         * ira.c (combine_and_move_insns): When moving def_insn, remove
6078         equivs on use_insn.
6079
6080 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6081
6082         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6083         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6084         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6085         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6086
6087 2016-05-03  Alan Modra  <amodra@gmail.com>
6088
6089         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6090         for SAVE_MULTIPLE/STORE_MULTIPLE.
6091
6092 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6093
6094         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6095         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6096
6097 2016-05-03  Richard Biener  <rguenther@suse.de>
6098
6099         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6100         default true.
6101         (gimplify_arg): Likewise.
6102         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6103         re-writing the result to a decl if required.
6104         (internal_get_tmp_var): Add allow_ssa parameter
6105         and override into_ssa with it.
6106         (get_formal_tmp_var): Adjust.
6107         (get_initialized_tmp_var): Add allow_ssa parameter.
6108         (gimplify_arg): Add allow_ssa parameter and avoid generating
6109         SSA names for the result false.
6110         (gimplify_call_expr): If the call may return twice do not
6111         gimplify parameters into SSA.
6112         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6113         (gimplify_modify_expr): Adjust assert.  For noreturn calls
6114         with a SSA name LHS adjust its def.
6115         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6116         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6117         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6118         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6119         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
6120         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
6121         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6122         (optimize_target_teams): Do not allow SSA names for clause operands.
6123         (gimplify_expr): Likewise for where we mark the result addressable.
6124         * passes.def (pass_init_datastructures): Remove.
6125         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6126         (rewrite_stmt): Likewise.
6127         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6128         (replace_locals_op): Replace SSA names.
6129         (copy_gimple_seq_and_replace_locals): Init src_cfun.
6130         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6131         * cgraph.c (release_function_body): Free CFG annotations only
6132         when we have a CFG.  Simplify.
6133         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6134         force_gimple_operand instead of get_initialized_tmp_var.
6135         * tree-pass.h (make_pass_init_datastructures): Remove.
6136         * tree-ssa.c (execute_init_datastructures): Remove.
6137         (pass_data_init_datastructures): Likewise.
6138         (class pass_init_datastructures): Likewise.
6139         (make_pass_init_datastructures): Likewise.
6140         * omp-low.c (create_omp_child_function): Init SSA data structures.
6141         (grid_expand_target_grid_body): Likewise.
6142         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6143         name before adding it to names_to_release.
6144         (remove_bb): Always release SSA defs.
6145         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6146         before dereferencing it.
6147         * cgraphunit.c (init_lowered_empty_function): Always
6148         int SSA data structures.
6149         * tree-ssanames.c (release_defs): Remove assert that we are in
6150         SSA form.
6151         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6152
6153 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6154             Uros Bizjak  <ubizjak@gmail.com>
6155
6156         PR rtl-optimization/70467
6157         * config/i386/predicates.md (x86_64_hilo_int_operand,
6158         x86_64_hilo_general_operand): New predicates.
6159         * config/i386/constraints.md (Wd): New constraint.
6160         * config/i386/i386.md (mode attr di): Use Wd instead of e.
6161         (general_hilo_operand): New mode attr.
6162         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6163         instead of <general_operand>.
6164         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6165         x86_64_hilo_general_operand instead of <general_operand>.
6166
6167 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6168
6169         PR tree-optimization/70916
6170         * tree-if-conv.c (constant_or_ssa_name): Removed.
6171         (fold_build_cond_expr): Use is_gimple_val instead of
6172         constant_or_ssa_name.
6173
6174         PR tree-optimization/70916
6175         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6176         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6177
6178         PR target/49244
6179         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6180         (optimize_atomic_bit_test_and): New function.
6181         (pass_fold_builtins::execute): Use it.
6182         * optabs.def (atomic_bit_test_and_set_optab,
6183         atomic_bit_test_and_complement_optab,
6184         atomic_bit_test_and_reset_optab): New optabs.
6185         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6186         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6187         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6188         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6189         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6190         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6191         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6192         * doc/md.texi (atomic_bit_test_and_set@var{mode},
6193         atomic_bit_test_and_complement@var{mode},
6194         atomic_bit_test_and_reset@var{mode}): Document.
6195         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6196         atomic_bit_test_and_complement<mode>,
6197         atomic_bit_test_and_reset<mode>): New expanders.
6198         (atomic_bit_test_and_set<mode>_1,
6199         atomic_bit_test_and_complement<mode>_1,
6200         atomic_bit_test_and_reset<mode>_1): New insns.
6201
6202 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6203
6204         PR rtl-optimization/70687
6205         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
6206         instead of unsigned HOST_WIDE_INT.
6207
6208 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6209
6210         PR rtl-optimization/44281
6211         * hard-reg-set.h (struct target_hard_regs): New field
6212         x_fixed_nonglobal_reg_set.
6213         (fixed_nonglobal_reg_set): New macro.
6214         * reginfo.c (init_reg_sets_1): Initialize it.
6215         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6216         of fixed_reg_set.
6217         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6218
6219 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6220
6221         PR tree-optimization/56541
6222         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6223         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6224         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6225         (any_complicated_phi): new static variable.
6226         (aggressive_if_conv): delete.
6227         (if_convertible_phi_p): support phis with more than two arguments.
6228         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6229         critical pred edges.
6230         (ifcvt_split_critical_edges): support phis with more than two
6231         arguments by checking new parameter.  only split critical edges
6232         if needed.
6233         (tree_if_conversion): handle simd pragma marked loop using new
6234         local variable aggressive_if_conv.  check any_complicated_phi.
6235
6236 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6237
6238         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6239         before using it.
6240
6241 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6242
6243         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6244         cbase.
6245
6246 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6247
6248         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6249         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6250         define_insn_and_split.
6251         (mulsi3_i): New define_insn_and_split.
6252         (mulsi3_call): Convert to define_insn.
6253         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6254         Remove constraints.
6255
6256 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6257
6258         * machmode.h (mode_complex): Add support to give the complex mode
6259         for a given mode.
6260         (GET_MODE_COMPLEX_MODE): Likewise.
6261         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
6262         stored by build_complex_type and gfc_build_complex_type instead of
6263         trying to figure out the appropriate mode based on the size. Raise
6264         an assertion error, if the type was not set.
6265         * genmodes.c (struct mode_data): Add field for the complex type of
6266         the given type.
6267         (blank_mode): Likewise.
6268         (make_complex_modes): Remember the complex mode created in the
6269         base type.
6270         (emit_mode_complex): Write out the mode_complex array to map a
6271         type mode to the complex version.
6272         (emit_insn_modes_c): Likewise.
6273         * tree.c (build_complex_type): Set the complex type to use before
6274         calling layout_type.
6275         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
6276         support for __float128 complex datatypes.
6277         (rs6000_hard_regno_mode_ok): Likewise.
6278         (rs6000_setup_reg_addr_masks): Likewise.
6279         (rs6000_complex_function_value): Likewise.
6280         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
6281         __float128 and __ibm128 complex.
6282         (FLOAT128_IBM_P): Likewise.
6283         (ALTIVEC_ARG_MAX_RETURN): Likewise.
6284         * doc/extend.texi (Additional Floating Types): Document that
6285         -mfloat128 must be used to enable __float128.  Document complex
6286         __float128 and __ibm128 support.
6287
6288 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6289
6290         PR target/49244
6291         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
6292         char/short arguments promoted to int because of promote_prototypes.
6293
6294 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6295
6296         * config/i386/predicates.md (register_ssemem_operand): New predicate.
6297         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
6298         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
6299         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
6300         alternatives using "enabled" attribute.  Use register_ssemem_operand
6301         as operand 1 predicate.
6302         (*cmpi<unord>xf_i387): Split XFmode pattern from
6303         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
6304         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
6305         *absneg<mode>2_i387.  Disable unsupported alternatives using
6306         "enabled" attribute.
6307         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
6308
6309 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6310
6311         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
6312         marker.
6313         (oacc_loop_process): Check mask for loop termination.
6314
6315 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6316
6317         * cif-code.def (CIF_THUNK): Add.
6318         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
6319         accidental change.
6320
6321 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6322
6323         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
6324         (dump_inline_summary): Dump it.
6325         (fp_expression_p): New predicate.
6326         (estimate_function_body_sizes): Use it.
6327         (inline_merge_summary): Merge fp_expressions.
6328         (inline_read_section): Read fp_expressions.
6329         (inline_write_summary): Write fp_expressions.
6330         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
6331         codegen boundary if either caller or callee is !fp_expressions.
6332         * ipa-inline.h (inline_summary): Add fp_expressions.
6333         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
6334         to fp_expressions be sure the fp generation flags are updated.
6335
6336 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6337
6338         PR rtl-optimization/70467
6339         * cse.c (cse_insn): Handle no-op MEM moves after folding.
6340
6341         PR rtl-optimization/70467
6342         * ipa-pure-const.c (check_call): Handle internal calls even in
6343         ipa mode like in local mode.
6344
6345 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6346
6347         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
6348
6349 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6350
6351         * match.pd (X u< X, X u> X): New transformations.
6352
6353 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6354
6355         * flag-types.h (enum warn_strict_overflow_code): Move ...
6356         * coretypes.h: ... here.
6357         * fold-const.h (fold_overflow_warning): Declare.
6358         * fold-const.c (fold_overflow_warning): Make non-static.
6359         (fold_comparison): Move the transformation of X +- C1 CMP C2
6360         into X CMP C2 -+ C1 ...
6361         * match.pd: ... here.
6362         * gimple-fold.c (fold_stmt_1): Protect with
6363         fold_defer_overflow_warnings.
6364
6365 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6366
6367         * omp-low.c (struct oacc_loop): Add 'inner' field.
6368         (new_oacc_loop_raw): Initialize it to zero.
6369         (oacc_loop_fixed_partitions): Initialize it.
6370         (oacc_loop_auto_partitions): Partition outermost loop to outermost
6371         available partitioning.
6372
6373 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6374
6375         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
6376         register_operand.
6377         (umulsidi3): Likewise.
6378         (indirect_jump): Fix jump instruction assembly patterns.
6379
6380 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
6381
6382         PR target/70860
6383         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
6384         (nvptx_function_value): Assert non-NULL cfun.
6385
6386 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         PR rtl-optimization/70886
6389         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
6390
6391         * cselib.h (rtx_equal_for_cselib_1): Declare.
6392         (rtx_equal_for_cselib_p: New inline function.
6393         * cselib.c (rtx_equal_for_cselib_p): Delete.
6394         (rtx_equal_for_cselib_1): Make public.
6395
6396 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6397
6398         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
6399         (register_mixssei387nonimm_operand): Remove predicate.
6400         * config/i386/i386.md (*fop_<mode>_comm): Merge from
6401         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
6402         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
6403         for TARGET_MIX_SSE_I387 alternatives.
6404         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
6405         Disable unsupported alternatives using "enabled" attribute.  Use
6406         nonimm_ssenomem_operand as operand 1 predicate.  Also check
6407         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
6408
6409 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6410
6411         * tree.c (cst_and_fits_in_hwi): Simplify.
6412
6413 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6414
6415         * tree.h (wi::to_wide): New function.
6416         * expr.c (expand_expr_real_1): Use wi::to_wide.
6417         * fold-const.c (int_const_binop_1): Likewise.
6418         (extract_muldiv_1): Likewise.
6419
6420 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6421
6422         * wide-int.h: Update offset_int and widest_int documentation.
6423         (WI_SIGNED_SHIFT_RESULT): New macro.
6424         (wi::binary_shift): Define signed_shift_result_type for
6425         shifts on offset_int- and widest_int-like types.
6426         (generic_wide_int): Support <<= and >>= if << and >> are supported.
6427         * tree.h (int_bit_position): Use shift operators instead of wi::
6428          shifts.
6429         * alias.c (adjust_offset_for_component_ref): Likewise.
6430         * expr.c (get_inner_reference): Likewise.
6431         * fold-const.c (fold_comparison): Likewise.
6432         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
6433         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
6434         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6435         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6436         (stmt_kills_ref_p): Likewise.
6437         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
6438         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
6439         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6440         (ao_ref_init_from_vn_reference): Likewise.
6441
6442 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6443
6444         * wide-int.h: Update offset_int and widest_int documentation.
6445         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
6446         (wi::binary_traits): Allow ordered comparisons between offset_int and
6447         offset_int, between widest_int and widest_int, and between either
6448         of these types and basic C types.
6449         (operator <, <=, >, >=): Define for the same combinations.
6450         * tree.h (tree_int_cst_lt): Use comparison operators instead
6451         of wi:: comparisons.
6452         (tree_int_cst_le): Likewise.
6453         * gimple-fold.c (fold_array_ctor_reference): Likewise.
6454         (fold_nonarray_ctor_reference): Likewise.
6455         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
6456         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
6457         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
6458         * tree-sra.c (completely_scalarize): Likewise.
6459         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
6460         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
6461         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
6462         (check_for_binary_op_overflow): Likewise.
6463         (search_for_addr_array): Likewise.
6464         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
6465
6466 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6467
6468         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
6469         (arc_save_restore): Likewise.
6470         (arc_dwarf_register_span): Likewise.
6471         (arc_output_pic_addr_const): Initialize suffix variable.
6472
6473 2016-05-02  Martin Liska  <mliska@suse.cz>
6474
6475         * symbol-summary.h (function_summary::function_summary):
6476         Remove checking assert for all cgraph nodes.
6477         (function_summary::get): Check summary_uid.
6478         (symtab_insertion): Check summary_uid.
6479
6480 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6481
6482         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
6483         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
6484         bmaskn instruction.
6485         (arc_dwarf_register_span): Remove enum keyword.
6486         (compact_memory_operand_p): New function.
6487         * config/arc/arc.h (reg_class): Add code density register classes.
6488         (REG_CLASS_NAMES): Likewise.
6489         (REG_CLASS_CONTENTS): Likewise.
6490         * config/arc/arc.md (*movqi_insn): Add code density instructions.
6491         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
6492         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
6493         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
6494         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
6495         constraints.
6496         (h, Rcd, Rsd, Rzd): New register constraints.
6497         (T): Use compact_memory_operand_p function.
6498         * config/arc/predicates.md (compact_load_memory_operand): Remove.
6499
6500 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6501
6502         * config/sh/sh.md (*negnegt, *movtt): Remove.
6503
6504 2016-05-02  Marek Polacek  <polacek@redhat.com>
6505             Tom de Vries  <tom@codesourcery.com>
6506
6507         PR tree-optimization/70700
6508         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
6509         bigger than FIRST_REF_NODE.
6510
6511 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6512
6513         PR target/52898
6514         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
6515         TARGET_CMPEQDI_T.
6516         (prepare_cbranch_operands): Don't use scratch register.  Assume that
6517         function is used when pseudos can be created.
6518         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
6519         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
6520         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
6521         define_expand.  Allow it only when pseudos can be created.
6522         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
6523
6524 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
6525
6526         * config/i386/constraints.md (BC): Only allow -1 operands.
6527         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
6528         Add "enabled" attribute.  Update XI mode attribute calculation.
6529         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
6530         (*movoi_internal_avx): Update XI mode attribute calculation.
6531         (*movti_internal): Ditto.
6532
6533 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6534
6535         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
6536         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
6537
6538 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6539
6540         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
6541         statement on instruction code.  Remove trailing spaces.
6542         (altivec_expand_stv_builtin): Likewise.
6543
6544 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6545
6546         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
6547         (TARGET_FPU_DOUBLE): Simplify.
6548         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
6549         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
6550         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
6551         with 'TARGET_FPU_DOUBLE'.
6552         * config/sh/sh.md: Likewise.
6553
6554 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
6555
6556         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
6557         SH_DIV_STR_FOR_SIZE): Remove.
6558         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
6559         SH_DIV_STR_FOR_SIZE): Remove.
6560
6561 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6562
6563         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
6564         logical_reg_operand): Delete.
6565         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
6566         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
6567         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
6568         match_operand and match_test.
6569         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
6570         variables on their first use.  Return bool values.
6571         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
6572         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
6573         arith_reg_operand for input operand.  Remove empty constraints.
6574         (xorsi3): Delete.
6575         (*xorsi3_compact): Rename to xorsi3.
6576         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
6577         (*zero_extend<mode>si2_disp_mem): Update comment.
6578         (mov_nop): Delete.
6579
6580 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6581
6582         * config/sh/t-sh: Remove SH5 support.
6583         * config.gcc: Likewise.
6584         * configure: Likewise.
6585
6586 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6587
6588         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
6589
6590 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6591
6592         * config/sh/sh.c (register_sh_passes, sh_option_override,
6593         sh_print_operand, prepare_move_operands,
6594         sh_can_follow_jump): Remove TARGET_SH1 checks.
6595         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
6596         PROMOTE_MODE): Likewise.
6597         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
6598         movdi): Likewise.
6599
6600 2016-04-30  Alan Modra  <amodra@gmail.com>
6601
6602         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
6603         restoring when fixed_reg_p, but allow out-of-line or stmw save.
6604         Check for user regs later to avoid unnecessary looping over regs.
6605         Merge user reg check with non-saved reg check.  Don't force
6606         inline VR restore when static chain used.
6607         (rs6000_frame_related): Omit eh_frame info for user regs when
6608         saving.
6609         (fixed_regs_p): Delete.
6610
6611 2016-04-30  Alan Modra  <amodra@gmail.com>
6612
6613         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
6614         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
6615         Update all uses.
6616
6617 2016-04-30  Alan Modra  <amodra@gmail.com>
6618
6619         PR target/69645
6620         * config/rs6000/rs6000.c (fixed_reg_p): New function.
6621         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
6622         Update all uses.
6623
6624 2016-04-30  Alan Modra  <amodra@gmail.com>
6625
6626         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
6627         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
6628         flag_pic test for Darwin.
6629
6630 2016-04-30  Alan Modra  <amodra@gmail.com>
6631
6632         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
6633         throw_calls_crossed.
6634         (REG_FREQ_CALLS_CROSSED): Delete.
6635         (REG_N_THROWING_CALLS_CROSSED): Delete.
6636         * regstat.c (regstat_bb_compute_ri): Don't calculate
6637         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
6638         (dump_reg_info): Don't print call cross frequency.
6639         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
6640         and REG_N_THROWING_CALLS_CROSSED.
6641
6642 2016-04-30  Alan Modra  <amodra@gmail.com>
6643
6644         * regs.h (struct reg_info_t): Delete live_length.
6645         (REG_LIVE_LENGTH): Delete macro.
6646         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
6647         local_live, local_processed and local_live_last_luid params.
6648         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
6649         Formatting fixes.
6650         (regstat_compute_ri): Adjust for above.  Don't set
6651         REG_LIVE_LENGTH.
6652         (dump_reg_info): Don't print live length.
6653         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
6654         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
6655         Localize loop_depth var.
6656
6657 2016-04-30  Alan Modra  <amodra@gmail.com>
6658
6659         * ira.c (enum valid_equiv): New.
6660         (validate_equiv_mem): Return enum.
6661         (update_equiv_mem): Create replacement in more cases.
6662         (add_store_equivs): Update validate_equiv_mem call.
6663
6664 2016-04-30  Alan Modra  <amodra@gmail.com>
6665
6666         * ira.c (combine_and_move_insns): Rather than scanning insns,
6667         use DF infrastucture to find use and def insns.
6668
6669 2016-04-30  Alan Modra  <amodra@gmail.com>
6670
6671         ira.c (combine_and_move_insns): Move invariant conditions..
6672         (ira.c): ..to here.  Call combine_and_move_insns before
6673         add_store_equivs.  Call grow_reg_equivs later.  Allocate
6674         req_equiv later using max_reg_num() rather than global max_regno.
6675         (contains_replace_regs): Delete.
6676         (add_store_equivs): Remove contains_replace_regs test.
6677
6678 2016-04-30  Alan Modra  <amodra@gmail.com>
6679
6680         * ira.c (struct equiv_mem_data): New.
6681         (equiv_mem, equiv_mem_modified): Delete static vars.
6682         (validate_equiv_mem_from_store): Use "data" param to communicate..
6683         (validate_equiv_mem): ..from here.
6684
6685 2016-04-30  Alan Modra  <amodra@gmail.com>
6686
6687         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
6688         split out from..
6689         (update_reg_equivs): ..here.  Move allocation and freeing of
6690         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
6691         end_alias_analysis to..
6692         (ira): ..here.
6693
6694 2016-04-30  Alan Modra  <amodra@gmail.com>
6695
6696         * ira.c (pdx_subregs): Delete.
6697         (struct equivalence): Add pdx_subregs field.
6698         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
6699         pdx_subregs access.
6700         (update_equiv_regs): Don't create or free pdx_subregs.  Update
6701         pdx_subregs access.
6702
6703 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6704
6705         * config/rs6000/altivec.h: Change definitions of vec_xl and
6706         vec_xst.
6707         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
6708         (LD_ELEMREV_V2DI): New.
6709         (LD_ELEMREV_V4SF): New.
6710         (LD_ELEMREV_V4SI): New.
6711         (LD_ELEMREV_V8HI): New.
6712         (LD_ELEMREV_V16QI): New.
6713         (ST_ELEMREV_V2DF): New.
6714         (ST_ELEMREV_V2DI): New.
6715         (ST_ELEMREV_V4SF): New.
6716         (ST_ELEMREV_V4SI): New.
6717         (ST_ELEMREV_V8HI): New.
6718         (ST_ELEMREV_V16QI): New.
6719         (XL): New.
6720         (XST): New.
6721         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6722         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
6723         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
6724         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
6725         (altivec_expand_builtin): Add handling for
6726         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
6727         (rs6000_invalid_builtin): Add error-checking for
6728         RS6000_BTM_P9_VECTOR.
6729         (altivec_init_builtins): Define builtins used to implement vec_xl
6730         and vec_xst.
6731         (rs6000_builtin_mask_names): Define power9-vector.
6732         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
6733         (RS6000_BTM_P9_VECTOR): Define.
6734         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
6735         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
6736         (vsx_ld_elemrev_v2df): Likewise.
6737         (vsx_ld_elemrev_v4sf): Likewise.
6738         (vsx_ld_elemrev_v4si): Likewise.
6739         (vsx_ld_elemrev_v8hi): Likewise.
6740         (vsx_ld_elemrev_v16qi): Likewise.
6741         (vsx_st_elemrev_v2df): Likewise.
6742         (vsx_st_elemrev_v2di): Likewise.
6743         (vsx_st_elemrev_v4sf): Likewise.
6744         (vsx_st_elemrev_v4si): Likewise.
6745         (vsx_st_elemrev_v8hi): Likewise.
6746         (vsx_st_elemrev_v16qi): Likewise.
6747         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
6748         grammar.
6749
6750 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
6751
6752         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
6753         out into ...
6754         (simplify_control_stmt_condition_1): ... here.  Recurse into
6755         BIT_AND_EXPRs and BIT_IOR_EXPRs.
6756
6757 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
6758
6759         PR target/69810
6760         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
6761         (zero_extendqi<mode>2_dot): Revert earlier conversion from
6762         define_insn_and_split to define_insn.
6763         (zero_extendqi<mode>2_dot2): Same.
6764         (extendqi<mode>2_dot): Same.
6765         (extendqi<mode>2_dot2): Same.
6766
6767 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6768
6769         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
6770         (probe_stack): New expander.
6771         (probe_stack_<mode>): New insn pattern.
6772
6773 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6774
6775         * config/i386/i386.md
6776         (operations with memory inputs setting flags peephole2):
6777         Remove uneeded REG_P checks.  Cleanup pattern generation.
6778
6779 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
6780
6781         * tree-vect-loop.c (vect_transform_loop): Fix
6782         nb_iterations_upper_bound computation for vectorized loop.
6783
6784 2016-04-29  Marek Polacek  <polacek@redhat.com>
6785             Jakub Jelinek  <jakub@redhat.com>
6786
6787         PR sanitizer/70342
6788         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
6789         TARGET_EXPR_SLOT as a base.
6790
6791 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
6792
6793         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
6794         with 'rCm2' constraints to limit possible immediate size.
6795         (*load_zeroextendqisi_update): Likewise.
6796         (*load_signextendqisi_update): Likewise.
6797         (*loadhi_update): Likewise.
6798         (*load_zeroextendhisi_update): Likewise.
6799         (*load_signextendhisi_update): Likewise.
6800         (*loadsi_update): Likewise.
6801         (*loadsf_update): Likewise.
6802
6803 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6804
6805         * config/i386/predicates.md (constm1_operand): Fix comparison.
6806
6807 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
6808
6809         * testsuite/gcc.target/arc/ieee_eq.c: New test.
6810
6811 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
6812
6813         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
6814         remaining SH5 related settings.
6815         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
6816         shmedia_prepare_call_address): Delete.
6817         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
6818         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
6819         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
6820         UNSUPPORTED_SH2A): Remove m5 checks.
6821         (sh_divide_strategy_e): Remove SH5 division strategies.
6822         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
6823         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
6824
6825 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6826
6827         * config/s390/s390.c (s390_rtx_costs): Update documentation.
6828
6829 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6830
6831         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
6832         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
6833         Change lder to ldr.
6834         * config/s390/vector.md ("mov<mode>"): Likewise.
6835
6836 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
6837
6838         * config/s390/constraints.md ("U", "W"): Invoke
6839         s390_mem_constraint with "ZR" and "ZT".
6840         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
6841         addresses when using LRA.  Accept also short displacements for S
6842         and T constraints.  Do not check for long displacement target for
6843         S and T constraints.
6844         (s390_mem_constraint): Remove handling of U and W constraints.
6845         * config/s390/s390.md (various patterns): Remove the short
6846         displacement constraints (Q and R) if a long displacement
6847         constraint is present.  Add longdisp as required CPU capability.
6848         * config/s390/vector.md: Likewise.
6849         * config/s390/vx-builtins.md: Likewise.
6850
6851 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6852
6853         PR target/60040
6854         * reload1.c (reload): Call finish_spills before
6855         restarting reload loop. Skip select_reload_regs
6856         if update_eliminables_and_spill returns true.
6857
6858 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
6859
6860         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
6861         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
6862         (umulhisi3_imm): Update predicates and constraint letters.
6863         (umulhisi3_reg): Declare instruction as commutative.
6864         * config/arc/constraints.md (J12, J16): New constraints.
6865         * config/arc/predicates.md (short_unsigned_const_operand): New
6866         predicate.
6867         (arc_short_operand): Likewise.
6868         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
6869
6870 2016-04-29  Richard Biener  <rguenther@suse.de>
6871
6872         PR tree-optimization/13962
6873         PR tree-optimization/65686
6874         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
6875         * tree-ssa-alias.c (ptrs_compare_unequal): New function
6876         using PTA to compare pointers.
6877         * match.pd: Add pattern for pointer equality compare simplification
6878         using ptrs_compare_unequal.
6879
6880 2016-04-29  Richard Biener  <rguenther@suse.de>
6881
6882         * stor-layout.c (layout_type): Do not build a pointer-to-element
6883         type for arrays.
6884
6885 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6886
6887         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
6888         Use SWI mode iterator.  Use general_reg_operand predicate.
6889         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
6890         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
6891         predicates.
6892
6893 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
6894
6895         PR middle-end/70843
6896         * fold-const.c (operand_equal_p): Don't verify hash value equality
6897         if arg0 == arg1.
6898         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
6899         and OMP_CLAUSE.
6900
6901 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
6902
6903         PR target/70858
6904         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
6905         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
6906         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
6907         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
6908         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
6909
6910 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
6911
6912         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
6913         to info.  Don't initialize separate fields to 0.  Clean up
6914         formatting a bit.
6915
6916 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
6917
6918         * config/i386/i386.md (peephole2s for operations with memory inputs):
6919         Use SWI mode iterator.
6920         (peephole2s for operations with memory outputs): Ditto.
6921         Do not check for stack checking probe.
6922
6923         (probe_stack): Remove expander.
6924
6925 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
6926             Andrew Burgess  <andrew.burgess@embecosm.com>
6927
6928         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
6929         operands as 32-bits.
6930
6931 2016-04-28  Jason Merrill  <jason@redhat.com>
6932
6933         * gdbinit.in: Skip line-map.h.
6934
6935 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
6936             Andrew Burgess  <andrew.burgess@embecosm.com>
6937
6938         * config/arc/arc.c (arc_conditional_register_usage): Take
6939         TARGET_RRQ_CLASS into account.
6940         (arc_print_operand): Support printing 'p' and 's' operands.
6941         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
6942         as 0.
6943         (TARGET_RRQ_CLASS): Define.
6944         (IS_POWEROF2_OR_0_P): Define.
6945         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
6946         alternatives.
6947         (*tst_movb): New define_insn.
6948         (*tst): Avoid recognition if it could prevent '*tst_movb'
6949         combination; replace c/CnL with c/Chs alternative.
6950         (*tst_bitfield_tst): New define_insn.
6951         (*tst_bitfield_asr): New define_insn.
6952         (*tst_bitfield): New define_insn.
6953         (andsi3_i): Add Rrq variant.
6954         (extzv): New define_expand.
6955         (insv): New define_expand.
6956         (*insv_i): New define_insn.
6957         (*movb): New define_insn.
6958         (*movb_signed): New define_insn.
6959         (*movb_high): New define_insn.
6960         (*movb_high_signed): New define_insn.
6961         (*movb_high_signed + 1): New define_split pattern.
6962         (*mrgb): New define_insn.
6963         (*mrgb + 1): New define_peephole2 pattern.
6964         (*mrgb + 2): New define_peephole2 pattern.
6965         * config/arc/arc.opt (mbitops): New option for nps400, uses
6966         TARGET_NPS_BITOPS_DEFAULT.
6967         * config/arc/constraints.md (q): Make register class conditional.
6968         (Rrq): New register constraint.
6969         (Chs): New constraint.
6970         (Clo): New constraint.
6971         (Chi): New constraint.
6972         (Cbf): New constraint.
6973         (Cbn): New constraint.
6974         (C18): New constraint.
6975         (Cbi): New constraint.
6976
6977 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
6978
6979         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
6980         dst->popcount.
6981         (bitmap_intersection_of_preds): Ditto.
6982         (bitmap_union_of_succs): Ditto.
6983         (bitmap_union_of_preds): Ditto.
6984         * sbitmap.c (do_popcount): Delete.
6985         (BITMAP_DEBUGGING): Delete.
6986         (sbitmap_verify_popcount): Delete.
6987         (sbitmap_alloc): Don't initialize the popcount field.
6988         (sbitmap_alloc_with_popcount): Delete.
6989         (sbitmap_resize): Don't resize the popcount array.
6990         (sbitmap_vector_alloc): Don't initialize the popcount field.
6991         (bitmap_copy): Don't copy the popcount array.
6992         (bitmap_clear): Don't clear the popcount array.
6993         (bitmap_clear): Delete the popcount array handling.
6994         (bitmap_ior_and_compl): Delete the popcount assert.
6995         (bitmap_not): Ditto.
6996         (bitmap_and_compl): Ditto.
6997         (bitmap_and): Delete the popcount array handling.
6998         (bitmap_xor): Ditto.
6999         (bitmap_ior): Ditto.
7000         (bitmap_or_and): Delete the popcount assert.
7001         (bitmap_and_or): Ditto.
7002         (popcount_table): Delete.
7003         (sbitmap_elt_popcount): Delete.
7004         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7005         (bitmap_set_bit): Delete the popcount assert.
7006         (bitmap_clear_bit): Ditto.
7007         (sbitmap_free): Don't free the popcount array.
7008         (sbitmap_alloc_with_popcount): Delete declaration.
7009         (sbitmap_popcount): Ditto.
7010
7011 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7012             Andrew Burgess  <andrew.burgess@embecosm.com>
7013
7014         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7015         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7016         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7017         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7018         * config/arc/arc.opt (mcmem): New option.
7019         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7020         supply length for r/m alternative.
7021         (*extendqisi2_ac): Likewise.
7022         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7023         r/Uex alternative.
7024         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7025         (movhi_insn): Likewise.
7026         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7027         (*zero_extendqihi2_i): Add r/Ucm alternative.
7028         (*zero_extendqisi2_ac): Likewise.
7029         (*zero_extendhisi2_i): Likewise.
7030         * config/arc/constraints.md (Uex): New memory constraint.
7031         (Ucm): New define_constraint.
7032         * config/arc/predicates.md (long_immediate_loadstore_operand):
7033         Return 0 for MEM with cmem_address address.
7034         (cmem_address_0): New predicates.
7035         (cmem_address_1): Likewise.
7036         (cmem_address_2): Likewise.
7037         (cmem_address): Likewise.
7038
7039 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7040
7041         * config/rs6000/rs6000.c (machine_function): Rename
7042         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7043         (rs6000_stack_info): Adjust.
7044
7045 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7046             Andrew Burgess  <andrew.burgess@embecosm.com>
7047
7048         * config/arc/constraints.md (Usd): Convert to define_constraint.
7049         (Us<): Likewise.
7050         (Us>): Likewise.
7051
7052 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7053
7054         PR target/70821
7055         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7056         Add new peephole2 where the first insn is *mov<mode>_or instead of
7057         *mov<mode>_internal.
7058
7059 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7060
7061         * tracer.c (bb_seen): Make static.
7062
7063 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7064
7065         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7066         support, setup defaults.
7067         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7068         * config/arc/arc.c (arc_init): Add NPS400 support.
7069         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7070         (TARGET_ARC700): NPS400 is also an ARC700.
7071         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7072
7073 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7074
7075         PR target/70668
7076         * config/nds32/nds32.md (casesi): Don't access the operands array
7077         out of bounds.
7078
7079 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7080
7081         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7082         (or $-1,reg peephole2): Ditto.
7083         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7084
7085 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7086
7087         * doc/extend.texi (Common Function Attributes) [optimize]:
7088         Discourage use of the optimize attribute.
7089
7090 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7091
7092         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7093         special case builtin.
7094         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7095         ALTIVEC_BUILTIN_VEC_ADDE.
7096         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7097         support for ALTIVEC_BUILTIN_VEC_ADDE.
7098         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7099         for __builtin_vec_adde.
7100
7101 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7102
7103         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7104         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7105
7106 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7107
7108         PR testsuite/70595
7109         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7110         attributes): Document cilkplus_runtime.
7111
7112 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7113
7114         * tree-cfg.c (verify_expr): Verify that local declarations belong to
7115         this function.  Call verify_expr on MEM_REFs and bases of other
7116         handled_components.
7117
7118 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7119
7120         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7121         for WORD_REGISTER_OPERATIONS to runtime check.
7122
7123 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7124
7125         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7126
7127 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7128
7129         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7130         big-endian compilation.
7131         * config/arc/arc.md (addf3): Likewise.
7132         (subdf3): Likewise.
7133         (muldf3): Likewise.
7134
7135 2016-04-28  Richard Biener  <rguenther@suse.de>
7136
7137         PR tree-optimization/70840
7138         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7139         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7140         Mark x * pow(x,c) -> pow(x,c+1) commutative.
7141         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7142
7143 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7144
7145         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7146         and explain why in a comment.
7147
7148 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7149
7150         * config/arc/arc.md (cpu_facility): Add fpx variant.
7151         (subdf3): Prohibit use reverse sub when assist operations option
7152         is enabled.
7153         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7154         instructions only when FPX is enabled.
7155         * testsuite/gcc.target/arc/trsub.c: New test.
7156
7157 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7158
7159         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7160         mult_operator when calculating "type" attribute.
7161         (*fop_<mode>_1_i387): Ditto.
7162         (*fop_xf_1_i387): Ditto.
7163         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7164         Use std::swap to swap operands.  Use RTL expressions to generate
7165         converted pattern.
7166
7167 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7168             Joern Rennecke  <joern.rennecke@embecosm.com>
7169
7170         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7171         declaration.
7172         (emit_pic_move): Remove.
7173         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7174         * config/arc/arc.c (emit_pic_move): Removed.
7175         (TARGET_HAVE_TLS): Define.
7176         (arc_conditional_register_usage): Test for arc_tp_regno.
7177         (arc_print_operand, arc_print_operand_address): Handle TLS
7178         unspecs.
7179         (arc_needs_pcl_p): New function.
7180         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7181         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7182         (arc_raw_symbolic_reference_mentioned_p): Likewise.
7183         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7184         (arc_legitimize_tls_address): Likewise.
7185         (DTPOFF_ZERO_SYM): Define.
7186         (arc_legitimize_pic_address): Make it static, handle TLS cases.
7187         (arc_output_pic_addr_const): Print TLS unspecs.
7188         (prepare_pic_move): New function, replaces emit_pic_move.
7189         (arc_legitimate_constant_p): Handle TLS unspecs.
7190         (arc_legitimate_address_p): Likewise.
7191         (arc_rewrite_small_data_p): Use assert for TLS constants.
7192         (prepare_move_operands): Use prepare_pic_move.
7193         (arc_legitimize_address): Legitimize tls addresses.
7194         (arc_epilogue_uses): Check for arc_tp_regno.
7195         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7196         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7197         Define.
7198         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7199         Likewise.
7200         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7201         %(arc_tls_extra_start_spec).
7202         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7203         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7204         (EH_USES): Define.
7205         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7206         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7207         (UNSPEC_TLS_OFF): Add.
7208         (R10_REG): Define.
7209         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7210         (get_thread_pointersi): New patterns.
7211         * config/arc/arc.opt (mtp-regno): New option.
7212         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7213         (move_dest_operand): Likewise.
7214         * configure: Regenerate.
7215         * configure.ac: Add arc*-*-* case to test for tls.
7216         * doc/invoke.texi (ARC options): Document mtp-regno.
7217
7218 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7219
7220         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7221         the new ARC HS SIMD instructions.
7222         (arc_preferred_simd_mode): New function.
7223         (arc_autovectorize_vector_sizes): Likewise.
7224         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7225         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7226         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7227         (arc_init_builtins): Add new SIMD builtin types.
7228         (arc_split_move): Handle 64 bit vector moves.
7229         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7230         (TARGET_PLUS_QMACW): Define.
7231         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7232         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7233         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7234         (VSUBADD4H): New builtins.
7235         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7236         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7237
7238 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7239             Matthias Klose  <doko@debian.org>
7240
7241         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7242
7243 2016-04-28  Richard Biener  <rguenther@suse.de>
7244
7245         PR middle-end/70777
7246         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7247         canonicalization.
7248
7249 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7250
7251         * common/config/sh/sh-common.c: Remove SH5 support.
7252         * config/sh/constraints.md: Likewise.
7253         * config/sh/config/sh/elf.h: Likewise.
7254         * config/sh/linux.h: Likewise.
7255         * config/sh/netbsd-elf.h: Likewise.
7256         * config/sh/predicates.md: Likewise.
7257         * config/sh/sh-c.c: Likewise.
7258         * config/sh/sh-protos.h: Likewise.
7259         * config/sh/sh.c: Likewise.
7260         * config/sh/sh.h: Likewise.
7261         * config/sh/sh.md: Likewise.
7262         * config/sh/sh.opt: Likewise.
7263         * config/sh/sync.md: Likewise.
7264         * config/sh/sh64.h: Delete.
7265         * config/sh/shmedia.h: Likewise.
7266         * config/sh/shmedia.md: Likewise.
7267         * config/sh/sshmedia.h: Likewise.
7268         * config/sh/t-netbsd-sh5-64: Likewise.
7269         * config/sh/t-sh64: Likewise.
7270         * config/sh/ushmedia.h: Likewise.
7271
7272 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7273
7274         * config/i386/i386.md (sign_extend to memory peephole2s): Use
7275         general_reg_operand instead of register_operand predicate.
7276
7277 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7278
7279         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
7280
7281 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
7282
7283         * match.pd (A - B > A, A + B < A): New transformations.
7284
7285 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
7286
7287         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
7288         which defaults to true.  Emit an outer pair of parentheses only if
7289         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
7290         don't emit parentheses for the right-hand operand.
7291
7292 2016-04-27  Jeff Law  <law@redhat.com>
7293
7294         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
7295
7296 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7297
7298         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
7299         (altivec_lvx_<mode>_internal): Document.
7300         (altivec_lvx_<mode>_2op): New define_insn.
7301         (altivec_lvx_<mode>_1op): Likewise.
7302         (altivec_lvx_<mode>_2op_si): Likewise.
7303         (altivec_lvx_<mode>_1op_si): Likewise.
7304         (altivec_stvx_<mode>): Remove.
7305         (altivec_stvx_<mode>_internal): Document.
7306         (altivec_stvx_<mode>_2op): New define_insn.
7307         (altivec_stvx_<mode>_1op): Likewise.
7308         (altivec_stvx_<mode>_2op_si): Likewise.
7309         (altivec_stvx_<mode>_1op_si): Likewise.
7310         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7311         Expand vec_ld and vec_st during parsing.
7312         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
7313         changes.
7314         (altivec_expand_stvx_be): Likewise.
7315         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
7316         address-masking behavior in RTL.
7317         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
7318         address-masking behavior in RTL.
7319         (altivec_expand_builtin): Change builtin code arguments for calls
7320         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
7321         (insn_is_swappable_p): Avoid incorrect swap optimization in the
7322         presence of lvx/stvx patterns.
7323         (alignment_with_canonical_addr): New function.
7324         (alignment_mask): Likewise.
7325         (find_alignment_op): Likewise.
7326         (recombine_lvx_pattern): Likewise.
7327         (recombine_stvx_pattern): Likewise.
7328         (recombine_lvx_stvx_patterns): Likewise.
7329         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
7330         stvx patterns from expand.
7331         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
7332         expansions.
7333         (vector_altivec_store_<mode>): Likewise.
7334
7335 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
7336
7337         * config/aarch64/aarch64.md
7338         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
7339         remove the "fp" attributes.
7340         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
7341         add the "simd" attributes.
7342         (*movdf_aarch64): Likewise.
7343         (*movtf_aarch64): Remove the "fp" attributes.
7344         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
7345         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
7346
7347 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7348
7349         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
7350         rtx to rtx_code_label *.
7351         * rtl.h (maybe_set_first_label_num): Likewise.
7352
7353 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7354
7355         * df-core.c (df_add_problem): Make the problem param be const.
7356         (df_remove_problem): Make local "problem" be const.
7357         * df-problems.c (problem_RD): Make const.
7358         (problem_LR): Likewise.
7359         (problem_LIVE): Likewise.
7360         (problem_MIR): Likewise.
7361         (problem_CHAIN): Likewise.
7362         (problem_WORD_LR): Likewise.
7363         (problem_NOTE): Likewise.
7364         (problem_MD): Likewise.
7365         * df-scan.c (problem_SCAN): Likewise.
7366         * df.h (struct df_problem): Make field "dependent_problem" be
7367         const.
7368         (struct dataflow): Likewise for field "problem".
7369         (df_add_problem): Make param const.
7370
7371 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7372
7373         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
7374         inter-unit moves to/from vector registers are enabled.  Do not disable
7375         for TARGET_MMX.
7376
7377 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7378
7379         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
7380         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
7381         #define to...
7382         (enum df_problem_id): ...this new enum.
7383         (struct df_problem): Convert field "id" from "int" to
7384         enum df_problem_id.
7385
7386 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7387
7388         * rtl.def: Update comment for "things in the instruction chain" to
7389         reflect the removal of the leading "i" field for INSN_UID in
7390         r210360.  Fix bogus apostrophe.
7391
7392 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7393
7394         * config/i386/i386.md
7395         (lea arith with mem operand + setcc peephole2): Set operator mode.
7396
7397 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7398
7399         PR target/70155
7400         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
7401         (dimode_scalar_to_vector_candidate_p): This.
7402         (timode_scalar_to_vector_candidate_p): New function.
7403         (scalar_to_vector_candidate_p): Likewise.
7404         (timode_check_non_convertible_regs): Likewise.
7405         (timode_remove_non_convertible_regs): Likewise.
7406         (remove_non_convertible_regs): Likewise.
7407         (remove_non_convertible_regs): Renamed to ...
7408         (dimode_remove_non_convertible_regs): This.
7409         (scalar_chain::~scalar_chain): Make it virtual.
7410         (scalar_chain::compute_convert_gain): Make it pure virtual.
7411         (scalar_chain::mark_dual_mode_def): Likewise.
7412         (scalar_chain::convert_insn): Likewise.
7413         (scalar_chain::convert_registers): Likewise.
7414         (scalar_chain::add_to_queue): Make it protected.
7415         (scalar_chain::emit_conversion_insns): Likewise.
7416         (scalar_chain::replace_with_subreg): Likewise.
7417         (scalar_chain::replace_with_subreg_in_insn): Likewise.
7418         (scalar_chain::convert_op): Likewise.
7419         (scalar_chain::convert_reg): Likewise.
7420         (scalar_chain::make_vector_copies): Likewise.
7421         (scalar_chain::convert_registers): New pure virtual function.
7422         (class dimode_scalar_chain): New class.
7423         (class timode_scalar_chain): Likewise.
7424         (scalar_chain::mark_dual_mode_def): Renamed to ...
7425         (dimode_scalar_chain::mark_dual_mode_def): This.
7426         (timode_scalar_chain::mark_dual_mode_def): New function.
7427         (timode_scalar_chain::convert_insn): Likewise.
7428         (dimode_scalar_chain::convert_registers): Likewise.
7429         (scalar_chain::compute_convert_gain): Renamed to ...
7430         (dimode_scalar_chain::compute_convert_gain): This.
7431         (scalar_chain::replace_with_subreg): Renamed to ...
7432         (dimode_scalar_chain::replace_with_subreg): This.
7433         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
7434         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
7435         (scalar_chain::make_vector_copies): Renamed to ...
7436         (dimode_scalar_chain::make_vector_copies): This.
7437         (scalar_chain::convert_reg): Renamed to ...
7438         (dimode_scalar_chain::convert_reg ): This.
7439         (scalar_chain::convert_op): Renamed to ...
7440         (dimode_scalar_chain::convert_op): This.
7441         (scalar_chain::convert_insn): Renamed to ...
7442         (dimode_scalar_chain::convert_insn): This.
7443         (scalar_chain::convert): Call convert_registers.
7444         (convert_scalars_to_vector): Change to scalar_chain pointer to
7445         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
7446         in 32-bit mode.  Delete scalar_chain pointer.  Call
7447         free_dominance_info in 64-bit mode.
7448         (pass_stv::gate): Remove TARGET_64BIT check.
7449         (ix86_option_override): Put the 64-bit STV pass before the CSE
7450         pass.
7451
7452 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7453
7454         * dwarf2out.h (struct dw_loc_descr_node): Remove the
7455         dw_loc_frame_offset field.
7456         * dwarf2out.c (new_loc_descr): Likewise.
7457         (resolve_args_picking_1): Turn the VISITED hash set into a
7458         FRAME_OFFSET hash map. Use it to associate a frame offset to
7459         visited nodes. Remove uses of the CHECKING_P macro.
7460         (resolve_args_picking): Update call to resolve_args_picking_1.
7461
7462 2016-04-27  Martin Liska  <mliska@suse.cz>
7463
7464         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
7465         (free_loop_data): Release vuses of groups.
7466
7467 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
7468
7469         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
7470         instead of redundant use_id and boolean have_use_for.
7471         (struct iv_use): Change sub_id into group_id.  Remove field next.
7472         Move fields: related_cands, n_map_members, cost_map and selected
7473         to ...
7474         (struct iv_group): ... here.  New structure.
7475         (struct iv_common_cand): Use structure declaration directly.
7476         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
7477         (MAX_CONSIDERED_USES): Rename macro to ...
7478         (MAX_CONSIDERED_GROUPS): ... here.
7479         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
7480         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
7481         (dump_uses): Rename to ...
7482         (dump_groups): ... here.  Update all uses.
7483         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
7484         (find_induction_variables): Refactor format of dump information.
7485         (record_sub_use): Delete.
7486         (record_use): Update all uses.
7487         (record_group): New function.
7488         (record_group_use, find_interesting_uses_op): Call above functions.
7489         Update all uses.
7490         (find_interesting_uses_cond): Ditto.
7491         (group_compare_offset): New function.
7492         (split_all_small_groups): Rename to ...
7493         (split_small_address_groups_p): ... here.  Update all uses.
7494         (split_address_groups):  Update all uses.
7495         (find_interesting_uses): Refactor format of dump information.
7496         (add_candidate_1): Update all uses.  Remove redundant check on iv,
7497         base and step.
7498         (add_candidate, record_common_cand): Remove redundant assert.
7499         (add_iv_candidate_for_biv): Update use.
7500         (add_iv_candidate_derived_from_uses): Update all uses.
7501         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
7502         (alloc_use_cost_map): Ditto.
7503         (set_use_iv_cost, get_use_iv_cost): Rename to ...
7504         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
7505         (determine_use_iv_cost_generic): Ditto.
7506         (determine_group_iv_cost_generic): Ditto.
7507         (determine_use_iv_cost_address): Ditto.
7508         (determine_group_iv_cost_address): Ditto.
7509         (determine_use_iv_cost_condition): Ditto.
7510         (determine_group_iv_cost_cond): Ditto.
7511         (determine_use_iv_cost): Ditto.
7512         (determine_group_iv_cost): Ditto.
7513         (set_autoinc_for_original_candidates): Update all uses.
7514         (find_iv_candidates): Update all uses.  Refactor dump information.
7515         (determine_use_iv_costs): Ditto.
7516         (determine_iv_costs): Ditto.
7517         (iv_ca_cand_for_use): Rename to ...
7518         (iv_ca_cand_for_group): ... here.  Update all uses.
7519         (iv_ca_add_use, iv_ca_add_group): Ditto.
7520         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
7521         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
7522         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
7523         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
7524         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
7525         (create_new_iv, adjust_iv_update_pos): Ditto.
7526         (rewrite_use_address): Delete.
7527         (rewrite_use_address_1): Rename to ...
7528         (rewrite_use_address): ... here.
7529         (rewrite_use_compare): Update all uses.
7530         (rewrite_use): Delete.
7531         (rewrite_uses): Rename to ...
7532         (rewrite_groups): ... here.  Update all uses.
7533         (remove_unused_ivs, free_loop_data): Update all uses.
7534         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
7535
7536 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7537
7538         * rtlanal.c (nonzero_bits1): Convert preprocessor check
7539         for WORD_REGISTER_OPERATIONS to runtime check.
7540
7541 2016-04-27  Richard Biener  <rguenther@suse.de>
7542
7543         PR ipa/70760
7544         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
7545         aggregate_value_p to determine if a function result is
7546         returned by reference.
7547         (ipa_pta_execute): Functions having their address taken are
7548         not automatically nonlocal.
7549
7550 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7551
7552         PR sanitizer/70683
7553         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
7554         * fold-const.c (operand_equal_p): If flag_checking and
7555         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
7556         and if it returns non-zero, assert iterative_hash_expr on both
7557         args is the same.
7558
7559 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7560
7561         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
7562
7563 2016-04-27  Nick Clifton  <nickc@redhat.com>
7564
7565         PR middle-end/49889
7566         * varasm.c (merge_weak): Generate an error if an attempt is made
7567         to convert a non-weak static function into a weak, public function.
7568
7569 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7570
7571         * params.def (MAX_PARTITION_SIZE): New param.
7572         * doc/invoke.texi: Document lto-max-partition.
7573
7574 2016-04-27  Richard Biener  <rguenther@suse.de>
7575
7576         PR ipa/70785
7577         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
7578         function cummulating used_from_other_partition, externally_visible
7579         and force_output from aliases.
7580         (refered_from_nonlocal_var): Likewise.
7581         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
7582         node flags properly.
7583
7584 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7585
7586         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
7587         (-Wmemset-elt-size): New item.
7588
7589 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7590
7591         PR ada/70759
7592         * stor-layout.h (internal_reference_types): Delete.
7593         * stor-layout.c (reference_types_internal): Likewise.
7594         (internal_reference_types): Likewise.
7595         (layout_type) <REFERENCE_TYPE>: Adjust.
7596
7597 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7598
7599         PR sanitizer/70683
7600         * tree.h (inchash::add_expr): Add FLAGS argument.
7601         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
7602         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
7603         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
7604         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
7605         if swap_tree_comparison (code) is smaller than code, hash that
7606         and arguments in the other order.  Hash CONVERT_EXPR the same
7607         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
7608         of ADDR_EXPR of decl as the decl itself.  Add or remove
7609         OEP_ADDRESS_OF from recursive flags as needed.  For
7610         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
7611         operands commutatively and only the third one normally.
7612         For internal CALL_EXPR hash in CALL_EXPR_IFN.
7613
7614 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7615
7616         * config/rtems.h (LIB_SPEC): Add -latomic.
7617
7618 2016-04-27  Joel Sherrill  <joel@rtems.org>
7619
7620         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
7621         xilink.ld and flags not relevant to RTEMS.
7622
7623 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
7624
7625         * toplev.c (backend_init_target): Avoid calling init_reload when using
7626         LRA.
7627
7628 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
7629
7630         * reorg.c (try_merge_delay_insns): Declare i and j inside the
7631         for loops rather than one for the whole function.
7632
7633 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7634
7635         * match.pd (X + CST CMP X): New transformation.
7636
7637 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7638
7639         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
7640         * fold-const.c (fold_binary_loc): Remove 2 transformations
7641         superseded by match.pd.
7642         * match.pd (x+x -> x*2): Generalize to integers.
7643
7644 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
7645
7646         * config/i386/i386.md (operation on memory peephole): Duplicate an
7647         existing peephole and adapt it to match lea rather than an operation
7648         that clobbers CC.
7649
7650         PR rtl-optimization/57193
7651         * opts.c (default_options_table): Add OPT_frename_registers at -O2
7652         and above.
7653         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
7654
7655 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
7656
7657         * tree-if-conv.c (any_pred_load_store): New static variable.
7658         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
7659         any_pred_load_store instead of and_mask_load_store.
7660         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
7661         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
7662         (combine_blocks, tree_if_conversion): Ditto.
7663
7664 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
7665
7666         PR tree-optimization/70771
7667         PR tree-optimization/70775
7668         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
7669         virtual PHI nodes.  Delete parameter.
7670         (if_convertible_loop_p_1): Delete argument to above function.
7671         (predicate_all_scalar_phis): Delete code handling single-argument
7672         PHIs.
7673         (tree_if_conversion): Mark and update virtual SSA.
7674
7675 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7676
7677         PR target/61821
7678         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
7679         (x86_elf_aligned_common): Rename to ...
7680         (x86_elf_aligned_decl_common): ... this.
7681         Add decl arg.  Switch to .lbss for largecomm object.  Use
7682         LARGECOMM_SECTION_ASM_OP.
7683         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
7684         renaming.
7685         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
7686         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
7687         Pass new decl arg.
7688         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7689         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
7690
7691 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7692
7693         PR target/59407
7694         * config/i386/i386.c (SECTION_LARGE): Define.
7695         (x86_64_elf_select_section): Set it for large data/bss sections.
7696         Only clear SECTION_WRITE for .lrodata.
7697         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
7698         data/bss sections.
7699         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
7700         * varasm.c (default_elf_asm_named_section): Grow flagchars.
7701         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
7702         SECTION_MACH_DEP.
7703         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
7704         * doc/tm.texi: Regenerate.
7705
7706 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR bootstrap/70704
7709         * configure.ac (--enable-checking): Document extra flag, for
7710         non-release builds default to --enable-checking=yes,extra.
7711         If misc checking and extra checking, define CHECKING_P to 2 instead
7712         of 1.
7713         * common.opt (fchecking=): Add.
7714         * doc/invoke.texi (-fchecking=): Document.
7715         * doc/install.texi: Document --enable-checking changes.
7716         * configure: Regenerated.
7717         * config.in: Regenerated.
7718
7719 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
7722         attribute instead of which_alternative.
7723         * config/i386/sse.md (*mov<mode>_internal): Ditto.
7724         Use EXT_REX_SSE_REG_P where appropriate.
7725
7726 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7727
7728         * config/i386/predicates.md (const0_operand): Do not match
7729         const_wide_int code.
7730         (const1_operand): Ditto.
7731
7732 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7733
7734         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
7735         for SSE constm1 operands and TARGET_AVX512VL.
7736         (*movti_internal): Ditto.
7737         (*mov<mode>_or): Use constm1_operand predicate.
7738         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
7739         for SSE vector_all_ones operands and TARGET_AVX512VL.
7740         * config/i386/predicates.md (constm1_operand): New predicate.
7741         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
7742         emission of constant -1 load.
7743
7744 2016-04-25  Jason Merrill  <jason@redhat.com>
7745
7746         * gdbinit.in: Skip is-a.h.
7747
7748         * attribs.c (register_scoped_attributes): Fix logic.
7749         * attribs.h: Declare register_scoped_attributes.
7750
7751 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7752
7753         * config/rs6000/rs6000-builtin.def: Correct pasto error for
7754         stxvd2x and stxvw4x built-in functions.
7755
7756 2016-04-25  DJ Delorie  <dj@redhat.com>
7757
7758         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
7759         (ashrhi3): Likewise.
7760         (lshrhi3): Likewise.
7761
7762 2016-04-25  Richard Biener  <rguenther@suse.de>
7763
7764         PR tree-optimization/70780
7765         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
7766         wasn't visited yet.
7767         (compute_antic): Mark blocks with abnormal preds as visited as
7768         they have a final empty antic-in solution already.
7769
7770 2016-04-25  Michael Collison  <michael.collison@linaro.org>
7771
7772         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
7773
7774 2016-04-25  Michael Collison  <michael.collison@linaro.org>
7775
7776         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
7777         mode is VQI to improve mixed mode vectorization.
7778         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
7779         define_insn to match low half of signed vaddw.
7780         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
7781         define_insn to match high half of signed vaddw.
7782         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
7783         define_insn to match low half of unsigned vaddw.
7784         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
7785         define_insn to match high half of unsigned vaddw.
7786         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
7787         (arm_simd_check_vect_par_cnst_half_p): Likewise.
7788         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
7789         for new function.
7790         (arm_simd_check_vect_par_cnst_half_p): Likewise.
7791         * config/arm/predicates.md (vect_par_constant_high): Support
7792         big endian and simplify by calling
7793         arm_simd_check_vect_par_cnst_half
7794         (vect_par_constant_low): Likewise.
7795
7796 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7797
7798         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
7799         predicate for operand 2.
7800
7801 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
7802             H.J. Lu  <hongjiu.lu@intel.com>
7803
7804         * config/i386/i386-protos.h (standard_sse_constant_p): Add
7805         machine_mode argument.
7806         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
7807         constm1_rtx operands.  For VOIDmode constants, get mode from
7808         pred_mode.  Check mode size if the mode is supported by ABI.
7809         (standard_sse_constant_opcode): Do not use standard_constant_p.
7810         Strictly check ABI support for all-ones operands.
7811         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
7812         immediates. Update calls to standard_sse_constant_p.
7813         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
7814         (ix86_rtx_costs): Ditto.
7815         * config/i386/i386.md (*movxi_internal_avx512f): Use
7816         nonimmediate_or_sse_const_operand instead of vector_move_operand.
7817         Use (v,BC) alternative instead of (v,C). Use register_operand
7818         checks instead of MEM_P.
7819         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
7820         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
7821         isa attribute.  Use register_operand checks instead of MEM_P.
7822         (*movti_internal): Use nonimmediate_or_sse_const_operand for
7823         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
7824         alternative and corresponding sse2 isa attribute.
7825         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
7826         to standard_sse_constant_p.
7827         (FP constant splitters): Ditto.
7828         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
7829         (C): Ditto.
7830         * config/i386/predicates.md (constm1_operand): Remove.
7831         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
7832         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
7833         vector_all_ones_operand instead of constm1_operand.
7834
7835 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7836
7837         * print-rtl.c (print_rtx_insn_vec): New function.
7838         * print-rtl.h: New prototype.
7839         * store-motion.c (struct st_expr): Make avail_stores a vector.
7840         (st_expr_entry): Adjust.
7841         (free_st_expr_entry): Likewise.
7842         (print_store_motion_mems): Likewise.
7843         (find_moveable_store): Likewise.
7844         (compute_store_table): Likewise.
7845         (delete_store): Likewise.
7846         (build_store_vectors): Likewise.
7847
7848 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7849
7850         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
7851
7852 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7853
7854         * vec.h (vec_safe_contains): New function.
7855         (vec::contains): Likewise.
7856         (vec::begin): Likewise.
7857         (vec::end): Likewise.
7858
7859 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
7860
7861         PR sanitizer/70712
7862         * cfgexpand.c (expand_stack_vars): Fix typo.
7863
7864 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7865
7866         * system.h (list, map, set, vector): Include conditionally.
7867         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
7868         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
7869         * ipa-icf.c (INCLUDE_LIST): Define.
7870         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
7871         * config/sh/sh.c (INCLUDE_VECTOR): Define.
7872         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
7873         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
7874         * cp/logic.cc (INCLUDE_LIST): Define.
7875         * fortran/trans-common.c (INCLUDE_MAP): Define.
7876
7877 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7878
7879         * auto-profile.c: Remove <string.h> include.
7880         * ipa-icf-gimple.c: Remove <list> include.
7881         * diagnostic.c: Remove <new> include.
7882         * genmatch.c: Likewise.
7883         * pretty-print.c: Likewise.
7884         * toplev.c: Likewise
7885         * c/c-objc-common.c: Likewise.
7886         * cp/error.c: Likewise.
7887         * fortran/error.c: Likewise.
7888
7889 2016-04-22  Richard Biener  <rguenther@suse.de>
7890
7891         * lto-streamer-in.c (input_ssa_names): Do not allocate
7892         GIMPLE_NOP for all SSA names.
7893         * lto-streamer-out.c (output_ssa_names): Do not output
7894         SSA names that should have been released.
7895
7896 2016-04-22  Richard Biener  <rguenther@suse.de>
7897
7898         PR tree-optimization/70740
7899         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
7900         VDEF.
7901
7902 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
7903
7904         PR target/70750
7905         * config/i386/predicates.md (call_insn_operand): Replace
7906         sibcall_memory_operand with memory_operand.
7907
7908 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
7909
7910         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
7911         has_single_use() tests.
7912         (register_edge_assert_for_1): Likewise.
7913         (find_assert_locations_1): Check the liveness bitmap instead of
7914         checking has_single_use().
7915
7916 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
7917
7918         PR target/70728
7919         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
7920         Extract AVX-512BW constraint from AVX.
7921
7922 2016-04-21  Richard Biener  <rguenther@suse.de>
7923
7924         PR tree-optimization/70725
7925         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
7926         for phi_convertible_by_degenerating_args.
7927         (predicate_all_scalar_phis): Handle single-argument PHIs.
7928
7929 2016-04-21  Richard Biener  <rguenther@suse.de>
7930
7931         PR middle-end/70747
7932         * fold-const.c (fold_comparison): Return properly typed
7933         constant boolean.
7934
7935 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
7936
7937         PR tree-optimization/70715
7938         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
7939         after expanding BASE using expand_simple_operations.
7940
7941 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
7942
7943         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
7944         New transformations.
7945
7946 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
7947
7948         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
7949
7950 2016-04-20  Jan Hubicka  <jh@suse.cz>
7951
7952         * ipa-inline.c (can_inline_edge_p): Pass caller info to
7953         ultiimate_alias_target.
7954         (update_callee_keys): Likewise.
7955         (lookup_recursive_calls): Likewise.
7956         (speculation_useful_p): Likewise.
7957
7958 2016-04-20  Jan Hubicka  <jh@suse.cz>
7959
7960         PR ipa/70018
7961         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
7962         (set_nothrow_flag_1): ... this; handle interposition correctly;
7963         recurse on aliases and thunks.
7964         (cgraph_node::set_nothrow_flag): New.
7965         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
7966         functions compiled with non-call exceptions that binds to current
7967         def.
7968         (propagate_nothrow): Be safe WRT interposition.
7969         * cgraph.h (set_nothrow_flag): Update prototype.
7970
7971 2016-04-18  Jan Hubicka  <jh@suse.cz>
7972
7973         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7974         max_loop_iterations_int.
7975         (tree_unswitch_outer_loop): Likewise.
7976
7977 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
7978
7979         PR tree-optimization/69489
7980         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
7981         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
7982         Revise dump message.
7983         (if_convertible_bb_p): Remove check on edge count of basic block's
7984         predecessors.
7985
7986 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
7987
7988         PR tree-optimization/56625
7989         PR tree-optimization/69489
7990         * tree-data-ref.h (DR_INNERMOST): New macro.
7991         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
7992         hashing struct innermost_loop_behavior.
7993         (ref_DR_map): Remove.
7994         (innermost_DR_map): New map.
7995         (baseref_DR_map): Revise comment.
7996         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
7997         to innermost_DR_map accroding to its innermost loop behavior.
7998         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
7999         to its innermost loop behavior.
8000         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8001         Add initialization for innermost_DR_map.  Record memory reference
8002         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8003         have innermost loop behavior.
8004         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
8005         innermost_DR_map.
8006
8007 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8008
8009         * config/i386/i386.md (*lea<mode>_general_1): Rename from
8010         *lea_general_1.  Use explicit SWI12 mode interator.
8011         (*lea<mode>_general_2): Rename from *lea_general_2.
8012         Use explicit SWI12 mode interator.
8013         (*lea<mode>_general_3): Rename from *lea_general_3.
8014         Use explicit SWI12 mode interator.
8015         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8016         Use explicit SWI12 mode interator.
8017         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8018         Use explicit SWI48 mode interator.
8019
8020 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8021
8022         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8023         Short-cut unaligned load and store cases.  Handle all integer
8024         vector modes.
8025         (ix86_expand_vector_move_misalign): Short-cut unaligned load
8026         and store cases.  Call ix86_avx256_split_vector_move_misalign
8027         directly without checking mode class.
8028
8029 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8030             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8031
8032         PR target/64971
8033         * config/aarch64/aarch64.md (sibcall): Force call
8034         address to be DImode for ILP32.
8035         (sibcall_value): Likewise.
8036
8037 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8038
8039         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8040
8041 2016-04-20  Richard Biener  <rguenther@suse.de>
8042
8043         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8044         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8045         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8046         (maybe_push_res_to_seq): Adjust.
8047         * gimple-fold.c (maybe_build_generic_op): Likewise.
8048
8049 2016-04-20  Marek Polacek  <polacek@redhat.com>
8050
8051         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8052         rather than true.
8053
8054 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8055
8056         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8057         use kmovw to support AVX512F target.
8058
8059 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8060
8061         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8062
8063 2016-04-20  Marek Polacek  <polacek@redhat.com>
8064
8065         PR tree-optimization/70725
8066         * tree-if-conv.c (is_false_predicate): New function.
8067         (predicate_mem_writes): Use it.
8068
8069 2016-04-20  Richard Biener  <rguenther@suse.de>
8070
8071         PR tree-optimization/70726
8072         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8073         shift amounts from a pattern stmt operand.
8074
8075 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8076
8077         PR target/70674
8078         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8079         stack_restore_from_fpr pattern when restoring r15.
8080         (s390_optimize_prologue): Strip away the memory barrier in the
8081         parallel when trying to get rid of restore insns.
8082         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8083         definition for loading the stack pointer from an FPR.  Compared to
8084         the normal move insn this pattern includes a full memory barrier.
8085
8086 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8087
8088         PR middle-end/70680
8089         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8090         implicitly linear or lastprivate iterator on the outer context.
8091
8092 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8093
8094         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8095         alignment check.
8096         * config/i386/i386.md (ssememalign): Removed.
8097         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8098
8099 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8100
8101         PR target/69201
8102         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8103         const short * to __builtin_ia32_loaddquhi512_mask.
8104         (_mm512_maskz_loadu_epi16): Likewise.
8105         (_mm512_mask_storeu_epi16): Pass short * to
8106         __builtin_ia32_storedquhi512_mask.
8107         (_mm512_mask_loadu_epi8): Pass const char * to
8108         __builtin_ia32_loaddquqi512_mask.
8109         (_mm512_maskz_loadu_epi8): Likewise.
8110         (_mm512_mask_storeu_epi8): Pass char * to
8111         __builtin_ia32_storedquqi512_mask.
8112         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8113         const double * to __builtin_ia32_loadupd512_mask.
8114         (_mm512_mask_loadu_pd): Likewise.
8115         (_mm512_maskz_loadu_pd): Likewise.
8116         (_mm512_storeu_pd): Pass double * to
8117         __builtin_ia32_storeupd512_mask.
8118         (_mm512_mask_storeu_pd): Likewise.
8119         (_mm512_loadu_ps): Pass const float * to
8120         __builtin_ia32_loadups512_mask.
8121         (_mm512_mask_loadu_ps): Likewise.
8122         (_mm512_maskz_loadu_ps): Likewise.
8123         (_mm512_storeu_ps): Pass float * to
8124         __builtin_ia32_storeups512_mask.
8125         (_mm512_mask_storeu_ps): Likewise.
8126         (_mm512_mask_loadu_epi64): Pass const long long * to
8127         __builtin_ia32_loaddqudi512_mask.
8128         (_mm512_maskz_loadu_epi64): Likewise.
8129         (_mm512_mask_storeu_epi64): Pass long long *
8130         to __builtin_ia32_storedqudi512_mask.
8131         (_mm512_loadu_si512): Pass const int * to
8132         __builtin_ia32_loaddqusi512_mask.
8133         (_mm512_mask_loadu_epi32): Likewise.
8134         (_mm512_maskz_loadu_epi32): Likewise.
8135         (_mm512_storeu_si512): Pass int * to
8136         __builtin_ia32_storedqusi512_mask.
8137         (_mm512_mask_storeu_epi32): Likewise.
8138         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8139         char * to __builtin_ia32_storedquqi256_mask.
8140         (_mm_mask_storeu_epi8): Likewise.
8141         (_mm256_mask_loadu_epi16): Pass const short * to
8142         __builtin_ia32_loaddquhi256_mask.
8143         (_mm256_maskz_loadu_epi16): Likewise.
8144         (_mm_mask_loadu_epi16): Pass const short * to
8145         __builtin_ia32_loaddquhi128_mask.
8146         (_mm_maskz_loadu_epi16): Likewise.
8147         (_mm256_mask_loadu_epi8): Pass const char * to
8148         __builtin_ia32_loaddquqi256_mask.
8149         (_mm256_maskz_loadu_epi8): Likewise.
8150         (_mm_mask_loadu_epi8): Pass const char * to
8151         __builtin_ia32_loaddquqi128_mask.
8152         (_mm_maskz_loadu_epi8): Likewise.
8153         (_mm256_mask_storeu_epi16): Pass short * to.
8154         __builtin_ia32_storedquhi256_mask.
8155         (_mm_mask_storeu_epi16): Pass short * to.
8156         __builtin_ia32_storedquhi128_mask.
8157         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8158         const double * to __builtin_ia32_loadupd256_mask.
8159         (_mm256_maskz_loadu_pd): Likewise.
8160         (_mm_mask_loadu_pd): Pass onst double * to
8161         __builtin_ia32_loadupd128_mask.
8162         (_mm_maskz_loadu_pd): Likewise.
8163         (_mm256_mask_storeu_pd): Pass double * to
8164         __builtin_ia32_storeupd256_mask.
8165         (_mm_mask_storeu_pd): Pass double * to
8166         __builtin_ia32_storeupd128_mask.
8167         (_mm256_mask_loadu_ps): Pass const float * to
8168         __builtin_ia32_loadups256_mask.
8169         (_mm256_maskz_loadu_ps): Likewise.
8170         (_mm_mask_loadu_ps): Pass const float * to
8171         __builtin_ia32_loadups128_mask.
8172         (_mm_maskz_loadu_ps): Likewise.
8173         (_mm256_mask_storeu_ps): Pass float * to
8174         __builtin_ia32_storeups256_mask.
8175         (_mm_mask_storeu_ps): ass float * to
8176         __builtin_ia32_storeups128_mask.
8177         (_mm256_mask_loadu_epi64): Pass const long long * to
8178         __builtin_ia32_loaddqudi256_mask.
8179         (_mm256_maskz_loadu_epi64): Likewise.
8180         (_mm_mask_loadu_epi64): Pass const long long * to
8181         __builtin_ia32_loaddqudi128_mask.
8182         (_mm_maskz_loadu_epi64): Likewise.
8183         (_mm256_mask_storeu_epi64): Pass long long * to
8184         __builtin_ia32_storedqudi256_mask.
8185         (_mm_mask_storeu_epi64): Pass long long * to
8186         __builtin_ia32_storedqudi128_mask.
8187         (_mm256_mask_loadu_epi32): Pass const int * to
8188         __builtin_ia32_loaddqusi256_mask.
8189         (_mm256_maskz_loadu_epi32): Likewise.
8190         (_mm_mask_loadu_epi32): Pass const int * to
8191         __builtin_ia32_loaddqusi128_mask.
8192         (_mm_maskz_loadu_epi32): Likewise.
8193         (_mm256_mask_storeu_epi32): Pass int * to
8194         __builtin_ia32_storedqusi256_mask.
8195         (_mm_mask_storeu_epi32): Pass int * to
8196         __builtin_ia32_storedqusi128_mask.
8197         * config/i386/i386-builtin-types.def (PCSHORT): New.
8198         (PINT64): Likewise.
8199         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8200         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8201         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8202         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8203         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8204         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8205         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8206         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8207         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8208         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8209         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8210         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8211         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8212         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8213         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8214         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8215         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8216         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8217         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8218         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8219         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8220         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8221         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8222         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8223         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8224         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8225         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8226         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8227         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8228         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8229         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8230         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8231         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8232         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8233         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8234         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8235         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8236         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8237         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8238         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8239         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8240         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8241         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8242         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8243         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8244         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8245         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8246         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8247         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8248         use UNSPEC_STOREU.
8249         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8250         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8251         load nor store.
8252         (ix86_expand_vector_move_misalign): Likewise.
8253         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8254         to scalar function prototype for unaligned load/store builtins.
8255         (ix86_expand_special_args_builtin): Updated.
8256         * config/i386/sse.md (UNSPEC_LOADU): Removed.
8257         (UNSPEC_STOREU): Likewise.
8258         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
8259         (VI_ULOADSTORE_F_AVX512VL): Likewise.
8260         (ssescalarsize): Handle V4TI, V2TI and V1TI.
8261         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8262         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8263         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
8264         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
8265         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
8266         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
8267         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
8268         (<avx512>_storedqu<mode>_mask): Likewise.
8269         (*sse4_2_pcmpestr_unaligned): Likewise.
8270         (*sse4_2_pcmpistr_unaligned): Likewise.
8271         (*mov<mode>_internal): Renamed to ...
8272         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
8273         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
8274         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
8275         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
8276
8277 2016-04-19  Richard Biener  <rguenther@suse.de>
8278
8279         PR tree-optimization/70171
8280         * tree-ssa-phiprop.c: Include stor-layout.h.
8281         (phiprop_insert_phi): Handle the aggregate copy case.
8282         (propagate_with_phi): Likewise.
8283
8284 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
8285
8286         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
8287         instead of simplify_gen_subreg (... , 0).
8288         (ix86_delegitimize_address): Ditto.
8289         (ix86_split_divmod): Ditto.
8290         (ix86_split_copysign_const): Ditto.
8291         (ix86_split_copysign_var): Ditto.
8292         (ix86_expand_args_builtin): Ditto.
8293         (ix86_expand_round_builtin): Ditto.
8294         (ix86_expand_special_args_builtin): Ditto.
8295         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
8296         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
8297         (udivmodqi4): Ditto.
8298         (absneg splitters): Ditto.
8299         (*jcc_bt<mode>_1): Ditto.
8300
8301 2016-04-19  Richard Biener  <rguenther@suse.de>
8302
8303         PR tree-optimization/70724
8304         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
8305         restoring out from ...
8306         (free_scc_vn): ... here.
8307         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
8308         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
8309         tail merging.
8310         (pass_fre::execute): Restore SSA info.
8311
8312 2016-04-19  Richard Biener  <rguenther@suse.de>
8313
8314         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
8315         * gimple-walk.c (walk_gimple_op): Initialize it.
8316         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
8317         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
8318         remapping SSA names of defs.
8319         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
8320         adjustment.
8321
8322 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8323
8324         PR middle-end/70689
8325         * lra-constraints.c (equiv_substition_p): New.
8326         (process_alt_operands): Use it.
8327         (swap_operands): Swap it.
8328         (curr_insn_transform): Update it.
8329
8330 2016-04-18  Michael Matz  <matz@suse.de>
8331
8332         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
8333         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
8334         * tree-core.h (tree_type_common.align): Use bit-field.
8335         (tree_type_common.spare): New.
8336         (tree_decl_common.off_align): Make smaller.
8337         (tree_decl_common.align): Use bit-field.
8338
8339         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
8340         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
8341         (scan_sharing_clauses): Ditto.
8342         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8343         (omp_finish_file): Ditto.
8344         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
8345         (layout_decl): Ditto.
8346         (relayout_decl): Ditto.
8347         (finalize_record_size): Use SET_TYPE_ALIGN.
8348         (finalize_type_size): Ditto.
8349         (finish_builtin_struct): Ditto.
8350         (layout_type): Ditto.
8351         (initialize_sizetypes): Ditto.
8352         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
8353         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
8354         (lookup_field_for_decl): Use SET_DECL_ALIGN.
8355         (get_chain_field): Ditto.
8356         (get_trampoline_type): Ditto.
8357         (get_nl_goto_field): Ditto.
8358         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
8359         SET_DECL_ALIGN.
8360         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
8361         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
8362         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8363         (build_qualified_type): Use SET_TYPE_ALIGN.
8364         (build_aligned_type, build_range_type_1): Ditto.
8365         (build_atomic_base): Ditto.
8366         (build_common_tree_nodes): Ditto.
8367         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
8368         (expand_one_stack_var_at): Ditto.
8369         * coverage.c (build_var): Use SET_DECL_ALIGN.
8370         * except.c (init_eh): Ditto.
8371         * function.c (assign_parm_setup_block): Ditto.
8372         * symtab.c (increase_alignment_1): Ditto.
8373         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
8374         * tree-vect-stmts.c (ensure_base_align): Ditto.
8375         * varasm.c (align_variable): Ditto.
8376         (assemble_variable): Ditto.
8377         (build_constant_desc): Ditto.
8378         (output_constant_def_contents): Ditto.
8379
8380         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
8381         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
8382         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
8383         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
8384         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
8385
8386 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
8387
8388         PR target/70708
8389         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
8390         replace %vmovsd with "%vmovq".
8391         (vec_concatv2df): Likewise.
8392
8393 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
8394
8395         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
8396         (*vec_extractv2si_0): Ditto.
8397         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
8398         (zero_extended_scalar_load_operand splitters): Ditto.
8399         (vec_extract splitters): Ditto.
8400         (*vec_extractv4si_0_zext): Ditto.
8401         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
8402         and lowpart_subreg.
8403         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
8404         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
8405         (*sse4_1_extractps): Use lowpart_subreg.
8406         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
8407
8408 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8409
8410         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
8411         gld requirements.
8412         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
8413         Mention Solaris 11 packaging changes.
8414         Update gas and gld requirements.
8415         Remove reference to pre-Solaris 10 bug.
8416         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
8417         systems and bugs.
8418         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
8419         with cc.
8420
8421 2016-04-17  Jan Hubicka  <jh@suse.cz>
8422
8423         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
8424         max_loop_iterations_int.
8425
8426 2016-04-18  Richard Biener  <rguenther@suse.de>
8427
8428         PR tree-optimization/43434
8429         * tree-ssa-structalias.c (struct vls_data): New.
8430         (visit_loadstore): Handle all pointer-based accesses.
8431         (compute_dependence_clique): Compute a bitmap of restrict tags
8432         assigned bases and pass it to visit_loadstore.
8433
8434 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
8435
8436         PR target/70711
8437         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
8438         armv8.1-a and armv8.1-a+crc.
8439
8440 2016-04-18  Richard Biener  <rguenther@suse.de>
8441
8442         PR tree-optimization/70701
8443         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
8444         references after translating through a memcpy.
8445
8446 2016-04-18  Richard Biener  <rguenther@suse.de>
8447
8448         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
8449         (compute_antic): ... here.  For partial antic use regular
8450         postorder and scrap iteration.
8451         (compute_partial_antic_aux): Remove unused return value.
8452         (init_pre): Do not allocate postorder.
8453         (fini_pre): Do not free postorder.
8454
8455 2016-04-18  Richard Biener  <rguenther@suse.de>
8456
8457         PR middle-end/37870
8458         * expmed.c (extract_bit_field_1): Remove broken case
8459         using a wider MODE_INT mode.
8460
8461 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
8462
8463         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
8464         unless compiling with at least GCC-4.8.
8465
8466 2016-04-17  Jan Hubicka  <jh@suse.cz>
8467
8468         PR bootstrap/70706
8469         * graphite.c (graphite_finalize): Update call to
8470         tree_estimate_probability.
8471         * predict.h (tree_estimate_probability): Update prototype.
8472
8473 2016-04-17  Jan Hubicka  <jh@suse.cz>
8474
8475         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
8476         (tree_estimate_probability): Likewise.
8477         (pass_profile::execute): Update.
8478         (report_predictor_hitrates): New function.
8479         * profile.c (compute_branch_probabilities): Use it.
8480         * predict.h (report_predictor_hitrates): Declare.
8481
8482 2016-04-17  Jan Hubicka  <jh@suse.cz>
8483
8484         PR ipa/70018
8485         * cgraph.h (cgraph_node::set_const_flag,
8486         cgraph_node::set_pure_flag): Update prototype to return bool;
8487         update comment.
8488         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
8489         of interposable symbol are interposable, too.
8490         (cgraph_set_const_flag_1): Rename to ...
8491         (set_const_flag_1): ... this one; change to self recursive function
8492         instead of call_for_symbol_thunks_and_aliases. Handle correctly
8493         clearnig the flag in all variants and also virtual thunks of const
8494         functions are pure; track if any change was done.
8495         (cgraph_node::set_const_flag): Update.
8496         (struct set_pure_flag_info): New struct.
8497         (cgraph_set_pure_flag_1): Rename to ...
8498         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
8499         rather than pointer encoded flags; track if any changes was done;
8500         handle correctly clearning flag and setting flag of aliases already
8501         declared const.
8502         (cgraph_node::set_pure_flag): Update.
8503         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
8504
8505 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8506
8507         PR other/70433
8508         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
8509         backslash in label.
8510
8511 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8512
8513         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
8514         '{}<> ' as escape-for-record.
8515
8516 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8517
8518         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
8519         structure.
8520
8521 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8522
8523         PR other/70185
8524         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
8525         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
8526         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
8527         * passes.c (finish_optimization_passes): Only call
8528         finish_graph_dump_file if dfi->graph_dump_initialized.
8529         (execute_function_dump, pass_init_dump_file): Use
8530         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
8531
8532 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8533
8534         PR tree-optimization/70256
8535         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
8536         (debug_varmap): New function.
8537
8538 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8539
8540         PR other/70183
8541         * passes.c (pass_manager::register_pass): Propagate pflags.
8542
8543 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8544
8545         PR other/68875
8546         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
8547         * passes.c (pass_manager::pass_manager): Declare and init p_start in
8548         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
8549         check if it's equal to p_start.
8550         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
8551
8552 2016-04-15  Jan Hubicka  <jh@suse.cz>
8553
8554         PR ipa/70018
8555         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
8556         function does not bind to current def.
8557         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
8558         handle conservatively calls to functions that does not need to bind
8559         to current def.
8560         (check_call): Update call of worse_state.
8561         (ignore_edge_for_nothrow): Update.
8562         (ignore_edge_for_pure_const): Likewise.
8563         (propagate_pure_const): Update calls to worse_state.
8564         (skip_function_for_local_pure_const): Reformat comments.
8565
8566 2016-04-15  Jan Hubicka  <jh@suse.cz>
8567
8568         PR ipa/70018
8569         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
8570         (cgraph_node::function_symbol): Likewise.
8571         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8572         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
8573         (symtab_node::ultimate_alias_target): Add REF parameter.
8574         (symtab_node::binds_to_current_def_p): Declare.
8575         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
8576         (cgraph_node::function_symbol): Likewise.
8577         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8578         (cgraph_node::get_availability): Likewise.
8579         (cgraph_edge::binds_to_current_def_p): New inline function.
8580         (varpool_node::get_availability): Add REF parameter.
8581         (varpool_node::ultimate_alias_target): Likewise.
8582         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
8583         (symtab_node::binds_to_current_def_p): Likewise.
8584         * varpool.c (varpool_node::get_availability): Likewise.
8585
8586 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8587
8588         PR target/70662
8589         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
8590         Fix mode size check.
8591
8592 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8593
8594         * BASE-VER: Set to 7.0.0.
8595
8596 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
8597
8598         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
8599
8600 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8601
8602         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
8603         architecture revisions.
8604
8605 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
8606
8607         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
8608         * config/i386/i386.c (ix86_using_red_zone): No longer static.
8609         * config/i386/i386.md (stack decrement to push peepholes): Guard
8610         with !x86_using_red_zone ().
8611
8612 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8613
8614         PR c++/70675
8615         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
8616         to dump_generic_node.
8617         (NIY): Pass also flags to do_niy.
8618
8619 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
8620
8621         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
8622         (simd_clone_vector_of_formal_parm_types)
8623         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
8624         (simd_clone_mangle, simd_clone_create)
8625         (simd_clone_adjust_return_type, create_tmp_simd_array)
8626         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
8627         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
8628         (ipa_simd_modify_function_body, simd_clone_linear_addend)
8629         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
8630         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
8631         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
8632         * omp-simd-clone.c: ... this new file.
8633         (simd_clone_vector_of_formal_parm_types): Make it static.
8634         * Makefile.in (OBJS): Add omp-simd-clone.o.
8635
8636 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8637
8638         PR target/70662
8639         * config/i386/sse.md: Use proper memory operand modifiers.
8640
8641
8642 2016-04-15  Richard Biener  <rguenther@suse.de>
8643         Alan Modra  <amodra@gmail.com>
8644
8645         PR tree-optimization/70130
8646         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
8647         when alignment stays not the same and no not use the realign
8648         scheme then.
8649
8650 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8651
8652         PR target/70669
8653         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8654         direct move handlers for KFmode. Change TFmode handlers test from
8655         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
8656
8657 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
8658
8659         PR c++/70594
8660         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
8661         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
8662         (inlined_polymorphic_ctor_dtor_block_p): Use it.
8663         * tree-ssa-live.c (remove_unused_scope_block_p): When
8664         in_ctor_dtor_block, avoid discarding not just BLOCKs with
8665         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
8666         block_ultimate_origin is FUNCTION_DECL.
8667         (remove_unused_locals): If current_function_decl is
8668         polymorphic_ctor_dtor_p, pass initial true to
8669         remove_unused_scope_block_p' is_ctor_dtor_block.
8670
8671 2016-04-14  Martin Sebor  <msebor@redhat.com>
8672
8673         PR c++/69517
8674         PR c++/70019
8675         PR c++/70588
8676         * doc/extend.texi (Variable Length): Revert.
8677
8678 2016-04-14  Marek Polacek  <polacek@redhat.com>
8679             Jan Hubicka  <hubicka@ucw.cz>
8680
8681         PR c++/70029
8682         * tree.c (verify_type): Disable the canonical type of main variant
8683         check.
8684
8685 2016-04-14  Jason Merrill  <jason@redhat.com>
8686
8687         * cfgexpand.c, expr.c: Revert previous change.
8688
8689 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
8690
8691         PR middle-end/70643
8692         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
8693         when building a mem ref for the incoming reduction variable.
8694
8695 2016-04-14  Richard Biener  <rguenther@suse.de>
8696
8697         PR tree-optimization/70614
8698         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
8699         loop if the evolution dropped to chrec_dont_know.
8700         (interpret_condition_phi): Likewise.
8701
8702 2016-04-14  Richard Biener  <rguenther@suse.de>
8703
8704         PR tree-optimization/70623
8705         * tree-ssa-pre.c (changed_blocks): Make global ...
8706         (compute_antic): ... local here.  Move and fix worklist
8707         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
8708         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
8709         worklist handling, dump when ANTIC_IN changed.
8710         (compute_partial_antic_aux): Remove worklist handling.
8711         (init_pre): Do not compute post dominators.  Add a comment about
8712         the CFG order chosen.
8713         (fini_pre): Do not free post dominators.
8714
8715 2016-04-13  Martin Sebor  <msebor@redhat.com>
8716
8717         PR c++/69517
8718         PR c++/70019
8719         PR c++/70588
8720         * doc/extend.texi (Variable Length): Document C++ specifics.
8721
8722 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
8723
8724         PR c++/70641
8725         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
8726         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
8727         eh edges have been purged.
8728
8729         PR c++/70594
8730         * tree-sra.c (create_access_replacement,
8731         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
8732         gets fancy name.
8733         * tree-pretty-print.c (dump_fancy_name): New function.
8734         (dump_decl_name, dump_generic_node): Use it.
8735
8736 2016-04-13  Jason Merrill  <jason@redhat.com>
8737
8738         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
8739         * expr.c (expand_expr_real_1): Likewise.
8740
8741 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
8742
8743         * config/i386/i386.md (kunpckhi): Swap operands.
8744         (kunpcksi): Likewise.
8745         (kunpckdi): Likewise.
8746         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
8747         (vec_pack_trunc_<mode>): Likewise.
8748
8749 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
8750
8751         PR debug/70628
8752         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
8753
8754         PR middle-end/70633
8755         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
8756         gimplification turns some element into non-constant.
8757
8758         PR debug/70628
8759         * rtl.h (convert_memory_address_addr_space_1): New prototype.
8760         * explow.c (convert_memory_address_addr_space_1): No longer static,
8761         add NO_EMIT argument and don't call convert_modes if true, pass
8762         it down recursively, remove break after return.
8763         (convert_memory_address_addr_space): Adjust caller.
8764         * simplify-rtx.c (simplify_unary_operation_1): Call
8765         convert_memory_address_addr_space_1 instead of convert_memory_address,
8766         if it returns NULL, don't simplify.
8767
8768 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8769
8770         PR target/70630
8771         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
8772
8773 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8774
8775         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8776         Bump the upper SIMDLEN limits, so that if the return type or
8777         characteristic type if the return type is void can be passed in
8778         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
8779         allowed.
8780
8781 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8782
8783         PR target/70640
8784         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
8785         Do not use "=" constraint on an input constraint.
8786         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
8787         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
8788         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
8789         generates (neg (abs ...)) instead of (abs ...).
8790
8791 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8792
8793         PR rtl-optimization/70596
8794         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
8795         just invalidate LRA data and reset them.  Adjust dump wording.
8796
8797 2016-04-12  Martin Liska  <mliska@suse.cz>
8798
8799         Revert
8800         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
8801
8802         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
8803         estimates here.
8804         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8805         max_loop_iterations_int.
8806         (tree_unswitch_outer_loop): Likewise.
8807         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
8808         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8809
8810 2016-04-12  Tom de Vries  <tom@codesourcery.com>
8811
8812         PR tree-optimization/68756
8813         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
8814         instead of new_name.
8815
8816 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8817
8818         PR tree-optimization/70602
8819         * tree-sra.c (generate_subtree_copies): Don't write anything into
8820         constant pool decls.
8821
8822         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
8823         regardless whether there are depend clauses or not.
8824
8825 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8826
8827         PR target/70381
8828         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
8829         target attribute and pragma from changing the -mfloat128
8830         and -mfloat128-hardware options.
8831
8832         * doc/extend.texi (Additional Floating Types): Document PowerPC
8833         __float128 restrictions.
8834
8835 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8836
8837         PR target/70133
8838         * config/aarch64/driver-aarch64.c
8839         (aarch64_get_extension_string_for_isa_flags): New.
8840         (arch_extension): Rename to...
8841         (aarch64_arch_extension): ...This.
8842         (ext_to_feat_string): Rename to...
8843         (aarch64_extensions): ...This.
8844         (aarch64_core_data): Keep track of architecture extension flags.
8845         (cpu_data): Rename to...
8846         (aarch64_cpu_data): ...This.
8847         (aarch64_arch_driver_info): Keep track of architecture extension
8848         flags.
8849         (get_arch_name_from_id): Rename to...
8850         (get_arch_from_id): ...This, change return type.
8851         (host_detect_local_cpu): Update and reformat for renames, handle
8852         extensions through common infrastructure.
8853
8854 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8855
8856         PR target/70133
8857         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
8858         track of a canonical flag name.
8859         (all_extensions): Likewise.
8860         (arch_to_arch_name): Also track extension flags enabled by the arch.
8861         (all_architectures): Likewise.
8862         (aarch64_parse_extension): Move to here.
8863         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
8864         rework.
8865         (aarch64_rewrite_selected_cpu): Update for above change.
8866         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
8867         are handled, such that the single explicit value enabled by an
8868         extension is kept seperate from the implicit values it also enables.
8869         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
8870         to here.
8871         (aarch64_parse_extension): New.
8872         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
8873         here to config/aarch64/aarch64-protos.h.
8874         (aarch64_parse_extension): Move from here to
8875         common/config/aarch64/aarch64-common.c.
8876         (aarch64_option_print): Update.
8877         (aarch64_declare_function_name): Likewise.
8878         (aarch64_start_file): Likewise.
8879         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
8880         the canonical flag for extensions.
8881         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
8882         flags.
8883
8884 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8885
8886         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
8887         AARCH64_FL_CRC.
8888
8889 2016-04-09  Tom de Vries  <tom@codesourcery.com>
8890
8891         PR tree-optimization/68953
8892         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
8893         first to last subscript.
8894
8895 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
8896
8897         PR tree-optimization/70586
8898         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
8899         for any calls.
8900
8901 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
8902
8903         PR lto/70289
8904         PR ipa/70348
8905         PR tree-optimization/70373
8906         PR middle-end/70533
8907         PR middle-end/70534
8908         PR middle-end/70535
8909         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
8910         clauses for acc parallel reductions as necessary.  Error on those
8911         that are private.
8912         * omp-low.c (scan_sharing_clauses): Don't install variables which
8913         are used in acc parallel reductions.
8914         (lower_rec_input_clauses): Remove dead code.
8915         (lower_oacc_reductions): Add support for reference reductions.
8916         (lower_reduction_clauses): Remove dead code.
8917         (lower_omp_target): Don't remap variables appearing in acc parallel
8918         reductions.
8919         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
8920
8921 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
8922
8923         PR middle-end/70593
8924         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
8925         with multiple SSA_NAME defs, force the outputs other than first
8926         to be live before calling live_track_process_def on each output.
8927
8928         PR rtl-optimization/70574
8929         * fwprop.c (forward_propagate_and_simplify): Don't add
8930         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
8931         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
8932         paradoxical subregs within *loc.
8933
8934 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
8935
8936         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
8937         -ftree-parallelize-loops={0,1}.
8938         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
8939         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
8940         * config/ia64/hpux.h (LIB_SPEC): Likewise.
8941         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8942         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
8943
8944 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
8945
8946         PR sanitizer/70541
8947         * asan.c (instrument_derefs): If we get unknown location, extract it
8948         with EXPR_LOCATION.
8949         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
8950
8951 2016-04-08  Tom de Vries  <tom@codesourcery.com>
8952
8953         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
8954         implicit firstprivate clause.
8955
8956 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8957
8958         PR target/70566
8959         * config/arm/thumb2.md (tst + branch-> lsls + branch
8960         peephole below *orsi_not_shiftsi_si): Require that condition
8961         register is dead after the peephole.
8962         (second peephole after the above): Likewise.
8963
8964 2016-04-08  Alan Modra  <amodra@gmail.com>
8965
8966         PR target/70117
8967         * builtins.c (fold_builtin_classify): For IBM extended precision,
8968         look at just the high-order double to test for NaN.
8969         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
8970         test just the high double for Inf but both doubles for subnormal
8971         limit.
8972
8973 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
8974
8975         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
8976         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
8977         node->simdclone->mask_mode != VOIDmode masks.
8978         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
8979         earlier, use it instead of node->simdclone.
8980         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8981         Set clonei->mask_mode.
8982
8983 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
8984
8985         PR c/70436
8986         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
8987         Pass it through to cp_parser_already_scoped_statement.
8988         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
8989         it through to cp_parser_statement.
8990         (cp_parser_statement): Pass IF_P through to
8991         cp_parser_iteration_statement.
8992         (cp_parser_pragma): Adjust call to
8993         cp_parser_iteration_statement.
8994
8995 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
8996
8997         PR c/70436
8998         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
8999         resolve a future -Wparentheses warning.
9000         * omp-low.c (scan_sharing_clauses): Likewise.
9001         * tree-parloops.c (eliminate_local_variables): Likewise.
9002
9003 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9004
9005         PR rtl-optimization/70398
9006         * lra-constraints.c (process_address_1): Check zero scale and code
9007         for reloading with zero scale.
9008
9009 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9010
9011         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9012         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9013
9014 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9015
9016         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9017         Add support for AVX512F clones, include them by default for
9018         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
9019         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9020         up to 128.
9021
9022         PR middle-end/70550
9023         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9024         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9025         firstprivate clauses.
9026         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9027         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9028         (lower_omp_target): Set TREE_NO_WARNING for
9029         non-addressable possibly uninitialized vars which are copied into
9030         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9031
9032 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9033
9034         * config/pa/predicates.md (integer_store_memory_operand): Accept
9035         REG+D operands with a large offset when reload_in_progress is true.
9036         (floating_point_store_memory_operand): Likewise.
9037
9038 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9039
9040         PR c++/70336
9041         * match.pd (nested int casts): Limit to GIMPLE.
9042
9043 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9044
9045         PR ipa/66223
9046         * ipa-devirt.c (maybe_record_node): Fix comment; use
9047         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9048
9049 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9050
9051         PR rtl-optimization/70542
9052         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9053         if there are any uses other than insn or debug insns.
9054
9055 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9056             Jakub Jelinek  <jakub@redhat.com>
9057
9058         PR tree-optimization/70509
9059         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9060         Shift HOST_WIDE_INT_1U instead of 1.
9061
9062 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9063
9064         PR tree-optimization/70509
9065         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9066         of the vector base type for index.
9067
9068 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9069
9070         PR target/70510
9071         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9072
9073 2016-04-05  Richard Biener  <rguenther@suse.de>
9074
9075         PR tree-optimization/70526
9076         * tree-sra.c (build_ref_for_offset): Use prev_base to
9077         extract the alias pointer type.
9078
9079 2016-04-05  Richard Biener  <rguenther@suse.de>
9080
9081         * dse.c (struct store_info): Remove alias_set member.
9082         (struct read_info_type): Likewise.
9083         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9084         spill_deleted, clear_alias_set_lookup): Remove.
9085         (get_group_info): Remove dead base == NULL_RTX case.
9086         (dse_step0): Remove initialization of removed variables.
9087         (delete_dead_store_insn): Reomve alias set dumping.
9088         (free_read_records): Remove alias_set handling.
9089         (canon_address): Remove alias_set_out parameter.
9090         (record_store): Remove spill_alias_set, it's always zero.
9091         (check_mem_read_rtx): Likewise.
9092         (dse_step2): Rename from ...
9093         (dse_step2_nospill): ... this.  Adjust.
9094         (scan_stores): Rename from ...
9095         (scan_stores_nospill): ... this.
9096         (scan_reads): Rename from ...
9097         (scan_reads_nospill): ... this.
9098         (scan_stores_spill, scan_reads_spill): Remove.
9099         (dse_step3_scan): Remove for_spills argument which is always false.
9100         (dse_step3): Likewise.
9101         (dse_step5): Rename from ...
9102         (dse_step5_nospill): ... this.  Remove alias_set handling.
9103         (rest_of_handle_dse): Adjust.
9104
9105 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9106
9107         PR target/70525
9108         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9109         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9110         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9111         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9112
9113 2016-04-05  Richard Biener  <rguenther@suse.de>
9114
9115         PR middle-end/70499
9116         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9117         non-register type temporaries into SSA.
9118
9119 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9120
9121         PR ipa/66223
9122         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9123         calls when sanitizing.
9124         (possible_polymorphic_call_target_p): Fix formatting.
9125
9126 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9127             Jakub Jelinek <jakub@redhat.com>
9128
9129         PR middle-end/70457
9130         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9131         to ensure a call statement is compatible with a built-in's
9132         prototype.
9133         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9134         Likewise.
9135
9136 2016-04-04  Richard Biener  <rguenther@suse.de>
9137
9138         PR rtl-optimization/70484
9139         * rtl.h (canon_output_dependence): Declare.
9140         * alias.c (canon_output_dependence): New function.
9141         * dse.c (record_store): Use canon_output_dependence rather
9142         than canon_true_dependence.
9143
9144 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9145
9146         PR ipa/68881
9147         * cgraph.h (symtab_node::copy_visibility_from): New function.
9148         * symtab.c (symtab_node::copy_visibility_from): New function.
9149         * ipa-visibility.c (optimize_weakref): New function.
9150         (function_and_variable_visibility): Use it.
9151
9152 2016-04-04  Martin Liska  <mliska@suse.cz>
9153
9154         PR hsa/70402
9155         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9156         value that is really in range handled by SBR instruction.
9157         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9158         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9159         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9160
9161 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9162
9163         PR target/70416
9164         PR target/67391
9165         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9166         set, but not for SP_REG operands.
9167
9168 2016-04-02  Martin Sebor  <msebor@redhat.com>
9169
9170         PR c++/67376
9171         * fold-const.c (maybe_nonzero_address): New function.
9172         (fold_comparison): Call it.  Fold equality and relational
9173         expressions involving null pointers.
9174         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9175
9176 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9177
9178         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9179         the "Y" constraint (scalar FP 0.0 immediate).
9180
9181         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9182         Add the "const_double" to the list of operand constraints.
9183
9184 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9185
9186         PR rtl-optimization/70467
9187         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9188         If low word of the last operand is 0, just emit addition/subtraction
9189         for the high word.
9190
9191 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9192
9193         PR target/70404
9194         * config/s390/s390.c (s390_expand_insv): Check for everything
9195         constant instead of just VOIDmode stuff.
9196
9197 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9198
9199         PR target/70496
9200         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9201
9202 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9203
9204         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9205
9206 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9207
9208         PR rtl-optimization/70461
9209         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9210         is necessary.
9211
9212 2016-03-31  Martin Liska  <mliska@suse.cz>
9213
9214         PR hsa/70399
9215         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9216         a tree value or an immediate integer value to a buffer
9217         that is eventually copied to a BRIG section.
9218         (emit_immediate_operand): Call the function here.
9219         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9220         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9221         of class' fields that are removed.
9222         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9223         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9224         m_brig_repr_size fields.
9225
9226 2016-03-31  Martin Liska  <mliska@suse.cz>
9227
9228         PR hsa/70391
9229         * hsa-gen.c (hsa_function_representation::update_dominance): New
9230         function.
9231         (convert_addr_to_flat_segment): Likewise.
9232         (gen_hsa_memory_set): New alignment argument.
9233         (gen_hsa_ctor_assignment): Likewise.
9234         (gen_hsa_insns_for_single_assignment): Provide alignment
9235         to gen_hsa_ctor_assignment.
9236         (gen_hsa_insns_for_direct_call): Add new argument.
9237         (expand_lhs_of_string_op): New function.
9238         (expand_string_operation_builtin): Likewise.
9239         (expand_memory_copy): New function.
9240         (expand_memory_set): New function.
9241         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9242         (convert_switch_statements): Change signature.
9243         (generate_hsa): Use a return value of the function.
9244         (pass_gen_hsail::execute): Do not call
9245         convert_switch_statements here.
9246         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9247         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9248         (hsa_function_representation::update_dominance): New function.
9249
9250 2016-03-31  Martin Liska  <mliska@suse.cz>
9251
9252         PR hsa/70391
9253         * hsa-brig.c (emit_directive_variable): Emit alignment
9254         according to hsa_symbol::m_align.
9255         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9256         (dump_hsa_symbol): Dump alignment of HSA symbols.
9257         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
9258         (gen_hsa_addr_with_align): New function.
9259         (hsa_bitmemref_alignment): Use newly added function.
9260         (gen_hsa_insns_for_load): Likewise.
9261         (gen_hsa_insns_for_store): Likewise.
9262         (gen_hsa_memory_copy): New argument added.
9263         (gen_hsa_insns_for_single_assignment): Respect
9264         alignment for assignments processed via gen_hsa_memory_copy.
9265         (gen_hsa_insns_for_direct_call): Likewise.
9266         (gen_hsa_insns_for_return): Likewise.
9267         (gen_function_def_parameters): Set default alignment.
9268         * hsa.c (hsa_object_alignment): New function.
9269         (hsa_byte_alignment): Pasted function.
9270         * hsa.h (hsa_symbol::m_align): New field.
9271
9272 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9273
9274         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
9275         scratch field for goto case.
9276
9277 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
9278
9279         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
9280
9281 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
9282
9283         PR target/70442
9284         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
9285         (scalar_chain::convert_insn): Call convert_op for reg
9286         moves to handle undefined registers.
9287
9288 2016-03-31  Nathan Sidwell  <nathan@acm.org>
9289
9290         PR c++/70393
9291         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
9292         Assert we don't want to move backwards.
9293
9294 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
9295
9296         PR target/70453
9297         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
9298
9299 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
9300
9301         PR rtl-optimization/70460
9302         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
9303         with operand from REG_LABEL_OPERAND, instead substitute
9304         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
9305         Don't do anything for REG_NON_LOCAL_GOTO jumps.
9306
9307 2016-03-31  Martin Liska  <mliska@suse.cz>
9308
9309         * passes.c (execute_one_pass): Do not call
9310         todo_after for a discarded function.
9311
9312 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9313
9314         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
9315         (no_cost, infinite_cost): Initialize the new field.
9316         (get_computation_cost_at): Record setup cost.
9317         (determine_use_iv_cost_address): Skip cost computation for sub
9318         uses if we can estimate it without losing accuracy.
9319
9320 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9321
9322         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9323         estimates here.
9324         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9325         max_loop_iterations_int.
9326         (tree_unswitch_outer_loop): Likewise.
9327         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9328         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9329
9330 2016-03-30  Richard Biener  <rguenther@suse.de>
9331
9332         PR middle-end/70450
9333         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
9334
9335 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
9336
9337         PR target/70421
9338         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
9339         in gen_blendm expander.
9340
9341 2016-03-30  Nick Clifton  <nickc@redhat.com>
9342
9343         PR target/62254
9344         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
9345         case where we are already provided with an SImode SUBREG.
9346
9347 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9348
9349         PR target/70439
9350         * config/i386/i386.c (ix86_expand_epilogue): Properly check
9351         conflict between DRAP register and __builtin_eh_return.
9352
9353 2016-03-30  Michael Matz  <matz@suse.de>
9354             Richard Biener  <rguenther@suse.de>
9355
9356         PR ipa/12392
9357         * ipa-polymorphic-call.c (struct type_change_info): Change
9358         speculative to an unsigned allowing to limit the work we do.
9359         (csftc_abort_walking_p): New inline function..
9360         (check_stmt_for_type_change): Limit the number of may-defs
9361         skipped for speculative devirtualization to
9362         max-speculative-devirt-maydefs.
9363         * params.def (max-speculative-devirt-maydefs): New param.
9364         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
9365
9366 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
9367
9368         PR target/63890
9369         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
9370         and TARGET_MACHO.
9371
9372 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
9373
9374         PR tree-optimization/59124
9375         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
9376         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
9377
9378 2016-03-29  Jeff Law  <law@redhat.com>
9379
9380         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
9381
9382 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9383
9384         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
9385         to HOST_WIDE_INT.
9386
9387 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
9388
9389         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
9390         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
9391         gcrt0.o if linking dynamically.
9392
9393 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9394
9395         PR ipa/70283
9396         * ipa-devirt.c (methods_equal_p): New function.
9397         (compare_virtual_tables): Use it.
9398         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
9399         * cgraphclones.c (clone_function_name_1): Use
9400         symbol_table::symbol_suffix_separator.
9401         * coverage.c (build_var): Likewise.
9402         * symtab.c (symbol_table::symbol_suffix_separator): New.
9403
9404 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
9405
9406         PR rtl-optimization/70429
9407         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
9408         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
9409         mode != result_mode.
9410
9411         PR c++/70353
9412         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
9413
9414         PR tree-optimization/70405
9415         * ssa-iterators.h (num_imm_uses): Add missing braces.
9416
9417 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9418
9419         PR rtl-optimization/68695
9420         * ira-color.c (allocno_copy_cost_saving): New.
9421         (improve_allocation): Use it.
9422
9423 2016-03-29  Richard Henderson  <rth@redhat.com>
9424
9425         PR middle-end/70355
9426         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
9427
9428 2016-03-29  Richard Biener  <rguenther@suse.de>
9429
9430         PR middle-end/70424
9431         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
9432         use alignment returned by get_pointer_alignment_1 if it is
9433         bigger than BITS_PER_UNIT.
9434         * builtins.c (get_pointer_alignment_1): Do not return true
9435         for alignment extracted from SSA info.
9436
9437 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
9438
9439         * config/ft32/ft32.opt (mnodiv): New.
9440         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
9441         * doc/invoke.texi (FT32 Options -mnodiv): New.
9442
9443 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
9444
9445         PR target/70406
9446         * config/i386/i386.md (define_split, andn): Fix modes.
9447
9448 2016-03-26  Richard Biener  <rguenther@suse.de>
9449             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9450
9451         PR ipa/70366
9452         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
9453         instead of
9454         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
9455         as 2nd argument to cl_optimization_restore().
9456
9457 2016-03-25  Richard Henderson  <rth@redhat.com>
9458
9459         PR target/70120
9460         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
9461         * config/aarch64/aarch64-protos.h: Declare it.
9462         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
9463
9464 2016-03-25  Alan Modra  <amodra@gmail.com>
9465
9466         PR target/70052
9467         * config/rs6000/constraints.md (j): Simplify.
9468         * config/rs6000/predicates.md (easy_fp_constant): Exclude
9469         decimal float 0.D.
9470         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
9471         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
9472          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
9473         in all constraint alternatives.
9474         (movtd_64bit_nodm): Delete "j" constraint alternative.
9475
9476 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9477
9478         * tree-ssa-propagate.c: Enhance docs for
9479         SSA_PROP_NOT_INTERESTING.
9480
9481 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9482
9483         * doc/extend.texi: Fix typo in documentation to pure attribute.
9484
9485 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
9486
9487         PR target/70319
9488         * config/pa/pa.md (bswapdi2): Use a scratch register.
9489
9490 2016-03-24  Richard Henderson  <rth@redhat.com>
9491
9492         PR middle-end/69845
9493         * fold-const.c (extract_muldiv_1): Correct test for multiplication
9494         overflow.
9495
9496 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
9497
9498         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
9499         using ix86_expand_binary_operator instead of gen_andsi3.
9500
9501 2016-03-24  Richard Biener  <rguenther@suse.de>
9502
9503         PR tree-optimization/70396
9504         * tree-vect-stmts.c (vectorizable_comparison): Use
9505         get_vectype_for_scalar_type.
9506
9507 2016-03-24  Richard Biener  <rguenther@suse.de>
9508
9509         PR middle-end/70370
9510         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
9511         with register bases.
9512
9513 2016-03-24  Richard Biener  <rguenther@suse.de>
9514
9515         PR tree-optimization/70372
9516         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
9517         build_all_ones_cst to also handle vector types correctly.
9518
9519 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9520
9521         PR target/70381
9522         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
9523         -mfloat128 here.
9524
9525 2016-03-23  Marek Polacek  <polacek@redhat.com>
9526
9527         PR c++/69884
9528         * doc/invoke.texi: Document -Wignored-attributes.
9529
9530 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9531
9532         PR tree-optimization/69042
9533         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
9534         parameter from 30 to 40.
9535
9536 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9537
9538         PR tree-optimization/69042
9539         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
9540         for use with constant offset stripped in base.
9541
9542 2016-03-23  Richard Biener  <rguenther@suse.de>
9543
9544         PR middle-end/70251
9545         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
9546         mode compatibility check.
9547         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9548
9549 2016-03-23  Jeff Law  <law@redhat.com>
9550
9551         PR tree-optimization/64058
9552         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
9553         CONFLICT_COUNT.
9554         (struct ssa_conflicts): Move up earlier in the file.
9555         (conflicts_, var_map_): New static variables.
9556         (initialize_conflict_count): New function to initialize the
9557         CONFLICT_COUNT field for each conflict pair.
9558         (compare_pairs): Lazily initialize the conflict count and use it
9559         as the first tie-breaker.
9560         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
9561         and wipe conflicts_ and map_ around the call to qsort.  Remove
9562         special case for 2 coalesce pairs.
9563         * bitmap.c (bitmap_count_unique_bits): New function.
9564         (bitmap_count_bits_in_word): New function, extracted from
9565         bitmap_count_bits.
9566         (bitmap_count_bits): Use bitmap_count_bits_in_word.
9567         * bitmap.h (bitmap_count_unique_bits): Declare it.
9568
9569 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
9570
9571         PR target/69917
9572         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
9573         transparent alias chain for decl assembler name.
9574         * config/sol2.c (solaris_assemble_visibility): Likewise.
9575
9576 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9577
9578         * config/arm/arm1020e.md (1020call_op): Reduce reservation
9579         duration.
9580         (v10_fdivs): Likewise.
9581         (v10_fdivd): Likewise.
9582
9583 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9584
9585         PR driver/70132
9586         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
9587         to not call fclose twice on file.
9588
9589 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
9590
9591         PR tree-optimization/70354
9592         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9593         oprnd0 is wider than oprnd1 and there is a cast from the wider
9594         type to oprnd1, mask it with the mask of the narrower type.
9595
9596         PR target/70321
9597         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
9598         Optimize TARGET_STV splitters, if high or low word of last argument
9599         is 0 or -1.
9600
9601 2016-03-22  Jeff Law  <law@redhat.com>
9602
9603         PR target/70232
9604         tree-ssa-threadbackward.c
9605         (fsm_find_control_statement_thread_paths): Correctly distinguish
9606         between old style jump threads vs FSM jump threads.
9607
9608 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
9609
9610         PR target/70302
9611         * config/i386/i386.c (scalar_chain::convert_op): Support
9612         uninitialized register usage case.
9613
9614 2016-03-22  Richard Biener  <rguenther@suse.de>
9615
9616         PR middle-end/70251
9617         * genmatch.c (gen_transform): Adjust last parameter to a three-state
9618         int...
9619         (capture::gen_transform): ... to change behavior when substituting
9620         a condition into cond or not-cond expr context.
9621         (dt_simplify::gen_1): Adjust.
9622         * gimple-match-head.c: Include gimplify.h for unshare_expr.
9623         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
9624         last change and instead change to
9625         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
9626         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9627
9628 2016-03-22  Anthony Green  <green@moxielogic.com>
9629
9630         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
9631         issue for moxiebox targets.
9632         (CC1PLUS_SPEC): Ditto.
9633
9634 2016-03-22  Richard Biener  <rguenther@suse.de>
9635
9636         PR middle-end/70333
9637         * fold-const.c (extract_muldiv_1): Properly perform multiplication
9638         in the wide type.
9639
9640 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9641
9642         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
9643
9644 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9645
9646         PR target/70325
9647         * config/i386/i386.c (def_builtin): Handle
9648         OPTION_MASK_ISA_AVX512VL to be and-ed with other
9649         bits.
9650         (const struct builtin_description bdesc_special_args[]):
9651         Remove duplicate ISA bits.
9652
9653 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
9654
9655         PR target/70329
9656         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
9657         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
9658         in a way that works also for AVX512BW.
9659
9660         PR target/70300
9661         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
9662         instead of source if operands[1] is xmm16 and above and
9663         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
9664         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
9665
9666         PR c++/70295
9667         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
9668         on assign if (*from_p) is a comparison, set it to
9669         TREE_NO_WARNING (*from_p).
9670
9671 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
9672
9673         PR middle-end/70326
9674         * lra.c (restore_scratches): Ignore deleted insns.
9675
9676 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
9677             Jakub Jelinek  <jakub@redhat.com>
9678
9679         PR tree-optimization/70317
9680         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
9681         to HONOR_NANS.
9682
9683 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
9684
9685         PR target/70327
9686         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
9687         of ix86_expand_move.
9688         (movoi): Ditto.
9689         (movti): Use general_operand for operand 1 predicate.
9690
9691 2016-03-21  Martin Liska  <mliska@suse.cz>
9692
9693         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
9694         insns.
9695         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
9696
9697 2016-03-21  Martin Liska  <mliska@suse.cz>
9698
9699         PR ipa/70306
9700         * ipa-icf.c (sem_function::parse): Skip static
9701         constructors and destructors.
9702
9703 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
9704
9705         PR target/70296
9706         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
9707         function-like macro, peek following token(s) if it is followed
9708         by CPP_OPEN_PAREN token with optional padding in between, and
9709         if not, don't treat it like a macro.
9710
9711 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
9712             Alexander Monakov  <amonakov@ispras.ru>
9713
9714         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
9715         for the stabs debug format.
9716
9717 2016-03-21  Richard Biener  <rguenther@suse.de>
9718
9719         PR tree-optimization/70310
9720         * tree-vect-generic.c (expand_vector_condition): Fold the built
9721         condition.
9722
9723 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9724
9725         PR target/70293
9726         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
9727         Block third alternative for AVX-512VL target,
9728
9729 2016-03-21  Martin Liska  <mliska@suse.cz>
9730
9731         PR hsa/70234
9732         * hsa-brig.c (emit_function_directives): Mark unemitted
9733         global variables for emission.
9734         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
9735         (get_symbol_for_decl): Likewise.
9736         * hsa.h (struct hsa_symbol): New flag.
9737
9738 2016-03-21  Richard Biener  <rguenther@suse.de>
9739
9740         PR tree-optimization/70288
9741         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
9742         we do not estimate unsimplified all-constant conditionals or
9743         switches as optimized away.
9744
9745 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
9746
9747         PR rtl-optimization/69102
9748         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
9749         when we have a readonly dependency context.
9750
9751 2016-03-18  Jeff Law  <law@redhat.com>
9752
9753         PR rtl-optimization/70263
9754         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
9755         (update_equiv_regs): When trying to move a store to after the insn
9756         that sets the source of the store, make sure the store occurs after
9757         the insn that sets the source of the store.  When successful note
9758         the REG_EQUIV note created in the dump file.
9759
9760 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
9761             Bernd Schmidt  <bschmidt@redhat.com>
9762
9763         * doc/extend.texi: Document more potential problems with basic asms.
9764
9765 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
9766
9767         PR rtl-optimization/70278
9768         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
9769         VOIDmode.
9770
9771 2016-03-18  Jason Merrill  <jason@redhat.com>
9772
9773         * calls.c (load_register_parameters): Fix zero size sibcall logic.
9774
9775 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
9776
9777         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
9778         values to 128b regs.
9779
9780 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
9781
9782         PR tree-optimization/70252
9783         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
9784         boolean vector has a proper number of elements.
9785         (supportable_narrowing_operation): Likewise.
9786
9787 2016-03-18  Tom de Vries  <tom@codesourcery.com>
9788
9789         PR ipa/70269
9790         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
9791
9792 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
9793
9794         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
9795         instead of replace_rtx for DEBUG_INSNs.
9796
9797 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9798
9799         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
9800         load type reservations.
9801
9802 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
9803
9804         PR target/70188
9805         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
9806         define_constraint for "Q" and "T" constraints.
9807
9808 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
9809
9810         Tweak the pipeline model for Exynos M1
9811
9812         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
9813         model.
9814
9815 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
9816
9817         PR c/70264
9818         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
9819         where one or both locations aren't within a line_map.
9820
9821 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9822
9823         PR driver/70192
9824         * opts.c (finish_options): Don't set flag_pie to the default if
9825         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
9826         if it is -1.
9827
9828 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
9829
9830         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
9831         true as ALL_REGS argument to replace_rtx.
9832
9833 2016-03-17  Richard Biener  <rguenther@suse.de>
9834
9835         PR debug/70271
9836         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
9837         last.
9838
9839 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
9840
9841         PR target/70245
9842         * rtl.h (replace_rtx): Add ALL_REGS argument.
9843         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
9844         equality and assert mode is the same, instead of just rtx pointer
9845         equality.
9846         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
9847         true as ALL_REGS argument to replace_rtx.
9848
9849 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
9850
9851         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
9852         for boolean vector with vector mode only.
9853         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9854
9855 2016-03-17  Nick Clifton  <nickc@redhat.com>
9856
9857         PR target/70162
9858         * config/rx/rx.c (rx_print_integer): Print negative constants in
9859         decimal.
9860
9861 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
9862
9863         PR target/70261
9864         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
9865
9866 2016-03-16  Richard Henderson  <rth@redhat.com>
9867             Richard Biener  <rguenth@suse.de>
9868
9869         PR middle-end/70240
9870         PR middle-end/68215
9871         PR tree-opt/68714
9872         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
9873         first operand as is_gimple_condexpr.
9874
9875         PR middle-end/70240
9876         PR middle-end/68215
9877         Revert r231575
9878         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
9879         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
9880         Do not gimplify the result.
9881         (do_unop): Adjust call to tree_vec_extract.
9882         (do_binop): Likewise.
9883         (do_compare): Likewise.
9884         (do_plus_minus): Likewise.
9885         (do_negate): Likewise.
9886         (expand_vector_condition): Likewise.
9887         (do_cond): Likewise.
9888
9889 2016-03-16  Richard Henderson  <rth@redhat.com>
9890
9891         PR target/70048
9892         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
9893         (aarch64_classify_address): Use it.
9894         (aarch64_legitimize_address): Force all subexpressions of PLUS
9895         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
9896
9897 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
9898             Richard Biener  <rguenth@suse.de>
9899
9900         PR target/70245
9901         * rtlanal.c (replace_rtx): For REG, if from is a REG,
9902         return to even if only REGNO is equal, and assert
9903         mode is the same.
9904
9905 2016-03-11  Jeff Law  <law@redhat.com>
9906
9907         PR rtl-optimization/70224
9908         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
9909
9910 2016-03-16  Richard Henderson  <rth@redhat.com>
9911
9912         PR middle-end/70199
9913         * function.h (struct function): Add has_forced_label_in_static.
9914         * gimplify.c (force_labels_r): Set it.
9915         * lto-streamer-in.c (input_struct_function_base): Read it.
9916         * lto-streamer-out.c (output_struct_function_base): Write it.
9917         * tree-inline.c (has_label_address_in_static_1): Remove.
9918         (copy_forbidden): Remove fndecl parameter; test
9919         has_forced_label_in_static.
9920         (inline_forbidden_p): Update call to copy_forbidden.
9921         (tree_versionable_function_p): Likewise.
9922         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
9923         (chkp_versioning): Likewise.
9924         * tree-inline.h (copy_forbidden): Update decl.
9925
9926 2016-03-16  Marek Polacek  <polacek@redhat.com>
9927
9928         PR c/70093
9929         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
9930         function being thunked if the result type doesn't have fixed size.
9931         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
9932         doesn't have fixed size.
9933
9934 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
9935
9936         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
9937         reporting malformed loop nest.
9938
9939 2016-03-16  Tom de Vries  <tom@codesourcery.com>
9940
9941         PR lto/70187
9942         * ipa-devirt.c (possible_polymorphic_call_targets): Move
9943         nodes.length () == 1 test to before first nodes[0] access.
9944
9945 2016-03-16  Tom de Vries  <tom@codesourcery.com>
9946
9947         PR tree-optimization/68715
9948         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
9949         single_pred_p test.
9950
9951 2016-03-16  Tom de Vries  <tom@codesourcery.com>
9952
9953         PR tree-optimization/68809
9954         * graphite-scop-detection.c (same_close_phi_node): Test if result types
9955         are the same.
9956
9957 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
9958             Sandra Loosemore  <sandra@codesourcery.com>
9959
9960         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
9961         on leaf attribute. Mention ELF interposition problems.
9962
9963 2016-03-16  Alan Modra  <amodra@gmail.com>
9964
9965         PR rtl-optimization/69195
9966         PR rtl-optimization/47992
9967         * ira.c (indirect_jump_optimize): Ignore artificial defs.
9968         Add comments.
9969
9970 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
9971
9972         PR bootstrap/69513
9973         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
9974
9975 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
9976
9977         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
9978
9979 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
9980
9981         PR rtl-optimization/70222
9982         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
9983         optimization if mode is different from result_mode, queue up masking
9984         of the result in outer_op.  Formatting fix.
9985
9986         PR middle-end/70239
9987         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
9988         of safe_grow.
9989
9990 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
9991
9992         PR rtl-optimization/69032
9993         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
9994         looping backwards over basic block insns.
9995
9996 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
9997
9998         PR target/66660
9999         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10000         to non-speculative when propagating trap bits.
10001
10002 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10003
10004         PR rtl-optimization/63384
10005         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10006         DEBUG_INSN_P insns.
10007
10008 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10009
10010         PR target/64411
10011         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10012         factored out from ...
10013         (sched_analyze_insn): ... here.
10014         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10015         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10016         get_implicit_reg_pending_clobbers in it.
10017         (setup_id_reg_sets): Use setup_id_implicit_regs.
10018         (deps_init_id): Ditto.
10019
10020 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10021
10022         PR ipa/70161
10023         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10024         dump_file_name.
10025         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10026         execute_function_dump.
10027         (execute_one_pass): Don't dump function if it will be dumped after ipa
10028         transform.
10029
10030 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10031
10032         * genrecog.c (match_pattern_2): If pred is NULL don't call
10033         safe_predicate_mode on it.
10034
10035 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10036
10037         PR middle-end/70219
10038         * lra-constraints.c (delete_move_and_clobber): Change assertion
10039         to also allow dregno == 0.
10040
10041 2016-03-14  Richard Henderson  <rth@redhat.com>
10042
10043         PR tree-opt/68714
10044         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10045         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10046         (reassociate_bb): Use optimize_vec_cond_expr; avoid
10047         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10048         on vectors.
10049
10050 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10051
10052         PR target/70083
10053         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10054         regs.
10055         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10056         VOIDmode.
10057         * lra-constraints.c (split_reg): For hard regs, try to find the
10058         biggest single-register mode used in the function.
10059
10060 2016-03-14  Richard Biener  <rguenther@suse.de>
10061
10062         PR tree-optimization/56365
10063         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10064         constants to compare against.
10065
10066 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10067
10068         PR target/70098
10069         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10070         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10071         (define_split for the GPR case): Use int_reg_operand instead of
10072         gpc_reg_operand for the output.
10073
10074 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10075
10076         PR tree-optimization/70045
10077         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10078         create_empty_if_region_on_edge argument.
10079
10080 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10081
10082         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10083         (STACK_CHECK_PROTECT): Likewise.
10084         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10085         (STACK_CHECK_PROTECT): Likewise.
10086         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10087         (STACK_CHECK_PROTECT): Likewise.
10088         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10089         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10090         (STACK_CHECK_PROTECT): Likewise.
10091
10092 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10093
10094         PR rtl-optimization/69307
10095         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10096         registers in modes that span more than one register.
10097
10098 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10099
10100         PR target/69614
10101         * lra-constraints.c (delete_move_and_clobber): New.
10102         (remove_inheritance_pseudos): Use it.
10103
10104 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10105
10106         PR ada/70017
10107         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10108         the libcall is LCT_THROW.
10109         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10110         for the checking routine.
10111
10112 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10113
10114         PR target/70131
10115         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10116         optimization if we have direct move.
10117         (roundu32<mode>2_fprs): Likewise.
10118
10119 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10120
10121         PR target/70123
10122         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10123         be rematerialized.
10124         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10125         Arguments swapped.  All callers changed.  Take reg_renumber into
10126         account, and Calculate and compare register ranges for hard regs.
10127
10128 2016-03-11  Jeff Law  <law@redhat.com>
10129
10130         PR tree-optimization/70190
10131         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10132         Handle cases where we can not extract the taken edge, even though we
10133         found a constant value.
10134
10135         PR tree-optimization/64058
10136         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10137         (num_coalesce_pairs): Move up earlier in file.
10138         (find_coalesce_pair): Initialize the INDEX field for each pair
10139         discovered.
10140         (compare_pairs): No longer sort on the elements in each pair.
10141         Instead break ties with the index of the coalesce pair.
10142
10143 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10144
10145         PR target/70002
10146         * config/aarch64/aarch64-protos.h
10147         (aarch64_save_restore_target_globals): New prototype.
10148         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10149         Call the above when popping pragma.
10150         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10151         New function.
10152         (aarch64_set_current_function): Rewrite using the above.
10153
10154 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10155
10156         PR tree-optimization/70177
10157         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10158         (extract_ops_from_tree): ... this.  In the 2 argument
10159         overload remove _1 suffix.
10160         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10161         (extract_ops_from_tree): ... this.
10162         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10163         Adjust callers.
10164         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10165         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10166         extract_ops_from_tree instead of 2 operand one.
10167
10168 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10169
10170         PR tree-optimization/70013
10171         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10172         for constant-pool entries.
10173
10174 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10175
10176         PR rtl-optimization/70174
10177         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10178         followed by gen_lowpart on force_reg instead of just gen_lowpart.
10179
10180         PR tree-optimization/70169
10181         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10182         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
10183         for unknown codes.
10184
10185 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10186             Jakub Jelinek  <jakub@redhat.com>
10187
10188         PR target/70160
10189         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10190         of uninitialized values.
10191
10192 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10193
10194         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10195         define_expand.
10196         ("*trunctddd2"): New pattern definition.
10197         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10198         TD->DD truncation.
10199
10200 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10201
10202         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10203         definitions for BFP and DFP rounding modes.
10204         ("fixuns_truncdddi2", "fixuns_trunctddi2")
10205         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10206         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10207         ("fix_trunctf<mode>2"): Use the new constants instead of magic
10208         numbers.
10209
10210 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10211
10212         * config/s390/constraints.md: Adjust comment.
10213         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
10214         s390_decompose_addrstyle_without_index.
10215         * config/s390/predicates.md (shift_count_or_setmem_operand):
10216         Rename to setmem_operand.
10217         * config/s390/s390-protos.h
10218         (s390_decompose_shift_count): Rename to
10219         s390_decompose_addrstyle_without_index.
10220         * config/s390/s390.c (s390_decompose_shift_count)
10221         (s390_mem_constraint, print_shift_count_operand)
10222         (print_operand_address, print_operand): Rename
10223         s390_decompose_shift_count to
10224         s390_decompose_addrstyle_without_index and rename
10225         print_shift_count_operand to print_addrstyle_operand troughout the
10226         file.
10227         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10228         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10229         Rename shift_count_or_setmem_operand to setmem_operand.
10230         * config/s390/vx-builtins.md ("vec_insert<mode>")
10231         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10232         nonmemory_operand.
10233
10234 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10235
10236         PR target/70168
10237         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10238         Handle overlapping retval and newval.
10239
10240 2016-03-10  Nick Clifton  <nickc@redhat.com>
10241
10242         PR target/7044
10243         * config/aarch64/aarch64.c
10244         (aarch64_override_options_after_change_1): When forcing
10245         flag_omit_frame_pointer to be true, use a special value that can
10246         be detected if this function is called again, thus preventing
10247         flag_omit_leaf_frame_pointer from being forced to be false.
10248
10249 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10250
10251         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10252         Set x_flag_omit_leaf_frame_pointer when handling
10253         -momit-leaf-frame-pointer.
10254
10255 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10256
10257         PR lto/69589
10258         * cgraph.c (cgraph_node::dump): Dump split_part and
10259         indirect_call_target.
10260         * cgraph.h (cgraph_node): Add indirect_call_target flag.
10261         * ipa.c (has_addr_references_p): Cleanup.
10262         (is_indirect_call_target_p): New.
10263         (walk_polymorphic_call_targets): Do not mark virtuals that may be
10264         called indirectly as local.
10265         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
10266
10267 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10268
10269         PR ipa/69630
10270         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10271         on cxa_pure_virtual.
10272
10273 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10274
10275         PR lto/69589
10276         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
10277
10278 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10279
10280         PR lto/69589
10281         * tree.c (need_assembler_name_p): Only record main variant type names.
10282
10283 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10284
10285         PR target/70113.
10286         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
10287         Always define to 0 or 1.
10288         (TARGET_FIX_ERR_A53_843419): New macro.
10289         * config/aarch64/aarch64-elf-raw.h
10290         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
10291         * config/aarch64/aarch64-linux.h: Likewise.
10292         * config/aarch64/aarch64.c
10293         (aarch64_override_options_after_change_1): Do not default
10294         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
10295         843419 is on.
10296         (aarch64_attributes): Handle fix-cortex-a53-843419.
10297         (aarch64_can_inline_p): Likewise.
10298         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
10299
10300 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
10301         Jakub Jelinek <jakub@redhat.com>
10302
10303         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
10304         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
10305         DECL_COMMONS if flag_unconstrained_commons is set.
10306         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10307         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
10308         (funconstrained-commons): Document.
10309
10310 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10311
10312         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
10313         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
10314
10315 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
10316
10317         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
10318         has a proper number of elements.
10319
10320 2016-03-10  Alan Modra  <amodra@gmail.com>
10321
10322         PR rtl-optimization/69195
10323         PR rtl-optimization/47992
10324         * ira.c (recorded_label_ref): Delete.
10325         (update_equiv_regs): Return void.
10326         (indirect_jump_optimize): New function.
10327         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
10328         before regstat_compute_ri.  Don't rebuild_jump_labels here.
10329         Delete update_regstat.
10330
10331 2016-03-10  Richard Biener  <rguenther@suse.de>
10332
10333         PR tree-optimization/70128
10334         * tree-ssa-structalias.c (set_uids_in_ptset): Set
10335         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
10336
10337 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10338
10339         PR tree-optimization/70152
10340         * tree-sra.c (replace_removed_params_ssa_names): Copy over
10341         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
10342
10343         PR target/70086
10344         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
10345         instead of gen_sse2_loadlpd.
10346         * config/i386/sse.md (*vec_concatv2df): Rename to...
10347         (vec_concatv2df): ... this.
10348
10349         PR tree-optimization/70127
10350         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
10351
10352 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10353
10354         PR c/68473
10355         PR c++/70105
10356         * diagnostic-show-locus.c (compatible_locations_p): New function.
10357         (layout::layout): Sanitize ranges using compatible_locations_p.
10358
10359 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10360
10361         PR c/68473
10362         PR c++/70105
10363         * diagnostic-show-locus.c (layout_range::layout_range): Replace
10364         location_range param with three const expanded_locations * and a
10365         bool.
10366         (layout::layout): Replace call to
10367         rich_location::lazily_expand_location with get_expanded_location.
10368         Extract the range and perform location expansion here, passing
10369         the results to the layout_range ctor.
10370         * diagnostic.c (source_range::debug): Delete.
10371         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
10372         of rich_location::get_expanded_location.
10373         * gcc-rich-location.c (get_range_for_expr): Delete.
10374         (gcc_rich_location::add_expr): Reimplement to avoid the
10375         rich_location::add_range overload that took a location_range,
10376         passing a location_t instead.
10377
10378 2016-03-09  Richard Biener  <rguenther@suse.de>
10379         Jakub Jelinek  <jakub@redhat.com>
10380
10381         PR tree-optimization/70138
10382         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10383         Also skip vect_double_reduction_def.
10384
10385 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10386
10387         PR target/70049
10388         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
10389         if the operand is "m".
10390
10391 2016-03-09  Nathan Sidwell  <nathan@acm.org>
10392
10393         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
10394
10395 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10396
10397         * config/i386/i386.c (processor_target_table): Fix cost table
10398         intialization order for znver1.
10399
10400 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10401
10402         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
10403         - becuase -> because.
10404         * ipa-reference.c (ignore_module_statics): Likewise.
10405         * cgraph.c (cgraph_node::get_body): Likewise.
10406         * ipa-inline.c (early_inliner): Likewise.
10407         * ipa-devirt.c (types_same_for_odr): Likewise.
10408         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
10409         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
10410
10411 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10412
10413         * tree-ssa-math-opts.c: Fix typo in comment.
10414
10415 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR target/70110
10418         * config/i386/i386.c (scalar_chain::make_vector_copies,
10419         scalar_chain::convert_reg): Call end_sequence in between
10420         get_insns and emit_conversion_insns rather than after both
10421         calls.
10422
10423 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
10424
10425         PR target/70064
10426         * config/i386/i386.h (machine_function): Add
10427         pc_thunk_call_expanded flag.
10428         (ix86_pc_thunk_call_expanded): New define.
10429         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
10430         (*set_got): Rename insn pattern from set_got.
10431         (*set_got_labelled): Rename inst pattern from set_got_labelled.
10432         * config/i386/i386.c (ix86_compute_frame_layout): Use
10433         ix86_pc_thunk_call_expanded to prevent red-zone.
10434
10435 2016-03-07  Martin Jambor  <mjambor@suse.cz>
10436
10437         * hsa.h (hsa_get_ctor_statements): Declare.
10438         (hsa_get_dtor_statements): Likewise.
10439         (hsa_get_kernel_dispatch_type): Likewise.
10440         * hsa.c (hsa_get_ctor_statements): New function.
10441         (hsa_get_dtor_statements): Likewise.
10442         (hsa_get_kernel_dispatch_type): Likewise.
10443         * hsa-brig.c (hsa_cdtor_statements): Removed.
10444         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
10445         hsa_get_dtor_statements.
10446         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
10447         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
10448
10449 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10450
10451         * config/arm/arm-cores.def (cortex-r8): New.
10452         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
10453         * config/arm/arm-tune.md: Likewise.
10454         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
10455
10456 2016-03-07  Martin Sebor  <msebor@redhat.com>
10457
10458         PR rtl-optimization/19705
10459         * doc/invoke.texi (Options That Control Optimization): Clarify
10460         -fno-branch-count-reg.
10461
10462 2016-02-26  Richard Biener  <rguenther@suse.de>
10463             Jeff Law  <law@redhat.com>
10464
10465         PR tree-optimization/69740
10466         * cfghooks.c (remove_edge): Request loop fixups if we delete
10467         an edge that might turn an irreducible loop into a natural
10468         loop.
10469         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
10470         Move after definition of loops_state_clear.
10471
10472 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
10473
10474         PR rtl-optimization/69052
10475         * rtlanal.c (commutative_operand_precedence): Set higher precedence
10476         to CONST_WIDE_INT.
10477
10478 2016-03-07  Tom de Vries  <tom@codesourcery.com>
10479
10480         PR tree-optimization/70116
10481         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
10482         is_tm_ending stmts and ubsan/asan internal functions.
10483         (find_duplicate): Use it.  Don't test is_tm_ending here.
10484
10485 2016-03-07  Richard Biener  <rguenther@suse.de>
10486
10487         PR tree-optimization/70115
10488         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
10489         (propagate_constants_for_unrolling): Use replace_uses_by.
10490
10491 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
10492
10493         PR middle-end/69916
10494         * omp-low.c (struct oacc_loop): Add ifns.
10495         (new_oacc_loop_raw): Initialize it.
10496         (finish_oacc_loop): Clear mask & flags if no ifns.
10497         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
10498         (oacc_loop_xform_loop): Add ifns arg & adjust.
10499         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
10500
10501 2016-03-07  Richard Henderson  <rth@redhat.com>
10502
10503         PR rtl-opt/70061
10504         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
10505         (insert_value_copy_on_edge): Likewise.
10506
10507 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10508
10509         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
10510
10511 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10512
10513         PR target/62281
10514         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
10515
10516 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10517
10518         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
10519
10520 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10521
10522         Fix sseimul type attribute.
10523         * config/i386/znver1.md
10524         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
10525         znver1_sseimul_avx256_load) : Fix the type attribute.
10526         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
10527         pipe usage and latency.
10528
10529 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
10530
10531         PR c++/70084
10532         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
10533         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
10534         to the right type.
10535
10536 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10537
10538         PR c/69973
10539         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
10540
10541         PR rtl-optimization/69941
10542         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
10543         the reg share its mode.
10544
10545 2016-03-04  Jeff Law  <law@redhat.com>
10546
10547         PR tree-optimization/69196
10548         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10549         If the both SSA_NAMEs are anonymous, then consider them unassociated
10550         and include the PHI in the statement count.
10551
10552 2016-03-05  Tom de Vries  <tom@codesourcery.com>
10553
10554         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
10555         construct in oacc routine.  Check for oacc region in oacc routine.
10556
10557 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10558
10559         PR target/70062
10560         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
10561         2016-02-22 changes, instead don't recurse if RECUR is already true.
10562         Don't change *dynamic_check if RECUR.  Adjust recursive caller
10563         to pass true to the new argument.
10564         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
10565
10566         PR target/70059
10567         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
10568         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
10569         fixes.
10570         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
10571
10572 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10573
10574         PR rtl-optimization/57676
10575         * lra-assigns.c (lra_assign): Guard test for maximum iterations
10576         with flag_checking.
10577
10578 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
10579
10580         * tree-vect-patterns.c (search_type_for_mask): Handle
10581         comparison of booleans.
10582
10583 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10584
10585         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
10586         Fix @xref usage.
10587
10588         PR debug/69947
10589         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
10590         all other ops that have dw_val_class_die_ref operands,
10591         and DW_OP_GNU_entry_value.
10592
10593 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10594
10595         PR rtl-optimization/69904
10596         * config/arm/arm.c (arm_cannot_copy_insn_p):
10597         Return true for load-exclusive instructions.
10598
10599 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
10600
10601         PR target/70021
10602         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
10603         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
10604         the pattern no matter if it is used just by non-pattern, pattern
10605         or mix thereof.
10606         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
10607         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10608         oprnd1 def_stmt is in pattern, don't look through it.
10609
10610 2016-03-03  Marek Polacek  <polacek@redhat.com>
10611
10612         PR middle-end/70050
10613         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
10614
10615 2016-03-03  Martin Liska  <mliska@suse.cz>
10616
10617         PR tree-optimization/70043
10618         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
10619         previous statement if we see a debug statement.
10620
10621 2016-03-03  Richard Biener  <rguenther@suse.de>
10622
10623         PR tree-optimization/55936
10624         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
10625         parameter and guard unsafe equivalence use.
10626         (vrp_evaluate_conditional_warnv_with_ops): Always use
10627         safe equivalences but not via the quadratic compare_names
10628         helper.
10629
10630 2016-03-03  Michael Collison  <michael.collison@linaro.org>
10631
10632         PR target/70014
10633         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
10634         for operand 1 to s_register_operand. Change predicate for operand
10635         2 to arm_not_immediate_operand.
10636
10637 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
10638
10639         * doc/tm.texi: Regenerated.
10640
10641 2016-03-02  Richard Henderson  <rth@redhat.com>
10642
10643         PR rtl-opt/67145
10644         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
10645         simplification when all args are positive non-fixed registers.
10646
10647 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10648
10649         * target.def (lra_p): Specify that new ports should use LRA.
10650
10651 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
10652
10653         PR libgomp/69555
10654         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
10655         gimplify_type_sizes the type they refer to.
10656         (omp_notice_variable): Handle reference vars to VLAs.
10657         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
10658         reference to VLA decls in the second pass instead of first pass.
10659
10660 2016-03-02  Tom de Vries  <tom@codesourcery.com>
10661
10662         PR tree-optimization/68659
10663         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
10664         new_expr == NULL_TREE.
10665         (get_new_name): Handle ADDR_EXPR.
10666
10667 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
10668
10669         PR rtl-optimization/69052
10670         * loop-invariant.c (canonicalize_address): New function.
10671         (inv_can_prop_to_addr_use): Check validity of address expression
10672         which is canonicalized by above function.
10673
10674 2016-03-02  Alan Modra  <amodra@gmail.com>
10675
10676         PR ipa/69990
10677         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
10678         larger alignment.
10679
10680 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
10681
10682         PR target/70028
10683         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
10684         (*movhi_internal): Put mask moves from and to memory separately
10685         from moves from/to GPRs.
10686
10687 2016-03-02  Richard Biener  <rguenther@suse.de>
10688
10689         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
10690         GENERIC expressions in GIMPLE.
10691
10692 2016-03-02  Richard Biener  <rguenther@suse.de>
10693
10694         * config/i386/i386.c (type_natural_mode): Fix typo.
10695
10696 2016-03-02  Nick Clifton  <nickc@redhat.com>
10697
10698         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
10699
10700 2016-03-02  Richard Biener  <rguenther@suse.de>
10701             Uros Bizjak  <ubizjak@gmail.com>
10702
10703         PR target/67278
10704         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
10705
10706 2016-03-02  Richard Biener  <rguenther@suse.de>
10707
10708         PR middle-end/67278
10709         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
10710
10711 2016-03-02  Marek Polacek  <polacek@redhat.com>
10712
10713         PR c/67854
10714         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
10715         "is promoted to" warning.
10716
10717 2016-03-01  DJ Delorie  <dj@redhat.com>
10718
10719         * config.gcc: Deprecate mep-*.
10720
10721 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
10722
10723         PR middle-end/70025
10724         * lra-constraints.c (regno_val_use_in): New.
10725         (match_reload): Use it instead of regno_use_in.
10726
10727 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10728
10729         PR rtl-optimization/70007
10730         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
10731         references present in REG_EQUAL notes attached to non-SET patterns.
10732
10733 2016-03-01  Jeff Law  <law@redhat.com>
10734
10735         PR tree-optimization/69196
10736         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10737         Appropriately clamp the number of statements to copy when the
10738         thread path does not traverse a loop backedge.
10739
10740         PR tree-optimization/69196
10741         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10742         Do count some PHIs in the thread path against the insn count.  Decrease
10743         final statement count by one as the control statement in the last
10744         block will get removed.  Remove special cased code for handling PHIs
10745         in the last block.
10746
10747 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
10748
10749         PR target/70027
10750         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
10751         asm dialect alternatives to explicit GOTPCREL calls.
10752
10753 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10754
10755         PR ada/70017
10756         * ira.c (do_reload): Issue warning for generic stack checking here...
10757         * reload1.c (reload): ...instead of here and streamline it.
10758
10759 2016-03-01  Nick Clifton  <nickc@redhat.com>
10760
10761         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
10762
10763 2016-03-01  Richard Biener  <rguenther@suse.de>
10764
10765         PR tree-optimization/69983
10766         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
10767         types and fall back to operand_equal_p.
10768
10769 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10770
10771         Revert
10772         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10773
10774         * config/s390/constraints.md ("jm8"): New constraint.
10775         * config/s390/predicates.md ("const_int_8bitset_operand"): New
10776         predicate.
10777         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
10778         into ...
10779         ("*setmem_long<setmem_and>"): New pattern.
10780         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
10781         into ...
10782         ("*setmem_long_31z<setmem_and>"): New pattern.
10783         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
10784         New substitution rules with the required attributes.
10785
10786
10787 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10788
10789         Revert
10790         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10791
10792         * gensupport.c (process_substs_on_one_elem): Split loop to
10793         complete mark_operands_used_in_match_dup on all expressions in the
10794         vector first.
10795         (adjust_operands_numbers): Inline into process_substs_on_one_elem
10796         and remove function.
10797
10798 2016-03-01  Richard Biener  <rguenther@suse.de>
10799
10800         PR middle-end/70022
10801         * fold-const.c (fold_indirect_ref_1): Fix range checking for
10802         vector BIT_FIELD_REF extract.
10803
10804 2016-03-01  Richard Biener  <rguenther@suse.de>
10805
10806         PR tree-optimization/69994
10807         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
10808
10809 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
10810
10811         PR tree-optimization/69956
10812         * tree-vect-stmts.c (supportable_widening_operation): Support
10813         multi-step conversion of boolean vectors.
10814         (supportable_narrowing_operation): Likewise.
10815
10816 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10817
10818         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
10819         anymore.
10820
10821 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10822
10823         * config/s390/subst.md (DSI_VI): New mode iterator.
10824         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
10825         * config/s390/vector.md ("vec_set<mode>"): Move expander before
10826         the insn definition.
10827         ("*vec_set<mode>"): Change predicate and add alternative to
10828         support only either register or const_int operands as element
10829         selector.
10830         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
10831         operands.
10832         ("vec_extract<mode>"): New expander.
10833         ("*vec_extract<mode>"): New insn definition supporting reg and
10834         const_int element selectors.
10835         ("*vec_extract<mode>_plus"): New insn definition supporting
10836         reg+const_int element selectors.
10837         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
10838         following expander+insn definition.
10839         ("<vec_shifts_name><mode>3"): New expander.
10840         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
10841
10842 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10843
10844         * config/s390/s390.md ("*tabort_1"): Change predicate to
10845         nonmemory_operand.  Add a second alternative to cover
10846         register as well as const int operands.
10847         ("*tabort_1_plus"): New pattern definition.
10848
10849 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10850
10851         * config/s390/s390.md ("*ashrdi3_cc_31")
10852         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
10853         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
10854         Merge insn definitions into ...
10855         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
10856         New pattern definition.
10857         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
10858         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
10859         ("*ashr<mode>3_and"): Merge insn definitions into ...
10860         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
10861         New pattern definition.
10862         * config/s390/subst.md ("addr_style_op_cc_subst")
10863         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
10864         substitutions patterns plus attributes.
10865         Add ashiftrt to SUBST iterator.
10866
10867 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10868
10869         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
10870         op2 to nonmemory_operand.
10871         ("*<shift>di3_31", "*<shift>di3_31_and"):
10872         Merge into single pattern definition ...
10873         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
10874         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
10875         pattern definition ...
10876         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
10877         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
10878         iterator.
10879
10880 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10881
10882         * config/s390/predicates.md (const_int_6bitset_operand): New
10883         predicate.
10884         * config/s390/s390.md: Include subst.md.
10885         ("rotl<mode>3"): New expander.
10886         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
10887         ...
10888         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
10889         * config/s390/subst.md: New file.
10890
10891 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10892
10893         * config/s390/s390.md ("op_type", "atype", "length" attributes):
10894         Remove RRR type.  It doesn't really exist.
10895         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
10896         attributes.
10897         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
10898         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
10899         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
10900         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
10901         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
10902         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
10903         `enabled' attribute.
10904
10905 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10906
10907         * gensupport.c (process_substs_on_one_elem): Split loop to
10908         complete mark_operands_used_in_match_dup on all expressions in the
10909         vector first.
10910         (adjust_operands_numbers): Inline into process_substs_on_one_elem
10911         and remove function.
10912
10913 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
10914
10915         PR target/69706
10916         * config/sparc/sparc.c (NWORDS_UP): Rename to...
10917         (CEIL_NWORDS): ...this.  Use CEIL macro.
10918         (compute_fp_layout): Adjust to above renaming.
10919         (function_arg_union_value): Likewise.
10920         (sparc_arg_partial_bytes): Likewise.
10921         (sparc_function_arg_advance): Likewise.
10922
10923 2016-02-29  Jeff Law  <law@redhat.com>
10924
10925         PR tree-optimization/70005
10926         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
10927         where an object with a boolean range is compared against a value
10928         outside [0..1].
10929
10930         PR tree-optimization/69999
10931         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
10932         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
10933         loop cleanups.
10934
10935 2016-02-29  Richard Biener  <rguenther@suse.de>
10936
10937         PR tree-optimization/69994
10938         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
10939         (get_unary_op): Look through nop conversions.
10940         (ops_equal_values_p): New function, look for equality diregarding
10941         nop conversions.
10942         (eliminate_plus_minus_pair): Use ops_equal_values_p
10943         (repropagate_negates): Do not use get_unary_op here.
10944
10945 2016-02-29  Martin Liska  <mliska@suse.cz>
10946
10947         * system.h: Poison ENABLE_CHECKING macro.
10948
10949 2016-02-29  Martin Liska  <mliska@suse.cz>
10950
10951         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
10952         is presented in dump flags.
10953         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
10954         (hsa_regalloc): Likewise.
10955
10956 2016-02-19  Richard Biener  <rguenther@suse.de>
10957
10958         PR tree-optimization/69980
10959         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
10960         permutation of those we need to keep.
10961
10962 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
10963
10964         PR target/69706
10965         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
10966         (NWORDS_UP): ...this
10967         (init_cumulative_args): Minor tweaks.
10968         (sparc_promote_function_mode): Likewise.
10969         (scan_record_type): Delete.
10970         (traverse_record_type): New function template.
10971         (classify_data_t): New structure type.
10972         (classify_registers): New inline function.
10973         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
10974         exhausted.  Instantiate traverse_record_type on classify_registers and
10975         deal with the case of a structure passed in slot #15 with no FP field
10976         in the first word.
10977         (assign_data_t): New structure type.
10978         (compute_int_layout): New static function.
10979         (compute_fp_layout): Likewise.
10980         (count_registers): New inline function.
10981         (assign_int_registers): New static function.
10982         (assign_fp_registers): Likewise.
10983         (assign_registers): New inline function.
10984         (function_arg_record_value_1): Delete.
10985         (function_arg_record_value_2): Likewise.
10986         (function_arg_record_value_3): Likewise.
10987         (function_arg_record_value): Adjust to above changes.  Instantiate
10988         traverse_record_type on count_registers to first count the number of
10989         registers to be used and then on assign_registers to assign them.
10990         (function_arg_union_value): Adjust to above renaming.
10991         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
10992         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
10993         case of a structure passed in slot #15
10994         (sparc_function_arg_advance): Likewise.
10995         (function_arg_padding): Minor tweak.
10996
10997 2016-02-29  Richard Biener  <rguenther@suse.de>
10998
10999         PR tree-optimization/69720
11000         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11001         the adjustment_def path for possibly vectorized defs.
11002         (vect_create_epilog_for_reduction): Handle vectorized initial
11003         defs properly.
11004
11005 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11006
11007         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11008
11009 2016-02-27  Jeff Law  <law@redhat.com>
11010
11011         Revert
11012         2016-02-26  Richard Biener  <rguenther@suse.de>
11013                     Jeff Law  <law@redhat.com>
11014
11015         PR tree-optimization/69740
11016         * cfghooks.c (remove_edge): Request loop fixups if we delete
11017         an edge that might turn an irreducible loop into a natural
11018         loop.
11019
11020 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11021
11022         PR rtl-optimization/69896
11023         * tree-vect-generic.c (get_compute_type): Avoid single element
11024         vector types.
11025
11026 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11027
11028         Rename the AArch64 tuning option and related functions to enable the
11029         Newton series for the reciprocal square root to reflect its
11030         approximative characteristic.
11031
11032         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11033         function to "aarch64_emit_approx_rsqrt".
11034         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11035         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11036         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11037         (xgene1_tunings): Likewise.
11038         (use_rsqrt_p): Likewise.
11039         (aarch64_emit_swrsqrt): Use new function name.
11040         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11041         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11042         text explaining this option.
11043         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11044
11045 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11046
11047         PR target/69969
11048         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11049         complain about -mallow-movmisalign without -mvsx if
11050         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11051
11052 2016-02-26  Joel Sherrill  <joel@rtems.org>
11053
11054         * config.gcc: Add x86_64-*-rtems*.
11055         * config/i386/rtems-64.h: New file.
11056
11057 2016-02-26  Joel Sherrill  <joel@rtems.org>
11058
11059         * config.gcc: Add aarch64-*-rtems*.
11060         * config/aarch64/rtems.h: New file.
11061
11062 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11063
11064         PR target/69946
11065         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11066         shift amount using %h.  Add comment.
11067
11068 2016-02-26  Richard Biener  <rguenther@suse.de>
11069             Jeff Law  <law@redhat.com>
11070
11071         PR tree-optimization/69740
11072         * cfghooks.c (remove_edge): Request loop fixups if we delete
11073         an edge that might turn an irreducible loop into a natural
11074         loop.
11075
11076 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11077
11078         PR middle-end/69920
11079         * tree-sra.c (sra_modify_assign): Do not remove loads of
11080         uninitialized aggregates to SSA_NAMEs.
11081
11082 2016-02-26  Richard Henderson  <rth@redhat.com>
11083
11084         PR target/69709
11085         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11086         pseudo in case the target rtx matches the source of the left
11087         shift.
11088
11089 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11090
11091         PR hsa/69568
11092         * hsa.h (hsa_type_packed_p): Declare.
11093         * hsa.c (hsa_type_packed_p): New function.
11094         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11095         loads.
11096         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11097         * hsa-brig.c (emit_basic_insn): Likewise.
11098
11099 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11100
11101         pr hsa/69674
11102         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11103         pointers.
11104         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11105
11106 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11107
11108         * hsa.h (is_a_helper): New overload for hsa_op_immed for
11109         hsa_op_with_type operands.
11110         (hsa_unsigned_type_for_type): Declare.
11111         * hsa.c (hsa_unsigned_type_for_type): New function.
11112         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11113         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11114         the finalizer.  Do not emit extra move.
11115
11116 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11117
11118         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11119         atomic operations in private segment.
11120
11121 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11122
11123         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11124         statements to wi->info.  Also disallow omp simd constructs.
11125         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11126         for not gridifying.  Dump special string for omp_for.
11127
11128 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11129
11130         PR target/69245
11131         * config/aarch64/aarch64.c (aarch64_set_current_function):
11132         Save/restore target globals when switching to
11133         target_option_default_node.
11134
11135 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11136
11137         PR target/69613
11138         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11139         Return 0 if !SHIFT_COUNT_TRUNCATED.
11140
11141 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11142             Eric Botcazou  <ebotcazou@adacore.com>
11143
11144         PR rtl-optimization/69891
11145         * dse.c (scan_insn): If we can't figure out memset arguments
11146         or they are non-constant, call clear_rhs_from_active_local_stores.
11147
11148 2016-02-26  Martin Liska  <mliska@suse.cz>
11149
11150         * doc/extend.texi: Mention clog10, clog10f an clog10l
11151         in Builtins section.
11152
11153 2016-02-26  Martin Liska  <mliska@suse.cz>
11154
11155         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11156         CHECKING_P.
11157         (resolve_args_picking_1): Likewise.
11158         * dwarf2out.h (struct GTY): Likewise.
11159
11160 2016-02-26  Martin Liska  <mliska@suse.cz>
11161
11162         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11163         with flag_checking.
11164         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11165
11166 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11167             Martin Liska  <mliska@suse.cz>
11168
11169         * doc/install.texi: Mention --enable-valgrind-annotations.
11170
11171 2016-02-26  Richard Biener  <rguenther@suse.de>
11172
11173         PR tree-optimization/69551
11174         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11175         looking through aliases adjust DECL_PT_UID to refer to the
11176         ultimate alias target.
11177
11178 2016-02-25  Martin Liska  <mliska@suse.cz>
11179
11180         PR middle-end/69919
11181         * alloc-pool.c (after_memory_report): New variable.
11182         * alloc-pool.h (base_pool_allocator ::release): Do not use
11183         the infrastructure if after_memory_report.
11184         * toplev.c (toplev::main): Mark after memory report.
11185
11186 2016-02-25  Richard Biener  <rguenther@suse.de>
11187
11188         PR tree-optimization/48795
11189         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11190
11191 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11192
11193         PR driver/68463
11194         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
11195         offloading is enabled and -fopenacc or -fopenmp is specified.
11196         (CRTOFFLOADEND): Likewise.
11197         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11198         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11199         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11200         (offload_objects_file_name): New static var.
11201         (tool_cleanup): Remove offload_objects_file_name file.
11202         (find_offloadbeginend): Replace with ...
11203         (find_crtoffloadtable): ... this.
11204         (run_gcc): Remove offload_argc and offload_argv.
11205         Get offload_objects_file_name from -foffload-objects=... option.
11206         Read names of object files with offload from this file, pass them to
11207         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
11208         don't pass offloadbegin and offloadend to the linker.  Don't pass
11209         offload non-LTO files to the linker, because now they're not claimed.
11210
11211 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11212
11213         PR ipa/69630
11214         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11215         on builtin_unreachable.
11216
11217 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11218
11219         PR rtl-optimization/69896
11220         * regcprop.c: Include cfgrtl.h.
11221         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11222         than remembered mode, either delete it (if noop_move_p), or
11223         treat like copy_p but not noop_p instruction.
11224
11225 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11226
11227         PR debug/69705
11228         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11229         - allow NULL decl for Fortran DW_TAG_common_block variables.
11230
11231 2016-02-24  Jason Merrill  <jason@redhat.com>
11232
11233         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11234
11235 2016-02-24  Richard Biener  <rguenther@suse.de>
11236             Jakub Jelinek  <jakub@redhat.com>
11237
11238         PR middle-end/69760
11239         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11240         conditionally executed ops to well-defined overflow behavior.
11241
11242 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11243
11244         PR middle-end/69915
11245         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11246         elements.
11247
11248 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11249
11250         PR rtl-optimization/69886
11251         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11252         argument.  Use it when checking validity of set instructions.
11253         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11254         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11255         callsite.
11256         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11257         * store-motion.c (find_moveable_store): Update
11258         can_assign_to_reg_without_clobbers_p callsite.
11259
11260 2016-02-24  Richard Biener  <rguenther@suse.de>
11261
11262         PR middle-end/68963
11263         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
11264         bogus check.
11265         (record_nonwrapping_iv): Do not fall back to the low/high bound
11266         for non-constant IV bases if the stmt is not always executed.
11267
11268 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11269
11270         * config/arm/arm-cores.def (cortex-a32): New entry.
11271         * config/arm/arm-tables.opt: Regenerate.
11272         * config/arm/arm-tune.md: Regenerate.
11273         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
11274         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
11275         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
11276         for -mcpu and -mtune.
11277
11278 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11279
11280         PR target/69875
11281         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
11282         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
11283         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
11284         (atomic_loaddi_1): Delete.
11285         (atomic_loaddi): Rewrite expander using the above changes.
11286
11287 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11288
11289         PR c/69918
11290         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
11291         2 to 3.
11292
11293 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11294             Richard Biener  <rguenth@suse.de>
11295
11296         PR middle-end/69909
11297         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
11298         set_mem_attributes if tem is SSA_NAME which got expanded
11299         as a MEM.
11300
11301 2016-02-24  Richard Biener  <rguenther@suse.de>
11302
11303         PR tree-optimization/69907
11304         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
11305         end of permutations for BB vectorization.
11306
11307 2016-02-24  Christian Bruel  <christian.bruel@st.com>
11308
11309         * config/arm/arm-c.c (arm_option_override): Initialize
11310         target_option_current_node.
11311         * config/arm/arm.c (arm_pragma_target_parse): Replace
11312         build_target_option_node call by target_option_current_node.
11313         Set target_option_current_node.
11314         Fix comments.
11315
11316 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
11317
11318         PR target/69810
11319         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
11320         define_insn_and_split to define_insn.
11321         (zero_extendqi<mode>2_dot2): Same.
11322         (extendqi<mode>2_dot): Same.
11323         (extendqi<mode>2_dot2): Same.
11324
11325 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11326
11327         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
11328         and add bypass for AES{D,E} and AESMC pairs.
11329         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
11330         and AESMC pairs.
11331
11332 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11333
11334         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
11335         series for reciprocal square root in Exynos M1.
11336
11337 2016-02-23  Martin Sebor  <msebor@redhat.com>
11338
11339         PR c/69759
11340         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
11341         __builtin_alloca_with_align.
11342
11343 2016-02-23  Richard Henderson  <rth@redhat.com>
11344
11345         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
11346         (ix86_register_pragmas): Remove __seg_tls.
11347         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
11348         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
11349         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
11350         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
11351         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
11352         * doc/extend.texi (__seg_tls): Remove item.
11353
11354 2016-02-23  Richard Biener  <rguenther@suse.de>
11355
11356         * alloc-pool.h (struct allocation_object): Make id member
11357         conditional on CHECKING_P again.
11358         (get_instance): Adjust.
11359         (base_pool_allocator): Likewise.
11360
11361 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
11362
11363         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
11364         (parallelize_loops): In OpenACC kernels mode, set n_threads to
11365         zero.
11366         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
11367         flag_openacc.
11368         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11369
11370 2016-02-23  Richard Biener  <rguenther@suse.de>
11371
11372         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
11373         * bitmap.h (struct bitmap_usage): Likewise.
11374         (bitmap_move): Declare.
11375         * bitmap.c (register_overhead): Take size_t argument.
11376         (bitmap_move): New function.
11377         * df-problems.c (df_rd_transfer_function): Use bitmap_move
11378         to properly account overhead.
11379         * tree.c (free_node): Use tree_size.
11380
11381 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
11382
11383         PR c++/69902
11384         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
11385         when inverting comparison.
11386
11387         PR c/69900
11388         * common.opt (Wunreachable-code): Add Warning flag.
11389
11390 2016-02-23  Mark Wielaard  <mjw@redhat.com>
11391             Jakub Jelinek  <jakub@redhat.com>
11392
11393         PR c/69911
11394         * cgraphunit.c (check_global_declaration): Check main_input_filename
11395         and DECL_SOURCE_FILE are not NULL.
11396
11397 2016-02-23  Martin Jambor  <mjambor@suse.cz>
11398
11399         PR tree-optimization/69666
11400         * tree-sra.c (sra_modify_assign): Do not attempt to create
11401         default_def replacements for unscalarizable regions.
11402
11403 2016-02-20  Mark Wielaard  <mjw@redhat.com>
11404
11405         PR c/28901
11406         * cgraphunit.c (check_global_declaration): Check level of
11407         warn_unused_const_variable and main_input_filename.
11408         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
11409         (-Wunused-variable): For C implies -Wunused-const-variable=1.
11410         (-Wunused-const-variable): Explain levels 1 and 2.
11411
11412 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11413
11414         PR target/69888
11415         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
11416         identical arguments.  Formatting and spelling fixes.
11417
11418         PR target/69885
11419         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
11420         be specified.
11421
11422         PR target/69894
11423         PR target/69895
11424         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
11425         and m68k-devices.def.
11426         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
11427         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
11428
11429 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
11430
11431         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
11432         and HImode registers.
11433
11434 2016-02-22  Richard Biener  <rguenther@suse.de>
11435
11436         PR tree-optimization/69882
11437         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
11438         preserve permutations present because of gaps.
11439         (vect_supported_load_permutation_p): Always continue checking
11440         permutations after vect_attempt_slp_rearrange_stmts.
11441
11442 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
11443
11444         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
11445         min_profitable_estimate, rather than min_profitable_iters.
11446
11447 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11448
11449         PR target/69885
11450         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
11451         SImode for last match_operand.
11452
11453 2016-02-22  Martin Liska  <mliska@suse.cz>
11454
11455         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
11456         return bitsize - 1 as the return value.
11457
11458 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
11459
11460         PR target/69806
11461         PR target/54089
11462         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
11463         Handle negative shift counts.
11464         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
11465         force_reg on the shift constant.
11466         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
11467         (lshrsi3_d): Handle negative shift counts.
11468
11469 2016-02-22  Richard Biener  <rguenther@suse.de>
11470             Tom de Vries  <tom@codesourcery.com>
11471
11472         * graph.c: Include dumpfile.h.
11473         (print_graph_cfg): Split into three overloads.
11474         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
11475
11476 2016-02-22  Tom de Vries  <tom@codesourcery.com>
11477
11478         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
11479         dump-fn.
11480
11481 2016-02-22  Richard Biener  <rguenther@suse.de>
11482
11483         PR ipa/37448
11484         * ipa-inline-transform.c (inline_call): When not updating
11485         overall summaries adjust self size by the growth estimate.
11486         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
11487         hash-set, do not update overall summaries here.  Renamed from ...
11488         (inline_to_all_callers): ... this which is now wrapping the
11489         above and performing delayed overall summary update.
11490         (early_inline_small_functions): Delay updating of the overall
11491         summary.
11492
11493 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
11494
11495         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
11496         variable.
11497
11498 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR driver/69805
11501         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
11502         :%* in %:gt() argument.
11503         (greater_than_spec_func): Adjust for expecting only numbers,
11504         if there are more than two numbers, compare the last two.
11505
11506 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
11507
11508         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
11509         -Wnarrowing with -std.
11510
11511 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11512
11513         PR c++/69851
11514         * expr.c (store_field): Don't use bit-field path if exp is
11515         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
11516         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
11517         and the assignment can be performed by bitwise copy.  Formatting
11518         fix.
11519
11520         PR middle-end/69838
11521         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
11522         call copy_reg_eh_region_note_forward on before and/or after sequences
11523         and remove note from insn if it no longer can throw.
11524
11525         PR target/69820
11526         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
11527         if TARGET_AVX512BW.
11528
11529 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11530
11531         * config/s390/vector.md: Add missing commutative operand markers
11532         to the patterns which qualify for one.
11533         * config/s390/vx-builtins.md: Likewise.
11534
11535 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11536
11537         * config/s390/vector.md (VI, VI_QHS): Add single element vector
11538         types to mode iterators.
11539         (vec_double): ... and mode attribute.
11540         * config/s390/vx-builtins.md (non_vec_int): Likewise.
11541
11542 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11543
11544         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
11545         Change the predicate of op2 from nonimmediate to general and let
11546         reload fix it if necessary.
11547
11548 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11549
11550         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
11551
11552 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11553
11554         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
11555         mode.
11556
11557 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11558
11559         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
11560         * config/s390/s390.c (s390_expand_vec_movstr): New function.
11561         * config/s390/s390.md ("movstr<P:mode>"): Call
11562         s390_expand_vec_movstr.
11563
11564 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11565
11566         * config/s390/s390.md: Add missing output modifier for operand 1
11567         to print it as address properly.
11568
11569 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11570
11571         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
11572         * config/s390/2964.md: New file.
11573         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
11574         of insn grouping attributes depending on the CPU level.
11575         (s390_get_unit_mask): New function.
11576         (s390_sched_score): Remove the OOO from the scheduling macros.
11577         Add loop to calculate a score for the instruction mix.
11578         (s390_sched_reorder): Likewise plus improve debug output.
11579         (s390_sched_variable_issue): Rename macros as above.  Calculate
11580         the unit distances after actually scheduling an insn.  Improve
11581         debug output.
11582         (s390_sched_init): Clear last_scheduled_unit_distance array.
11583         * config/s390/s390.md: Include 2964.md.
11584
11585 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11586
11587         PR target/69671
11588         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
11589         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
11590         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
11591         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
11592         *avx512f_<code>v8div16qi2_mask_1): New insns.
11593
11594 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11595
11596         PR target/68404
11597         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
11598         2016-02-09 change.
11599
11600         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
11601         earlyclobber from target.  Use wF constraint for fused memory
11602         address.
11603         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
11604
11605 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11606             Martin Liska  <mliska@suse.cz>
11607
11608         PR sanitizer/69863
11609         * cfgexpand.c (asan_sanitize_stack_p): New function.
11610         (partition_stack_vars): Use the function.
11611         (expand_stack_vars): Likewise.
11612         (defer_stack_allocation): Likewise.
11613         (expand_used_vars): Likewise.
11614
11615 2016-02-18  Richard Biener  <rguenther@suse.de>
11616
11617         PR middle-end/69553
11618         * fold-const.c (operand_equal_p): Properly compare offsets for
11619         IMAGPART_EXPR and ARRAY_REF.
11620
11621 2016-02-18  Nick Clifton  <nickc@redhat.com>
11622
11623         PR target/62254
11624         PR target/69610
11625         * config/arm/arm.c (arm_option_override_internal): Disable
11626         interworking if the target does not support thumb instructions.
11627         (arm_reload_in_hi): Handle the case where a register to register
11628         move needs reloading because there is no simple pattern to handle
11629         it.
11630         (arm_reload_out_hi): Likewise.
11631
11632 2016-02-18  Richard Biener  <rguenther@suse.de>
11633
11634         PR middle-end/69854
11635         * match.pd: Don't use fold_binary or fold_unary for folding
11636         constants.
11637
11638 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
11639
11640         PR c++/69850
11641         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
11642         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
11643         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
11644         warn on gimple_no_warning_p statements.
11645
11646 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
11647
11648         * doc/extend.texi (C++ Attributes): Correct description of
11649         warn_unused type attribute.
11650
11651 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11652
11653         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
11654         correct instruction.
11655
11656 2016-02-17  Richard Biener  <rguenther@suse.de>
11657
11658         PR rtl-optimization/69609
11659         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
11660         (find_traces_1_round): When ending a trace update cached priority
11661         of successors.
11662         (bb_to_key): Use cached priority when available.
11663         (copy_bb): Initialize cached priority.
11664         (reorder_basic_blocks_software_trace_cache): Likewise.
11665
11666 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11667
11668         PR target/69161
11669         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
11670         New predicate.
11671         (aarch64_comparison_operator): Break overly long line into two.
11672         (aarch64_comparison_operation): Likewise.
11673         * config/aarch64/aarch64.md (cstorecc4): Use
11674         aarch64_comparison_operator_mode instead of
11675         aarch64_comparison_operator.
11676         (cstore<mode>4): Likewise.
11677         (aarch64_cstore<mode>): Likewise.
11678         (*cstoresi_insn_uxtw): Likewise.
11679         (cstore<mode>_neg): Likewise.
11680         (*cstoresi_neg_uxtw): Likewise.
11681
11682 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11683
11684         PR target/69161
11685         * config/arm/predicates.md (arm_comparison_operator_mode):
11686         New predicate.
11687         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
11688         instead of arm_comparison_operator.
11689         (*mov_negscc): Likewise.
11690         (*mov_notscc): Likewise.
11691         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
11692         (*thumb2_mov_negscc): Likewise.
11693         (*thumb2_mov_negscc_strict_it): Likewise.
11694         (*thumb2_mov_notscc): Likewise.
11695         (*thumb2_mov_notscc_strict_it): Likewise.
11696
11697 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
11698
11699         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
11700         Add missing return.
11701
11702 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
11703
11704         * config/visium/visium.c (machine_libfunc_index): New enum.
11705         (machine_libfuncs): New structure.
11706         (visium_libfuncs): New static variable.
11707         (TARGET_INIT_LIBFUNCS): Define to...
11708         (visium_init_libfuncs): ...this.  New function.
11709         (expand_block_move_4): Use the appropriate libfunc.
11710         (expand_block_move_2): Likewise.
11711         (expand_block_move_1): Likewise.
11712         (expand_block_set_4): Likewise.
11713         (expand_block_set_2): Likewise.
11714         (expand_block_set_1): Likewise.
11715         (visium_trampoline_init): Likewise.
11716
11717 2016-02-17  Nick Clifton  <nickc@redhat.com>
11718
11719         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
11720         TI's devices.csv file as of March 2016.
11721
11722 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11723
11724         PR Target/48344
11725         * opts-global.c (handle_common_deferred_options): Introduce and
11726         initialize two global variables to remember command-line options
11727         specifying a stack-limiting register.
11728         * opts.h: Add extern declarations of the two new global variables.
11729         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
11730         variable based on the values of the two new global variables.
11731
11732 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11733
11734         PR c/69835
11735         * common.opt (Wnonnull-compare): New warning.
11736         * doc/invoke.texi (-Wnonnull): Remove text about comparison
11737         of arguments against NULL.
11738         (-Wnonnull-compare): Document.
11739         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
11740         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
11741         * passes.def (pass_warn_nonnull_compare): Add.
11742         * gimple-ssa-nonnull-compare.c: New file.
11743
11744 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11745
11746         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
11747         AARCH64_EXTRA_TUNE_RECIP_SQRT.
11748
11749 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11750
11751         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
11752         reciprocal sqrt for -mlow-precision-recip-sqrt.
11753
11754 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11755             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11756
11757         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
11758         always use lane loads to construct non-constant vectors.
11759
11760 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11761
11762         * config/aarch64/aarch64.md
11763         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
11764         constraints for operand 3.
11765         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
11766
11767 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11768             Richard Biener  <rguenther@suse.de>
11769
11770         PR tree-optimization/69820
11771         * tree-vect-patterns.c (type_conversion_p): Return false if
11772         *orig_type is unsigned single precision or boolean.
11773         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
11774         Formatting fix.
11775
11776 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11777
11778         PR rtl-optimization/69764
11779         PR rtl-optimization/69771
11780         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
11781         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
11782
11783 2016-02-16  Richard Biener  <rguenther@suse.de>
11784
11785         PR tree-optimization/69776
11786         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
11787         sets from caller.
11788         (indirect_refs_may_alias_p): Likewise.
11789         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
11790         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
11791         according to tbaa_p.
11792         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
11793         (optimize_stmt): For redundant store discovery do not allow tbaa.
11794
11795 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
11796
11797         PR tree-optimization/69714
11798         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
11799         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
11800
11801 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
11802
11803         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
11804         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
11805         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
11806         * config/arc/arc.c (arc_init): Check FPU options.
11807         (get_arc_condition_code): Handle new CC_FPU* modes.
11808         (arc_select_cc_mode): Likewise.
11809         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
11810         register pair only. Allow access for ARCv2 accumulator.
11811         (gen_compare_reg): Whenever we have FPU support use FPU compare
11812         instructions.
11813         (arc_reorg): Don't generate brcc insns when FPU compare
11814         instructions are involved.
11815         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
11816         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
11817         floating point emulation.
11818         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
11819         (REVERSE_CONDITION): Add new CC_FPU* modes.
11820         (TARGET_FP_SP_BASE): Define.
11821         (TARGET_FP_DP_BASE): Likewise.
11822         (TARGET_FP_SP_FUSED): Likewise.
11823         (TARGET_FP_DP_FUSED): Likewise.
11824         (TARGET_FP_SP_CONV): Likewise.
11825         (TARGET_FP_DP_CONV): Likewise.
11826         (TARGET_FP_SP_SQRT): Likewise.
11827         (TARGET_FP_DP_SQRT): Likewise.
11828         (TARGET_FP_DP_AX): Likewise.
11829         * config/arc/arc.md (ARCV2_ACC): New constant.
11830         (type): New fpu type attribute.
11831         (SDF): Conditional iterator.
11832         (cstore<mode>, cbranch<mode>): Change expand condition.
11833         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
11834         handles FPU/FPX cases as well.
11835         * config/arc/arc.opt (mfpu): New option.
11836         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
11837         Renamed.
11838         (adddf3, muldf3, subdf3): Removed.
11839         * config/arc/predicates.md (proper_comparison_operator): Recognize
11840         CC_FPU* modes.
11841         * config/arc/fpu.md: New file.
11842         * doc/invoke.texi (ARC Options): Document mfpu option.
11843
11844 2016-02-16  Richard Biener  <rguenther@suse.de>
11845
11846         PR rtl-optimization/69291
11847         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
11848         noce_operand_ok check.
11849
11850 2016-02-16  Tom de Vries  <tom@codesourcery.com>
11851
11852         PR lto/67709
11853         * omp-low.c (simd_clone_create): Remove call to
11854         symtab->call_cgraph_insertion_hooks.
11855
11856 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11857
11858         PR tree-optimization/69802
11859         * tree-ssa-reassoc.c (update_range_test): If op is
11860         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
11861         op == 1 test of precision 1 integral op, otherwise handle
11862         that case as op itself.  Fix up formatting.
11863         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
11864         up formatting.
11865
11866 2016-02-16  Richard Biener  <rguenther@suse.de>
11867
11868         PR tree-optimization/69586
11869         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
11870         types for conversion sources.
11871
11872 2016-02-16  Richard Biener  <rguenther@suse.de>
11873
11874         PR middle-end/69801
11875         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
11876         mask OEP_ADDRESS_OF.
11877
11878 2016-02-16  Alan Modra  <amodra@gmail.com>
11879
11880         PR target/68973
11881         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
11882         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
11883         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
11884         (p8_mtvsrwz): New.
11885         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
11886         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
11887         (p8_fmrgow_<mode>): Likewise.
11888         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
11889         changes.
11890         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
11891         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
11892         to use movdi_internal64.  Remove op0_di.
11893         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
11894
11895 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
11896
11897         Add support for the FCCMP insn types
11898
11899         * config/aarch64/aarch64.md (fccmp): Change insn type.
11900         (fccmpe): Likewise.
11901         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
11902         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
11903         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
11904         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
11905         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
11906         * config/arm/types.md (fccmps): Add new insn type.
11907         (fccmpd): Likewise.
11908
11909 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11910
11911         * alias.c (get_alias_set): Fix a typo in comment.
11912
11913 2016-02-15  Richard Biener  <rguenther@suse.de>
11914
11915         PR tree-optimization/69595
11916         * match.pd: Complete range test simplification to true.
11917
11918 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
11919
11920         PR rtl-optimization/69648
11921         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
11922         pic_offset_table_rtx.
11923
11924         PR rtl-optimization/69752
11925         * ira.c (update_equiv_regs): When looking for more than a single SET,
11926         also take other side effects into account.
11927
11928 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
11929
11930         * config/s390/s390.c (s390_function_profiler): Add a new sequence
11931         for z900+ CPUs in 31-bit mode.
11932
11933 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
11934
11935         * common/config/s390/s390-common.c (s390_supports_split_stack):
11936         New function.
11937         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
11938         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
11939         * config/s390/s390.c (struct machine_function): New field
11940         split_stack_varargs_pointer.
11941         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
11942         in s390_emit_prologue.
11943         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
11944         vararg pointer.
11945         (morestack_ref): New global.
11946         (SPLIT_STACK_AVAILABLE): New macro.
11947         (s390_expand_split_stack_prologue): New function.
11948         (s390_live_on_entry): New function.
11949         (s390_va_start): Use split-stack vararg pointer if appropriate.
11950         (s390_asm_file_end): Emit the split-stack note sections.
11951         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
11952         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
11953         (UNSPECV_SPLIT_STACK_CALL): New unspec.
11954         (UNSPECV_SPLIT_STACK_DATA): New unspec.
11955         (split_stack_prologue): New expand.
11956         (split_stack_space_check): New expand.
11957         (split_stack_data): New insn.
11958         (split_stack_call): New expand.
11959         (split_stack_call_*): New insn.
11960         (split_stack_cond_call): New expand.
11961         (split_stack_cond_call_*): New insn.
11962
11963 2016-02-15  Richard Biener  <rguenther@suse.de>
11964
11965         PR tree-optimization/69783
11966         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
11967         Add trivially correct cases.
11968
11969 2016-02-15  Tom de Vries  <tom@codesourcery.com>
11970
11971         PR lto/69655
11972         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
11973         do_force_output.
11974         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
11975
11976 2016-02-15  Richard Biener  <rguenther@suse.de>
11977
11978         PR tree-optimization/69776
11979         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
11980         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
11981         indicate whether we can use TBAA to disambiguate against stores.
11982         Use alias-set zero if not.
11983         (visit_reference_op_store): Do not use TBAA when looking up
11984         redundant stores.
11985         * tree-ssa-pre.c (compute_avail): Use TBAA here.
11986         (eliminate_dom_walker::before_dom_children): But not when looking
11987         up redundant stores.
11988
11989 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
11990
11991         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
11992
11993 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11994
11995         *  config/i386/znver1.md
11996         (znver1_pop, znver1_pop_mem,
11997         znver1_load_imov_double_store,
11998         znver1_load_imov_direct_store,
11999         znver1_load_imov_direct_load,
12000         znver1_load_imov_double_load): Add new.
12001         (znver1_insn, znver1_insn_load): Add icmov type.
12002         (znver1_sseavx_fma,
12003         znver1_sseavx_fma_load,
12004         znver1_avx256_fma,
12005         znver1_avx256_fma_load): Fix pipe usage.
12006
12007 2016-02-14  Alan Modra  <amodra@gmail.com>
12008
12009         PR target/68973
12010         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12011         with an invalid hard reg, reload just the reg not the entire
12012         pre/post-inc/dec address expression.
12013
12014 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12015
12016         PR target/67260
12017         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12018         fixed R1_REG scratch reg.
12019         (sibcall_value_pcrel_fdpic): Likewise.
12020
12021 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12022
12023         PR target/67636
12024         PR target/64345
12025         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12026
12027 2016-02-12  Walter Lee  <walt@tilera.com>
12028
12029         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12030         * config/tilegx/t-tilegx: Likewise.
12031
12032 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12033
12034         PR other/69554
12035         * diagnostic-show-locus.c (struct line_span): New struct.
12036         (layout::get_first_line): Delete.
12037         (layout::get_last_line): Delete.
12038         (layout::get_num_line_spans): New member function.
12039         (layout::get_line_span): Likewise.
12040         (layout::print_heading_for_line_span_index_p): Likewise.
12041         (layout::get_expanded_location): Likewise.
12042         (layout::calculate_line_spans): Likewise.
12043         (layout::m_first_line): Delete.
12044         (layout::m_last_line): Delete.
12045         (layout::m_line_spans): New field.
12046         (layout::layout): Update comment.  Replace m_first_line and
12047         m_last_line with m_line_spans, replacing their initialization
12048         with a call to calculate_line_spans.
12049         (diagnostic_show_locus): When printing source lines and
12050         annotations, rather than looping over a single span
12051         of lines, instead loop over each line_span within
12052         the layout, with an inner loop over the lines within them.
12053         Call the context's start_span callback when changing line spans.
12054         * diagnostic.c (diagnostic_initialize): Initialize start_span.
12055         (diagnostic_build_prefix): Break out the building of the location
12056         part of the string into...
12057         (diagnostic_get_location_text): ...this new function, rewriting
12058         it from nested ternary expressions to a sequence of "if"
12059         statements.
12060         (default_diagnostic_start_span_fn): New function.
12061         * diagnostic.h (diagnostic_start_span_fn): New typedef.
12062         (diagnostic_context::start_span): New field.
12063         (default_diagnostic_start_span_fn): New prototype.
12064
12065 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12066
12067         PR driver/69779
12068         * gcc.c (driver::finalize): Fix cleanup of "specs".
12069
12070 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12071
12072         PR driver/69265
12073         PR driver/69453
12074         * gcc.c (driver::driver): Initialize m_option_suggestions.
12075         (driver::~driver): Clean up m_option_suggestions.
12076         (suggest_option): Convert to...
12077         (driver::suggest_option): ...this, and split out into
12078         driver::build_option_suggestions and find_closest_string.
12079         (driver::build_option_suggestions): New function, from
12080         first half of suggest_option.  Special-case
12081         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12082         the sanitizer_opts array.  For options of enum types, add the
12083         various enum values to the candidate strings.
12084         (driver::handle_unrecognized_options): Remove "const".
12085         * gcc.h (driver::handle_unrecognized_options): Likewise.
12086         (driver::build_option_suggestions): New decl.
12087         (driver::suggest_option): New decl.
12088         (driver::m_option_suggestions): New field.
12089         * opts-common.c (add_misspelling_candidates): New function.
12090         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12091         and make non-static.
12092         * opts.h (sanitizer_opts): New array decl.
12093         (add_misspelling_candidates): New function decl.
12094         * spellcheck.c (find_closest_string): New function.
12095         * spellcheck.h (find_closest_string): New function decl.
12096
12097 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12098
12099         PR rtl-optimization/69764
12100         PR rtl-optimization/69771
12101         * optabs.c (expand_binop_directly): For shift_optab_p, force
12102         convert_modes with VOIDmode if xop1 has VOIDmode.
12103
12104 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12105
12106         PR target/69729
12107         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12108         to correctly determine instrumentation thunks.
12109
12110 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12111
12112         PR ipa/69241
12113         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12114         type by reference, force lhs on the call.
12115
12116         PR ipa/68672
12117         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12118         Compute retval and retbnd early in all cases if split_part_return_p
12119         and return_bb is not EXIT.  Remove all clobber stmts and reset
12120         all debug stmts that refer to SSA_NAMEs defined in split part,
12121         except if it is retval, in that case replace the old retval with the
12122         lhs of the call to the split part.
12123
12124 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12125
12126         revert:
12127         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12128
12129         PR middle-end/66726
12130         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12131         whose result is used in PHI.
12132         (maybe_optimize_range_tests): Likewise.
12133         (final_range_test_p): Likweise.
12134
12135 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12136
12137         PR middle-end/66726
12138         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12139         whose result is used in PHI.
12140         (maybe_optimize_range_tests): Likewise.
12141         (final_range_test_p): Likweise.
12142
12143 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12144
12145         * cgraph.c: Spelling fixes - behaviour -> behavior and
12146         neighbour -> neighbor.
12147         * target.def: Likewise.
12148         * sel-sched.c: Likewise.
12149         * config/mips/mips.c: Likewise.
12150         * config/arc/arc.md: Likewise.
12151         * config/arm/cortex-a57.md: Likewise.
12152         * config/arm/arm.c: Likewise.
12153         * config/arm/neon.md: Likewise.
12154         * config/arm/arm-c.c: Likewise.
12155         * config/vms/vms-c.c: Likewise.
12156         * config/s390/s390.c: Likewise.
12157         * config/i386/znver1.md: Likewise.
12158         * config/i386/i386.c: Likewise.
12159         * config/ia64/hpux-unix2003.h: Likewise.
12160         * config/msp430/msp430.md: Likewise.
12161         * config/rx/rx.c: Likewise.
12162         * config/rx/rx.md: Likewise.
12163         * config/aarch64/aarch64-simd.md: Likewise.
12164         * config/aarch64/aarch64.c: Likewise.
12165         * config/nvptx/nvptx.c: Likewise.
12166         * config/bfin/bfin.c: Likewise.
12167         * config/cris/cris.opt: Likewise.
12168         * config/rs6000/rs6000.c: Likewise.
12169         * target.h: Likewise.
12170         * spellcheck.c: Likewise.
12171         * ira-build.c: Likewise.
12172         * tree-inline.c: Likewise.
12173         * builtins.c: Likewise.
12174         * lra-constraints.c: Likewise.
12175         * explow.c: Likewise.
12176         * hwint.h: Likewise.
12177         * targhooks.c: Likewise.
12178         * tree-vect-data-refs.c: Likewise.
12179         * expr.c: Likewise.
12180         * doc/tm.texi: Likewise.
12181         * doc/extend.texi: Likewise.
12182         * doc/install.texi: Likewise.
12183         * doc/md.texi: Likewise.
12184         * tree-ssa-tail-merge.c: Likewise.
12185         * sched-int.h: Likewise.
12186         * match.pd: Likewise.
12187         * sched-ebb.c: Likewise.
12188         * target.def (omit_struct_return_reg): Likewise.
12189         * gimple-ssa-isolate-paths.c: Likewise.
12190         (find_implicit_erroneous_behaviour): Renamed to...
12191         (find_implicit_erroneous_behavior): ... this.
12192         (find_explicit_erroneous_behaviour): Renamed to...
12193         (find_explicit_erroneous_behavior): ... this.
12194         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12195
12196 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12197
12198         PR rtl-optimization/64682
12199         PR rtl-optimization/69567
12200         PR rtl-optimization/69737
12201         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12202         in I2 as well, just lose it.
12203
12204 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12205
12206         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12207         New variable.
12208         (aarch64_last_printed_tune_string): Likewise.
12209         (aarch64_declare_function_name): Only output .arch assembler
12210         directive if it will be different from the previously output
12211         directive.  Same for .tune comment but only if -dA is set.
12212         (aarch64_start_file): New function.
12213         (TARGET_ASM_FILE_START): Define.
12214
12215 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12216
12217         PR plugins/69758
12218         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12219
12220 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12221
12222         PR target/65313
12223         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12224         -Wmaybe-uninitialized warning.
12225
12226 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12227
12228         PR target/69713
12229         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12230
12231 2016-02-11  Richard Biener  <rguenther@suse.de>
12232
12233         PR rtl-optimization/69291
12234         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12235         subexpressions affected by changing the result.
12236
12237 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12238
12239         PR target/69148
12240         * lra-constraints.c (curr_insn_transform): Find in/out operands
12241         for secondary memory moves.  Update dups.
12242
12243 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12244
12245         PR tree-optimization/69652
12246         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12247         to nested loop, did source re-formatting, skip debug statements,
12248         add check on statement with volatile operand, remove dead scalar
12249         statements.
12250
12251 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12252             Patrick Palka  <ppalka@gcc.gnu.org>
12253
12254         PR ipa/69241
12255         PR c++/69649
12256         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12257         calls if the return type is TREE_ADDRESSABLE.
12258         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
12259         * ipa-split.c (split_function): Fix doubled "we" in comment.
12260         Use void return type for the split part even if
12261         !split_point->split_part_set_retval.
12262
12263 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
12264
12265         PR tree-optimization/68021
12266         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
12267         when computing the value of biv cand by itself.
12268
12269 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12270
12271         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
12272         (cortexa57_tunings): Likewise.
12273         (cortexa72_tunings): Likewise.
12274         (arch_macro_fusion_pair_p): Add support for AES fusion.
12275         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
12276         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
12277         Allow virtual registers before reload so early scheduling works.
12278         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
12279         correct latency and pipeline.
12280         (cortex_a57_crypto_complex): Likewise.
12281         (cortex_a57_crypto_xor): Likewise.
12282         (define_bypass): Add AES bypass.
12283
12284 2016-02-10  Richard Biener  <rguenther@suse.de>
12285
12286         PR tree-optimization/69726
12287         * passes.def: Add DCE pass before late uninit.
12288         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
12289         really fixup if-conversions job.
12290
12291 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12292
12293         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
12294         (arm_cortex_a57_tune): Likewise.
12295         (aarch_macro_fusion_pair_p): Add support for AES fusion.
12296         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
12297
12298 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12299
12300         * timevar.def (TV_PHASE_DBGINFO): Delete.
12301         (TV_PHASE_CHECK_DBGINFO): Likewise.
12302         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
12303
12304 2016-02-10  Richard Biener  <rguenther@suse.de>
12305
12306         PR tree-optimization/69719
12307         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12308         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
12309
12310 2016-02-09  Andrew Pinski  <apinski@cavium.com>
12311
12312         PR tree-opt/69282
12313         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
12314         get_vcond_mask_icode returns false.
12315
12316 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12317
12318         PR target/68404
12319         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
12320         an ADDIS that adds a pointer to a large constant that sets the
12321         upper16 bits with a load operation.
12322
12323 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12324
12325         PR target/68532
12326         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
12327         order.
12328         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
12329         endian.
12330         (vzipq_s16): Likewise.
12331         (vzipq_s32): Likewise.
12332         (vzipq_f32): Likewise.
12333         (vzipq_u8): Likewise.
12334         (vzipq_u16): Likewise.
12335         (vzipq_u32): Likewise.
12336         (vzipq_p8): Likewise.
12337         (vzipq_p16): Likewise.
12338
12339 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12340
12341         PR target/68532
12342         * config/arm/arm.c (neon_endian_lane_map): New function.
12343         (neon_vector_pair_endian_lane_map): New function.
12344         (arm_evpc_neon_vuzp): Allow for big endian lane order.
12345         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
12346         endian.
12347         (vuzpq_s16): Likewise.
12348         (vuzpq_s32): Likewise.
12349         (vuzpq_f32): Likewise.
12350         (vuzpq_u8): Likewise.
12351         (vuzpq_u16): Likewise.
12352         (vuzpq_u32): Likewise.
12353         (vuzpq_p8): Likewise.
12354         (vuzpq_p16): Likewise.
12355
12356 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
12357
12358         PR target/69634
12359         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
12360         debug insns.
12361
12362 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
12363
12364         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
12365         truncate const_int operand 1 to QImode.
12366
12367 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12368
12369         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
12370         corresponding to an abnormal edge.
12371
12372 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12373
12374         PR tree-optimization/69599
12375         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
12376         function.
12377         (find_func_aliases_for_builtin_call, find_func_clobbers)
12378         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
12379         partition.
12380
12381 2016-02-09  Richard Biener  <rguenther@suse.de>
12382
12383         PR tree-optimization/69715
12384         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
12385         LHS on calls as non-rewritable.
12386
12387 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12388
12389         PR lto/69707
12390         * lto-wrapper.c (append_diag_options): New function.
12391         (compile_offload_image): Call append_diag_options.
12392
12393 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
12394
12395         PR other/69722
12396         * doc/extend.texi (Flag Output Operands): Correct sectioning.
12397         Minor copy-edit to fix verb tenses.
12398
12399 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
12400
12401         PR tree-optimization/69209
12402         * ipa-split.c (split_function): If split part is not
12403         returning retval, retval has gimple type but is not
12404         gimple value, force it into a SSA_NAME first.
12405
12406 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
12407
12408         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
12409         outdated section.
12410
12411 2016-02-08  Jason Merrill  <jason@redhat.com>
12412
12413         PR c++/69631
12414         * convert.c (convert_to_integer_1): Check dofold on truncation
12415         distribution.
12416         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
12417         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
12418         Rename from *_nofold.
12419         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
12420         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
12421
12422 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
12423
12424         PR target/60410
12425         * tree.c (build_common_tree_nodes): Remove short_double argument.
12426         All callers changed.
12427         * tree.h (build_common_tree_nodes): Adjust declaration.
12428         * doc/invoke.texi (-fshort-double): Remove documentation.
12429         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12430         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
12431         * lto-wrapper.c (merge_and_complain, append_compiler_options)
12432         (append_linker_options): Don't handle OPT_fshort_double.
12433
12434         PR rtl-optimization/68730
12435         * lra-remat.c (insn_to_cand_activation): New static variable.
12436         (lra_remat): Allocate and free it.
12437         (create_cand): New arg activation. Initialize a field in
12438         insn_to_cand_activation if it is nonnull.
12439         (create_cands): Pass the activation insn to create_cand when making
12440         a candidate involving an output reload.  Reorganize code a little.
12441         (do_remat): Keep track of active status of candidates in a separate
12442         bitmap.
12443
12444 2016-02-08  Richard Biener  <rguenther@suse.de>
12445
12446         PR tree-optimization/69719
12447         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12448         Properly use absolute of the difference of the two offsets to
12449         compare or adjust the segment length.
12450
12451 2016-02-08  Richard Biener  <rguenther@suse.de>
12452             Jeff Law  <law@redhat.com>
12453
12454         PR target/68273
12455         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
12456         types for anonymous SSA names.
12457
12458 2016-02-08   Richard Biener  <rguenther@suse.de>
12459
12460         PR rtl-optimization/69274
12461         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
12462
12463 2016-02-08  Jeff Law  <law@redhat.com>
12464
12465         PR tree-optimization/65917
12466         * tree-ssa-dom.c (record_temporary_equivalences): Record both
12467         equivalences from if (x == y) style conditionals.
12468         (loop_depth_of_name): Remove.
12469         (record_equality): Remove loop depth check.
12470         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
12471         (const_and_copies::record_const_or_copy_raw): New member function.
12472         * tree-ssa-scopedtables.c
12473         (const_and_copies::record_const_or_copy_raw): New, factored out of
12474         (const_and_copies::record_const_or_copy): Call new member function.
12475
12476 2016-02-05  Jeff Law  <law@redhat.com>
12477
12478         PR tree-optimization/68541
12479         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
12480         (count_stmts_in_block): New function.
12481         (poor_ifcvt_candidate_code): Likewise.
12482         (is_feasible_trace): Add some heuristics to determine when path
12483         splitting is profitable.
12484         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
12485         is a diamond with a single exit.
12486
12487 2016-02-05  Martin Sebor  <msebor@redhat.com>
12488
12489         PR c++/69662
12490         * doc/invoke.texi: Update -Wplacement-new to take an optional
12491         argument.
12492
12493 2016-02-06  Richard Henderson  <rth@redhat.com>
12494
12495         PR c/69643
12496         * tree.c (tree_nop_conversion_p): Do not strip casts into or
12497         out of non-standard address spaces.
12498
12499 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12500
12501         PR rtl-optimization/69691
12502         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
12503
12504 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
12505
12506         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
12507         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
12508         (*ieee128_mfvsrd_64bit): Likewise.
12509         (*ieee128_mfvsrd_32bit): Likewise.
12510
12511 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
12512
12513         PR target/69369
12514         Revert r232560:
12515         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12516
12517         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12518         instrumented_version.
12519
12520 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
12521
12522         * doc/invoke.texi (Optimize Options): In table of --param options
12523         rename second occurrence of tracer-min-branch-ratio to
12524         tracer-min-branch-probability, rename
12525         tracer-min-branch-ratio-feedback to
12526         tracer-min-branch-probability-feedback and clarify description,
12527         rename sched-spec-state-edge-prob-cutoff to
12528         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
12529         to selsched-insns-to-rename, rename lto-minpartition to
12530         lto-min-partition, delete reorder-blocks-duplicate and
12531         reorder-blocks-duplicate-feedback.
12532
12533 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12534
12535         * config/s390/s390.c (s390_register_info_set_ranges): Remove
12536         superfluous loops.
12537
12538 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12539
12540         * doc/extend.texi: S/390: Correct some typos.
12541
12542 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12543
12544         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
12545
12546 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12547
12548         PR target/69625
12549         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
12550         (s390_register_info_gprtofpr): Use new macros above.
12551         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
12552         its name.
12553         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
12554         its name.  Adjust restore and save gpr ranges.
12555         (s390_register_info_set_ranges): New function.
12556         (s390_register_info): Use new macros above.  Call
12557         s390_register_info_set_ranges.
12558         (s390_optimize_register_info): Likewise.
12559         (s390_hard_regno_rename_ok): Use new macros.
12560         (s390_hard_regno_scratch_ok): Likewise.
12561         (s390_emit_epilogue): Likewise.
12562         (s390_can_use_return_insn): Likewise.
12563         (s390_optimize_prologue): Likewise.
12564         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
12565
12566 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12567
12568         PR bootstrap/69677
12569         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
12570         alignment fixes.
12571         (ix86_option_override_internal): Disable TARGET_STV even for
12572         -m{incoming,preferred}-stack-boundary=3.
12573
12574 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12575
12576         * config.gcc: Mark deprecated rtems targets as obsolete.
12577
12578 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
12579
12580         PR rtl-optimization/64682
12581         PR rtl-optimization/69567
12582         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
12583         before I2 only if the register is both used and set in I2.
12584
12585 2016-02-04  DJ Delorie  <dj@redhat.com>
12586
12587         * config/msp430/msp430.c (msp430_start_function): Add function type.
12588
12589 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12590
12591         PR fortran/69368
12592         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
12593
12594 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
12595
12596         PR rtl-optimization/69577
12597         Revert:
12598         2015-10-29  Richard Henderson  <rth@redhat.com>
12599
12600         PR target/68124
12601         PR rtl-opt/67609
12602         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
12603         sse check to the exact conditions of PR 67609.
12604
12605 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12606
12607         PR target/69667
12608         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
12609         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
12610         not allowed into the traditional Altivec registers.
12611         (movtd_64bit_nodm): Likewise.
12612         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
12613
12614 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
12615
12616         * config/aarch64/cortex-a57-fma-steering.c
12617         (aarch64_register_fma_steering): Remove "static" from arguments
12618         to register_pass.
12619
12620 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
12621
12622         PR target/69619
12623         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
12624         twice when complex.
12625
12626 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
12627
12628         * doc/invoke.texi: Delete -mno-fma4.
12629
12630 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
12631
12632         PR rtl-optimization/69577
12633         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
12634         (find_subregs_of_mode): Update accordingly.  Iterate over partial
12635         definitions.
12636
12637 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
12638
12639         * config/arm/arm-protos.h (neon_reinterpret): Remove.
12640         * config/arm/arm.c (neon_reinterpret): Remove.
12641         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
12642         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
12643         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
12644         vreinterpretti): Remove.
12645         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
12646         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
12647         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
12648         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
12649         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
12650         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
12651         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
12652         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
12653         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
12654         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
12655         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
12656         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
12657         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
12658         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
12659         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
12660         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
12661         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
12662         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
12663         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
12664         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
12665         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
12666         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
12667         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
12668         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
12669         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
12670         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
12671         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
12672         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
12673         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
12674         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
12675         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
12676         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
12677         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
12678         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
12679         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
12680         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
12681         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
12682         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
12683         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
12684         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
12685         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
12686         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
12687         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
12688         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
12689         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
12690         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
12691         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
12692         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
12693         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
12694         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
12695         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
12696         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
12697         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
12698         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
12699         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
12700         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
12701         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
12702         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
12703         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
12704         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
12705         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
12706         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
12707         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
12708         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
12709         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
12710         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
12711         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
12712         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
12713         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
12714         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
12715         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
12716         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
12717         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
12718         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
12719         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
12720         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
12721         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
12722         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
12723         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
12724         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
12725         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
12726         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
12727         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
12728         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
12729         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
12730         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
12731         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
12732         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
12733         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
12734         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
12735         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
12736         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
12737         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
12738         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
12739         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
12740         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
12741         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
12742         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
12743         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
12744         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
12745         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
12746         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
12747         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
12748
12749 2016-02-04  Martin Liska  <mliska@suse.cz>
12750
12751         PR sanitizer/69276
12752         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
12753         that are gimple_store_p.
12754         (maybe_instrument_call): Likewise.
12755
12756 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
12757
12758         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
12759         register scaling out of memory reference and comment why.
12760
12761 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12762
12763         PR target/65932
12764         PR target/67714
12765         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
12766         folding the source of a SET.
12767
12768 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12769
12770         PR target/65932
12771         PR target/67714
12772         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
12773         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
12774
12775 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
12776
12777         PR target/65932
12778         PR target/67714
12779         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
12780         HImode.
12781
12782 2016-02-04  Christian Bruel  <christian.bruel@st.com>
12783
12784         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
12785         * config/arm/arm.c (arm_set_current_function): Likewise.
12786
12787 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12788             Ilya Enkovich  <enkovich.gnu@gmail.com>
12789             H.J. Lu  <hongjiu.lu@intel.com>
12790
12791         PR target/69454
12792         * config/i386/i386.c (convert_scalars_to_vector): Remove
12793         stack alignment fixes.
12794         (ix86_option_override_internal): Disable TARGET_STV if stack
12795         might not be aligned enough.
12796         (ix86_minimum_alignment): Assert that TARGET_STV is false.
12797
12798 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
12799
12800         * config/i386/x86-tune.def: Disable default prefetching
12801         for -march=znver1.
12802
12803 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12804             Vladimir Makarov  <vmakarov@redhat.com>
12805
12806         PR target/69461
12807         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
12808         in validating fused toc addresses.
12809
12810 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
12811
12812         PR c/69627
12813         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
12814         range->m_caret fields if range->m_show_caret_p is false.
12815
12816         PR target/69644
12817         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
12818         Force oldval into register if it does not satisfy reg_or_short_operand
12819         predicate.  Fix up formatting.
12820
12821 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
12822             Alexandre Oliva  <aoliva@redhat.com>
12823
12824         PR target/69461
12825         * lra-constraints.c (simplify_operand_subreg): Check additionally
12826         address validity after potential reloading.
12827         (process_address_1): Check insns validity.  In case of failure do
12828         nothing.
12829
12830 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
12831
12832         PR target/69118
12833         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
12834         Fix target.
12835
12836 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
12837
12838         * wide-int.cc (canonize_uhwi): New function.
12839         (wi::divmod_internal): Use it.
12840
12841 2016-02-02  James Norris  <jnorris@codesourcery.com
12842
12843         * gimplify.c (omp_notice_variable): Add usage check.
12844
12845 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
12846
12847         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
12848         like LE, GE, LT, GT when emitting relational operator.
12849
12850 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
12851
12852         * ira-costs.c (find_costs_and_classes): Add extra argument.
12853         * target.def (ira_change_pseudo_allocno_class): Add parameter.
12854         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
12855         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
12856         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
12857         Add best_class parameter, and return it if not ALL_REGS.
12858         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
12859         Add parameter.
12860         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
12861         Update target hook.
12862
12863 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
12864
12865         * config/aarch64/aarch64.c
12866         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
12867         (aarch64_ira_change_pseudo_allocno_class): New function.
12868
12869 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
12870
12871         PR target/67032
12872         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
12873
12874 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12875
12876         * config/avr/avr.c (avr_option_override): Set
12877         PARAM_ALLOW_STORE_DATA_RACES to 1.
12878
12879 2016-02-02  Richard Biener  <rguenther@suse.de>
12880
12881         PR tree-optimization/69595
12882         * match.pd: Add range test simplifications to true/false.
12883
12884 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
12885
12886         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
12887         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
12888         instead.
12889
12890 2016-02-02  Richard Biener  <rguenther@suse.de>
12891
12892         PR tree-optimization/69606
12893         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
12894         info on the result before moving a stmt.
12895
12896 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
12897
12898         PR middle-end/68542
12899         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
12900         branch with vector comparison.
12901         * config/i386/sse.md (VI48_AVX): New mode iterator.
12902         (define_expand "cbranch<mode>4): Add support for conditional branch
12903         with vector comparison.
12904         * tree-vect-loop.c (optimize_mask_stores): New function.
12905         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
12906         has_mask_store field of vect_info.
12907         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
12908         vectorized loops having masked stores after vec_info destroy.
12909         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
12910         correspondent macros.
12911         (optimize_mask_stores): Add prototype.
12912
12913 2016-02-02  Alan Modra  <amodra@gmail.com>
12914
12915         PR target/69548
12916         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
12917         allow subregs.
12918
12919 2016-02-02  Alan Modra  <amodra@gmail.com>
12920
12921         PR target/68662
12922         * config/rs6000/rs6000.c (need_toc_init): New var, set it
12923         whenever toc_label_name used.
12924         (rs6000_file_start): Don't set up toc section here,
12925         (rs6000_output_function_epilogue): do so here instead,
12926         (rs6000_xcoff_file_start): and here.
12927         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
12928         (load_toc_aix_di): Likewise.
12929
12930 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
12931
12932         PR rtl-optimization/69592
12933         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
12934         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
12935         (num_sign_bit_copies_binary_arith_p): New inline function.
12936         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
12937
12938 2016-02-01  Jeff Law  <law@redhat.com>
12939
12940         PR tree-optimization/69580
12941         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
12942         * tree-ssa-threadbackward.c
12943         (fsm_find_control_statement_thread_paths): Do not try to walk
12944         through large PHI nodes.
12945
12946 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
12947
12948         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
12949         when count is incremented above limit, don't analyze further
12950         insns afterwards.
12951
12952         * omp-low.c (oacc_parse_default_dims): Avoid
12953         -Wsign-compare warning, make sure value fits into int
12954         rather than just unsigned int.
12955
12956 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
12957
12958         PR tree-optimization/67921
12959         * fold-const.c (split_tree): New parameters.  Convert pointer
12960         type variable part to proper type before negating.
12961         (fold_binary_loc): Pass new arguments to split_tree.
12962
12963 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
12964
12965         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
12966         (nvptx_goacc_validate_dims): Extend to handle global defaults.
12967         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
12968         * doc/tm.texti: Rebuilt.
12969         * doc/invoke.texi (fopenacc-dim): Document.
12970         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
12971         (append_compiler_options): Likewise.
12972         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
12973         (oacc_parse_default_dims): New.
12974         (oacc_validate_dims): Add USED arg.  Select non-unity default when
12975         possible.
12976         (oacc_loop_fixed_partitions): Return mask of used partitions.
12977         (oacc_loop_auto_partitions): Emit dump info.
12978         (oacc_loop_partition): Return mask of used partitions.
12979         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
12980         loop partitioning and validation calls.
12981
12982 2016-02-01  Richard Biener  <rguenther@suse.de>
12983
12984         PR middle-end/69556
12985         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
12986
12987 2016-02-01  Richard Biener  <rguenther@suse.de>
12988
12989         PR tree-optimization/69574
12990         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
12991         of asserting return chrec_dont_know.
12992
12993 2016-02-01  Martin Liska  <mliska@suse.cz>
12994
12995         * mem-stats-traits.h: Add copyright header.
12996         * mem-stats.h: Likewise.
12997
12998 2016-02-01  Richard Biener  <rguenther@suse.de>
12999
13000         PR tree-optimization/69579
13001         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13002         Do not propagate through abnormal PHI results.
13003
13004 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13005
13006         * postreload.c (reload_cse_simplify): Remove dead code.
13007
13008 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13009
13010         PR rtl-optimization/69570
13011         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13012         if there is more than one set, not if there is a single set.
13013
13014 2016-02-01  Richard Henderson  <rth@redhat.com>
13015
13016         PR rtl-opt/69535
13017         * combine.c (make_compound_operation): When looking through a
13018         subreg, make sure to re-extend to the width of the outer mode.
13019
13020 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13021
13022         PR tree-optimization/69546
13023         * wide-int.cc (wi::divmod_internal): For unsigned division
13024         where both operands fit into uhwi, if o1 is 1 and o0 has
13025         msb set, if divident_prec is larger than bits per hwi,
13026         clear another quotient word and return 2 instead of 1.
13027         Similarly for remainder with msb in HWI set, if dividend_prec
13028         is larger than bits per hwi.
13029
13030 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13031
13032         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13033         Use short lowercase names.
13034         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
13035         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13036         acq_rel one.  Protect warning agains segfaults if
13037         get_memory_order_name returns NULL.
13038         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13039         with release semantics.  Do not warn if get_memory_order already did.
13040         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13041         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
13042         if get_memory_order already did.
13043
13044 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13045
13046         * doc/install.texi: Document that isl-0.16 is supported.
13047
13048 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13049
13050         PR target/69299
13051         * config/i386/constraints.md (Bm): Describe as special memory
13052         constraint.
13053         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13054         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13055         * genpreds.c (struct constraint_data): Add is_special_memory.
13056         (have_special_memory_constraints, special_memory_start): New
13057         static vars.
13058         (special_memory_end): Ditto.
13059         (add_constraint): Add new arg is_special_memory.  Add code to
13060         process its true value.  Update have_special_memory_constraints.
13061         (process_define_constraint): Pass the new arg.
13062         (process_define_register_constraint): Ditto.
13063         (choose_enum_order): Process special memory.
13064         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13065         function insn_extra_special_memory_constraint.
13066         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13067         * gensupport.c (process_rtx): Process
13068         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13069         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13070         * ira-lives.c (single_reg_class): Use
13071         insn_extra_special_memory_constraint.
13072         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13073         * lra-constraints.c (process_alt_operands): Ditto.
13074         (curr_insn_transform): Use insn_extra_special_memory_constraint.
13075         * recog.c (asm_operand_ok, preprocess_constraints): Process
13076         CT_SPECIAL_MEMORY.
13077         * reload.c (find_reloads): Ditto.
13078         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13079         * stmt.c (parse_input_constraint): Use
13080         insn_extra_special_memory_constraint.
13081
13082 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13083
13084         PR target/69530
13085         * lra-splill.c (lra_final_code_change): Revert r229087 by
13086         removing all sub-registers.
13087
13088 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13089
13090         PR target/65604
13091         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13092
13093 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13094
13095         PR target/69551
13096         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13097         SSE1, copy target into the temporary reg first before recursing
13098         on it.
13099
13100 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13101
13102         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13103         with vm.
13104
13105 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13106
13107         * ginclude/stdarg.h: Test __cplusplus instead of
13108         __GXX_EXPERIMENTAL_CXX0X__.
13109
13110 2016-01-29  Richard Biener  <rguenther@suse.de>
13111
13112         PR tree-optimization/69547
13113         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13114         Do not mark clobbers necessary.
13115         (mark_all_reaching_defs_necessary_1): Likewise.
13116
13117 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13118
13119         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13120         declaration name with %qs and print it in both error messages.
13121         Also fix indentation.
13122
13123 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13124
13125         PR other/69006
13126         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13127         trailing blank line from error message.
13128
13129 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13130
13131         PR c++/69462
13132         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13133         for C++-11.
13134
13135 2016-01-29  Richard Biener  <rguenther@suse.de>
13136
13137         PR middle-end/69537
13138         * match.pd: Allow all integral types when simplifying a
13139         widening or sign-changing conversion.
13140
13141 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13142
13143         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13144         back to setting codegen_error to fail codegen.
13145
13146 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13147
13148         PR target/69459
13149         * config/i386/constraints.md (C): Only accept constant zero operand.
13150         (BC): New constraint.
13151         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13152         instead of C constraint.
13153         * doc/md.texi (Machine Constraints): Update description
13154         of C constraint.
13155
13156 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13157
13158         PR target/68400
13159         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13160
13161 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13162
13163         PR middle-end/69542
13164         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13165         non-debug insns.
13166
13167 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13168
13169         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13170         branches if using guessed profile.
13171
13172 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13173
13174         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13175
13176 2016-01-28  Richard Henderson  <rth@redhat.com>
13177
13178         PR target/69305
13179         * config/aarch64/aarch64-modes.def (CC_Cmode): New
13180         * config/aarch64/aarch64-protos.h: Update.
13181         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13182         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13183         (aarch64_get_condition_code_1): Handle CC_Cmode.
13184         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13185         (*add<mode>3_compareC_cconly_imm): New.
13186         (*add<mode>3_compareC_cconly): New.
13187         (*add<mode>3_compareC_imm): New.
13188         (add<mode>3_compareC): New.
13189         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13190         to be first.  Use aarch64_carry_operation.
13191         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13192         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13193         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13194         (subti3): Use subdi3_compare1.
13195         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13196         (sub<mode>3_compare1): New.
13197         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13198         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13199         (*subsi3_carryin_uxtw): Likewise.
13200         (*ngc<mode>, *ngcsi_uxtw): Likewise.
13201         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13202         * config/aarch64/iterators.md (DWI): New.
13203         * config/aarch64/predicates.md (aarch64_carry_operation): New.
13204         (aarch64_borrow_operation): New.
13205
13206 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13207
13208         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13209         message when isl does not return a valid schedule.
13210
13211 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13212
13213         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13214         Remove comments from class declarations: they are already in the code
13215         close by the defs.
13216
13217 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13218
13219         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13220         codegen_error_p.
13221         (ternary_op_to_tree): Same.
13222         (unary_op_to_tree): Same.
13223         (nary_op_to_tree): Same.
13224         (gcc_expression_from_isl_expr_op): Same.
13225         (gcc_expression_from_isl_expression): Same.
13226         (graphite_create_new_loop): Same.
13227         (graphite_create_new_loop_guard): Same.
13228         (build_iv_mapping): Same.
13229         (graphite_create_new_guard): Same.
13230         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13231         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13232
13233 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13234
13235         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13236         instead of setting codegen_error to fail codegen.
13237
13238 2016-01-28  Jason Merrill  <jason@redhat.com>
13239
13240         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13241
13242 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13243
13244         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13245         Remove CONST_INT_P check in CCMP cost calculation.
13246
13247 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13248
13249         * config/aarch64/aarch64.c (generic_vector_cost):
13250         Set vec_permute_cost.
13251         (cortexa57_vector_cost): Likewise.
13252         (exynosm1_vector_cost): Likewise.
13253         (xgene1_vector_cost): Likewise.
13254         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13255         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13256         Add vec_permute_cost entry.
13257
13258 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13259
13260         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
13261         immediate as %1.
13262         (add<mode>3_compare0): Likewise.
13263         (addsi3_compare0_uxtw): Likewise.
13264         (add<mode>3nr_compare0): Likewise.
13265         (compare_neg<mode>): Likewise.
13266         (<optab><mode>3): Likewise.
13267
13268 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
13269
13270         * tree-vect-stmts.c (vectorizable_comparison): Add
13271         NULL check for vectype.
13272
13273 2016-01-28  Richard Biener  <rguenther@suse.de>
13274
13275         PR tree-optimization/69466
13276         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13277         Account for PHIs we couldn't duplicate.
13278
13279 2016-01-28  Martin Liska  <mliska@suse.cz>
13280
13281         PR pch/68758
13282         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
13283         instead of ENABLE_VALGRIND_CHECKING.
13284
13285 2016-01-27  Richard Henderson  <rth@redhat.com>
13286
13287         PR rtl-opt/69447
13288         * lra-remat.c (subreg_regs): New.
13289         (dump_candidates_and_remat_bb_data): Dump it.
13290         (operand_to_remat): Reject if operand in subreg_regs.
13291         (set_bb_regs): Collect subreg_regs.
13292         (lra_remat): Init and free subreg_regs.  Compute
13293         calculate_local_reg_remat_bb_data before create_cands.
13294
13295 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13296
13297         PR target/68986
13298         * config/i386/i386.c (ix86_update_stack_boundary): Don't
13299         change stack_alignment_needed for __tls_get_addr call.
13300
13301 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
13302
13303         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
13304
13305 2016-01-27  Jeff Law  <law@redhat.com>
13306
13307         PR tree-optimization/68398
13308         PR tree-optimization/69196
13309         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
13310         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
13311         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13312         Only count PHIs in the last block in the path.  The others will
13313         const/copy propagate away.  Add heuristic to allow more irreducible
13314         subloops to be created when it is likely profitable to do so.
13315
13316         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13317         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
13318         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
13319
13320 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13321
13322         PR lto/69254
13323         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
13324         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
13325         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
13326         * tree-streamer-in.c: Include asan.h.
13327         (streamer_get_builtin_tree): For builtins in sanitizer
13328         range call initialize_sanitizer_builtins and retry.
13329
13330 2016-01-27  Ian Lance Taylor  <iant@google.com>
13331
13332         * common.opt (fkeep-gc-roots-live): New undocumented option.
13333         * tree-ssa-loop-ivopts.c (add_candidate_1): If
13334         -fkeep-gc-roots-live, skip pointers.
13335         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
13336         NULL.
13337
13338 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
13339
13340         PR target/69512
13341         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
13342         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
13343
13344 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
13345
13346         PR target/68380
13347         * configure.ac: NetBSD provides SSP in its C library.
13348         * configure: Updated.
13349
13350 2016-01-27  Richard Biener  <rguenther@suse.de>
13351
13352         PR tree-optimization/69166
13353         * tree-vect-loop.c (vect_is_simple_reduction): Always check
13354         reduction code for commutativity / associativity.
13355
13356 2016-01-27  Martin Jambor  <mjambor@suse.cz>
13357
13358         PR tree-optimization/69355
13359         * tree-sra.c (analyze_access_subtree): Correct hole detection when
13360         total_scalarization fails.
13361
13362 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
13363
13364         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
13365         power9.
13366
13367 2016-01-27  Christian Bruel  <christian.bruel@st.com>
13368
13369         PR target/69245
13370         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
13371         Move arm_reset_previous_fndecl and set_target_option_current_node in
13372         the conditional part.  Call save_restore_target_globals.
13373         * config/arm/arm.c (arm_set_current_function):
13374         Refactor to better support #pragma target and attribute mix.
13375         Call save_restore_target_globals.
13376         * config/arm/arm-protos.h (save_restore_target_globals): New function.
13377
13378 2016-01-27  Martin Liska  <mliska@suse.cz>
13379
13380         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
13381         reference for an HSA kernel and its host function.
13382
13383 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13384
13385         PR tree-optimization/69399
13386         * wide-int.h (wi::lrshift): For larger precisions, only
13387         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
13388
13389 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
13390
13391         * config/arc/predicates.md (proper_comparison_operator): Reject
13392         constant-constant comparison.
13393
13394 2016-01-26  Tom de Vries  <tom@codesourcery.com>
13395
13396         PR tree-optimization/69110
13397         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13398         DR_NUM_DIMENSIONS == 0.
13399
13400 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13401             Sebastian Pop  <s.pop@samsung.com>
13402
13403         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
13404         isl_ast_op_cond and isl_ast_op_select.
13405         (gcc_expression_from_isl_expr_op): Same.
13406
13407 2016-01-26  Jason Merrill  <jason@redhat.com>
13408
13409         PR c++/68782
13410         * tree.c (recompute_constructor_flags): Split out from
13411         build_constructor.
13412         (verify_constructor_flags): New.
13413         * tree.h: Declare them.
13414
13415 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13416
13417         PR rtl-optimization/69217
13418         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
13419         are no TYPE_FIELDS set for the record type.
13420
13421 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13422
13423         PR target/68662
13424         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
13425         toc_label_name unconditionally.
13426         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
13427         SYMBOL_REF string.  Use toc_label_name instead of constructing
13428         LCTOC1.
13429         (rs6000_elf_declare_function_name): Use toc_label_name instead of
13430         constructing LCTOC1.
13431
13432 2016-01-26  Martin Sebor  <msebor@redhat.com>
13433
13434         PR other/69477
13435         * doc/extend.texi (Common Type Attributes): Move text that talks about
13436         attribute packed from attribute aligned to the section discussing
13437         the former attribute for clarity.
13438
13439 2016-01-26  Richard Henderson  <rth@redhat.com>
13440
13441         PR middle-end/60908
13442         * trans-mem.c (tm_region_init): Mark entry block as visited.
13443
13444 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
13445
13446         PR other/69006
13447         * diagnostic-show-locus.c (layout::print_source_line): Replace
13448         call to pp_newline with call to layout::print_newline.
13449         (layout::print_annotation_line): Likewise.
13450         (layout::move_to_column): Likewise.
13451         (layout::print_any_fixits): After printing any fixits, print a
13452         trailing newline, if necessary.
13453         (layout::print_newline): New method, resetting any colorization
13454         before a newline.
13455         (diagnostic_show_locus): Move the pp_newline to before the
13456         early bailout.  Remove dummy block enclosing the layout instance.
13457         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
13458         of pp_newline_and_flush with pp_flush.
13459         (diagnostic_append_note): Delete use of pp_newline.
13460         (diagnostic_append_note_at_rich_loc): Delete.
13461         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
13462         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
13463         when newline characters are added to the buffer.
13464
13465 2016-01-26  Michael Matz  <matz@suse.de>
13466
13467         * configure.ac (ac_cv_std_swap_in_utility): New test.
13468         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
13469         * configure: Regenerate.
13470         * config.in: Regenerate.
13471
13472 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
13473
13474         * config/arc/arc.md (cstoresi4): Force operand into register.
13475         (arcset<code>): Fix predicate.
13476         (arcsetltu): Likewise.
13477         (arcsetgeu): Likewise.
13478         (arcsethi): Likewise.
13479         (arcsetls): Likewise.
13480
13481 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13482
13483         PR tree-optimization/69483
13484         * gimple-fold.c (canonicalize_constructor_val): Return NULL
13485         if base has error_mark_node type.
13486
13487 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
13488
13489         PR target/68620
13490         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
13491         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
13492         New helper macros.
13493         (vget_lane_f16): Handle big-endian.
13494         (vgetq_lane_f16): Likewise.
13495         (vset_lane_f16): Likewise.
13496         (vsetq_lane_f16): Likewise.
13497         * config/arm/iterators.md (VQXMOV): Add V8HF.
13498         (VDQ): Add V4HF and V8HF.
13499         (V_reg): Handle V4HF and V8HF.
13500         (Is_float_mode): Likewise.
13501         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
13502         neon_vdup_nv8hf): New patterns.
13503         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
13504         Use VD_LANE iterator.
13505         (neon_vld1_dup<mode>): Use VQ2 iterator.
13506
13507 2016-01-26  Nathan Sidwell  <nathan@acm.org>
13508
13509         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
13510         (set_oacc_fn_attrib): Add IS_KERNEL arg.
13511         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
13512         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
13513         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
13514         (oacc_validate_dims): Add LEVEL arg, don't return level.
13515         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
13516         oacc_validate_dims.
13517         (execute_oacc_device_lower): Adjust, add more dump output.
13518         * tree-ssa-loop.c (gate_oacc_kernels): Use
13519         oacc_fn_attrib_kernels_p.
13520         * tree-parloops.c (create_parallel_loop): Adjust
13521         set_oacc_fn_attrib call.
13522
13523 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13524
13525         PR lto/69254
13526         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
13527         (append_compiler_options): Handle -fcilkplus.
13528         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
13529
13530 2016-01-26  Nick Clifton  <nickc@redhat.com>
13531
13532         PR target/66655
13533         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
13534         been marked as DECL_ONE_ONLY but we do not the means to make it
13535         so, then do not allow it to bind locally.
13536
13537 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13538
13539         PR lto/69254
13540         * opts.h (parse_sanitizer_options): New prototype.
13541         * opts.c (sanitizer_opts): New array.
13542         (parse_sanitizer_options): New function.
13543         (common_handle_option): Use parse_sanitizer_options.
13544
13545 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
13546
13547         PR target/68986
13548         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
13549         alignment adjustment to ...
13550         (ix86_update_stack_boundary): Here.  Don't over-align stack for
13551         __tls_get_addr.
13552         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
13553         if __tls_get_addr is called.
13554
13555 2016-01-26  Christian Bruel  <christian.bruel@st.com>
13556
13557         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
13558
13559 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13560
13561         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
13562
13563 2016-01-26  Richard Biener  <rguenther@suse.de>
13564
13565         PR middle-end/69467
13566         * match.pd: Guard X * CST CMP 0 pattern with single_use.
13567
13568 2016-01-26  Richard Biener  <rguenther@suse.de>
13569
13570         PR tree-optimization/69452
13571         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
13572         (move_computations_dom_walker::before_dom_children): Rename
13573         to ...
13574         (move_computations_worker): This.
13575         (move_computations): Perform an RPO rather than a DOM walk.
13576
13577 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13578
13579         PR target/69442
13580         * combine.c (combine_instructions): For REG_EQUAL note with
13581         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
13582         to the underlying register.
13583         * doc/rtl.texi (REG_EQUAL): Document the behavior of
13584         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
13585
13586 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
13587
13588         PR target/67896
13589         * config/aarch64/aarch64-builtins.c
13590         (aarch64_init_simd_builtin_types): Do not set structural
13591         equality to __Poly{8,16,64,128}_t types.
13592
13593 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
13594
13595         PR tree-optimization/69400
13596         * wide-int.cc (wi_pack): Take the precision as argument and
13597         perform canonicalization here rather than in the callers.
13598         Use the main loop to handle all full-width HWIs.  Add a
13599         zero HWI if in_len isn't a full result.
13600         (wi::divmod_internal): Update accordingly.
13601         (wi::mul_internal): Likewise.  Simplify.
13602
13603 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13604             Sebastian Pop  <s.pop@samsung.com>
13605
13606         * graphite-poly.c (apply_poly_transforms): Simplify.
13607         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
13608         (print_isl_map): Same.
13609         (print_isl_union_map): Same.
13610         (print_isl_schedule): New.
13611         (debug_isl_schedule): New.
13612         * graphite-dependences.c (scop_get_reads): Do not call
13613         isl_union_map_add_map that is undocumented isl functionality.
13614         (scop_get_must_writes): Same.
13615         (scop_get_may_writes): Same.
13616         (scop_get_original_schedule): Remove.
13617         (scop_get_dependences): Do not call isl_union_map_compute_flow that
13618         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
13619         (compute_deps): Remove.
13620         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
13621         (debug_schedule_ast): New.
13622         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
13623         set_separate_option.
13624         (graphite_regenerate_ast_isl): Add dump.
13625         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
13626         from scop->transformed_schedule.
13627         (graphite_regenerate_ast_isl): Add more dump.
13628         * graphite-optimize-isl.c (optimize_isl): Set
13629         scop->transformed_schedule.  Check whether schedules are equal.
13630         (apply_poly_transforms): Move here.
13631         * graphite-poly.c (apply_poly_transforms): ... from here.
13632         (free_poly_bb): Static.
13633         (free_scop): Static.
13634         (pbb_number_of_iterations_at_time): Remove.
13635         (print_isl_ast): New.
13636         (debug_isl_ast): New.
13637         (debug_scop_pbb): New.
13638         * graphite-scop-detection.c (print_edge): Move.
13639         (print_sese): Move.
13640         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
13641         (build_scop_scattering): Remove.
13642         (create_pw_aff_from_tree): Assert instead of bailing out.
13643         (add_condition_to_pbb): Remove unused code, do not fail.
13644         (add_conditions_to_domain): Same.
13645         (add_conditions_to_constraints): Remove.
13646         (build_scop_context): New.
13647         (add_iter_domain_dimension): New.
13648         (build_iteration_domains): Initialize pbb->iterators.
13649         Call add_conditions_to_domain.
13650         (nested_in): New.
13651         (loop_at): New.
13652         (index_outermost_in_loop): New.
13653         (index_pbb_in_loop): New.
13654         (outermost_pbb_in): New.
13655         (add_in_sequence): New.
13656         (add_outer_projection): New.
13657         (outer_projection_mupa): New.
13658         (add_loop_schedule): New.
13659         (build_schedule_pbb): New.
13660         (build_schedule_loop): New.
13661         (embed_in_surrounding_loops): New.
13662         (build_schedule_loop_nest): New.
13663         (build_original_schedule): New.
13664         (build_poly_scop): Call build_original_schedule.
13665         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
13666         (free_poly_dr): Remove.
13667         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
13668         (free_poly_bb): Remove.
13669         (debug_loop_vec): Remove.
13670         (print_isl_ast): Declare.
13671         (debug_isl_ast): Declare.
13672         (scop_do_interchange): Remove.
13673         (scop_do_strip_mine): Remove.
13674         (scop_do_block): Remove.
13675         (flatten_all_loops): Remove.
13676         (optimize_isl): Remove.
13677         (pbb_number_of_iterations_at_time): Remove.
13678         (debug_scop_pbb): Declare.
13679         (print_schedule_ast): Declare.
13680         (debug_schedule_ast): Declare.
13681         (struct scop): Remove schedule.  Add original_schedule,
13682         transformed_schedule.
13683         (free_gimple_poly_bb): Remove.
13684         (print_generated_program): Remove.
13685         (debug_generated_program): Remove.
13686         (unify_scattering_dimensions): Remove.
13687         * sese.c (print_edge): ... here.
13688         (print_sese): ... here.
13689         (debug_edge): ... here.
13690         (debug_sese): ... here.
13691         * sese.h (print_edge): Declare.
13692         (print_sese): Declare.
13693         (dump_edge): Declare.
13694         (dump_sese): Declare.
13695
13696 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13697             Sebastian Pop  <s.pop@samsung.com>
13698
13699         * Makefile.in: Set ISLVER in site.exp.
13700
13701 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
13702
13703         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
13704         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
13705         through DECL_VALUE_EXPR for expansion.
13706
13707 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13708
13709         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
13710         the frame info after reload completed.
13711
13712 2016-01-25  Jeff Law  <law@redhat.com>
13713
13714         PR tree-optimization/69196
13715         PR tree-optimization/68398
13716         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
13717         tree-ssa-threadupdate.c.
13718         (determine_bb_domination_status): Prototype
13719         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
13720         (determine_bb_domination_status): No longer static.
13721         (valid_jump_thread_path): Remove code to detect characteristics
13722         of the jump thread path not associated with correctness.
13723         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
13724         Correct test for thread path length.  Count PHIs for real operands as
13725         statements that need to be copied.  Do not count ASSERT_EXPRs.
13726         Look at all the blocks in the thread path.  Compute and selectively
13727         filter thread paths based on threading through the latch, threading
13728         a multiway branch or crossing a multiway branch.
13729
13730 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13731
13732         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
13733         decl with __attribute__ ((unused)) annotation.
13734
13735 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
13736
13737         PR target/69421
13738         * tree-vect-stmts.c (vectorizable_condition): Check vectype
13739         of operands is compatible with a statement vectype.
13740
13741 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
13742
13743         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
13744         improve wording for mixed storage order support.
13745
13746 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
13747
13748         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
13749         (vcvt_u64_f64): Likewise.
13750         (vcvta_s64_f64): Likewise.
13751         (vcvta_u64_f64): Likewise.
13752         (vcvtm_s64_f64): Likewise.
13753         (vcvtm_u64_f64): Likewise.
13754         (vcvtn_s64_f64): Likewise.
13755         (vcvtn_u64_f64): Likewise.
13756         (vcvtp_s64_f64): Likewise.
13757         (vcvtp_u64_f64): Likewise.
13758
13759 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
13760
13761         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
13762         (arc_init): Check validity mll64 option.
13763         (arc_save_restore): Use double load/store instruction.
13764         (arc_expand_movmem): Likewise.
13765         (arc_split_move): Don't split if we have double load/store
13766         instructions. Returns a boolean.
13767         (arc_process_double_reg_moves): Change function to return boolean
13768         instead of a sequence of instructions.
13769         (arc_dwarf_register_span): New function.
13770         * config/arc/arc-protos.h (arc_split_move): Change prototype.
13771         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
13772         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
13773         (*movdf_insn): Likewise.
13774         * config/arc/arc.opt (mll64): New option.
13775         * config/arc/predicates.md (even_register_operand): New predicate.
13776         * doc/invoke.texi (ARC Options): Add mll64 documentation.
13777
13778 2016-01-25  Richard Biener  <rguenther@suse.de>
13779
13780         PR lto/69393
13781         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
13782         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
13783         DECL_NAMELESS.
13784         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
13785
13786 2016-01-25  Richard Biener  <rguenther@suse.de>
13787
13788         PR tree-optimization/69376
13789         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
13790         flag.
13791         (VN_INFO_ANTI_RANGE_P): New inline.
13792         (VN_INFO_RANGE_TYPE): Likewise.
13793         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
13794         SSA_NAME_ANTI_RANGE_P.
13795         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
13796         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13797         Properly query VN_INFO_RANGE_TYPE.
13798
13799 2016-01-25  Nick Clifton  <nickc@redhat.com>
13800
13801         PR target/66655
13802         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
13803
13804 2016-01-23  Tom de Vries  <tom@codesourcery.com>
13805
13806         PR tree-optimization/69426
13807         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
13808         removed clobber.
13809
13810 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
13811
13812         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
13813         "the the" with "the" in the comments.
13814         * ipa-devirt.c (build_type_inheritance_graph,
13815         update_type_inheritance_graph): Likewise.
13816         * tree.c (build_function_type_list_1): Likewise.
13817         * cfgloopmanip.c (scale_loop_profile): Likewise.
13818         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
13819         * gimple-ssa-split-paths.c
13820         (find_block_to_duplicate_for_splitting_paths): Likewise.
13821         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
13822         * expr.c (convert_move): Likewise.
13823         * var-tracking.c (vt_stack_adjustments): Likewise.
13824         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
13825         * tree-vrp.c (test_for_singularity): Likewise.
13826
13827         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
13828         directly instead of building a temporary tree.
13829
13830         PR bootstrap/69434
13831         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
13832         remove <algorithm> include.
13833
13834 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
13835
13836         PR target/69432
13837         * config/i386/i386.c: Include dojump.h.
13838         (expand_small_movmem_or_setmem,
13839         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
13840         fixes.
13841         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
13842         if dynamic_check != -1.
13843
13844 2016-01-21  Jeff Law  <law@redhat.com>
13845
13846         PR middle-end/69347
13847         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
13848         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
13849         into dominated_by_p.
13850         (cprop_into_successor_phis): Avoid unnecessary tests.
13851
13852 2016-01-22  Richard Henderson  <rth@redhat.com>
13853
13854         PR target/69416
13855         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
13856         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
13857
13858 2016-01-22  Michael Matz  <matz@suse.de>
13859
13860         * system.h (string, algorithm): Include only conditionally.
13861         (new): Include always under C++.
13862         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
13863         * final.c (toplevel): Ditto.
13864         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
13865         * genconditions.c (write_header): Make gencondmd.c define
13866         INCLUDE_STRING.
13867         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
13868
13869         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
13870         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
13871
13872 2016-01-22  Christian Bruel  <christian.bruel@st.com>
13873
13874         PR target/68674
13875         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
13876
13877 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13878
13879         PR target/69403
13880         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
13881         define_insn_and_split.  Ensure operands[1] and operands[0] do not
13882         get assigned the same register.
13883
13884 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
13885
13886         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
13887
13888 2016-01-22  Christian Bruel  <christian.bruel@st.com>
13889
13890         * config/arm/arm-c.c (arm_pragma_target_parse):
13891         Remove warn_builtin_macro_redefined overwrite.
13892
13893 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
13894
13895         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
13896         flag_non_call_exceptions compatibility.
13897
13898 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
13899
13900         PR debug/66668
13901         * dwarf2out.c (add_child_die_after): New function.
13902         (dwarf_qual_info_t): New type.
13903         (dwarf_qual_info): New variable.
13904         (qualified_die_p): New function.
13905         (modified_type_die): For -fdebug-types-section, ensure
13906         canonical order of qualifiers.  Put qualified DIEs adjacent
13907         to the corresponding non-qualified type DIE and search there
13908         for existing qualified DIEs.
13909
13910 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
13911
13912         * doc/extend.texi (scalar_storage_order type attribute): Document
13913         restriction on type punning and aliasing, and remove future tense.
13914
13915 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
13916
13917         PR target/69252
13918         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
13919         first stage.
13920
13921 2016-01-21  Jeff Law  <law@redhat.com>
13922
13923         PR middle-end/69347
13924         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
13925         useless call to record_temporary_equivalences.
13926         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
13927         allocate 10 slots in the bb_path vector and let it grow as needed.
13928         (fsm_find_control_statement_thread_paths): Similarly for the next_path
13929         vector.
13930
13931 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
13932
13933         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
13934         Detangle.
13935         * configure: Regenerate.
13936
13937 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
13938
13939         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
13940         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
13941
13942 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
13943
13944         PR middle-end/66178
13945         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
13946         drop EXPAND_INITIALIZER.
13947         * rtl.h (contains_symbolic_reference_p): Declare.
13948         * rtlanal.c (contains_symbolic_reference_p): New function.
13949         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
13950         a subtraction into a NOT if symbolic constants are involved.
13951
13952 2016-01-21  Anton Blanchard  <anton@samba.org>
13953             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13954
13955         PR target/63354
13956         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
13957         #define.
13958         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
13959         function.
13960
13961 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
13962
13963         * config/microblaze/microblaze.c
13964         (get_branch_target): New.
13965         (insert_wic_for_ilb_runout): New.
13966         (insert_wic): New.
13967         (microblaze_machine_dependent_reorg): New.
13968         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
13969         * config/microblaze/microblaze.md
13970         (UNSPEC_IPREFETCH): Define.
13971         (iprefetch): New pattern
13972         * config/microblaze/microblaze.opt
13973         (mxl-prefetch): New flag.
13974
13975 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
13976
13977         * config/microblaze/microblaze.h
13978         (FIXED_REGISTERS): Update in macro.
13979         (CALL_USED_REGISTERS): Update in macro.
13980
13981 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
13982
13983         PR rtl-optimization/68920
13984         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
13985         moves.
13986
13987 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
13988
13989         PR rtl-optimization/68990
13990         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
13991         pseudo instead of inheritance ones.
13992
13993 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13994             Nick Clifton  <nickc@redhat.com>
13995
13996         PR target/69129
13997         PR target/69012
13998         * config/mips/mips.c (mips_compute_frame_info): Initialise
13999         args_size and hard_frame_pointer_offset fields of the frame
14000         structure before calling mips_global_pointer.
14001
14002 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14003
14004         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14005         label reference.
14006         * configure: Regenerate.
14007
14008 2016-01-21  Richard Biener  <rguenther@suse.de>
14009
14010         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14011
14012 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14013
14014         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14015         to actually emit the .size directive.
14016
14017 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14018              Jakub Jelinek  <jakub@redhat.com>
14019
14020         PR target/69187
14021         PR target/65624
14022         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14023         args array size by one to avoid buffer overflow.
14024
14025 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14026
14027         * config/s390/s390.md (pool_section_start): Use switch_to_section
14028         to select proper read-only data section instead of hardcoding
14029         .rodata.
14030         (pool_section_end): Use switch_to_section to match the above.
14031
14032 2016-01-21  Richard Biener  <rguenther@suse.de>
14033
14034         PR tree-optimization/69378
14035         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14036         (set_ssa_val_to): Use it for dominance checks taking into
14037         account not executable edges.
14038
14039 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14040
14041         PR c++/69355
14042         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14043         for bitsize instead of GET_MODE_PRECISION (mode).
14044
14045 2016-01-20  Martin Sebor  <msebor@redhat.com>
14046
14047         PR c/52291
14048         * extend.texi (__sync Builtins): Clarify the semantics of
14049         __sync_fetch_and_OP built-ins on pointers.
14050         (__atomic Builtins): Same.
14051
14052 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14053             Sebastian Pop  <s.pop@samsung.com>
14054
14055         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
14056         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14057         (is_valid_rename): Same.
14058         (translate_isl_ast_to_gimple::get_rename): Same.
14059         (translate_isl_ast_to_gimple::rename_all_uses): Same.
14060         (translate_isl_ast_to_gimple::rename_uses): Same.
14061         (get_new_name): Check for close_phi nodes.
14062         (copy_loop_phi_args): Use phi_node_kind.
14063         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14064         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14065
14066 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14067             Sebastian Pop  <s.pop@samsung.com>
14068
14069         Revert commit r229783.
14070         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14071         Remove use of parameter_rename_map.
14072         (copy_def): Remove.
14073         (copy_internal_parameters): Remove.
14074         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14075         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14076         (free_sese_info): Do not free parameter_rename_map.
14077         (set_rename): Do not use parameter_rename_map.
14078         (rename_uses): Update call to set_rename.
14079         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14080         * sese.h (parameter_rename_map_t): Remove.
14081         (struct sese_info_t): Remove field parameter_rename_map.
14082
14083 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14084             Sebastian Pop  <s.pop@samsung.com>
14085
14086         * graphite-isl-ast-to-gimple.c: Fix comment.
14087         * graphite-scop-detection.c (defined_in_loop_p): New.
14088         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14089         names defined in loop.
14090
14091 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14092             Sebastian Pop  <s.pop@samsung.com>
14093
14094         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14095         Discard unstructured if-then-else regions.
14096
14097 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14098             Sebastian Pop  <s.pop@samsung.com>
14099
14100         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14101         (cleanup_loop_iter_dom): Remove.
14102         (build_loop_iteration_domains): Remove.
14103         (build_scop_context): Remove.
14104         (build_scop_iteration_domain): Remove.
14105         (add_loop_constraints): New.
14106         (build_iteration_domains): New.
14107         (build_poly_scop): Call build_iteration_domains.
14108
14109 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14110             Sebastian Pop  <s.pop@samsung.com>
14111
14112         * graphite-scop-detection.c
14113         (scop_detection::harmful_loop_in_region): Free dom and loops.
14114         (scop_detection::loop_body_is_valid_scop): Free bbs.
14115
14116 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14117             Sebastian Pop  <s.pop@samsung.com>
14118
14119         * graphite-scop-detection.c (record_loop_in_sese): New.
14120         (gather_bbs::before_dom_children): Call record_loop_in_sese.
14121         (build_scops): Remove call to build_sese_loop_nests.
14122         * sese.c (sese_record_loop): Remove.
14123         (build_sese_loop_nests): Remove.
14124         (new_sese_info): Remove region->loops.
14125         (free_sese_info): Same.
14126         * sese.h (sese_contains_loop): Same.
14127         (build_sese_loop_nests): Remove.
14128         (sese_contains_loop): Remove.
14129
14130 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14131             Sebastian Pop  <s.pop@samsung.com>
14132
14133         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14134         loop_is_valid_in_scop.
14135         (scop_detection::harmful_stmt_in_region): Renamed
14136         harmful_loop_in_region.
14137         Call loop_is_valid_in_scop.
14138
14139 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14140             Sebastian Pop  <s.pop@samsung.com>
14141
14142         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14143         isl_ast_node_mark.
14144
14145 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14146             Sebastian Pop  <s.pop@samsung.com>
14147
14148         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14149         * graphite.h (struct poly_bb): Remove field is_reduction.
14150         (PBB_IS_REDUCTION): Remove.
14151
14152 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14153             Sebastian Pop  <s.pop@samsung.com>
14154
14155         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14156         (add_pdr_constraints): Same.
14157         (scop_get_reads): Same.
14158         (scop_get_must_writes): Same.
14159         (scop_get_may_writes): Same.
14160         (scop_get_original_schedule): Same.
14161         (extend_schedule): Same.
14162         (apply_schedule_on_deps): Same.
14163         (carries_deps): Same.
14164         (compute_deps): Same.
14165         (scop_get_dependences): Same.
14166         * graphite-isl-ast-to-gimple.c
14167         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14168         * graphite-optimize-isl.c (get_schedule_for_band): Same.
14169         (get_schedule_for_band_list): Same.
14170         (get_schedule_map): Same.
14171         (apply_schedule_map_to_scop): Same.
14172         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14173         (build_loop_iteration_domains): Same.
14174         (add_condition_to_pbb): Same.
14175         (add_param_constraints): Same.
14176         (pdr_add_memory_accesses): Same.
14177         (pdr_add_data_dimensions): Same.
14178
14179 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14180
14181         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14182         requirements.
14183
14184 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14185
14186         * common.opt (feliminate-dwarf2-dups): Replace references to
14187         "DWARF 2" with just "DWARF".
14188         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14189         * doc/extend.texi: Likewise.
14190         * doc/cpp.texi: Likewise.
14191         * doc/invoke.texi: Likewise.
14192         (Option Summary): Add -gdwarf to list of Debugging Options.
14193         (Debugging Options): Document -gdwarf.
14194         * doc/contrib.texi: Spell "DWARF" like that.
14195
14196 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14197
14198         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14199         warning.  Fix up formatting.
14200
14201         PR middle-end/67653
14202         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14203         attempt to mark memory input operand addressable and
14204         call prepare_gimple_addressable in that case.  Don't adjust
14205         input_location for diagnostics, use error_at instead.
14206
14207 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14208
14209         * config/rs6000/ppc-auxv.h: New file.
14210         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14211         (cpu_is): Likewise.
14212         (cpu_supports): Likewise.
14213         * config/rs6000/rs6000.c: include "ppc-auxv.h".
14214         (cpu_is_info): New variable.
14215         (cpu_supports_info): Likewise.
14216         (tcb_verification_symbol): Likewise.
14217         (cpu_builtin_p): Likewise.
14218         (cpu_expand_builtin): New function.
14219         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14220         (rs6000_init_builtins): Likewise.
14221         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14222         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14223         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14224         * configure: Regenerate.
14225         * config.in: Likewise.
14226         * doc/extend.texi (PowerPC Built-in Functions): Document
14227         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14228
14229 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14230
14231         PR target/68609
14232         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14233         domain check.
14234         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14235         for V4SFmode.
14236
14237 2016-01-20  Richard Henderson  <rth@redhat.com>
14238
14239         PR bootstrap/69343
14240         PR bootstrap/69339
14241         PR tree-opt/68964
14242         Revert:
14243         * tree.c (tm_define_builtin): New.
14244         (find_tm_vector_type): New.
14245         (build_tm_vector_builtins): New.
14246         (build_common_builtin_nodes): Call it.
14247
14248 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14249
14250         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14251         (arm_fp_ok): Likewise.
14252         (arm_fp): Likewise.
14253         (arm_crypto): Likewise.
14254
14255 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14256             Richard Biener  <rguenther@suse.de>
14257
14258         PR tree-optimization/69328
14259         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
14260         vectors have same number of elements.
14261         (vectorizable_condition): Fix masked version recognition.
14262
14263 2016-01-20  Richard Biener  <rguenther@suse.de>
14264
14265         PR tree-optimization/69345
14266         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
14267         (VN_INFO_PTR_INFO): Likewise.
14268         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
14269         info when it is equal between non-dominating SSA names.
14270         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14271         Make sure to look at original SSA infos.
14272
14273 2016-01-20  Jeff Law  <law@redhat.com>
14274
14275         PR target/25114
14276         * config/m68k/predicates.md (pow2_m1_operand): New predicate
14277         extracted from ...
14278         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
14279         (pc_or_label_operand): New predicate.
14280         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
14281         tests for small integers that are 2^n - 1.
14282
14283 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
14284
14285         * doc/invoke.texi (Options Summary): Add '.' after @xref.
14286
14287 2016-01-19  Jeff Law  <law@redhat.com>
14288
14289         PR middle-end/69347
14290         * tree-ssa-threadbackwards.c
14291         (fsm_find_control_statement_thread_paths): Do not try to lookup
14292         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
14293
14294 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14295
14296         * doc/lto.texi: Remove text that says only Gold has linker plugin
14297         support.
14298
14299 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
14300
14301         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
14302         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
14303         the DIE accordingly.
14304         (modified_type_die): Add REVERSE parameter and pass it recursively,
14305         as well as to base_type_die.  Adjust presence check accordingly.
14306         (base_type_for_mode): Adjust call to modified_type_die.
14307         (add_type_attribute): Add REVERSE parameter and pass it to
14308         modified_type_die.
14309         (generic_parameter_die): Adjust call to add_type_attribute.
14310         (add_scalar_info): Likewise.
14311         (add_subscript_info): Likewise.
14312         (gen_array_type_die): Likewise.
14313         (gen_descr_array_type_die): Likewise.
14314         (gen_entry_point_die): Likewise.
14315         (gen_enumeration_type_die): Likewise.
14316         (gen_formal_parameter_die): Likewise.
14317         (gen_subprogram_die): Likewise.
14318         (gen_variable_die ): Likewise.
14319         (gen_const_die): Likewise.
14320         (gen_field_die): Likewise.
14321         (gen_pointer_type_die): Likewise.
14322         (gen_reference_type_die): Likewise.
14323         (gen_ptr_to_mbr_type_die): Likewise.
14324         (gen_inheritance_die): Likewise.
14325         (gen_subroutine_type_die): Likewise.
14326         (gen_typedef_die): Likewise.
14327         (force_type_die): Adjust call to modified_type_die.
14328
14329 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
14330
14331         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
14332         flow throughout the file.  Fix broken link to Objective-C 2.0
14333         documentation.
14334         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
14335         errors.
14336
14337 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14338
14339         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
14340
14341 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14342
14343         PR ipa/66223
14344         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
14345         (maybe_record_node): Record cxa_pure_virtual as the only possible
14346         target if there are not ohter candidates.
14347         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
14348
14349 2016-01-19  Richard Biener  <rguenther@suse.de>
14350
14351         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
14352         (get_memory_order): Likewise.
14353
14354 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14355
14356         * tree-vect-stmts.c (vectorizable_store): Check
14357         rhs vectype.
14358
14359 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
14360
14361         PR jit/68446
14362         * gcc.c (driver::decode_argv): Add call to
14363         init_opts_obstack before init_options_struct.
14364         * opts.c (init_opts_obstack): Remove idempotency.
14365         (init_options_struct): Replace call to init_opts_obstack
14366         with a gcc_assert to verify that it has already been called.
14367         * toplev.c (toplev::main): Add call to init_opts_obstack before
14368         calls to init_options_struct.
14369         (toplev::finalize): Move cleanup of opts_obstack next to
14370         cleanup of save_decoded_options, clearing the latter, and
14371         save_decoded_options_count.
14372
14373 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14374
14375         PR target/69135
14376         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
14377         attribute to unconditional.  Remove %? from output template.
14378
14379 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14380             Jiong Wang  <jiong.wang@arm.com>
14381
14382         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
14383         generated from different expand order.
14384
14385 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14386
14387         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14388         Add support for CCMP costing.
14389
14390 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14391
14392         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
14393         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
14394         (fccmpe<mode>): Likewise.
14395         (fcmp): Rename to fcmp and globalize pattern.
14396         (fcmpe): Likewise.
14397         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
14398         (aarch64_gen_ccmp_next): Add FP support.
14399
14400 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14401
14402         * target.def (gen_ccmp_first): Update documentation.
14403         (gen_ccmp_next): Likewise.
14404         * doc/tm.texi (gen_ccmp_first): Update documentation.
14405         (gen_ccmp_next): Likewise.
14406         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
14407         expand_ccmp_expr_1.  Improve comments.
14408         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
14409         (ccmp_ior<mode>): Remove pattern.
14410         (cmp<mode>): Remove expand.
14411         (cmp): Globalize pattern.
14412         (cstorecc4): Use cc_register.
14413         (mov<mode>cc): Remove ccmp_cc_register check.
14414         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
14415         Simplify after removal of CC_DNE/* modes.
14416         (aarch64_ccmp_mode_to_code): Remove.
14417         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
14418         In 'k' case use integer as condition.
14419         (aarch64_nzcv_codes): Remove inverted cases.
14420         (aarch64_code_to_ccmode): Remove.
14421         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
14422         comparison with CC register to be used in folowing CCMP/branch/CSEL.
14423         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
14424         pattern.  Return the comparison with CC register.  Invert conditions
14425         when bitcode is OR.
14426         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
14427         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
14428
14429 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14430
14431         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14432         instrumented_version.
14433
14434 2016-01-19  Richard Biener  <rguenther@suse.de>
14435
14436         PR tree-optimization/69336
14437         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
14438         handled components with get_ref_base_and_extent.
14439         (equal_mem_array_ref_p): Adjust.
14440
14441 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14442
14443         PR debug/65779
14444         * shrink-wrap.c: Include valtrack.h.
14445         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
14446         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
14447         in between insn and where it will be moved to.  Call
14448         dead_debug_insert_temp.
14449         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
14450         first and dead_debug_local_finish at the end.
14451         For uses and defs bitmap, handle all regs in between REGNO and
14452         END_REGNO, not just the first one.
14453
14454 2016-01-19  Richard Biener  <rguenther@suse.de>
14455
14456         PR tree-optimization/69352
14457         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
14458         (equal_mem_array_ref_p): Constrain size and max size properly.
14459         Compare the reverse flag.
14460
14461 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
14462
14463         * ira.c (ira): Update regstat data if we deleted insns.
14464
14465 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14466
14467         PR rtl-optimization/68955
14468         PR rtl-optimization/64557
14469         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
14470         here.  Fix up formatting.
14471         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
14472
14473 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14474
14475         PR lto/69133
14476         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
14477         assume that the node has body.
14478         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
14479         check.
14480
14481 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14482
14483         * lto-streamer-out.c (lto_output): Do not stream instrumentation
14484         thunks.
14485
14486 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14487
14488         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
14489         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
14490
14491 2016-01-19  Martin Jambor  <mjambor@suse.cz>
14492             Martin Liska  <mliska@suse.cz>
14493             Michael Matz  <matz@suse.de>
14494
14495         * Makefile.in (OBJS): Add new source files.
14496         (GTFILES): Add hsa.c.
14497         * common.opt (disable_hsa): New variable.
14498         (-Whsa): New warning.
14499         * config.in (ENABLE_HSA): New.
14500         * configure.ac: Treat hsa differently from other accelerators.
14501         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
14502         $enable_offloading.
14503         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
14504         * doc/install.texi (Configuration): Document --with-hsa-runtime,
14505         --with-hsa-runtime-include, --with-hsa-runtime-lib and
14506         --with-hsa-kmt-lib.
14507         * doc/invoke.texi (-Whsa): Document.
14508         (hsa-gen-debug-stores): Likewise.
14509         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
14510         to invoke offload compiler for hsa acclerator.
14511         * opts.c (common_handle_option): Determine whether HSA offloading
14512         should be performed.
14513         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
14514         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
14515         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
14516         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
14517         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
14518         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
14519         GF_OMP_FOR_KIND_GRID_LOOP.
14520         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
14521         (pp_gimple_stmt_1): Likewise.
14522         * gimple-walk.c (walk_gimple_stmt): Likewise.
14523         * gimple.c (gimple_build_omp_grid_body): New function.
14524         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
14525         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
14526         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
14527         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
14528         GF_OMP_TEAMS_GRID_PHONY.
14529         (gimple_statement_omp_single_layout): Updated comments.
14530         (gimple_build_omp_grid_body): New function.
14531         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
14532         (gimple_omp_for_grid_phony): New function.
14533         (gimple_omp_for_set_grid_phony): Likewise.
14534         (gimple_omp_parallel_grid_phony): Likewise.
14535         (gimple_omp_parallel_set_grid_phony): Likewise.
14536         (gimple_omp_teams_grid_phony): Likewise.
14537         (gimple_omp_teams_set_grid_phony): Likewise.
14538         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
14539         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
14540         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
14541         (BUILT_IN_GOMP_TARGET): Updated type.
14542         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
14543         (adjust_for_condition): New function.
14544         (get_omp_for_step_from_incr): Likewise.
14545         (extract_omp_for_data): Moved parts to adjust_for_condition and
14546         get_omp_for_step_from_incr.
14547         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
14548         (fixup_child_record_type): Bail out if receiver_decl is NULL.
14549         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
14550         (scan_omp_parallel): Do not create child functions for phony
14551         constructs.
14552         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
14553         (scan_omp_1_op): Checking assert we are not remapping to
14554         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
14555         (parallel_needs_hsa_kernel_p): New function.
14556         (expand_parallel_call): Register apprpriate parallel child
14557         functions as HSA kernels.
14558         (grid_launch_attributes_trees): New type.
14559         (grid_attr_trees): New variable.
14560         (grid_create_kernel_launch_attr_types): New function.
14561         (grid_insert_store_range_dim): Likewise.
14562         (grid_get_kernel_launch_attributes): Likewise.
14563         (get_target_argument_identifier_1): Likewise.
14564         (get_target_argument_identifier): Likewise.
14565         (get_target_argument_value): Likewise.
14566         (push_target_argument_according_to_value): Likewise.
14567         (get_target_arguments): Likewise.
14568         (expand_omp_target): Call get_target_arguments instead of looking
14569         up for teams and thread limit.
14570         (grid_expand_omp_for_loop): New function.
14571         (grid_arg_decl_map): New type.
14572         (grid_remap_kernel_arg_accesses): New function.
14573         (grid_expand_target_kernel_body): New function.
14574         (expand_omp): Call it.
14575         (lower_omp_for): Do not emit phony constructs.
14576         (lower_omp_taskreg): Do not emit phony constructs but create for them
14577         a temporary variable receiver_decl.
14578         (lower_omp_taskreg): Do not emit phony constructs.
14579         (lower_omp_teams): Likewise.
14580         (lower_omp_grid_body): New function.
14581         (lower_omp_1): Call it.
14582         (grid_reg_assignment_to_local_var_p): New function.
14583         (grid_seq_only_contains_local_assignments): Likewise.
14584         (grid_find_single_omp_among_assignments_1): Likewise.
14585         (grid_find_single_omp_among_assignments): Likewise.
14586         (grid_find_ungridifiable_statement): Likewise.
14587         (grid_target_follows_gridifiable_pattern): Likewise.
14588         (grid_remap_prebody_decls): Likewise.
14589         (grid_copy_leading_local_assignments): Likewise.
14590         (grid_process_kernel_body_copy): Likewise.
14591         (grid_attempt_target_gridification): Likewise.
14592         (grid_gridify_all_targets_stmt): Likewise.
14593         (grid_gridify_all_targets): Likewise.
14594         (execute_lower_omp): Call grid_gridify_all_targets.
14595         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
14596         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
14597         (tree_omp_clause): Added union field dimension.
14598         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
14599         * tree.c (omp_clause_num_ops): Added number of arguments of
14600         OMP_CLAUSE__GRIDDIM_.
14601         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
14602         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
14603         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
14604         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
14605         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
14606         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
14607         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
14608         * tree-pass.h (make_pass_gen_hsail): Declare.
14609         (make_pass_ipa_hsa): Likewise.
14610         * ipa-hsa.c: New file.
14611         * lto-section-in.c (lto_section_name): Add hsa section name.
14612         * lto-streamer.h (lto_section_type): Add hsa section.
14613         * timevar.def (TV_IPA_HSA): New.
14614         * hsa-brig-format.h: New file.
14615         * hsa-brig.c: New file.
14616         * hsa-dump.c: Likewise.
14617         * hsa-gen.c: Likewise.
14618         * hsa.c: Likewise.
14619         * hsa.h: Likewise.
14620         * toplev.c (compile_file): Call hsa_output_brig.
14621         * hsa-regalloc.c: New file.
14622
14623 2016-01-18  Jeff Law  <law@redhat.com>
14624
14625         PR tree-optimization/69320
14626         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
14627         ranged object, do nothing if the RHS constant is not [0..1].
14628         (optimize_stmt): Comparing a boolean ranged object against a
14629         constant outside [0..1] results in a compile-time constant.
14630
14631         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
14632         test.
14633
14634 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
14635
14636         * doc/invoke.texi (Invoking GCC): Add new section to menu.
14637         (Option Summary): Update to reflect new section and moved options.
14638         (C++ Dialect Options): Move -fstats to new section.
14639         (Debugging Options): Move all dump, statistics, and other GCC
14640         developer options to new section.  Rewrite section introduction
14641         and re-order remaining options to put the more basic ones first.
14642         (Optimization Options): Move -fira-verbose and -flto-report* to
14643         new section.
14644         (Developer Options): New section incorporating moved options.
14645         * doc/cppopts.texi (-dM): Update cross-reference.
14646
14647 2016-01-18  Richard Henderson  <rth@redhat.com>
14648
14649         PR target/69176
14650         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
14651         operands to pseudo only if CSE is expected.  Split long immediate
14652         operands only after reload, and for the stack pointer.
14653         (*add<GPI>3_pluslong): Remove.
14654         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
14655         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
14656         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
14657         (*add<GPI>3 peepholes): New.
14658         (*add<GPI>3 splitters): New.
14659         * config/aarch64/constraints.md (Upl): New.
14660         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
14661
14662 2016-01-18  Richard Biener  <rguenther@suse.de>
14663
14664         PR tree-optimization/69297
14665         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
14666         stmt at most once.
14667         (vect_bb_vectorization_profitable_p): Clear visited flag again.
14668
14669 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
14670
14671         PR middle-end/68542
14672         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
14673         of mixind vector and scalar types.
14674         (fold_relational_const): Add handling of vector
14675         comparison with boolean result.
14676         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
14677         comparison of vector operands with boolean result for EQ/NE only.
14678         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
14679         (verify_gimple_cond): Likewise.
14680         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
14681         valid type of VAL.
14682
14683 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
14684
14685         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
14686         !TARGET_OCTEON.
14687
14688 2016-01-18  Richard Biener  <rguenther@suse.de>
14689
14690         PR middle-end/69308
14691         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
14692
14693 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14694
14695         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
14696
14697 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14698
14699         * omp-low.c (set_oacc_fn_attrib): Make extern.
14700         * omp-low.h (set_oacc_fn_attrib): Declare.
14701         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
14702         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
14703         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
14704         Add and handle function parameter oacc_kernels_p.
14705         (find_reduc_addr, get_omp_data_i_param): New function.
14706         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
14707         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
14708         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
14709         Calculate dominance info.  Skip loops that are not in a kernels region
14710         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
14711         (pass_parallelize_loops::execute): Call parallelize_loops with
14712         oacc_kernels_p argument.
14713         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
14714         New member function.
14715         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
14716         * passes.def: Add argument to pass_parallelize_loops instantation.
14717
14718 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14719
14720         * tree-parloops.c (pass_parallelize_loops::execute): Allow
14721         pass_parallelize_loops to be run outside the loop pipeline.
14722
14723 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14724
14725         * tree-scalar-evolution.c (follow_copies_to_constant): New.
14726         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
14727
14728 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14729
14730         PR target/63679
14731         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
14732         using get_ref_base_and_extent.
14733         (equal_mem_array_ref_p): New.
14734         (hashable_expr_equal_p): Add call to previous.
14735
14736 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14737
14738         PR target/63679
14739         * tree-sra.c (disqualified_constants, constant_decl_p): New.
14740         (sra_initialize): Allocate disqualified_constants.
14741         (sra_deinitialize): Free disqualified_constants.
14742         (disqualify_candidate): Update disqualified_constants when appropriate.
14743         (create_access): Scan for constant-pool entries as we go along.
14744         (scalarizable_type_p): Add check against type_contains_placeholder_p.
14745         (maybe_add_sra_candidate): Allow constant-pool entries.
14746         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
14747         (initialize_constant_pool_replacements): New.
14748         (sra_modify_assign): Avoid mangling assignments created by previous,
14749         and don't generate writes into constant pool.
14750         (sra_modify_function_body): Call initialize_constant_pool_replacements.
14751
14752 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
14753
14754         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
14755         andnot instruction.
14756         (scalar_chain::convert_op): Likewise.
14757         * config/i386/i386.md (*andndi3_doubleword): New.
14758
14759 2016-01-18  Richard Biener  <rguenther@suse.de>
14760
14761         PR tree-optimization/69170
14762         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
14763         building a vector from scalar results of a pattern stmt.
14764
14765 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
14766
14767         * haifa-sched.c (autopref_multipass_init): Work around
14768         -Wmaybe-uninitialized warning.
14769
14770 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14771
14772         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
14773         against the constant 0.
14774
14775 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14776
14777         PR tree-optimization/68799
14778         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
14779         look up phi candidates in the statement-candidate map.
14780         (phi_add_costs): Likewise.
14781         (record_phi_increments): Likewise.
14782         (phi_incr_cost): Likewise.
14783         (ncd_with_phi): Likewise.
14784         (all_phi_incrs_profitable): Likewise.
14785
14786 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
14787
14788         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
14789         -Wmaybe-uninitialized warning.
14790
14791 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
14792
14793         * doc/invoke.texi (Invoking GCC): Add new section to menu.
14794         (Option Summary): Update to reflect new section and moved options.
14795         (C++ Dialect Options): Move -fvtable-verify and related options.
14796         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
14797         and profiling-related options.
14798         (Optimization Options): Move profile generation options and
14799         -fstack-protector and related options.
14800         (Instrumentation Options): New section incorporating moved options.
14801         (Code Generation Options): Move -finstrument-functions and
14802         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
14803
14804 2016-01-16  Tom de Vries  <tom@codesourcery.com>
14805
14806         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
14807
14808 2016-01-16  Tom de Vries  <tom@codesourcery.com>
14809
14810         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
14811
14812 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
14813
14814         * hash-table.h (hash_table::empty): Turn into an inline wrapper
14815         that checks whether the table is already empty.  Rename the
14816         original implementation to...
14817         (hash_table::empty_slot): ...this new private function.
14818
14819 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
14820
14821         PR diagnostic/68899
14822         * diagnostic-show-locus.c (layout::print_source_line): Move x
14823         offset of line until after call to
14824         get_line_width_without_trailing_whitespace.
14825
14826 2016-01-15  Jeff Law  <law@redhat.com>
14827
14828         PR tree-optimization/69270
14829         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
14830         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
14831         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
14832         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
14833         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
14834         ssa_name_has_boolean_range and constant_boolean_node.
14835
14836 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
14837
14838         PR rtl-optimization/69030
14839         * lra-spills.c (remove_pseudos): Check nrefs and make the function
14840         returning bool.
14841         (spill_pseudos): Delete debug insn for dead pseudo.
14842         (lra_spill): Initiate spill_hard_reg and slots memory separately.
14843
14844 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
14845
14846         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
14847         New.
14848         (TYPES_UNOPUS): Likewise.
14849         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
14850         builtin type, from UNOP to UNOPUS.
14851         (lbtruncuv4sf): Likewise.
14852         (lbtruncuv2df): Likewise.
14853         (lrounduv2sf): Likewise.
14854         (lrounduv4sf): Likewise.
14855         (lrounduv2df): Likewise.
14856         (lroundusf): Likewise.
14857         (lroundusf): Likewise.
14858         (lceiluv2sf): Likewise.
14859         (lceiluv4sf): Likewise.
14860         (lceiluv2df): Likewise.
14861         (lceilusf): Likewise.
14862         (lceiludf): Likewise.
14863         (lflooruv2sf): Likewise.
14864         (lflooruv4sf): Likewise.
14865         (lflooruv2df): Likewise.
14866         (lfloorusf): Likewise.
14867         (lfloorudf): Likewise.
14868         (lfrintnuv2sf): Likewise.
14869         (lfrintnuv4sf): Likewise.
14870         (lfrintnuv2df): Likewise.
14871         (lfrintnusf): Likewise.
14872         (lfrintnudf): Likewise.
14873         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
14874         conversion.
14875         (vcvtq_u32_f32): Likewise.
14876         (vcvtq_u64_f64): Likewise.
14877         (vcvta_u32_f32): Likewise.
14878         (vcvtaq_u32_f32): Likewise.
14879         (vcvtaq_u64_f64): Likewise.
14880         (vcvtm_u32_f32): Likewise.
14881         (vcvtmq_u32_f32): Likewise.
14882         (vcvtmq_u64_f64): Likewise.
14883         (vcvtn_u32_f32): Likwise.
14884         (vcvtnq_u32_f32): Likewise.
14885         (vcvtnq_u64_f64): Likewise.
14886         (vcvtp_u32_f32): Likewise.
14887         (vcvtpq_u32_f32): Likewise.
14888         (vcvtpq_u64_f64): Likewise.
14889         (vcvtmd_u64_f64): Likewise.
14890         (vcvtms_u32_f32): Likewise.
14891         (vcvtad_u64_f64): Likewise.
14892         (vcvtas_u32_f32): Likewise.
14893         (vcvtnd_u64_f64): Likewise.
14894         (vcvtns_u32_f32): Likewise.
14895         (vcvtpd_u64_f64): Likewise.
14896         (vcvtps_u32_f32): Likewise.
14897
14898 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14899
14900         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
14901         CSEL of zero_extended registers.
14902
14903 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14904
14905         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
14906         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
14907
14908 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14909
14910         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
14911         false when argument string is not found in the attributes table
14912         at all.
14913
14914 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
14915
14916         PR target/68609
14917         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
14918         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
14919         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
14920         precision estimate.
14921
14922 2016-01-15  Richard Biener  <rguenther@suse.de>
14923
14924         PR tree-optimization/66856
14925         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
14926         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
14927         (vect_create_new_slp_node): Increment stmt reference count.
14928         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
14929         an SLP tree before swapping operands.
14930         (vect_build_slp_tree): Likewise.
14931         (destroy_bb_vec_info): Free stmt info after SLP instances.
14932         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
14933         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
14934         (STMT_VINFO_NUM_SLP_USES): New macro.
14935
14936 2016-01-15  Richard Biener  <rguenther@suse.de>
14937
14938         PR debug/69137
14939         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
14940         (add_linkage_name): ... here.
14941         (gen_typedef_die): Use add_linkage_name_raw instead of
14942         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
14943         if necessary.
14944
14945 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
14946
14947         * gimplify.c (oacc_default_clause): Decode reference and pointer
14948         types for both kernels and parallel regions.
14949
14950 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
14951
14952         PR middle-end/69246
14953         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
14954
14955 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
14956
14957         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
14958         (convert_scalars_to_vector): Likewise.
14959
14960 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
14961
14962         * doc/extend.texi (Type Traits): Fix grammar.
14963
14964 2016-01-15  Martin Jambor  <mjambor@suse.cz>
14965
14966         * tree-inline.c (remap_decl): Use existing dclarations if
14967         remapping a type and prevent_decl_creation_for_types.
14968         (replace_locals_stmt): Do an initial remapping of non-VLA typed
14969         decls first.  Do real remapping with
14970         prevent_decl_creation_for_types set.
14971         * tree-inline.h (copy_body_data): New field
14972         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
14973         padding.
14974
14975 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14976
14977         * config/s390/s390.opt (mmvcle): More verbose help text.
14978
14979 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14980
14981         * config/s390/s390.opt: Add period to -mzvector option text.
14982
14983 2016-01-15  Richard Biener  <rguenther@suse.de>
14984
14985         PR tree-optimization/68961
14986         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
14987         of invariants in stores again.
14988
14989 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14990
14991         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
14992
14993 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
14994
14995         * config/i386/i386.c (ix86_expand_branch): Don't split
14996         DI mode xor instruction to SI mode.
14997
14998 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
14999
15000         PR ipa/68148
15001         * ipa-icf.c (sem_function::merge): Virtual functions may become
15002         reachable even if they address is not taken and there are no
15003         idrect calls.
15004
15005 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15006
15007         * lto-streamer-out.c (subtract_estimated_size): New function.
15008         (get_symbol_initial_value): Use it.
15009
15010 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15011
15012         PR target/65837
15013         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15014         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15015         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15016         use add_builtin_function_ext_scope instead of add_builtin_function.
15017         (neon_set_p, neon_crypto_set_p): Remove.
15018         (arm_init_builtins): Always call arm_init_neon_builtins and
15019         arm_init_crypto_builtins.
15020         (arm_expand_builtin): Check that builtins are allowed for the arch.
15021         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15022         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15023         arm_init_neon_builtins call.
15024
15025 2016-01-15  Richard Biener  <rguenther@suse.de>
15026
15027         PR tree-optimization/69117
15028         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15029         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15030         of the leader conservatively.
15031         (free_scc_vn): Restore original SSA name infos.
15032
15033 2016-01-14  Jeff Law  <law@redhat.com>
15034
15035         PR tree-optimization/69270
15036         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15037         single bit of precision, verify it's also unsigned.
15038         (record_edge_info): Use constant_boolean_node rather than fold_convert
15039         to convert boolean_true/boolean_false to the right type.
15040
15041 2016-01-14  Richard Henderson  <rth@redhat.com>
15042
15043         PR rtl-opt/69014
15044         * loop-doloop.c (record_reg_sets): New.
15045         (doloop_optimize): Reject the transform if the sequence
15046         clobbers registers live at the end of the loop block.
15047         (doloop_optimize_loops): Enable df_live if needed.
15048
15049 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15050
15051         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15052         * config/rs6000/rs6000.c: Likewise.
15053         * config/rs6000/rs6000.h: Likewise.
15054         * config/rs6000/rs6000.md: Likewise.
15055         * doc/extend.texi: Likewsie.
15056
15057 2016-01-14  Jeff Law  <law@redhat.com>
15058
15059         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15060         typo.
15061
15062 2016-01-14  Richard Henderson  <rth@redhat.com>
15063
15064         PR c/69272
15065         PR tree-opt/68964
15066         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15067         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15068         instead of builtin_decl_declared_p to test for declaration.
15069
15070 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15071
15072         * doc/loop.texi (Loop Analysis and Representation): Document
15073         loop_depth function.
15074
15075 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15076
15077         PR tree-optimization/68773
15078         * omp-low.c (expand_omp_target): Don't set force_output.
15079         * varpool.c (varpool_node::get_create): Same.
15080         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15081         offload_funcs with force_output.
15082
15083 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15084
15085         PR debug/69244
15086         * lra-eliminations.c (move_plus_up): Don't change anything if either
15087         the outer or inner subreg mode is not MODE_INT.
15088         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15089         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15090
15091 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15092
15093         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15094         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15095         reduc_uplus_@var{m}): Remove.
15096         * expr.c (expand_expr_real_2): Remove expansion path for
15097         reduc_[us](min|max|plus) optabs.
15098         * optabs-tree.c (scalar_reduc_to_vector): Remove.
15099         * optabs-tree.h (scalar_reduc_to_vector): Remove.
15100         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15101         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15102         * tree-vect-loop.c (vectorizable_reduction): Remove test for
15103         reduc_[us](min|max|plus) optabs.
15104
15105 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15106
15107         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15108         (reduc_plus_scal_v2sf): New.
15109         (reduc_smax_v2sf): Rename to...
15110         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15111         (reduc_smin_v2sf): Rename to...
15112         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15113
15114 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15115
15116         * alias.c (compare_base_symbol_refs): New function.
15117         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15118         it.
15119
15120 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15121
15122         PR middle-end/68146
15123         PR tree-optimization/69155
15124         * tree-complex.c: Include cfganal.h.
15125         (phis_to_revisit): New variable.
15126         (extract_component): Add phiarg_p argument.  Assert that returned
15127         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15128         (update_phi_components): Partly rewrite to use loop over real/imag
15129         components instead of code duplication.  If extract_component returns
15130         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15131         create_tmp_reg into the PHI node instead, and mention the phi triplet
15132         in phis_to_revisit.
15133         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
15134         in phis_to_revisit at the end.
15135
15136 2016-01-14  Richard Biener  <rguenther@suse.de>
15137
15138         PR tree-optimization/68060
15139         * tree-vect-loop.c (vect_is_simple_reduction): Check the
15140         outer loop reduction is only used in the inner loop before
15141         detecting a double reduction.
15142
15143 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15144
15145         PR target/68269
15146         * combine.c (expand_field_assignment): Punt if compute_mode is
15147         unsupported scalar mode.
15148
15149 2016-01-14  Richard Biener  <rguenther@suse.de>
15150
15151         PR tree-optimization/66856
15152         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15153         SLP node only if it built successfully.
15154         (vect_analyze_slp_instance): Adjust.
15155
15156 2016-01-14  Jeff Law  <law@redhat.com>
15157
15158         PR tree-optimization/69270
15159         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15160         (record_edge_info): Use it.  Convert boolean_{true,false}_node
15161         to the type of op0.
15162
15163 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15164
15165         PR ipa/66487
15166         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15167         use block_ultimate_origin
15168         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15169
15170 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15171
15172         * doc/invoke.texi (Submodel Options): Rename section to
15173         "Machine-Dependent Options" to better reflect its content.
15174         Rewrite introductory text to remove archaic CPU names.
15175         Update references.
15176
15177 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15178
15179         * doc/invoke.texi (Code Gen Options): Move section up in file,
15180         before target-specific options.  Update menu and option summary
15181         to reflect the new section ordering.
15182
15183 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15184
15185         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15186         (C++ Dialect Options): Add cross-reference to -std option.
15187         * doc/standards.texi (C++ Language): Document C++14 support.
15188
15189 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15190
15191         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15192         for pack/unpack functions for __ibm128.
15193         (PACK_IF): Likewise.
15194         (UNPACK_IF): Likewise.
15195
15196         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15197         support for __ibm128 pack/unpack functions.
15198         (rs6000_invalid_builtin): Likewise.
15199         (rs6000_init_builtins): Likewise.
15200         (rs6000_opt_masks): Likewise.
15201
15202         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15203         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15204         functions
15205         (RS6000_BTM_COMMON): Likewise.
15206
15207         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15208         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15209         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15210         128-bit floating point.  Add support for the double values to be
15211         in Altivec registers for TF/IF packing and unpacking, but restrict
15212         TD packing sub-fields to be FPR registers.  Don't allow overlapped
15213         register support for packing.  Allow pack inputs to be memory
15214         locations.  Don't build generator functions for unpack<mode>_dm
15215         and unpack<mode>_nodm.
15216         (unpack<mode>_dm): Likewise.
15217         (unpack<mode>_nodm): Likewise.
15218         (pack<mode>): Likewise.
15219
15220         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15221         built-in functions to pack/unpack explicit __ibm128 values.
15222         (__builtin_unpack_ibm128): Likewise.
15223
15224         * doc/extend.texi (PowerPC Built-in Functions): Document
15225         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15226
15227 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15228
15229         PR c/66208
15230         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15231         Add new arg loc and pass it down as context.
15232         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15233         to the location to use for the warning.
15234         (check_function_arguments): New arg loc.  All callers changed.  Pass
15235         it to check_function_nonnull.
15236         * c-common.h (check_function_arguments): Adjust declaration.
15237
15238 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15239
15240         PR tree-optimization/69156
15241         * gimple.c (validate_type): Removed.
15242         (gimple_builtin_call_types_compatible_p): Use
15243         useless_type_conversion_p instead of validate_type.
15244         * value-prof.c (gimple_stringop_fixed_value): Fold
15245         icall_size to correct type.
15246
15247 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15248
15249         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15250         effects.
15251
15252 2016-01-13  Richard Henderson  <rth@redhat.com>
15253
15254         PR tree-opt/68964
15255         * target.def (builtin_tm_load, builtin_tm_store): Remove.
15256         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15257         (ix86_builtin_tm_store): Remove.
15258         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15259         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15260         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15261         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15262         * doc/tm.texi: Rebuild.
15263
15264         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
15265         (BUILT_IN_TM_MEMCPY_RTWN): New.
15266         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
15267         fallback from vector to integer helpers.
15268         (build_tm_load): Handle vector types directly, instead of
15269         via target hook.
15270         (build_tm_store): Likewise.
15271         (expand_assign_tm): Prepare for register types not handled by
15272         the above.  Copy them to memory and use memcpy.
15273         * tree.c (tm_define_builtin): New.
15274         (find_tm_vector_type): New.
15275         (build_tm_vector_builtins): New.
15276         (build_common_builtin_nodes): Call it.
15277
15278 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
15279
15280         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
15281         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
15282
15283 2016-01-13  Tom de Vries  <tom@codesourcery.com>
15284
15285         PR tree-optimization/69169
15286         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
15287         handled_struct_type param.
15288         (create_variable_info_for, intra_create_variable_infos): Call
15289         create_variable_info_for_1 with extra arg.
15290
15291 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
15292
15293         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
15294         and "armv8.1-a+crc" entries.
15295
15296 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
15297
15298         PR target/69228
15299         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
15300         Change first operand predicate from register_or_constm1_operand
15301         to register_operand.
15302         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
15303         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
15304         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
15305         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
15306         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
15307         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
15308         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
15309         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
15310         comparison with constm1_rtx from vec_prefetch_gen part.
15311
15312 2016-01-13  Richard Biener  <rguenther@suse.de>
15313
15314         PR tree-optimization/69013
15315         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
15316         Exchange assert for a test.
15317
15318 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15319
15320         PR target/69247
15321         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
15322
15323 2016-01-13  Richard Biener  <rguenther@suse.de>
15324
15325         PR tree-optimization/69242
15326         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
15327         assert with a check.
15328
15329 2016-01-13  Richard Biener  <rguenther@suse.de>
15330
15331         PR tree-optimization/69186
15332         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15333         Properly guard vect_update_misalignment_for_peel call.
15334
15335 2016-01-12  Jeff Law  <law@redhat.com>
15336
15337         PR tree-optimization/pr67755
15338         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
15339         "need_profile_correction".
15340         (thread_block_1): Initialize new field to false by default.  If we
15341         have multiple thread paths through a common joiner to different
15342         final targets, then set new field to true.
15343         (compute_path_counts): Only do count adjustment when it's really
15344         needed.
15345
15346 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15347
15348         * doc/invoke.texi (Spec Files): Move section down in file, past
15349         all command-line option descriptions.
15350
15351 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15352
15353         PR middle-end/54809
15354         * doc/gty.texi: Remove documentation of mark_hook.
15355         * gengtype.c (struct write_types_data): Remove code to support
15356         mark_hook attribute.
15357         (walk_type): Likewise.
15358         (write_func_for_structure): Likewise.
15359
15360 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15361
15362         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
15363         Directory Options, and -specs= to Overall Options.
15364         (Overall Options): Adjust similarly.  Reorder to group related
15365         options together.  Make -specs= cross-reference the spec file details.
15366         (Directory Options): Adjust similarly.
15367
15368 2016-01-12  Jeff Law  <law@redhat.com>
15369
15370         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
15371
15372 2016-01-12  Olivier Hainque  <hainque@adacore.com>
15373
15374         * gcc.c (spec_undefvar_allowed): New global.
15375         (process_command): Set to true when running for --version or --help,
15376         alone or together.
15377         (getenv_spec_function): When the variable is not defined, use the
15378         variable name as the variable value if we're allowed not to issue
15379         a fatal error.
15380
15381 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
15382
15383         PR tree-optimization/68911
15384         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
15385         information computed for expression "init + nit * step".
15386
15387 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15388
15389         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
15390         about name of GCC executable.  Remove deleted node from menu.
15391         (Directory Options) <-B>: Remove cross-reference to deleted node.
15392         (Target Options): Delete section.
15393
15394 2016-01-12  Christian Bruel  <christian.bruel@st.com>
15395
15396         PR target/69180
15397         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
15398         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
15399
15400 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
15401
15402         PR target/69198
15403         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
15404         aligned_mem is properly set for AVX512-VL floating point masked
15405         stores.
15406
15407         PR target/69175
15408         * ifcvt.c (cond_exec_process_if_block): When removing the last
15409         insn from then_bb, remove also any possible barriers that follow it.
15410
15411 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
15412
15413         PR target/68456
15414         PR target/69226
15415         * config/i386/iamcu.h (SIZE_TYPE): New macro.
15416         (PTRDIFF_TYPE): Likewise.
15417         (WCHAR_TYPE): Likewise.
15418         (WCHAR_TYPE_SIZE): Likewise.
15419         (STDINT_LONG32): Likewise.
15420
15421 2016-01-12  Richard Biener  <rguenther@suse.de>
15422
15423         PR tree-optimization/69053
15424         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
15425         convert initial value for cond reductions.
15426
15427 2016-01-12  Richard Biener  <rguenther@suse.de>
15428
15429         PR tree-optimization/69007
15430         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
15431         widen_sum after dot_prod and sad.
15432
15433 2016-01-12  Richard Biener  <rguenther@suse.de>
15434
15435         PR tree-optimization/69168
15436         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
15437         pattern stmt SLP type.
15438         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
15439         end up unused so cope with that case.
15440
15441 2016-01-12  Richard Biener  <rguenther@suse.de>
15442
15443         PR tree-optimization/69157
15444         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
15445         stmts def type only during analyze phase.
15446         (vectorizable_call): Likewise.
15447         (vectorizable_simd_clone_call): Likewise.
15448         (vectorizable_conversion): Likewise.
15449         (vectorizable_assignment): Likewise.
15450         (vectorizable_shift): Likewise.
15451         (vectorizable_operation): Likewise.
15452         (vectorizable_store): Likewise.
15453         (vectorizable_load): Likewise.
15454
15455 2016-01-12  Richard Biener  <rguenther@suse.de>
15456
15457         PR tree-optimization/69174
15458         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
15459         space.
15460         (vectorizable_load): Properly compute the number of loads needed
15461         for permuted strided SLP loads and do not spuriously assign
15462         to SLP_TREE_VEC_STMTS.
15463
15464 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
15465
15466         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
15467         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
15468         (MD_EXEC_PREFIX): Remove.
15469         (MD_STARTFILE_PREFIX) Removee.
15470         (FILE_NAME_ABSOLUTE_P): Remove.
15471         (CPP_SPEC): Do not read macros from sys/version.h.
15472         (LINK_COMMAND_SPEC): Remove.
15473         (LOCAL_INCLUDE_DIR): Remove.
15474         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
15475         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
15476         (POST_LINK_SPEC): Define to invoke stubify after linker
15477         (LIBSTDCXX): Remove define
15478         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
15479         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
15480         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
15481         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
15482         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
15483         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
15484         (i386_djgpp_asm_named_section): Add propotype of new procedure
15485
15486         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
15487         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
15488         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
15489         in config/i386/djgpp.h).
15490         (STANDARD_STARTFILE_PREFIX_2): Define identical to
15491         STANDARD_STARTFILE_PREFIX_1.
15492         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
15493         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
15494         installation errors.
15495         (MAX_OFILE_ALIGNMENT): Define to 128.
15496         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
15497
15498         * config/i386/djgpp.c: New file. Add implementation of
15499         i386_djgpp_asm_named_section.
15500
15501         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
15502
15503         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
15504         Add rule for building djgpp.o.
15505
15506 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15507
15508         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
15509         (rtx_is_swappable_p): Reductions are swappable.
15510         (insn_is_swappable_p): V2DF reductions are swappable.
15511
15512 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
15513
15514         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
15515         reloads for other unsupported memory operands.
15516
15517 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15518             Jim Wilson  <jim.wilson@linaro.org>
15519
15520         PR target/69194
15521         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
15522         copy_to_mode_reg instead of force_reg.
15523
15524 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15525
15526         PR target/69225
15527         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
15528         TARGET_80387 is true.
15529
15530 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
15531
15532         PR target/69071
15533         * lra-eliminations.c (move_plus_up): Only move plus up
15534         if subreg of the constant can be simplified into constant
15535         and use the simplified subreg of the constant instead of
15536         the original constant.
15537
15538         * fold-const.c (fold_convertible_p): Don't return true
15539         for conversion of VECTOR_TYPE to same sized integral type.
15540         (fold_convert_loc): Fix up formatting.  Fold conversion of
15541         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
15542         instead of NOP_EXPR.
15543
15544         PR tree-optimization/69214
15545         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
15546         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15547         Formatting fix.
15548
15549         PR tree-optimization/69207
15550         * tree-vect-slp.c (vect_get_constant_vectors): For
15551         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
15552         fold_convertible_p to vector_type's element type, and always
15553         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
15554
15555 2016-01-11  Richard Biener  <rguenther@suse.de>
15556
15557         PR tree-optimization/69173
15558         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
15559         fixup the cycle if all stmts are in a pattern.
15560
15561 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
15562
15563         PR middle-end/68999
15564         * alias.c (base_alias_check): Move check for addresses with
15565         alignment ANDs before the call for compare_base_decls.
15566         (memrefs_conflict_p): Return -1 for different decls
15567         that went through alignment adjustments.
15568
15569 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15570
15571         PR rtl-optimization/68796
15572         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
15573         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
15574         and QImode comparisons against zero with CC_NZmode.
15575         * config/aarch64/iterators.md (short_mask): New mode_attr.
15576
15577 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15578
15579         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
15580         (<avx512>_store<mode>_mask): Likewise.
15581
15582 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
15583             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15584
15585         PR rtl-optimization/68841
15586         * ifcvt.c (struct noce_if_info): Add orig_x field.
15587         (bbs_ok_for_cmove_arith): Add to_rename parameter.
15588         Don't record conflicts on to_rename if it's present.
15589         Allow memory destinations in sets.
15590         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
15591         blocks, passing orig_x to the checks.
15592         (noce_process_if_block): Set if_info->orig_x appropriately.
15593
15594 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15595
15596         PR tree-optimization/69069
15597         * tree-parloops.c (create_parallel_loop): Add missing phi args.
15598
15599 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15600
15601         PR rtl-optimization/68920
15602         * config/i386/i386.c (ix86_option_override_internal): Restrict number
15603         of conditional moves for  RTL if-conversion to 1 for
15604         TARGET_ONE_IF_CONV_INSN.
15605         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
15606         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
15607         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
15608         parameter to restirct number of conditional moves for
15609         RTL if-conversion.
15610         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
15611         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
15612         conditionl moves.
15613
15614 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
15615
15616         PR bootstrap/69123
15617         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
15618         onepart vars.  Fix typo in comment.  Fix reversed condition in
15619         unshare test.
15620         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
15621
15622         PR bootstrap/69123
15623         * var-tracking.c (dump_onepart_variable_differences): New.
15624         (dataflow_set_different): If a detailed dump is requested,
15625         delay early returns and dump differences between onepart
15626         variables present before and after, and added variables.
15627
15628 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
15629
15630         PR target/69010
15631         * expr.c (expand_expr_real_1): For boolean vector constants
15632         with a scalar mode use const_scalar_mask_from_tree.
15633         (const_scalar_mask_from_tree): New.
15634         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
15635         assigned to a mask type to handle constants.
15636
15637 2016-01-11  Martin Jambor  <mjambor@suse.cz>
15638
15639         PR ipa/69044
15640         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
15641         useless parameters if we cannot change function signature.
15642
15643 2016-01-11  Martin Jambor  <mjambor@suse.cz>
15644
15645         PR ipa/66616
15646         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
15647         flag.
15648
15649 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15650
15651         PR tree-optimization/69109
15652         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
15653         latch with phi.
15654
15655 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15656
15657         PR tree-optimization/69108
15658         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
15659         res is not used in a phi.
15660
15661 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
15662
15663         PR 67425
15664         * common.opt (frandom-seed): Fix parameter name.
15665         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
15666
15667 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15668
15669         PR tree-optimization/69058
15670         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
15671         not supported.
15672
15673 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
15674
15675         * config/arc/arc.opt (mdiv-rem): Add period to the end.
15676         (mcode-density): Likewise.
15677
15678 2016-01-10  Tom de Vries  <tom@codesourcery.com>
15679
15680         PR tree-optimization/69062
15681         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
15682         (parallelize_loops): Don't paralelize loop that has phi with address
15683         arg.
15684
15685 2016-01-10  Tom de Vries  <tom@codesourcery.com>
15686
15687         PR tree-optimization/69039
15688         * tree-parloops.c (try_create_reduction_list): Only allow single exit
15689         phi for reduction.
15690
15691 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
15692
15693         PR middle-end/68743
15694         * match.pd: Require target has function_c99_misc before doing
15695         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
15696
15697 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
15698
15699         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
15700         use GMPINC.
15701         * configure: Regenerate.
15702
15703 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
15704
15705         PR middle-end/50865
15706         PR tree-optimization/69097
15707         * fold-const.h (expr_not_equal_to): New prototype.
15708         * fold-const.c: Include stringpool.h and tree-ssanames.h.
15709         (expr_not_equal_to): New function.
15710         * match.pd (X % -Y is the same as X % Y): Don't optimize
15711         unless X is known not to be equal to minimum or Y is known
15712         not to be equal to -1.
15713         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
15714         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
15715         (simplify_stmt_using_ranges): Adjust caller.
15716         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
15717         substitute_and_fold.
15718
15719 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
15720
15721         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
15722         w/o DECL_NAME.
15723
15724 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15725
15726         PR tree-optimization/69167
15727         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
15728         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
15729         ops[0] comparison.
15730         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
15731
15732 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
15733             Richard Biener  <rguenther@suse.de>
15734
15735         PR tree-optimization/68707
15736         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
15737         instances that can be handled via vect_load_lanes.
15738
15739 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
15740
15741         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
15742         if we can't determine address equivalence.
15743         * alias.c (compare_base_decl): Update for changed return value of
15744         symtab_node::equal_address_to.
15745
15746 2016-01-08  Jason Merrill  <jason@redhat.com>
15747
15748         PR c++/68983
15749         PR c++/67557
15750         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
15751         * expr.c (store_field): Not here.
15752         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
15753         call with TREE_ADDRESSABLE type.
15754         * tree-cfg.c (verify_gimple_call): Adjust.
15755
15756 2016-01-08  Olivier Hainque  <hainque@adacore.com>
15757
15758         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
15759         libc_internal.
15760
15761 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
15762
15763         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
15764         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
15765         (reduc_smin_v2sf): Rename to...
15766         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
15767         (reduc_splus_v2sf): Rename to...
15768         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
15769
15770 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15771
15772         PR tree-optimization/69162
15773         * gimplify.c (gimplify_va_arg_expr): Encode original type of
15774         valist argument in another argument.
15775         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
15776         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
15777         to determine the va_list type, build a MEM_REF instead of
15778         build_fold_indirect_ref.
15779
15780         PR tree-optimization/69172
15781         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
15782         gimple_build.
15783
15784 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15785
15786         PR tree-optimization/67781
15787         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
15788         and cmpnop in two steps: first the ones not accessed in original
15789         gimple expression in a endian independent way and then the ones not
15790         accessed in the final result in an endian-specific way.
15791
15792 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15793
15794         PR tree-optimization/69083
15795         * tree-vect-slp.c (vect_get_constant_vectors): For
15796         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
15797         element type.  If op is fold_convertible_p to vector_type's element
15798         type, use NOP_EXPR instead of VCE.
15799
15800 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
15801
15802         PR rtl-optimization/67778
15803         PR rtl-optimization/68634
15804         PR rtl-optimization/68909
15805         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
15806         block from the stack until done with it.  Remove a superfluous
15807         bitmap set.  Remove a superfluous bitmap test.
15808
15809 2016-01-07  Martin Sebor  <msebor@redhat.com>
15810
15811         PR c/68966
15812         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
15813         constraint on the type of arguments.
15814
15815 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
15816
15817         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
15818         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
15819         unaligned_access on the gcc_options set.
15820         * config/arm/arm.c (arm_option_override_internal): Use
15821         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
15822
15823 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
15824
15825         PR target/69140
15826         * config/i386/i386.c (ix86_frame_pointer_required): Enable
15827         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
15828
15829 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
15830
15831         Revert
15832         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
15833
15834         PR target/69140
15835         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
15836         depending on frame_pointer_needed before remaining integer and SSE
15837         registers are saved.
15838
15839 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
15840
15841         PR 1078
15842         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
15843
15844 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15845
15846         PR target/69171
15847         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
15848         Use the "xBm" constraint.
15849         (float<sseintvecmodelower><mode>2<mask_name><round_name):
15850         Likewise.
15851         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
15852         (sse_cvtsi2ssq<round_name>): Likewise.
15853         (sse_cvtss2si<round_name>): Likewise.
15854         (sse_cvtss2siq<round_name>): Likewise.
15855         (sse2_cvtsi2sdq<round_name>): Likewise.
15856         (sse2_cvtsd2si<round_name>): Likewise.
15857         (sse2_cvtsd2siq<round_name>): Likewise.
15858         * config/i386/subst.md (round_nimm_scalar_predicate): New
15859         predicate.
15860
15861 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
15862
15863         PR middle-end/67639
15864         * varasm.c (make_decl_rtl): Mark invalid register vars as
15865         DECL_EXTERNAL.
15866
15867         PR rtl-optimization/66206
15868         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
15869         All callers changed.
15870
15871 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
15872
15873         PR tree-optimization/69141
15874         * tree-ssa-pre.c: Include langhooks.h.
15875         (eliminate_dom_walker::before_dom_children): Use
15876         lang_hooks.decl_printable_name instead of
15877         cgraph_node::get ()->name ().
15878
15879         PR middle-end/68960
15880         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
15881         it and DECL_ALIGN too.
15882
15883 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
15884
15885         * config/mips/mips-ftypes.def: Sort to lexicographical order.
15886
15887 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
15888
15889         PR target/69140
15890         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
15891         depending on frame_pointer_needed before remaining integer and SSE
15892         registers are saved.
15893
15894 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15895
15896         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
15897         mode iterator with VSX_M2.
15898         (*p9_vecstore_<mode>): Likewise.
15899         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
15900         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
15901         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
15902         (define_split for VSX_LE128 stores): Likewise.
15903         (define_peephole2 for TImode LE swaps): Likewise.
15904         (define_split for VSX_LE128 post-reload stores): Likewise.
15905
15906 2016-01-06  Marek Polacek  <polacek@redhat.com>
15907
15908         PR sanitizer/69099
15909         * convert.c (convert_to_integer_1): Adjust call to
15910         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
15911         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
15912         EXPR instead of ARG.
15913         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
15914
15915 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
15916
15917         PR 1078
15918         * doc/extend.texi (RL78 Variable Attributes): New section.
15919
15920 2016-01-05  Marek Polacek  <polacek@redhat.com>
15921
15922         PR c/69104
15923         * builtins.c (get_memmodel): Use expansion point location rather than
15924         the input location.  Call warning_at rather than warning.
15925         (expand_builtin_atomic_compare_exchange): Likewise.
15926         (expand_builtin_atomic_load): Likewise.
15927         (expand_builtin_atomic_store): Likewise.
15928         (expand_builtin_atomic_clear): Likewise.
15929
15930 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
15931
15932         PR target/68991
15933         * config/i386/i386.c (ix86_expand_vector_logical_operator):
15934         Replace nonimmediate_operand with vector_operand.
15935         * config/i386/predicates.md (vector_operand): New predicate.
15936         (general_vector_operand): Replace nonimmediate_operand with
15937         vector_operand.
15938         * config/i386/sse.md: Replace nonimmediate_operand with
15939         vector_operand and m constraint with Bm constraint on SSE
15940         patterns with 16-byte memory operand.
15941         * config/i386/subst.md (round_nimm_predicate): Replace
15942         nonimmediate_operand with vector_operand.
15943         (round_saeonly_nimm_predicate): Likewise.
15944         (round_saeonly_nimm_scalar_predicate): New.
15945
15946 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
15947
15948         PR target/68991
15949         * config/i386/constraints.md (Bm): New constraint.
15950         * config/i386/predicates.md (vector_memory_operand): New
15951         predicate.
15952         * config/i386/sse.md: Replace xm with xBm in plusminus and
15953         any_logic patterns.
15954
15955 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
15956
15957         PR 1078
15958         * doc/extend.texi (V850 Function Attributes): New section.
15959         (V850 Variable Attributes): New section.
15960
15961 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
15962
15963         PR 1078
15964         * doc/extend.texi (MicroBlaze Function Attributes): Document
15965         interrupt_handler and fast_interrupt attributes.
15966
15967 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
15968
15969         PR other/60465
15970         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
15971         for local symbolic operands.
15972         * config/ia64/predicates.md (local_symbolic_operand64): New
15973         predicate.
15974
15975 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15976
15977         PR rtl-optimization/68651
15978         * combine.c (combine_simplify_rtx): Canonicalize x + x into
15979         x << 1.
15980
15981 2016-01-05  Nathan Sidwell  <nathan@acm.org>
15982
15983         * alias.c (compare_base_decls): Use symtab_node::get.
15984
15985 2016-01-05  Nick Clifton  <nickc@redhat.com>
15986
15987         PR target/68770
15988         * ira-costs.c (copy_cost): Initialise the t_icode field of the
15989         secondary_reload_info structure.
15990
15991         PR target/66655
15992         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
15993         decls if weak support is available.
15994
15995 2016-01-04  Martin Sebor  <msebor@redhat.com>
15996
15997         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
15998
15999 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16000
16001         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16002         OPTION_MASK_P9_DFORM.
16003
16004         * config/rs6000/constraints.md (wo constraint): New constraint for
16005         ISA 3.0 (power9).
16006
16007         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16008         for wo constraint.
16009         (rs6000_init_hard_regno_mode_ok): Likewise.
16010
16011         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16012         wo constraint.
16013
16014         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16015         expanders not to have constraints.  Add support for ISA 3.0 xxperm
16016         instruction.  Add support for fusing xxlor with xxperm.
16017         (altivec_vperm_<mode>_internal): Likewise.
16018         (altivec_vperm_v8hiv16qi): Likewise.
16019         (altivec_vperm_<mode>v16q): Likewise.
16020         (altivec_vperm_<mode>_uns): Likewise.
16021         (vperm_v8hiv4si): Likewise.
16022         (vperm_v16qiv8hi): Likewise.
16023
16024         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16025
16026 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16027
16028         Update copyright years.
16029
16030         * gcc.c (process_command): Update copyright notice dates.
16031         * gcov-dump.c (print_version): Ditto.
16032         * gcov.c (print_version): Ditto.
16033         * gcov-tool.c (print_version): Ditto.
16034         * gengtype.c (create_file): Ditto.
16035         * doc/cpp.texi: Bump @copying's copyright year.
16036         * doc/cppinternals.texi: Ditto.
16037         * doc/gcc.texi: Ditto.
16038         * doc/gccint.texi: Ditto.
16039         * doc/gcov.texi: Ditto.
16040         * doc/install.texi: Ditto.
16041         * doc/invoke.texi: Ditto.
16042
16043 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16044
16045         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16046         modes larger than TImode as TImode if NEON is not enabled.
16047
16048 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16049
16050         PR target/69100
16051         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16052         mode for %f0-%f31 only if TARGET_FPU.
16053
16054 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16055
16056         PR target/69072
16057         * config/sparc/sparc.c (scan_record_type): Take into account subfields
16058         to compute the PACKED_P predicate.
16059         (function_arg_record_value): Minor tweaks.
16060
16061 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16062
16063         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16064         option for arm*-*-* targets.
16065
16066 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16067
16068         * doc/extend.texi (Common Function Attributes): Move docs for
16069         MSP430-specific attributes to....
16070         (MSP430 Function Attributes): ...here.  Delete the redundant
16071         entries and copy-edit the remaining text.
16072         (MSP430 Variable Attributes): Use uniform format for index
16073         entries and add a cross-reference to the corresponding function
16074         attribute docs.
16075
16076 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16077
16078         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16079         -finite-math typo.
16080         (x86 Options): Likewise.
16081
16082 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16083
16084         PR 1078
16085
16086         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16087         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16088         to corresponding attribute.
16089
16090 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16091
16092         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16093         to correct alphabetization of table.  Copy-edit and correct
16094         markup.
16095         <stack_protect>: Likewise.
16096         <target_clones>: Likewise.
16097         <simd>: Likewise.
16098         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16099         Correct punctuation.
16100         (Code Gen Options) <-fno-plt>: Copy-edit.
16101
16102 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16103
16104         PR target/68917
16105         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16106         SI values.  Explicitly convert SI to DI and vice-versa.
16107
16108 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16109
16110         PR tree-optimization/69070
16111         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16112         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16113
16114         PR sanitizer/69055
16115         * ubsan.c (ubsan_instrument_float_cast): Call
16116         initialize_sanitizer_builtins.
16117
16118         PR target/69015
16119         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16120 \f
16121 Copyright (C) 2016 Free Software Foundation, Inc.
16122
16123 Copying and distribution of this file, with or without modification,
16124 are permitted in any medium without royalty provided the copyright
16125 notice and this notice are preserved.