make side_effects a vec<rtx>
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2
3         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
4         (adjust_mems): Adjust.
5         (adjust_insn): Likewise.
6         (prepare_call_arguments): Likewise.
7
8 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9
10         * gcse.c (struct ls_expr): Make stores field a vector.
11         (ldst_entry): Adjust.
12         (free_ldst_entry): Likewise.
13         (print_ldst_list): Likewise.
14         (compute_ld_motion_mems): Likewise.
15         (update_ld_motion_stores): Likewise.
16
17 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18
19         * gcse.c (struct ls_expr): Remove loads field.
20         (ldst_entry): Adjust.
21         (free_ldst_entry): Likewise.
22         (print_ldst_list): Likewise.
23         (compute_ld_motion_mems): Likewise.
24
25 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26
27         * store-motion.c (struct st_expr): Make antic_stores a vector.
28         (st_expr_entry): Adjust.
29         (free_st_expr_entry): Likewise.
30         (print_store_motion_mems): Likewise.
31         (find_moveable_store): Likewise.
32         (compute_store_table): Likewise.
33         (remove_reachable_equiv_notes): Likewise.
34         (replace_store_insn): Likewise.
35         (build_store_vectors): Likewise.
36
37 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38
39         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
40         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
41
42 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
43
44         PR tree-optimization/71518
45         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
46         misalign also for outer loops with negative step.
47
48 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
49
50         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
51         (cortex_a53_shift): Add mov_shift.
52         (cortex_a53_shift_reg): Add new reservation for register shifts.
53         (cortex_a53_alu): Remove bfm.
54         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
55         (cortex_a53_alu_extr): Add new reservation for EXTR.
56         (bypasses): Improve bypass modelling.
57
58 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
59
60         PR target/50739 
61         * config/avr/avr.c (avr_asm_select_section): Strip off
62         SECTION_DECLARED from flags when calling get_section.
63
64 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
65
66         * tree-vectorizer.h (vect_memory_access_type): Add
67         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
68         * tree-vect-stmts.c (compare_step_with_zero): New function.
69         (perm_mask_for_reverse): Move further up file.
70         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
71         step is negative.
72         (get_negative_load_store_type): New function.
73         (get_load_store_type): Call it.  Add an ncopies argument.
74         (vectorizable_mask_load_store): Update call accordingly and
75         remove tests for negative steps.
76         (vectorizable_store, vectorizable_load): Likewise.  Handle new
77         memory_access_types.
78
79 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
80
81         * tree-vectorizer.h (vect_memory_access_type): New enum.
82         (_stmt_vec_info): Add a memory_access_type field.
83         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
84         (vect_model_store_cost): Take an access type instead of a boolean.
85         (vect_model_load_cost): Likewise.
86         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
87         vect_model_store_cost and vect_model_load_cost.
88         * tree-vect-stmts.c (vec_load_store_type): New enum.
89         (vect_model_store_cost): Take an access type instead of a
90         store_lanes_p boolean.  Simplify tests.
91         (vect_model_load_cost): Likewise, but for load_lanes_p.
92         (get_group_load_store_type, get_load_store_type): New functions.
93         (vectorizable_store): Use get_load_store_type.  Record the access
94         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
95         (vectorizable_load): Likewise.
96         (vectorizable_mask_load_store): Likewise.  Replace is_store
97         variable with vls_type.
98
99 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
100
101         * tree-vectorizer.h (vect_grouped_load_supported): Add a
102         single_element_p parameter.
103         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
104         Check the PR65518 case here rather than in vectorizable_load.
105         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
106         * tree-vect-stmts.c (vectorizable_load): Likewise.
107
108 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
109
110         * tree-vectorizer.h (gather_scatter_info): New structure.
111         (vect_check_gather_scatter): Return a bool rather than a decl.
112         Replace return-by-pointer arguments with a single
113         gather_scatter_info *.
114         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
115         (vect_analyze_data_refs): Update call accordingly.
116         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
117         (vectorizable_mask_load_store): Likewise.  Also record the
118         offset dt and vectype in the gather_scatter_info.
119         (vectorizable_store): Likewise.
120         (vectorizable_load): Likewise.
121
122 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
123
124         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
125         strided groups, use the cost of N scalar accesses instead
126         of ncopies vector accesses.
127         (vect_model_load_cost): Likewise.
128
129 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
130
131         * tree-vect-stmts.c (vect_cost_group_size): Delete.
132         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
133         variable to indicate when once-per-group costs are being used.
134         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
135
136 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
137
138         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
139         peeling-for-gaps condition.
140
141 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
142
143         * config/s390/s390.c (s390_expand_vec_init): Force initializer
144         element to register if it doesn't match general_operand.
145
146 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
147             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
148
149         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
150         prototype.
151         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
152         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
153         (SIGNBIT): New mode iterator.
154         (Fsignbit): New mode attribute.
155         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
156         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
157         when direct moves are available.
158         (signbit<mode>2_dm): New define_insn_and_split).
159         (signbit<mode>2_dm2): New define_insn.
160
161 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
162
163         PR rtl-optimization/71594
164         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
165         into subregs of appropriate mode before trying to emit a conditional
166         move.
167
168 2016-07-05  Jan Hubicka  <jh@suse.cz>
169
170         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
171         (simple_iv): Use it.
172
173 2016-07-05  Jan Hubicka  <jh@suse.cz>
174
175         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
176
177 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
178
179         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
180         "offmemok".
181
182 2016-07-05  Jan Hubicka  <jh@suse.cz>
183
184         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
185         IV can overflow.
186
187 2016-07-05  Richard Biener  <rguenther@suse.de>
188
189         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
190         Handle empty else block.
191         (is_feasible_trace): Likewise.
192         (split_paths): Likewise.
193
194 2016-07-05  Richard Biener  <rguenther@suse.de>
195
196         * tree-loop-distribution.c (distribute_loop): Fix issue with
197         the cost model loop.
198
199 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
200
201         * config/arm/neon-testgen.ml: Delete.
202         * config/arm/neon.ml: Delete.
203
204 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
205
206         PR c++/71739
207         * tree.c (attribute_value_equal): Use get_attribute_name instead of
208         directly using TREE_PURPOSE.
209
210 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
211
212         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
213         * config/aarch64/aarch64_neon.h: Likewise.
214         * config/aarch64/arm_neon.h: Likewise.
215         * config/aarch64/atomics.md: Likewise.
216         * config/aarch64/aarch64-simd-builtins.def: Likewise.
217         * doc/invoke.texi: Likewise.
218
219 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
220
221         * config/s390/s390.md: Add "z13" cpu_facility.
222         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
223         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
224         condition" type instructions.
225
226 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
227             Jeff Law  <law@redhat.com>
228
229         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
230         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
231
232 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
233
234         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
235         permutation for TARGET_AVX512F.
236         (ix86_expand_vec_one_operand_perm_avx512): New function.
237         (expand_vec_perm_1): Invoke introduced function.
238         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
239         it may be not valid after vectorization.
240
241 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
242
243         PR target/63874
244         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
245         typo in comment.  Only force to memory if it is a weak
246         external reference.
247
248 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
249             Jiong Wang  <jiong.wang@arm.com>
250
251         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
252         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
253         (AARCH64_FL_F16): New.
254         (AARCH64_FL_FOR_ARCH8_2): New.
255         (AARCH64_ISA_8_2): New.
256         (AARCH64_ISA_F16): New.
257         (TARGET_FP_F16INST): New.
258         (TARGET_SIMD_F16INST): New.
259         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
260         ("fp"): Disabling "fp" also disables "fp16".
261         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins): Conditionally define
262         __ARM_FEATURE_FP16_SCALAR_ARITHMETIC and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
263         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
264
265 2016-07-04  Jan Beulich  <jbeulich@suse.com>
266
267         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
268
269 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
270
271         PR target/71720
272         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
273         the insns, use an insn form that does not adjust the offset on
274         little endian systems.
275
276 2016-07-01  Jan Beulich  <jbeulich@suse.com>
277
278         * varasm.c (get_variable_section): Validate initializer in
279         named .bss-like sections.
280
281 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
282
283         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
284         Exchange the order of the second and third operands in the vpermr
285         instruction tmeplate.
286
287 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
288
289         PR target/71698
290         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move): Disallow
291         TDmode values.
292
293 2016-07-01  Alan Modra  <amodra@gmail.com>
294
295         PR rtl-optimization/71709
296         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
297         being set, not referenced.
298
299 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
300
301         PR tree-optimization/70729
302         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
303         of loop since it can be not valid after transformation.
304
305 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
306
307         * config/arm/arm.c (thumb_reload_in_hi): Delete.
308         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
309
310 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
311
312         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
313         for NULL decl.
314
315 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
316
317         PR target/71677
318         * config/rs6000/constraints.md (wY constraint): New constraint to
319         match the requirements for the LXSD and STXSD instructions.
320         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
321         predicate to match the requirements for the LXSD and STXSD
322         instructions.
323         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
324         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
325         to make sure that the bottom 2 bits of offset are 0, the address
326         form is offsettable, and no updating is done in the address mode.
327         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
328         (movdi_internal32): Likewise
329         (movdi_internal64): Likewise.
330
331 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
332
333         PR tree-optimization/71707
334         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
335         strinfo even for ADDR_EXPR ptr.
336
337 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
338
339         * config/rs6000/altivec.md (darn_32): Change the condition to
340         TARGET_P9_MISC instead of TARGET_MODULO.
341         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
342         condition expression.
343         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
344         condition expression.
345         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
346         (DFP_TEST): New code iterator.
347         (dfptstsfi_<code>_mode>): New define_expand.
348         (*dfp_sgnfcnc_<mode>): New define_insn.
349         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
350         definition next to BU_P9_MISC_1 definition and change the MASK
351         value to RS6000_BTM_P9_MISC.
352         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
353         (BU_P9_64BIT_MISC_0): Likewise.
354         (BU_P9_DFP_MISC_0): New macro definition.
355         (BU_P9_DFP_MISC_1): New macro definition.
356         (BU_P9_DFP_MISC_2): New macro definition.
357         (BU_P9_DFP_OVERLOAD_1): New macro definition.
358         (BU_P9_DFP_OVERLOAD_2): New macro definition.
359         (BU_P9_DFP_OVERLOAD_3): New macro definition.
360         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
361         (TSTSFI_LT_TD): Likewise.
362         (TSTSFI_EQ_DD): Likewise.
363         (TSTSFI_EQ_TD): Likewise.
364         (TSTSFI_GT_DD): Likewise.
365         (TSTSFI_GT_TD): Likewise.
366         (TSTSFI_OV_DD): Likewise.
367         (TSTSFI_OV_TD): Likewise.
368         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
369         (TSTSFI_LT_DD): Likewise.
370         (TSTSFI_LT_TD): Likewise.
371         (TSTSFI_EQ): Likewise.
372         (TSTSFI_EQ_DD): Likewise.
373         (TSTSFI_EQ_TD): Likewise.
374         (TSTSFI_GT): Likewise.
375         (TSTSFI_GT_DD): Likewise.
376         (TSTSFI_GT_TD): Likewise.
377         (TSTSFI_OV): Likewise.
378         (TSTSFI_OV_DD): Likewise.
379         (TSTSFI_OV_TD): Likewise.
380         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
381         overloaded test significance functions.
382         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
383         OPTION_MASK_P9_MISC into the representation of this mask.
384         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
385         of this mask.
386         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
387         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
388         non-zero.
389         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
390         argument is a 6-bit unsigned literal value if the icode argument
391         represents a DFP test significance built-in call.
392         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
393         flag used independently and in combination with the
394         RS6000_BTM_64BIT flag.
395         (rs6000_opt_masks): Add entry for power9-misc command-line option.
396         (rs6000_builtin_mask_names): Add entry for power9-misc
397         command-line option.
398         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
399         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
400         RS6000_BTM_P9_MISC macros.
401         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
402         option and change the description of the -mpower9-vector option to
403         enable only vector instructions, removing its erroneously claimed
404         support for scalar instructions.
405         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
406         the ISA 3.0 digital floating point test significance built-in
407         functions.
408
409 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
410
411         * config/aarch64/aarch64.c (cortexa35_tunings):
412         Enable AES fusion.  Use cortexa57_branch_cost.
413         (cortexa53_tunings): Use cortexa57_branch_cost.
414         (cortexa72_tunings): Use cortexa57_branch_cost.
415         Use AUTOPREFETCHER_WEAK.
416         (cortexa73_tunings): Use cortexa57_branch_cost.
417
418 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
419             James Greenhalgh  <james.greenhalgh@arm.com>
420
421         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
422         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
423         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
424         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
425         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
426         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
427         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
428         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
429         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
430         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
431         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
432         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
433         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
434         New intrinsics.
435
436 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
437             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
438
439         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
440         New define_insn.
441         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
442
443 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
444
445         PR driver/71651
446         * gcc.c (driver::build_option_suggestions): Pass "option" to
447         add_misspelling_candidates.
448         * opts-common.c (add_misspelling_candidates): Add "option" param;
449         use it to avoid adding negated forms for options marked with
450         RejectNegative.
451         * opts.h (add_misspelling_candidates): Add "option" param.
452
453 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
454
455         PR middle-end/71693
456         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
457         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
458         first when permuting bitwise operation with rotate.  Cast
459         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
460
461 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
462
463         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
464         for misspelled param names.
465         * params.c: Include spellcheck.h.
466         (find_param_fuzzy): New function.
467         * params.h (find_param_fuzzy): New prototype.
468         * spellcheck.c (struct edit_distance_traits<const char *>): Move
469         to...
470         * spellcheck.h (struct edit_distance_traits<const char *>):
471         ...here.
472
473 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
474
475         * config/rs6000/predicates.md (const_0_to_7_operand): New
476         predicate, recognize 0..7.
477         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
478         support for doing extracts from V16QImode, V8HImode, V4SImode
479         under ISA 3.0.
480         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
481         vector extract support.
482         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
483         for ISA 3.0 vector extract.
484         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
485         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
486         extracts of a constant element number from small integer vectors
487         on 64-bit ISA 3.0 systems.
488         (vsx_extract_<mode>_di): Likewise.
489         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
490         say when we can do ISA 3.0 vector extracts.
491         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
492         registers, using the stxsiwx instruction.
493
494 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
495
496         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
497         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
498         qdf24xx_regmove_cost, qdf24xx_tunings): New.
499         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
500         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
501         * config/arm/arm.c (arm_qdf24xx_tune): New.
502
503 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
504
505         * config/aarch64/aarch64.c (cortexa53_tunings):
506         Increase loop alignment to 8.  Set function alignment to 16.
507         (cortexa35_tunings): Likewise.
508         (cortexa57_tunings): Increase loop alignment to 8.
509         (cortexa72_tunings): Likewise.
510         (cortexa73_tunings): Likewise.
511
512 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
513
514         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
515         for arm_fp16_ok and arm_fp16_hw.
516         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
517         arm_fp16_alternative.
518
519 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
520
521         PR tree-optimization/71655
522         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
523         types when swapping operands.
524
525 2016-06-29  Martin Liska  <mliska@suse.cz>
526
527         PR middle-end/71585
528         * common.opt (flag_stack_protect): Mark the flag as optimization
529         flag.
530         * ipa-inline-transform.c (inline_call): Remove unnecessary call
531         of build_optimization_node.
532
533 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
534
535         PR tree-optimization/70729
536         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
537         independent in loops having positive safelen value.
538         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
539         it may be not valid after vectorization.
540
541 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
542
543         PR tree-optimization/71625
544         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
545         is sorted by ascending list->offset.  If PTR is non-NULL and there is
546         previous strinfo, call get_stridx_plus_constant.
547         (get_stridx): Pass exp as second argument to get_addr_stridx.
548         (addr_stridxptr): Add missing list = list->next, so that there can be
549         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
550         the list is sorted by ascending list->offset.
551         (get_stridx_plus_constant): Adjust so that it can be also called with
552         ADDR_EXPR instead of SSA_NAME as PTR.
553         (handle_char_store): Pass NULL_TREE as second argument to
554         get_addr_stridx.
555
556 2016-06-29  Richard Biener  <rguenther@suse.de>
557
558         PR rtl-optimization/68961
559         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
560
561 2016-06-29  Richard Biener  <rguenther@suse.de>
562
563         PR middle-end/71002
564         * alias.c (component_uses_parent_alias_set_from): Handle
565         type punning through union accesses by using the union alias set.
566         * gimple.c (gimple_get_alias_set): Remove union type punning case.
567
568 2016-07-29  Richard Biener  <rguenther@suse.de>
569
570         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
571         precision not matching mode precision.
572
573 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
574
575         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
576         pa_output_arg_descriptor.
577         (call_val_symref_64bit_post_reload): Likewise.
578         (call_val_powf_64bit_post_reload): Likewise.
579         (sibcall_internal_symref_64bit): Likewise.
580         (sibcall_value_internal_symref_64bit): Likewise.
581
582 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
583
584         PR middle-end/71626
585         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
586         a constant, force its SUBREG_REG into memory or register instead
587         of whole op1.
588
589 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
590
591         PR target/58655
592         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
593         * doc/invoke.texi (AVR Options): Document it.
594
595 2016-06-28  Walter Lee  <walt@tilera.com>
596
597         * config/tilegx/linux.h: Do not include arch/icache.h
598         (CLEAR_INSN_CACHE): Provide inlined definition directly.
599         * config/tilepro/linux.h: Do not include arch/icache.h
600         (CLEAR_INSN_CACHE): Provide inlined definition directly.
601
602 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
603
604         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
605         for big-endian BIT_FIELD_REF.
606
607 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
608
609         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
610         ('size' attribute): Add '128'.
611         Include power9.md.
612         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
613         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
614         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
615         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
616         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
617         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
618         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
619         *trunc<mode>df2_odd): Set size attribute to '128'.
620         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
621         * config/rs6000/power6.md (power6-fp): Include dfp type.
622         * config/rs6000/power7.md (power7-fp): Likewise.
623         * config/rs6000/power8.md (power8-fp): Likewise.
624         * config/rs6000/power9.md: New file.
625         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
626         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
627         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
628         htmsimple.
629         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
630         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
631         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
632         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
633         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
634         dfp_dscri_<mode>): Change type attribute to dfp.
635         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
636         attribute to vecsimple.
637         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
638         and prefetch streams.
639         (rs6000_option_override_internal): Remove temporary code setting
640         tuning to power8.  Don't set rs6000_sched_groups for power9.
641         (last_scheduled_insn): Change to rtx_insn *.
642         (divide_cnt, vec_load_pendulum): New variables.
643         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
644         (rs6000_issue_rate): Set issue rate for Power9.
645         (is_power9_pairable_vec_type): New.
646         (power9_sched_reorder2): New.
647         (rs6000_sched_reorder2): Call new function for Power9 specific
648         reordering.
649         (insn_must_be_first_in_group): Remove Power9.
650         (insn_must_be_last_in_group): Likewise.
651         (force_new_group): Likewise.
652         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
653         Initialize divide_cnt/vec_load_pendulum.
654         (_rs6000_sched_context, rs6000_init_sched_context,
655         rs6000_set_sched_context): Handle context save/restore of new
656         variables.
657
658 2016-06-28  Richard Biener  <rguenther@suse.de>
659
660         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
661         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
662         COMPONENT_REF operand.
663         (nonoverlapping_component_refs_p): Likewise.
664         * stor-layout.c (start_bitfield_representative): Mark
665         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
666
667 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
668
669         * Makefile.in: Don't cat ../stage_current if it does not exist.
670
671         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
672         last argument is a bit-field.
673
674         PR rtl-optimization/71673
675         * internal-fn.c (expand_arith_overflow_result_store): Use
676         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
677         expand_simple_binop.
678
679         PR middle-end/66867
680         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
681         expand_ifn_atomic_compare_exchange): New functions.
682         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
683         * tree.h (build_call_expr_internal_loc): Rename to ...
684         (build_call_expr_internal_loc_array): ... this.  Fix up type of
685         last argument.
686         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
687         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
688         ATOMIC_COMPARE_EXCHANGE result.
689         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
690         * gimple-fold.h (optimize_atomic_compare_exchange_p,
691         fold_builtin_atomic_compare_exchange): New prototypes.
692         * gimple-fold.c (optimize_atomic_compare_exchange_p,
693         fold_builtin_atomic_compare_exchange): New functions..
694         * tree-ssa.c (execute_update_addresses_taken): If
695         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
696         of call when finding addressable vars, and if such var becomes
697         non-addressable, call fold_builtin_atomic_compare_exchange.
698
699 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
700
701         PR target/71670
702         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
703         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
704
705 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
706
707         * config/rs6000/rs6000.md ('type' attribute): Add
708         veclogical,veccmpfx,vecexts,vecmove insn types.
709         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
710         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
711         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
712         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
713         *nabs<mode>2_hw): Change type to vecmove.
714         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
715         *boolcc<mode>3_internal, *eqv<mode>3_internal,
716         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
717         *ieee_128bit_vsx_abs<mode>2_internal,
718         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
719         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
720         *ieee128_mtvsrd_32bit): Change type to veclogical.
721         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
722         *movdi_internal32, *movdi_internal64): Update insn types.
723         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
724         vsx_extract_<mode>): Change type to veclogical.
725         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
726         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
727         *vsx_sign_extend_si_v2di): Change type to vecexts.
728         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
729         type to veclogical.
730         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
731         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
732         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
733         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
734         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
735         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
736         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
737         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
738         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
739         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
740         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
741         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
742         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
743         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
744         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
745         (ppc7450-vecsimple): Add veclogical, vecmove.
746         (ppc7450-veccmp): Add veccmpfx.
747         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
748         vecmove.
749         (ppc8540_vector_compare): Add veccmpfx.
750         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
751         * config/rs6000/cell.md (cell-fp): Add fpsimple.
752         (cell-vecsimple): Add veclogical, vecmove.
753         (cell-veccmp): Add veccmpfx.
754         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
755         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
756         veccmpfx.
757         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
758         * config/rs6000/power4.md (power4-fp): Add fpsimple.
759         (power4-vecsimple): Add veclogical, vecmove.
760         (power4-veccmp): Add veccmpfx.
761         * config/rs6000/power5.md (power5-fp): Add fpsimple.
762         * config/rs6000/power6.md (power6-fp): Add fpsimple.
763         (power6-vecsimple): Add veclogical, vecmove.
764         (power6-veccmp): Add veccmpfx.
765         * config/rs6000/power7.md (power7-fp): Add fpsimple.
766         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
767         * config/rs6000/power8.md (power8-fp): Add fpsimple.
768         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
769         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
770         * config/rs6000/titan.md (titan_fp): Add fpsimple.
771         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
772         fpsimple.
773         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
774
775 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
776
777         PR target/71656
778         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
779         OPTION_MASK_P9_DFORM_VECTOR.
780         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
781         disable -mpower9-dform-vector when using reload.
782         (quad_address_p): Remove 'gpr_p' argument and all associated code.
783         New 'strict' argument.  Update all callers.  Add strict addressing
784         support.
785         (rs6000_legitimate_offset_address_p): Remove call to
786         virtual_stack_registers_memory_p.
787         (rs6000_legitimize_reload_address): Add quad address support.
788         (rs6000_legitimate_address_p): Move call to quad_address_p above
789         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
790         to account for new strict usage.
791         (rs6000_output_move_128bit): Adjust quad_address_p args to account
792         for new strict usage.
793         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
794
795 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
796
797         PR target/70902
798         PR target/71453
799         PR target/71555
800         PR target/71596
801         PR target/71657
802         * config/i386/i386.c (ix86_spill_class): Disable condition to
803         always return NO_REGS.
804
805 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
806
807         * predict.c: Include gimple-pretty-print.h
808         (predicted_by_loop_heuristics_p): Check also
809         PRED_LOOP_EXIT_WITH_RECURSION
810         (predict_loops): Find self recursive calls and use special purpose
811         predictors for them; dump log about decisions.
812         (pass_profile::execute): Dump info about #of iterations.
813         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
814         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
815
816 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
817
818         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
819         output_asm_insn calls and shorten long lines.  Output .CALL
820         argument descriptor using pa_output_arg_descriptor.  Add various
821         inline $$dyncall and other optimizations.
822         (pa_attr_length_indirect_call): Adjust ordering and lengths.
823
824 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
825
826         PR tree-optimization/71643
827         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
828         EH preds.
829
830         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
831         leak a bitmap if dep_bb is NULL.
832
833         PR tree-optimization/71631
834         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
835         to rewrite_expr_tree even if negate_result, move new_lhs var
836         declaration and initialization earlier, for powi_result set afterwards
837         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
838         if new_lhs != lhs, and don't shadow gsi var.
839
840 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
841
842         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
843         Add in_loop parameter.
844         (predict_loops): Add loop guard heuristics.
845         * predict.def (PRED_LOOP_GUARD): New heuristics.
846
847 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
848
849         * predict.c: Include ipa-utils.h
850         (tree_bb_level_prediction): Predict recursive calls.
851         (tree_estimate_probability_bb): Skip inexpensive calls for call
852         predictor.
853         * predict.def (PRED_RECURSIVE_CALL): New.
854
855 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
856
857         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
858         (BU_FLOAT128_1): Likewise.
859         (FABSQ): Likewise.
860         (COPYSIGNQ): Likewise.
861         (RS6000_BUILTIN_NANQ): Likewise.
862         (RS6000_BUILTIN_NANSQ): Likewise.
863         (RS6000_BUILTIN_INFQ): Likewise.
864         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
865         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
866         (TARGET_FOLD_BUILTIN): New #define.
867         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
868         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
869         (rs6000_fold_builtin): New target hook implementation, handling
870         folding of 128-bit NaNs and infinities.
871         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
872         entries are filled in to avoid problems during bootstrap
873         self-test; define builtins for 128-bit NaNs and infinities.
874         (rs6000_opt_mask): Add entry for float128.
875         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
876         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
877         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
878         (const_str_type_node): New #define.
879         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
880         to a define_expand that dispatches to either copysign<mode>3_soft
881         or copysign<mode>3_hard.
882         (copysign<mode>3_hard): Rename from copysign<mode>3.
883         (copysign<mode>3_soft): New define_insn.
884         * doc/extend.texi: Document new builtins.
885
886 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
887
888         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
889         PRIu64 instead of lu.
890
891 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
892
893         PR debug/71642
894         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
895         copy the type name.
896
897 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
898
899         PR tree-optimization/71647
900         * omp-low.c (lower_rec_input_clauses): Convert
901         omp_clause_aligned_alignment (c) to size_type_node for the
902         last argument of __builtin_assume_aligned.
903
904 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
905
906         * configure.ac (calling ___tls_get_addr via GOT): New
907         assembler/linker check.
908         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
909         assembler and linker supports calling ___tls_get_addr via GOT.
910         Otherise, defined to 0.
911         * config.in: Regenerated.
912         * configure: Likewise.
913         * config/i386/constraints.md (Yb): New constraint.
914         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
915         (REG_CLASS_NAMES): Likewise.
916         (REG_CLASS_CONTENTS): Likewise.
917         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
918         the b constraint with the Yb constraint.  Call ___tls_get_addr
919         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
920         is 1.
921         (*tls_local_dynamic_base_32_gnu): Likewise.
922         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
923         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
924         (*tls_local_dynamic_base_64_<mode>): Likewise.
925
926 2016-06-24  Martin Liska  <mliska@suse.cz>
927
928         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
929         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
930         few functions.
931         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
932         argument to true if the expected number of iterations is
933         loop-based.
934
935 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
936
937         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
938         assemble for 32bit target.
939         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
940         and $ld_ix86_gld_32_opt to link for 32bit target.
941         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
942         * configure: Regenerate.
943
944 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
945
946         * config/arm/arm.c (int_log2): Delete definition and prototype.
947         (shift_op): Use exact_log2 instead of int_log2.
948         (vfp3_const_double_for_fract_bits): Likewise.
949
950 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
951
952         * internal-fn.c (expand_arith_set_overflow): New function.
953         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
954         Use it.
955         (expand_arith_overflow_result_store): Likewise.  Handle precision
956         smaller than mode precision.
957         * tree-vrp.c (extract_range_basic): For imag part, handle
958         properly signed 1-bit precision result.
959         * doc/extend.texi (__builtin_add_overflow): Document that last
960         argument can't be pointer to enumerated or boolean type.
961         (__builtin_add_overflow_p): Document that last argument can't
962         have enumerated or boolean type.
963
964 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
965             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
966
967         * config/rs6000/predicates.md (splat_input_operand): Rework.
968         Don't allow constants, since the insns that use this predicate
969         don't support constants.  Constants are handled by other insns
970         that are created via combine.  During and after register
971         allocation, only allow indexed or indirect addresses, and not
972         general addresses.  Only allow modes supported by the hardware.
973         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
974         comment.  Move check for using VSPLTIS<x> to a common location,
975         instead of doing it in two different places.
976
977 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
978
979         * config/i386/driver-i386.c (host_detect_local_cpu): Set
980         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
981         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
982         signature_CENTAUR_ebx.
983
984 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
985
986         PR target/66232
987         PR target/67400
988         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
989         (as_ix86_gas_32_opt): This.
990         (ld_ix86_tls_ldm_opt): Renamed to ...
991         (ld_ix86_gld_32_opt): This.
992         (R_386_TLS_LDM reloc): Updated.
993         (R_386_GOT32X reloc): New assembler/linker check.
994         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
995         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
996         defined to 0.
997         * config.in: Regenerated.
998         * configure: Likewise.
999         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
1000         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
1001         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
1002         if ix86_force_load_from_GOT_p returns true.
1003         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
1004         ix86_force_load_from_GOT_p returns true.
1005         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
1006         the external function address via the GOT slot.
1007         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
1008         HAVE_AS_IX86_GOT32X before returning false.
1009         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
1010         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
1011
1012 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
1013
1014         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
1015
1016 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1017
1018         * Makefile.in: Regenerate.
1019         * doc/install.texi: Document autoprofiledbootstrap.
1020
1021 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1022
1023         * config/i386/gcc-auto-profile: New file.
1024
1025 2016-06-23  Martin Liska  <mliska@suse.cz>
1026
1027         PR middle-end/71619
1028         * predict.c (predict_loops): Revert the hunk that was removed
1029         in r237103.
1030
1031 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1032
1033         * config.gcc: Add support for arm*-*-phoenix* targets.
1034         * config/arm/t-phoenix: New.
1035         * config/phoenix.h: New.
1036
1037 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
1038             H.J. Lu  <hongjiu.lu@intel.com>
1039
1040         PR target/67400
1041         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
1042         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
1043         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
1044         ix86_force_load_from_GOT_p returns true.
1045         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
1046         ix86_force_load_from_GOT_p returns true.
1047         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
1048         ix86_force_load_from_GOT_p returns true.
1049         (ix86_expand_move): Load the external function address via the
1050         GOT slot if ix86_force_load_from_GOT_p returns true.
1051         * config/i386/predicates.md (x86_64_immediate_operand): Return
1052         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
1053         (x86_64_zext_immediate_operand): Ditto.
1054
1055 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
1056
1057         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
1058
1059 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1060
1061         PR c/70339
1062         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
1063         * diagnostic.c (pedwarn_at_rich_loc): New function.
1064         * spellcheck.h (best_match::best_match): Add a
1065         "best_distance_so_far" optional parameter.
1066         (best_match::set_best_so_far): New method.
1067         (best_match::get_best_distance): New accessor.
1068         (best_match::get_best_candidate_length): New accessor.
1069
1070 2016-06-22  Nick Clifton  <nickc@redhat.com>
1071
1072         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
1073         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
1074         modes are accepted as well.
1075         (ucompare_loc_descriptor): Likewise.
1076         (minmax_loc_descriptor): Likewise.
1077         (clz_loc_descriptor): Likewise.
1078         (popcount_loc_descriptor): Likewise.
1079         (bswap_loc_descriptor): Likewise.
1080         (rotate_loc_descriptor): Likewise.
1081         (mem_loc_descriptor): Likewise.
1082         (loc_descriptor): Likewise.
1083
1084 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1085
1086         * common.opt (fdiagnostics-parseable-fixits): New option.
1087         * diagnostic.c: Include "selftest.h".
1088         (print_escaped_string): New function.
1089         (print_parseable_fixits): New function.
1090         (diagnostic_report_diagnostic): Call print_parseable_fixits.
1091         (selftest::assert_print_escaped_string): New function.
1092         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
1093         (selftest::test_print_escaped_string): New function.
1094         (selftest::test_print_parseable_fixits_none): New function.
1095         (selftest::test_print_parseable_fixits_insert): New function.
1096         (selftest::test_print_parseable_fixits_remove): New function.
1097         (selftest::test_print_parseable_fixits_replace): New function.
1098         (selftest::diagnostic_c_tests): New function.
1099         * diagnostic.h (struct diagnostic_context): Add field
1100         "parseable_fixits_p".
1101         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
1102         -fdiagnostics-parseable-fixits.
1103         (-fdiagnostics-parseable-fixits): New option.
1104         * opts.c (common_handle_option): Handle
1105         -fdiagnostics-parseable-fixits.
1106         * selftest-run-tests.c (selftest::run_tests): Call
1107         selftest::diagnostic_c_tests.
1108         * selftest.h (selftest::diagnostic_c_tests): New prototype.
1109
1110 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
1111
1112         PR tree-optimization/71488
1113         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
1114         comparison of boolean vectors.
1115         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
1116         of boolean vectors using bitwise operations.
1117
1118 2016-06-22  Andreas Schwab  <schwab@suse.de>
1119
1120         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
1121         Remove declaration.
1122
1123 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1124
1125         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
1126
1127 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1128
1129         * config/i386/i386.c (print_reg): Emit an error message on attempt to
1130         print FLAGS_REG.
1131
1132 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1133
1134         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
1135         * config/arm/arm-cores.def (cortex-a73): New entry.
1136         (cortex-a73.cortex-a35): Likewise.
1137         (cortex-a73.cortex-a53): Likewise.
1138         * config/arm/arm-tables.opt: Regenerate.
1139         * config/arm/arm-tune.md: Likewise.
1140         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
1141         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1142         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
1143         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1144         * doc/invoke.texi (ARM Options): Document cortex-a73,
1145         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
1146
1147 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1148
1149         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
1150         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
1151         (cortex-a73.cortex-a35): Likewise.
1152         (cortex-a73.cortex-a53): Likewise.
1153         * config/aarch64/aarch64-tune.md: Regenerate.
1154         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
1155         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
1156         -mcpu and -mtune.
1157
1158 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1159
1160         * configure.ac (gcc_cv_as_compress_debug): Remove
1161         --compress-debug-sections as extra as switch.
1162         Handle gas --compress-debug-sections=type.
1163         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
1164         Handle gld --compress-debug-sections=type.
1165         * configure: Regenerate.
1166
1167 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1168
1169         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
1170
1171 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1172
1173         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
1174         (do_rewrite): likewise.
1175
1176 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1177
1178         * common/config/mep/mep-common.c: Remove.
1179         * config.gcc: Remove mep-* support.
1180         * config/mep/constraints.md: Remove.
1181         * config/mep/default.h: Remove.
1182         * config/mep/intrinsics.h: Remove.
1183         * config/mep/intrinsics.md: Remove.
1184         * config/mep/ivc2-template.h: Remove.
1185         * config/mep/mep-c5.cpu: Remove.
1186         * config/mep/mep-core.cpu: Remove.
1187         * config/mep/mep-default.cpu: Remove.
1188         * config/mep/mep-ext-cop.cpu: Remove.
1189         * config/mep/mep-intrin.h: Remove.
1190         * config/mep/mep-ivc2.cpu: Remove.
1191         * config/mep/mep-pragma.c: Remove.
1192         * config/mep/mep-protos.h: Remove.
1193         * config/mep/mep.c: Remove.
1194         * config/mep/mep.cpu: Remove.
1195         * config/mep/mep.h: Remove.
1196         * config/mep/mep.md: Remove.
1197         * config/mep/mep.opt: Remove.
1198         * config/mep/predicates.md: Remove.
1199         * config/mep/t-mep: Remove.
1200         * doc/install.texi: Remove mep-* documentation.
1201         * doc/md.texi: Likewise.
1202
1203 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1204
1205         * config.gcc: Remove support for avr-rtems.
1206         * config/avr/gen-avr-mmcu-specs.c: Likewise.
1207         * config/avr/rtems.h: Remove.
1208         * config/avr/t-rtems: Remove.
1209
1210 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1211
1212         * config.gcc: Remove m32r-rtems support.
1213         * config/m32r/rtems.h: Remove.
1214
1215 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1216
1217         * config.gcc: Remove h8300-rtems support.
1218         * config/h8300/rtems.h: Remove.
1219         * config/h8300/t-rtems: Remove.
1220
1221 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1222
1223         * config.gcc: Remove support for knetbsd.
1224         * configure.ac: Likewise.
1225         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
1226         * config/knetbsd-gnu.h: Remove.
1227         * configure: Regenerate.
1228
1229 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1230
1231         * config.gcc: Remove support for openbsd 2 and 3.
1232         * config/openbsd-oldgas.h: Remove.
1233
1234 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1235
1236         * config.gcc: Remove interix support.
1237         * config/i386/i386-interix.h: Remove.
1238         * config/i386/interix.opt: Remove.
1239         * config/i386/t-interix: Remove.
1240         * configure: Regenerate.
1241         * configure.ac: Remove interix support.
1242         * doc/install.texi: Remove interix documentation.
1243
1244 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1245
1246         * config/rs6000/rs6000.h: Add conditional preprocessing directives
1247         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
1248         not defined.
1249
1250 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1251
1252         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
1253         they are both PLACEHOLDER_EXPRs.
1254
1255 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1256
1257         * stor-layout.c (layout_type): Move setting complex MODE to
1258         layout_type, instead of setting it ahead of time by the caller.
1259         * tree.c (build_complex_type): Likewise.
1260
1261 2016-06-21  Martin Liska  <mliska@suse.cz>
1262
1263         * predict.c (force_edge_cold): Replace imposisble with
1264         impossible.
1265
1266 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1267
1268         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
1269         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
1270
1271 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1272
1273         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
1274
1275 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1276             Ilya Enkovich  <ilya.enkovich@intel.com>
1277
1278         PR target/71549
1279         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1280         New member function to convert V1TImode register to SUBREG
1281         TImode in debug insn.
1282         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
1283         after changing register mode to V1TImode.
1284
1285 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
1286
1287         * config/aarch64/aarch64-cores.def (vulcan): New core.
1288         * config/aarch64/aarch64-tune.md: Regenerate.
1289         * doc/invoke.texi: Document vulcan as an available option.
1290
1291 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1292
1293         * cse.c (canon_asm_operands): New function extracted from...
1294         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
1295         either standalone or member of a PARALLEL.
1296
1297 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1298
1299         PR target/30417
1300         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
1301         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
1302         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
1303
1304 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1305
1306         PR target/71103
1307         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
1308         constant addresses if can_create_pseudo_p.
1309
1310 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
1311
1312         PR tree-optimization/71588
1313         * tree-ssa-strlen.c (valid_builtin_call): New function.
1314         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
1315         it.
1316
1317 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1318
1319         PR middle-end/71581
1320         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
1321         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
1322         for conversion of scalar user var to complex type and use the
1323         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
1324         punt.
1325
1326         PR rtl-optimization/71591
1327         * toplev.c (toplev::run_self_tests): If no_backend, complain and
1328         don't run any tests.
1329
1330 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
1331
1332         PR target/71571
1333         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
1334         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
1335         space for PIC with non-v32 and the common non-PIC "jump".
1336
1337 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1338
1339         PR target/71559
1340         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
1341         returned values and add UN*/LTGT/*ORDERED cases with values matching
1342         D operand modifier on vcmp for AVX.
1343
1344 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1345
1346         * config/aarch64/aarch64.opt
1347         (mpc-relative-literal-loads): Rename internal option name.
1348         * config/aarch64/aarch64.c
1349         (aarch64_nopcrelative_literal_loads): Rename to
1350         aarch64_pcrelative_literal_loads.
1351         (aarch64_expand_mov_immediate): Likewise.
1352         (aarch64_secondary_reload): Likewise.
1353         (aarch64_can_use_per_function_literal_pools_p): Likewise.
1354         (aarch64_override_options_after_change_1): Rename and simplify logic.
1355         (aarch64_classify_symbol): Merge large model checks into switch,
1356         remove pc-relative load check.
1357
1358 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1359
1360         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
1361         costs relative to the cost of a register move.
1362
1363 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1364
1365         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
1366         (vcvt_n_f64_u64): Likewise.
1367         (vcvt_n_s64_f64): Likewise.
1368         (vcvt_n_u64_f64): Likewise.
1369         (vcvt_f64_s64): Likewise.
1370         (vrecpe_f64): Likewise.
1371         (vcvt_f64_u64): Likewise.
1372         (vrecps_f64): Likewise.
1373
1374 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1375
1376         * config/aarch64/aarch64.md
1377         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
1378         iterators.
1379         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
1380         attributes.
1381         * config/aarch64/aarch64-builtins.c
1382         (aarch64_types_binop_uss_qualifiers): Delete.
1383         (TYPES_BINOP_USS): Likewise.
1384         (aarch64_types_binop_sus_qualifiers): Likewise.
1385         (TYPES_BINOP_SUS): Likewise.
1386         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
1387         (TYPES_FCVTIMM_SUS): Likewise.
1388         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
1389         rather than BINOP.
1390         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
1391         (fcvtzs): Use SHIFTIMM rather than BINOP.
1392         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
1393
1394 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1395
1396         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
1397         costs relative to the cost of a register move.
1398
1399 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1400
1401         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
1402         Allow scalar/single vector modes to be tieable.
1403
1404 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1405
1406         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
1407
1408 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1409
1410         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
1411         "alignement".
1412         * tree.h (TYPE_ALIGN): Likewise.
1413
1414 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1415
1416         PR target/71103
1417         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
1418
1419 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1420
1421         * config/avr/avr.c (avr_print_operand): Fix "format not a string
1422         literal" build warnings.
1423         (avr_print_operand_address): Dito.
1424
1425 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
1426
1427         PR target/71375
1428         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
1429         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
1430
1431 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
1432
1433         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
1434
1435 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1436
1437         PR bootstrap/71435
1438         * reload1.c (reload): Pass 0 to finish_spills when called because
1439         update_eliminables_and_spill returns true and remove did_spill.
1440         (finish_spills): Adjust comment and document GLOBAL parameter.
1441
1442 2016-06-17  DJ Delorie  <dj@redhat.com>
1443
1444         PR target/71338
1445         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
1446         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
1447         (umulqihi3_virt): Likewise.
1448         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
1449         (umulqihi3_real): Likewise.
1450
1451 2016-06-17  Martin Liska  <mliska@suse.cz>
1452
1453         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
1454
1455 2016-06-17  Martin Liska  <mliska@suse.cz>
1456
1457         * predict.def: PRED_LOOP_EXIT from 92 to 85.
1458
1459 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
1460
1461         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
1462         __FAST_MATH__.
1463         (vaddq_f32): Likewise.
1464         (vmul_f32): Likewise.
1465         (vmulq_f32): Likewise.
1466         (vsub_f32): Likewise.
1467         (vsubq_f32): Likewise.
1468
1469 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1470
1471         PR tree-optimization/71347
1472         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
1473         cost for all uses in group.
1474
1475 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
1476
1477         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
1478         insert gimple seq if it's not empty.
1479
1480 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1481
1482         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
1483         member OFFSET.
1484         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
1485         rather than OFFSET.
1486         (comp_dr_with_seg_len_pair): Ditto.
1487         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
1488         struct dr_with_seg_len_pair against DR_OFFSET.
1489         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
1490         DR_OFFSET directly.
1491
1492 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1493
1494         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
1495
1496 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
1497
1498         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
1499         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
1500         (pa_output_millicode_call): Likewise.
1501         (pa_output_call): Likewise.
1502         (pa_output_indirect_call): Likewise.
1503         (pa_asm_output_mi_thunk): Likewise.
1504
1505 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1506
1507         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
1508
1509 2016-06-16  Martin Liska  <mliska@suse.cz>
1510
1511         * predict.c (combine_predictions_for_insn): When we find a first
1512         match predictor, we should consider just predictors with
1513         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
1514         DS theory predictor.
1515         (combine_predictions_for_bb): Likewise.
1516
1517 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
1518
1519         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
1520         with base of reference to struct.
1521
1522 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
1523
1524         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
1525
1526 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1527
1528         PR target/71151
1529         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
1530         progmem_swtable_section.
1531         (progmem_swtable_section): Remove.
1532         (avr_asm_function_rodata_section): Remove.
1533         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
1534         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
1535
1536 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
1537
1538         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1539         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
1540         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
1541         signature_CENTAUR_ebx.
1542         * config/i386/i386.c (ix86_option_override_internal): Add
1543         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
1544         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
1545         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
1546
1547 2016-06-16  Martin Liska  <mliska@suse.cz>
1548
1549         * predict.def: Add fortran loop preheader predictor.
1550         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
1551         fold IFN_BUILTIN_EXPECT with a known constant argument.
1552
1553 2016-06-16  Martin Liska  <mliska@suse.cz>
1554
1555         * predict.def: Add 'Fortran' to display text of all
1556         PRED_FORTRAN_* predictors.
1557
1558 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
1559
1560         PR target/71242
1561         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
1562         [IA64_BUILTIN_NANSQ]: Ditto.
1563         (ia64_fold_builtin): New function.
1564         (TARGET_FOLD_BUILTIN): New define.
1565         (ia64_init_builtins) Declare const_string_type node.
1566         Add __builtin_nanq and __builtin_nansq builtin functions.
1567         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
1568
1569 2016-06-16  Nick Clifton  <nickc@redhat.com>
1570
1571         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
1572         MSP430_HWMULT_ prefix to enum values.
1573         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
1574         * config/msp430/msp430.c: Update use of enum values.
1575         * config/msp430/msp430.md: Likewise.
1576         * config/msp430/msp430.opt: Likewise.
1577
1578 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
1579
1580         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
1581         of comparsions in the last iteration.
1582
1583 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1584             Joern Rennecke  <joern.rennecke@embecosm.com>
1585
1586         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
1587         addresses.
1588         (arc_needs_pcl_p): Add GOTOFFPC.
1589         (arc_legitimate_pic_addr_p): Likewise.
1590         (arc_output_pic_addr_const): Likewise.
1591         (arc_legitimize_pic_address): Generate a pc-relative address using
1592         GOTOFFPC.
1593         (arc_output_libcall): Use @pcl syntax.
1594         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
1595         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
1596         (*movsi_insn): Use @pcl syntax.
1597         (doloop_begin_i): Likewise.
1598
1599 2016-06-16  Martin Liska  <mliska@suse.cz>
1600
1601         * predict.def: Define a new predictor.
1602
1603 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1604
1605         * config/arc/arc.opt (mtp-regno): Update text.
1606
1607 2016-06-16  Renlin Li  <renlin.li@arm.com>
1608
1609         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
1610
1611 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
1612
1613         PR target/71554
1614         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
1615         (setcc + and peephole2): Likewise.
1616
1617         PR rtl-optimization/71532
1618         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
1619         memory slots.
1620
1621 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1622
1623         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
1624         DImode constants with XXSPLTIB in vector registers.
1625         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
1626         vsx_extract_<mode>_internal{1,2} into a single insn that handles
1627         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
1628         extraction of the element at the top of the register as a scalar
1629         value.
1630         (vsx_extract_<mode>_internal1): Likewise.
1631         (vsx_extract_<mode>_internal2): Likewise.
1632         * config/rs6000/constraints.md (wi constraint): Remove a comment
1633         about DImode not being allowed in Altivec registers.
1634         (wB constraint): New constraint for constants that can be
1635         generated in Altivec registers with VSPLTISW/VUPKHSW.
1636         * config/rs6000/predicates.md (xxspltib_constant_split): Update
1637         comments.
1638         (xxspltib_constant_nosplit): Likewise.
1639         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
1640         support for -mupper-regs-di to enable DImode to go into Altivec
1641         registers.
1642         (POWERPC_MASKS): Likewise.
1643         (power7 cpu): Likewise.
1644         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
1645         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
1646         for DImode being allowed in Altivec registers.  Update wi/wj
1647         constraints.  Set scalar_in_vmx_p flag.
1648         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
1649         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
1650         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
1651         (rs6000_opt_masks): Add -mupper-regs-di.
1652         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
1653         direct move to use wi and not wj.
1654         (lfiwzx): Likewise.
1655         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
1656         alternative.
1657         (floatunssi<mode>2_lfiwzx_mem): Likewise.
1658         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
1659         any VSX register, instead of just Altivec registers, to allow
1660         either operand to be an Altivec register or both.
1661         (fixuns_trunc<mode>di2_fctiduz): Likewise.
1662         (movdi_internal32): Add support for -mupper-regs-di.  Add support
1663         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
1664         the alternatives and attributes to be lined up to be easier to
1665         read.
1666         (movdi_internal64): Likewise.
1667         (64-bit DImode splitters): Change predicates to only split loading
1668         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
1669         load constants in ISA 3.0 or ISA 2.07 respectively.
1670         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1671         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
1672         mention -mcpu=power9 sets these options.
1673         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
1674         wB constraint.
1675
1676 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1677
1678         PR target/67353
1679         * config/avr/avr.c (avr_set_current_function): Warn misspelled
1680         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
1681         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
1682         by default to warn misspelled interrupt/ signal handler.
1683         * doc/invoke.texi (AVR Options): Document it. Update description
1684         for -nodevicelib option.
1685
1686 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1687
1688         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
1689         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
1690         (aarch64_<sur>shll2_n<mode>): Likewise.
1691
1692 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
1693
1694         PR middle-end/71529
1695         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
1696         DECL_CONTEXT for copied arguments.
1697
1698 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
1699
1700         PR tree-optimization/71483
1701         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
1702         for slp
1703
1704 2016-06-15  Martin Liska  <mliska@suse.cz>
1705
1706         * predict.c (tree_predict_by_opcode): Call predict_edge_def
1707         instead of predict_edge w/o a probability.
1708
1709 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
1710
1711         PR tree-optimization/71439
1712         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
1713         live PHIs.
1714
1715 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1716
1717         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
1718         register subregs in SET_SRC.
1719
1720 2016-06-15  Richard Biener  <rguenther@suse.de>
1721
1722         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
1723         store restrictions.
1724
1725 2016-06-15  Richard Biener  <rguenther@suse.de>
1726
1727         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
1728         not consider dependences between accesses that belong to the
1729         same group.
1730         (vect_analyze_data_ref_dependences): Do not analyze read-read
1731         or self-dependences.
1732
1733 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1734
1735         * spellcheck-tree.c: Include spellcheck-tree.h rather than
1736         spellcheck.h.
1737         (find_closest_identifier): Reimplement in terms of
1738         best_match<tree,tree>.
1739         * spellcheck-tree.h: New file.
1740         * spellcheck.c (struct edit_distance_traits<const char *>): New
1741         struct.
1742         (find_closest_string): Reimplement in terms of
1743         best_match<const char *, const char *>.
1744         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
1745         overload to spellcheck-tree.h.
1746         (find_closest_identifier): Likewise.
1747         (struct edit_distance_traits<T>): New template.
1748         (class best_match): New class.
1749
1750 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1751
1752         * selftest-run-tests.c (selftest::run_tests): Call
1753         selftest::spellcheck_tree_c_tests.
1754         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
1755         * spellcheck-tree.c: Include selftest.h and stringpool.h.
1756         (selftest::test_find_closest_identifier): New function.
1757         (selftest::spellcheck_tree_c_tests): New function.
1758         * spellcheck.c (selftest::test_find_closest_string): Verify that
1759         the order of the vec does not affect the results for this case.
1760         (selftest::test_data): New array.
1761         (selftest::test_metric_conditions): New function.
1762         (selftest::spellcheck_c_tests): Add a test of case-comparison.
1763         Call selftest::test_metric_conditions.
1764
1765 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1766
1767         * config/rs6000/rs6000-builtin.def (commentary): Typo.
1768         (BU_P9_MISC_1): Likewise.
1769         (BU_P9_64BIT_MISC_0): Likewise.
1770         (BU_P9_MISC_0): Likewise.
1771
1772 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1773
1774         * gcc-rich-location.c
1775         (gcc_rich_location::add_fixit_misspelled_id): New method.
1776         * gcc-rich-location.h
1777         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
1778
1779 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
1780
1781         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
1782         FreeBSD 11 and above.
1783
1784 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
1785
1786         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
1787
1788 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1789
1790         * expmed.h: Close parenthesis in "at your option" in copyright
1791         boilerplate.
1792         * lower-subreg.h: Likewise.
1793
1794 2016-06-14  Richard Biener  <rguenther@suse.de>
1795
1796         PR middle-end/71526
1797         * genmatch.c (expr::gen_transform): Use in_type for comparisons
1798         if available.
1799
1800 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1801
1802         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
1803         New function.
1804         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
1805         mask+shift version.
1806         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
1807         New prototype.
1808         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
1809         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
1810
1811 2016-06-14  Richard Biener  <rguenther@suse.de>
1812
1813         PR tree-optimization/71522
1814         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
1815         copying into float copying.
1816
1817 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
1818
1819         PR tree-optimization/71520
1820         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
1821         (replace_block_by): Move user labels from bb1 to bb2.
1822
1823 2016-06-14  Richard Biener  <rguenther@suse.de>
1824
1825         PR middle-end/71310
1826         PR bootstrap/71510
1827         * expr.h (get_bit_range): Declare.
1828         * expr.c (get_bit_range): Export.
1829         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
1830         word_mode again to constrain the bitfield access.
1831
1832 2016-06-14  Richard Biener  <rguenther@suse.de>
1833
1834         PR tree-optimization/71521
1835         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
1836         division int_const_binop against zero divisor.
1837
1838 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1839
1840         * config/i386/i386.md (signbittf2): New expander.
1841         * config/i386/sse.md (ptesttf2): New insn pattern.
1842
1843 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1844
1845         PR bootstrap/71481
1846         * input.c (selftest::test_reading_source_line): Avoid reading from
1847         __FILE__ by creating a tempfile with known content and reading
1848         from that instead.
1849
1850 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1851
1852         * pretty-print.c (assert_pp_format_colored): Skip the test if
1853         GCC_COLORS is set.
1854         (test_pp_format): Remove comment about GCC_COLORS.
1855
1856 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1857
1858         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
1859         * pretty-print.c (assert_pp_format_va): Add location param and use
1860         it with ASSERT_STREQ_AT.
1861         (assert_pp_format): Add location param and pass it to
1862         assert_pp_format_va.
1863         (assert_pp_format_colored): Likewise.
1864         (ASSERT_PP_FORMAT_1): New.
1865         (ASSERT_PP_FORMAT_2): New.
1866         (ASSERT_PP_FORMAT_3): New.
1867         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
1868         explicitly, or implicitly via the above macros.
1869         * selftest.c (selftest::pass): Use a selftest::location rather
1870         than file and line.
1871         (selftest::fail): Likewise.  Print the function name.
1872         (selftest::fail_formatted): Likewise.
1873         (selftest::assert_streq): Use a selftest::location rather than
1874         file and line.
1875         * selftest.h (selftest::location): New struct.
1876         (SELFTEST_LOCATION): New macro.
1877         (selftest::pass): Accept a const location & rather than file
1878         and line.
1879         (selftest::fail): Likewise.
1880         (selftest::fail_formatted): Likewise.
1881         (selftest::assert_streq): Likewise.
1882         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
1883         (ASSERT_FALSE): Likewise.
1884         (ASSERT_EQ): Likewise.
1885         (ASSERT_NE): Likewise.
1886         (ASSERT_STREQ): Likewise.
1887         (ASSERT_PRED1): Likewise.
1888         (ASSERT_STREQ_AT): New macro.
1889
1890 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1891
1892         * selftest.c (selftest::fail_formatted): New function.
1893         (selftest::assert_streq): New function.
1894         * selftest.h (selftests::fail_formatted): New decl.
1895         (selftest::assert_streq): New decl.
1896         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
1897
1898 2016-06-13  Jeff Law  <law@redhat.com>
1899
1900         PR tree-optimization/71403
1901         * tree-ssa-threadbackward.c
1902         (convert_and_register_jump_thread_path): No longer accept reference
1903         to path.  Do not pop items off the path anymore.
1904         (fsm_find_control_statement_thread_paths): Do not allow threading
1905         to a deeper loop nest.  Pop the last item off the path here rather
1906         than in convert_and_register_jump_thread_path.
1907
1908 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1909             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
1910
1911         [AArch64] Emit division using the Newton series
1912
1913         * config/aarch64/aarch64-protos.h
1914         (cpu_approx_modes): Add new member "division".
1915         (aarch64_emit_approx_div): Declare new function.
1916         * config/aarch64/aarch64.c
1917         (generic_approx_modes): New member "division".
1918         (exynosm1_approx_modes): Likewise.
1919         (xgene1_approx_modes): Likewise.
1920         (aarch64_emit_approx_div): Define new function.
1921         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
1922         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
1923         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
1924         * doc/invoke.texi (-mlow-precision-div): Describe new option.
1925
1926 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1927             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1928
1929         [AArch64] Emit square root using the Newton series
1930
1931         * config/aarch64/aarch64-protos.h
1932         (aarch64_emit_approx_rsqrt): Replace with new function
1933         "aarch64_emit_approx_sqrt".
1934         (cpu_approx_modes): New member "sqrt".
1935         * config/aarch64/aarch64.c
1936         (generic_approx_modes): New member "sqrt".
1937         (exynosm1_approx_modes): Likewise.
1938         (xgene1_approx_modes): Likewise.
1939         (aarch64_emit_approx_rsqrt): Replace with new function
1940         "aarch64_emit_approx_sqrt".
1941         (aarch64_override_options_after_change_1): Handle new option.
1942         * config/aarch64/aarch64-simd.md
1943         (rsqrt<mode>2): Use new function instead.
1944         (sqrt<mode>2): New expansion and insn definitions.
1945         * config/aarch64/aarch64.md: Likewise.
1946         * config/aarch64/aarch64.opt
1947         (mlow-precision-sqrt): Add new option description.
1948         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
1949
1950 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1951
1952         [AArch64] Add more choices for the reciprocal square root approximation
1953
1954         Allow a target to prefer such operation depending on the operation mode.
1955
1956         * config/aarch64/aarch64-protos.h
1957         (AARCH64_APPROX_MODE): New macro.
1958         (AARCH64_APPROX_{NONE,ALL}): Likewise.
1959         (cpu_approx_modes): New structure.
1960         (tune_params): New member "approx_modes".
1961         * config/aarch64/aarch64-tuning-flags.def
1962         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
1963         * config/aarch64/aarch64.c
1964         (generic_approx_modes): New core "cpu_approx_modes" structure.
1965         (exynosm1_approx_modes): Likewise.
1966         (xgene1_approx_modes): Likewise.
1967         (generic_tunings): New member "approx_modes".
1968         (cortexa35_tunings): Likewise.
1969         (cortexa53_tunings): Likewise.
1970         (cortexa57_tunings): Likewise.
1971         (cortexa72_tunings): Likewise.
1972         (exynosm1_tunings): Likewise.
1973         (thunderx_tunings): Likewise.
1974         (xgene1_tunings): Likewise.
1975         (use_rsqrt_p): New argument for the mode and use new member from
1976         "tune_params".
1977         (aarch64_builtin_reciprocal): Devise mode from builtin.
1978         (aarch64_optab_supported_p): New argument for the mode.
1979         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
1980
1981 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1982
1983         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
1984         RS6000_BTM_MODULO flag into the set of flags that are considered
1985         to be part of the common configuration.
1986
1987 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1988
1989         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
1990         difference unsigned.
1991         (vec_absdb): New macro for vector absolute difference unsigned
1992         byte.
1993         (vec_absdh): New macro for vector absolute difference unsigned
1994         half-word.
1995         (vec_absdw): New macro for vector absolute difference unsigned word.
1996         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
1997         (vadu<mode>3): New insn.
1998         (*p9_vadu<mode>3): New insn.
1999         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2000         definition.
2001         (vaduh): New built-in definition.
2002         (vaduw): New built-in definition.
2003         (vadu): New overloaded built-in definition.
2004         (vadub): New overloaded built-in definition.
2005         (vaduh): New overloaded built-in definition.
2006         (vaduw): New overloaded built-in definition.
2007         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2008         overloaded vector absolute difference unsigned functions.
2009         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2010         the ISA 3.0 vector absolute difference unsigned built-in functions.
2011
2012 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2013
2014         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
2015         update shared_lookup_references only once after changing operands.
2016
2017 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
2018
2019         PR middle-end/71373
2020         * tree-nested.c (convert_nonlocal_omp_clauses)
2021         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
2022
2023         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
2024         * tree.def (CASE_LABEL_EXPR): Likewise.
2025
2026 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2027
2028         PR bootstrap/71481
2029         * input.c (test_builtins): Fix an assertion.
2030
2031 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
2034         (paritysi2): Ditto.
2035         (isinfxf2): Ditto.
2036         (isinf<mode>2): Ditto.
2037
2038 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2039
2040         * ggc-tests.c (test_finalization): Only test need_finalization_p
2041         for GCC_VERSION >= 4003.
2042
2043 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2044
2045         * config/s390/vecintrin.h: Fix file description in comment.
2046
2047 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2048
2049         * config/s390/s390-builtin-types.def: Change builtin type naming
2050         scheme to match builtin-types.def.
2051
2052 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
2053
2054         * fold-const.c (optimize_minmax_comparison): Remove.
2055         (fold_comparison): Remove call to the above.
2056         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
2057         New transformations.
2058
2059 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
2060
2061         PR tree-optimization/71416
2062         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
2063         multiple entries
2064
2065 2016-06-13  Martin Liska  <mliska@suse.cz>
2066
2067         * predict.c (enum predictor_reason): Prefix enum with REASON_.
2068         (combine_predictions_for_insn): Likewise.
2069         (prune_predictions_for_bb): Likewise.
2070         (combine_predictions_for_bb): Likewise.
2071
2072 2016-06-13  Richard Biener  <rguenther@suse.de>
2073
2074         PR tree-optimization/71505
2075         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
2076         assert match comment.
2077
2078 2016-06-13  Marek Polacek  <polacek@redhat.com>
2079
2080         PR middle-end/71476
2081         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
2082         gimplify_switch_expr.
2083         (warn_switch_unreachable_r): New function.
2084
2085 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2086
2087         PR target/71379
2088         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
2089         one.
2090
2091 2016-06-13  Richard Biener  <rguenther@suse.de>
2092
2093         PR middle-end/64516
2094         * fold-const.c (fold_unary_loc): Preserve alignment when
2095         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2096
2097 2016-06-13  Martin Liska  <mliska@suse.cz>
2098
2099         PR sanitizer/71458
2100         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
2101         w/ -fsanitize=bounds.
2102
2103 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2104
2105         * config/i386/i386.c (ix86_init_builtins): Calculate
2106         FLOAT128_FTYPE_CONST_STRING function type only once.
2107         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
2108         built-in functions are available for x86-32 and x86-64 targets.
2109
2110 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2111
2112         PR target/71241
2113         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
2114         New primitive type.
2115         (FLOAT128_FTYPE_CONST_STRING): New function type.
2116         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
2117         [IX86_BUILTIN_NANSQ]: Ditto.
2118         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2119         (ix86_init_builtin_types): Declare const_string_type_node.
2120         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
2121         builtin functions.
2122         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2123         * doc/extend.texi (x86 Built-in Functions): Document
2124         __builtin_nanq and __builtin_nansq.
2125
2126 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
2127
2128         PR target/71061
2129         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
2130         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
2131         length for pop patterns.
2132         (arm_attr_length_push_multi): Update comments.
2133         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
2134         attribute.
2135         (*pop_multiple_with_writeback_and_return): Likewise.
2136         (*pop_multiple_with_return): Likewise.
2137
2138 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
2139
2140         PR middle-end/71310
2141         * fold-const.c (optimize_bit_field_compare): Don't try to use
2142         word_mode unconditionally for reading the bit field, look at
2143         DECL_BIT_FIELD_REPRESENTATIVE instead.
2144
2145 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
2146
2147         PR middle-end/71478
2148         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
2149         vector integer type.
2150
2151 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
2152
2153         PR middle-end/71494
2154         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
2155         without LABEL_DECL, set *handled_ops_p to false instead of true.
2156
2157 2016-06-10  Martin Sebor  <msebor@redhat.com>
2158
2159         PR c/71392
2160         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
2161         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
2162         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
2163         them.
2164         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
2165         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
2166         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
2167         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
2168         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
2169         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
2170         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
2171         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
2172
2173 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2174
2175         * config/arm/arm.h (pool_vector_label,
2176         return_used_this_function): Remove.
2177
2178 2016-06-10  Jeff Law  <law@redhat.com>
2179
2180         PR tree-optimization/71335
2181         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
2182         zero length paths here.
2183         (convert_and_register_jump_thread_path): Remove hacks related to
2184         duplicated blocks in the jump thread path.
2185         (fsm_find_control_statement_thread_paths): Avoid putting the same
2186         block on the thread path twice, but ensure the thread path is
2187         unchanged from the caller's point of view.
2188
2189 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2190
2191         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
2192         * predict.def (PRED_LOOP_BRANCH): Remove.
2193
2194 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
2195
2196         * Makefile.in (OBJS): Add ggc-tests.o.
2197         (GTFILES): Add ggc-tests.c.
2198         * ggc-tests.c: New file.
2199         * selftest-run-tests.c (selftest::run_tests): Call
2200         selftest::ggc_tests_c_tests.
2201         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
2202
2203 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
2204
2205         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
2206
2207 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
2208
2209         PR sanitizer/71480
2210         * varasm.c (place_block_symbol): Adjust alignment for asan protected
2211         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
2212
2213 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2214
2215         * profile.c: Include cfgloop.h.
2216         (branch_prob): Compute estimated number of iterations.
2217         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
2218         recompute estimate number of iterations from profile.
2219
2220 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2221
2222         PR inline-asm/68843
2223         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
2224         must be grouped on top of stack.  Don't force early clobber
2225         on ordinary reg outputs.
2226
2227 2016-06-10  Richard Biener  <rguenther@suse.de>
2228
2229         * targhooks.c (default_builtin_vectorization_cost): Adjust
2230         vec_construct cost.
2231
2232 2016-06-10  Richard Biener  <rguenther@suse.de>
2233
2234         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
2235         to fold the RHS to a constant if possible.
2236
2237 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2238
2239         PR middle-end/71373
2240         * tree-nested.c (convert_nonlocal_omp_clauses)
2241         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
2242         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
2243         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
2244
2245         * gimplify.c (gimplify_adjust_omp_clauses): Discard
2246         OMP_CLAUSE_TILE.
2247         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
2248
2249         * omp-low.c (scan_sharing_clauses): Don't expect
2250         OMP_CLAUSE__CACHE_.
2251
2252 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
2253
2254         PR tree-optimization/71407
2255         PR tree-optimization/71416
2256         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
2257         BIT_FIELD_REF type.
2258
2259 2016-06-10  Richard Biener  <rguenther@suse.de>
2260
2261         PR middle-end/71477
2262         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
2263
2264 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2265
2266         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2267
2268 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
2269             Jiong Wang  <jiong.wang@arm.com>
2270
2271         PR rtl-optimization/70751
2272         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
2273         spilled into memory.
2274
2275 2016-06-09  Jonathan Yong  <10walls@gmail.com>
2276
2277         Revert:
2278         2015-09-21  Jonathan Yong  <10walls@gmail.com>
2279
2280         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
2281         sysroot/usr/lib/32api for additional win32 libraries,
2282         fixes failing Cygwin bootstrapping.
2283
2284 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
2285
2286         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
2287         Delete.
2288
2289 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
2290
2291         PR bootstrap/71471
2292         * pretty-print.c (pp_indent): Specify that %p is printed in a
2293         host-dependent manner.
2294         (test_pp_format): Remove the test for %p.
2295
2296 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
2297
2298         * config/mips/mips.c (mips_output_jump): Fix formatting.
2299
2300 2016-06-09  Richard Biener  <rguenther@suse.de>
2301
2302         PR tree-optimization/71462
2303         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
2304         removed blocks.
2305
2306 2016-06-09  Martin Liska  <mliska@suse.cz>
2307
2308         * predict.c (dump_prediction): Add new argument.
2309         (enum predictor_reason): New enum.
2310         (struct predictor_hash): New struct.
2311         (predictor_hash::hash): New function.
2312         (predictor_hash::equal): Likewise.
2313         (not_removed_prediction_p): New function.
2314         (prune_predictions_for_bb): Likewise.
2315         (combine_predictions_for_bb): Prune predictions.
2316
2317 2016-06-09  Martin Liska  <mliska@suse.cz>
2318
2319         * predict.c (filter_predictions): New function.
2320         (remove_predictions_associated_with_edge): Use the filter
2321         function.
2322         (equal_edge_p): New function.
2323
2324 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
2325
2326         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
2327         Correct usage of @samp vs @option, add @samp where appropriate.
2328         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
2329         Add armv6s-m and document it, as it is no official ARM name.
2330
2331 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2332
2333         * ifcvt.c (struct noce_if_info): Add transform_name field.
2334         (noce_try_move): Set if_info->transform_name to the function name.
2335         (noce_try_ifelse_collapse): Likewise.
2336         (noce_try_store_flag): Likewise.
2337         (noce_try_inverse_constants): Likewise.
2338         (noce_try_store_flag_constants): Likewise.
2339         (noce_try_addcc): Likewise.
2340         (noce_try_store_flag_mask): Likewise.
2341         (noce_try_cmove): Likewise.
2342         (noce_try_cmove_arith): Likewise.
2343         (noce_try_minmax): Likewise.
2344         (noce_try_abs): Likewise.
2345         (noce_try_sign_mask): Likewise.
2346         (noce_try_bitop): Likewise.
2347         (noce_convert_multiple_sets): Likewise.
2348         (noce_process_if_block): Print if_info->transform_name to
2349         dump_file if transformation succeeded.
2350
2351 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2352
2353         * config/arm/cortex-a57.md (cortex_a57_alu):
2354         Handle csel type.
2355
2356 2016-06-08  Martin Sebor  <msebor@redhat.com>
2357             Jakub Jelinek  <jakub@redhat.com>
2358
2359         PR c++/70507
2360         PR c/68120
2361         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
2362         BUILT_IN_MUL_OVERFLOW_P): New builtins.
2363         * builtins.c: Include gimple-fold.h.
2364         (fold_builtin_arith_overflow): Handle
2365         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
2366         (fold_builtin_3): Likewise.
2367         * doc/extend.texi (Integer Overflow Builtins): Document
2368         __builtin_{add,sub,mul}_overflow_p.
2369
2370 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
2371
2372         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
2373         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
2374
2375 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
2376
2377         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
2378         Rewrite, looking one level down for records and arrays.
2379
2380 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
2381
2382         * pretty-print.c: Include "selftest.h".
2383         (pp_format): Fix comment.
2384         (identifier_to_locale): Likewise.
2385         (selftest::test_basic_printing): New function.
2386         (selftest::assert_pp_format): New function.
2387         (selftest::test_pp_format): New function.
2388         (selftest::pretty_print_c_tests): New function.
2389         * selftest-run-tests.c (selftest::run_tests): Call
2390         selftest::pretty_print_c_tests.
2391         * selftest.h (pretty_print_c_tests): New declaration.
2392
2393 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2394
2395         * invoke.texi (max-loop-headers-insns): Document.
2396         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
2397         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
2398         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
2399
2400 2016-06-08  Richard Biener  <rguenther@suse.de>
2401
2402         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
2403         on strided SLP loads and fall back to scalar loads in case
2404         we can't chunk them.
2405
2406 2016-06-08  Richard Biener  <rguenther@suse.de>
2407
2408         PR tree-optimization/71452
2409         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2410         type used for the SSA rewrite has enough precision to cover
2411         the dynamic type of the location.
2412
2413 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
2414             Richard Biener  <rguenther@suse.de>
2415
2416         PR c++/71448
2417         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
2418         the same as DECL_P (base0) for indirect_base0.  Use equality_code
2419         in one further place.
2420
2421 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
2422
2423         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
2424         to one word if the field is known to overlap other words.
2425         (extract_bit_field_1): Likewise.
2426         (store_split_bit_field): Remove compensating code.
2427         (extract_split_bit_field): Likewise.
2428
2429 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
2430
2431         PR debug/71432
2432         PR ada/71413
2433         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
2434
2435 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2436
2437         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
2438         VDQF.
2439         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
2440         (arch64_addpv4sf): Delete.
2441         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
2442         "gen_aarch64_addpv4sf".
2443         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
2444         builtin.
2445         (vpadds_f32): Likewise.
2446         (vpaddq_f32): Likewise.
2447         (vpaddq_f64): Likewise.
2448
2449 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2450
2451         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
2452         VALLF.
2453         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
2454         to VALLF.  Rename to "fabd<mode>3".
2455         "*fabd_scalar<mode>3): Delete.
2456         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
2457         Use builtin.
2458         (vabdd_f64): Likewise.
2459         (vabd_f32): Likewise.
2460         (vabd_f64): Likewise.
2461         (vabdq_f32): Likewise.
2462         (vabdq_f64): Likewise.
2463
2464 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2465
2466         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
2467         VALLF.
2468         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
2469         "aarch64_rsqrts<mode>".
2470         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
2471         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
2472         builtin.
2473         (vrsqrtsd_f64): Likewise.
2474         (vrsqrts_f32): Likewise.
2475         (vrsqrts_f64): Likewise.
2476         (vrsqrtsq_f32): Likewise.
2477         (vrsqrtsq_f64): Likewise.
2478
2479 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2480
2481         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
2482         VALLF.
2483         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
2484         "aarch64_rsqrte<mode>".
2485         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
2486         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
2487         builtin.
2488         (vrsqrted_f64): Likewise.
2489         (vrsqrte_f32): Likewise.
2490         (vrsqrte_f64): Likewise.
2491         (vrsqrteq_f32): Likewise.
2492         (vrsqrteq_f64): Likewise.
2493
2494 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2495
2496         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
2497         (ucvtf): Likewise.
2498         (fcvtzs): Likewise.
2499         (fcvtzu): Likewise.
2500         * config/aarch64/aarch64-simd.md
2501         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
2502         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
2503         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
2504         Use builtin.
2505         (vcvt_n_f32_u32): Likewise.
2506         (vcvt_n_s32_f32): Likewise.
2507         (vcvt_n_u32_f32): Likewise.
2508         (vcvtq_n_f32_s32): Likewise.
2509         (vcvtq_n_f32_u32): Likewise.
2510         (vcvtq_n_f64_s64): Likewise.
2511         (vcvtq_n_f64_u64): Likewise.
2512         (vcvtq_n_s32_f32): Likewise.
2513         (vcvtq_n_s64_f64): Likewise.
2514         (vcvtq_n_u32_f32): Likewise.
2515         (vcvtq_n_u64_f64): Likewise.
2516         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
2517         (VSDQ_SDI): Likewise.
2518         (fcvt_target): Support V4DI, V4SI and V2SI.
2519         (FCVT_TARGET): Likewise.
2520
2521 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2522
2523         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
2524         (TYPES_BINOP_SUS): Likewise.
2525         (aarch64_simd_builtin_data): Update include file name.
2526         (aarch64_builtins): Likewise.
2527         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
2528         for conversion between scalar float-point and fixed-point.
2529         (ucvtf): Likewise.
2530         (fcvtzs): Likewise.
2531         (fcvtzu): Likewise.
2532         * config/aarch64/aarch64.md
2533         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
2534         pattern for conversion between scalar float to fixed-pointer.
2535         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
2536         (UNSPEC_FCVTZS): New UNSPEC enumeration.
2537         (UNSPEC_FCVTZU): Likewise.
2538         (UNSPEC_SCVTF): Likewise.
2539         (UNSPEC_UCVTF): Likewise.
2540         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
2541         Use builtin.
2542         (vcvtd_n_f64_u64): Likewise.
2543         (vcvtd_n_s64_f64): Likewise.
2544         (vcvtd_n_u64_f64): Likewise.
2545         (vcvtd_n_f32_s32): Likewise.
2546         (vcvts_n_f32_u32): Likewise.
2547         (vcvtd_n_s32_f32): Likewise.
2548         (vcvts_n_u32_f32): Likewise.
2549         * config/aarch64/iterators.md (fcvt_target): Support integer to float
2550         mapping.
2551         (FCVT_TARGET): Likewise.
2552         (FCVT_FIXED2F): New iterator.
2553         (FCVT_F2FIXED): Likewise.
2554         (fcvt_fixed_insn): New define_int_attr.
2555
2556 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2557
2558         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
2559         some statements was removed.
2560
2561 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
2562
2563         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
2564         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
2565         (vect_can_advance_ivs_p): likewise.
2566         (vect_update_ivs_after_vectorizer): likewise.
2567         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
2568         (vect_analyze_scalar_cycles_1): likewise.
2569         (vect_analyze_loop_operations): likewise.
2570         (report_vect_op): likewise.
2571         (vect_is_slp_reduction): likewise.
2572         (vect_is_simple_reduction): likewise.
2573         (get_initial_def_for_induction): likewise.
2574         (vect_transform_loop): likewise.
2575         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
2576         (vect_recog_sad_pattern): likewise.
2577         (vect_recog_widen_sum_pattern): likewise.
2578         (vect_recog_widening_pattern): likewise.
2579         (vect_recog_divmod_pattern): likewise.
2580         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
2581         (vect_analyze_slp_instance): likewise.
2582         (vect_transform_slp_perm_load): likewise.
2583         (vect_schedule_slp_instance): likewise.
2584
2585 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2586
2587         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
2588         (return_prediction): PRED_CONST_RETURN predict return as not taken.
2589         * predict.def (PRED_CONTINUE): Change hitrate 50->67
2590         (PRED_LOOP_BRANCH): Document predictor as broken.
2591         (PRED_LOOP_EXIT): Change hitrate 91->92.
2592         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
2593         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
2594         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
2595         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
2596         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
2597         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
2598         (PRED_CALL): Chane hitrate 71->67.
2599         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
2600         (PRED_GOTO): Document as unused right now.
2601         (PRED_CONST_RETURN): Change hitrate 67->69
2602         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
2603         (PRED_NULL_RETURN): Change hitrate 91->90.
2604         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
2605         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
2606         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
2607
2608 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
2609
2610         * config/rs6000/altivec.h: Add __builtin_vec_mul.
2611         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
2612         special case Altivec builtin.
2613         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
2614         VSX_BUILTIN_VEC_MUL (replaced with special case code).
2615         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2616         code for ALTIVEC_BUILTIN_VEC_MUL.
2617         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2618         for __builtin_vec_mul.
2619
2620 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
2621
2622         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
2623         -mno-htm.
2624
2625 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
2626
2627         * spellcheck.c (selftest::test_find_closest_string): New function.
2628         (spellcheck_c_tests): Call the above.
2629
2630 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2631
2632         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
2633
2634 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
2635
2636         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
2637         Yv=Yv,C alternatives.
2638
2639 2016-06-07  Richard Biener  <rguenther@suse.de>
2640
2641         PR c/61564
2642         * common.opt (ffast-math): Make Optimization.
2643
2644 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
2645             Prachi Godbole  <prachi.godbole@imgtec.com>
2646
2647         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
2648         `fabs' and `fneg' type attributes.
2649         (p5600_fpu_fabs): Add `fmove' to the comment.
2650
2651 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2652
2653         * gimple.c: Include builtins.h
2654         (gimple_inexpensive_call_p): New function.
2655         * gimple.h (gimple_inexpensive_call_p): Declare.
2656         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
2657         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
2658         fix formatting.
2659
2660 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
2661
2662         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
2663         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
2664         warning_at_rich_loc, warning_n, pedwarn, permerror,
2665         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
2666         sorry, fatal_error, internal_error, internal_error_no_backtrace):
2667         Use the above.
2668
2669 2016-06-07  Richard Biener  <rguenther@suse.de>
2670
2671         PR tree-optimization/71428
2672         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
2673         BIT_FIELD_REF op vs. load.
2674
2675 2016-06-07  Richard Biener  <rguenther@suse.de>
2676
2677         PR middle-end/71423
2678         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
2679         for signed ops.
2680
2681 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
2682
2683         * config/pa/pa.md (call): Generate indirect long calls to non-local
2684         functions on TARGET_64BIT.
2685         (call_value): Likewise.
2686
2687 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
2688
2689         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
2690         pattern and subsequent splitters.
2691         (call_val_reg_64bit_post_reload): Likewise.
2692
2693 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2694
2695         PR middle-end/71408
2696         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
2697         propagate_op_to_single_use.
2698
2699 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2700
2701         PR middle-end/71281
2702         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
2703
2704 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
2705
2706         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
2707         (enum x86_dirflag_state): New enum.
2708         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
2709         (machine_function): Remove needs_cld.
2710         (ix86_current_function_needs_cld): Remove.
2711         * config/i386/i386.c (ix86_set_func_type): Set
2712         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
2713         (ix86_expand_prologue): Do not emit CLD here.
2714         (ix86_dirflag_mode_needed): New function.
2715         (ix86_dirflag_mode_entry): Ditto.
2716         (ix86_mode_needed): Handle X86_DIRFLAG entity.
2717         (ix86_mode_after): Ditto.
2718         (ix86_mode_entry): Ditto.
2719         (ix86_mode_exit): Ditto.
2720         (ix86_emit_mode_set): Ditto.
2721         * config/i386/i386.md (strmov_singleop): Set
2722         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
2723         Do not set ix86_current_function_needs_cld.
2724         (rep_mov): Ditto.
2725         (strset_singleop): Ditto.
2726         (rep_stos): Ditto.
2727         (cmpstrnqi_nz_1): Ditto.
2728         (cmpstrnqi_1): Ditto.
2729         (strlenqi_1): Ditto.
2730
2731 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
2732
2733         PR tree-optimization/71259
2734         * tree-vect-slp.c (vect_get_constant_vectors): For
2735         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
2736         one for constant op, and use COND_EXPR for non-constant.
2737
2738 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
2739
2740         * Makefile.in (OBJS): Add function-tests.o,
2741         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
2742         selftest-run-tests.o.
2743         (OBJS-libcommon): Add selftest.o.
2744         (OBJS-libcommon-target): Add selftest.o.
2745         (all.internal): Add "selftest".
2746         (all.cross): Likewise.
2747         (selftest): New phony target.
2748         (s-selftest): New target.
2749         (selftest-gdb): New phony target.
2750         (COLLECT2_OBJS): Add selftest.o.
2751         * bitmap.c: Include "selftest.h".
2752         (selftest::test_gc_alloc): New function.
2753         (selftest::test_set_range): New function.
2754         (selftest::test_clear_bit_in_middle): New function.
2755         (selftest::test_copying): New function.
2756         (selftest::test_bitmap_single_bit_set_p): New function.
2757         (selftest::bitmap_c_tests): New function.
2758         * common.opt (fself-test): New.
2759         * diagnostic-show-locus.c: Include "selftest.h".
2760         (make_range): New function.
2761         (test_range_contains_point_for_single_point): New function.
2762         (test_range_contains_point_for_single_line): New function.
2763         (test_range_contains_point_for_multiple_lines): New function.
2764         (assert_eq): New function.
2765         (test_get_line_width_without_trailing_whitespace): New function.
2766         (selftest::diagnostic_show_locus_c_tests): New function.
2767         * et-forest.c: Include "selftest.h".
2768         (selftest::test_single_node): New function.
2769         (selftest::test_simple_tree): New function.
2770         (selftest::test_disconnected_nodes): New function.
2771         (selftest::et_forest_c_tests): New function.
2772         * fold-const.c: Include "selftest.h".
2773         (selftest::assert_binop_folds_to_const): New function.
2774         (selftest::assert_binop_folds_to_nonlvalue): New function.
2775         (selftest::test_arithmetic_folding): New function.
2776         (selftest::fold_const_c_tests): New function.
2777         * function-tests.c: New file.
2778         * gimple.c: Include "selftest.h".
2779         Include "gimple-pretty-print.h".
2780         (selftest::verify_gimple_pp): New function.
2781         (selftest::test_assign_single): New function.
2782         (selftest::test_assign_binop): New function.
2783         (selftest::test_nop_stmt): New function.
2784         (selftest::test_return_stmt): New function.
2785         (selftest::test_return_without_value): New function.
2786         (selftest::gimple_c_tests): New function.
2787         * hash-map-tests.c: New file.
2788         * hash-set-tests.c: New file.
2789         * input.c: Include "selftest.h".
2790         (selftest::assert_loceq): New function.
2791         (selftest::test_accessing_ordinary_linemaps): New function.
2792         (selftest::test_unknown_location): New function.
2793         (selftest::test_builtins): New function.
2794         (selftest::test_reading_source_line): New function.
2795         (selftest::input_c_tests): New function.
2796         * rtl-tests.c: New file.
2797         * selftest-run-tests.c: New file.
2798         * selftest.c: New file.
2799         * selftest.h: New file.
2800         * spellcheck.c: Include "selftest.h".
2801         (selftest::levenshtein_distance_unit_test_oneway): New function,
2802         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
2803         (selftest::levenshtein_distance_unit_test): Likewise.
2804         (selftest::spellcheck_c_tests): Likewise.
2805         * toplev.c: Include selftest.h.
2806         (toplev::run_self_tests): New.
2807         (toplev::main): Handle -fself-test.
2808         * toplev.h (toplev::run_self_tests): New.
2809         * tree.c: Include "selftest.h".
2810         (selftest::test_integer_constants): New function.
2811         (selftest::test_identifiers): New function.
2812         (selftest::test_labels): New function.
2813         (selftest::tree_c_tests): New function.
2814         * tree-cfg.c: Include "selftest.h".
2815         (selftest::push_fndecl): New function.
2816         (selftest::test_linear_chain): New function.
2817         (selftest::test_diamond): New function.
2818         (selftest::test_fully_connected): New function.
2819         (selftest::tree_cfg_c_tests): New function.
2820         * vec.c: Include "selftest.h".
2821         (selftest::safe_push_range): New function.
2822         (selftest::test_quick_push): New function.
2823         (selftest::test_safe_push): New function.
2824         (selftest::test_truncate): New function.
2825         (selftest::test_safe_grow_cleared): New function.
2826         (selftest::test_pop): New function.
2827         (selftest::test_safe_insert): New function.
2828         (selftest::test_ordered_remove): New function.
2829         (selftest::test_unordered_remove): New function.
2830         (selftest::test_block_remove): New function.
2831         (selftest::reverse_cmp): New function.
2832         (selftest::test_qsort): New function.
2833         (selftest::vec_c_tests): New function.c.
2834         * wide-int.cc: Include selftest.h and wide-int-print.h.
2835         (selftest::from_int <wide_int>): New function.
2836         (selftest::from_int <offset_int>): New function.
2837         (selftest::from_int <widest_int>): New function.
2838         (selftest::assert_deceq): New function.
2839         (selftest::assert_hexeq): New function.
2840         (selftest::test_printing <VALUE_TYPE>): New function template.
2841         (selftest::test_ops <VALUE_TYPE>): New function template.
2842         (selftest::test_comparisons <VALUE_TYPE>): New function template.
2843         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
2844         template.
2845         (selftest::wide_int_cc_tests): New function.
2846
2847 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2848
2849         PR middle-end/37780
2850         * ifcvt.c (noce_try_ifelse_collapse): New function.
2851         Declare prototype.
2852         (noce_process_if_block): Call noce_try_ifelse_collapse.
2853         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
2854         (simplify_ternary_operation): Use the above to simplify
2855         conditional CLZ/CTZ expressions.
2856
2857 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2858
2859         PR middle-end/37780
2860         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
2861         define_insn_and_split.
2862
2863 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2864
2865         PR middle-end/37780
2866         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
2867
2868 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2869
2870         PR c/24414
2871         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
2872         Implicitly clobber memory for basic asm with non-empty assembler
2873         string.  Use targetm.md_asm_adjust also here.
2874         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
2875         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
2876         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
2877         non-empty assembler string.
2878         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
2879         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
2880         (decode_asm_operands): Handle basic asm in PARALLEL block.
2881         (extract_insn): Handle basic asm in PARALLEL block.
2882         * doc/extend.texi: Mention new behavior of basic asm.
2883         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
2884         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
2885         branch_needs_nop_p): Use asm_noperands.
2886
2887 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
2888
2889         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
2890         Include the M7 SPARC DFA scheduler.
2891         New attribute v3pipe.
2892         Annotate insns with v3pipe where appropriate.
2893         Define cpu_feature vis4.
2894         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
2895         Add (V8QI "8") to vbits.
2896         Add insns {add,sub}v8qi3
2897         Add insns ss{add,sub}v8qi3
2898         Add insns us{add,sub}{v8qi,v4hi}3
2899         Add insns {min,max}{v8qi,v4hi,v2si}3
2900         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
2901         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
2902         * config/sparc/niagara4.md: Add a comment explaining the
2903         discrepancy between the documented latenty numbers and the
2904         implemented ones.
2905         * config/sparc/niagara7.md: New file.
2906         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
2907         supports SPARC5 and VIS 4.0 instructions.
2908         * configure: Regenerate.
2909         * config.in: Likewise.
2910         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
2911         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
2912         TARGET_CPU_niagara7.
2913         (ASM_CPU64_DEFAULT_SPEC): Likewise.
2914         (CPP_CPU_SPEC): Handle niagara7.
2915         (ASM_CPU_SPEC): Likewise.
2916         * config/sparc/sparc-opts.h (processor_type): Add
2917         PROCESSOR_NIAGARA7.
2918         (mvis4): New option.
2919         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
2920         (AS_NIAGARA7_FLAG): Define.
2921         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
2922         (CPP_CPU64_DEFAULT_SPEC): Likewise.
2923         (CPP_CPU_SPEC): Handle niagara7.
2924         (ASM_CPU_SPEC): Likewise.
2925         * config/sparc/sparc.c (niagara7_costs): Define.
2926         (sparc_option_override): Handle niagara7 and adjust cache-related
2927         parameters with better values for niagara cpus.  Also support VIS4.
2928         (sparc32_initialize_trampoline): Likewise.
2929         (sparc_use_sched_lookahead): Likewise.
2930         (sparc_issue_rate): Likewise.
2931         (sparc_register_move_cost): Likewise.
2932         (dump_target_flag_bits): Support VIS4.
2933         (sparc_vis_init_builtins): Likewise.
2934         (sparc_builtins): Likewise.
2935         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
2936         VIS4 4.0.
2937         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2938         UltraSparc M7.
2939         * config/sparc/sparc.opt (sparc_processor_type): New value
2940         niagara7.
2941         * config/sparc/visintrin.h (__attribute__): Prototypes for the
2942         VIS4 builtins.
2943         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2944         -mvis4.
2945         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2946         VIS4 builtins.
2947
2948 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2949
2950         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2951
2952 2016-06-06  Richard Biener  <rguenther@suse.de>
2953
2954         PR tree-optimization/71398
2955         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2956         remove edges.
2957
2958 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
2959
2960         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
2961         ft32_expand_prolog, ft32_expand_epilogue):
2962         Handle pretend_args.
2963         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
2964         * config/ft32/ft32.md: Add pretend_returner.
2965
2966 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
2967
2968         PR target/71389
2969         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2970         Copy op1 RTX to avoid invalid sharing.
2971         (ix86_expand_vector_move_misalign): Ditto.
2972
2973 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
2974
2975         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2976         ATTRIBUTE_UNUSED.
2977
2978 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2979
2980         * predict.c (predicted_by_loop_heuristics_p): New function.
2981         (predict_iv_comparison): Use it.
2982         (predict_loops): Walk from innermost loops; do not predict edges
2983         leaving multiple loops multiple times; implement
2984         PRED_LOOP_ITERATIONS_MAX heuristics.
2985         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
2986
2987 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2988
2989         * cfg.c (check_bb_profile): Do not report mismatched profiles when
2990         only edges out of BB are EH edges.
2991
2992 2016-06-04  Martin Sebor  <msebor@redhat.com>
2993             Marcin Baczyński  <marbacz@gmail.com>
2994
2995         PR c/48116
2996         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2997         a void expression in a void function.
2998
2999 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3000
3001         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
3002         aux; dump reasons of decisions.
3003         (should_duplicate_loop_header_p): Likewise.
3004         (do_while_loop_p): Likewise.
3005         (ch_base::copy_headers): Dump asi num insns duplicated.
3006
3007 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR tree-optimization/71405
3010         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3011         incompatible type, build a new clobber with the right type instead
3012         of building a VIEW_CONVERT_EXPR around it.
3013
3014 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3015
3016         PR tree-optimization/52171
3017         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
3018         by_pieces_ninsns instead of move_by_pieces_ninsns.
3019
3020 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3021
3022         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
3023         for reg+reg addressing mode.
3024
3025 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3026
3027         * rs6000-c.c (c/c-tree.h): Add #include.
3028         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
3029         in C++ when found in the base position of vec_ld or vec_st.
3030
3031 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3032
3033         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
3034         use of profile unless profile status is PROFILE_READ.
3035         * profile.c (compute_branch_probabilities): Set profile status
3036         only after reporting predictor hitrates.
3037
3038 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
3039
3040         PR target/71276
3041         PR target/71277
3042         * common.opt (ffp-int-builtin-inexact): New option.
3043         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
3044         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
3045         (ceil@var{m}2): Document dependence on this option.
3046         * ipa-inline-transform.c (inline_call): Handle
3047         flag_fp_int_builtin_inexact.
3048         * ipa-inline.c (can_inline_edge_p): Likewise.
3049         * config/i386/i386.md (rintxf2): Do not test
3050         flag_unsafe_math_optimizations.
3051         (rint<mode>2_frndint): New define_insn.
3052         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
3053         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
3054         for 387 instead of extending and truncating.
3055         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
3056         !flag_trapping_math instead of flag_unsafe_math_optimizations.
3057         Change to frndint<mode>2_<rounding>.
3058         (frndintxf2_<rounding>_i387): Likewise.  Change to
3059         frndint<mode>2_<rounding>_i387.
3060         (<rounding_insn>xf2): Likewise.
3061         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
3062         !flag_trapping_math instead of flag_unsafe_math_optimizations for
3063         x87.  Test TARGET_ROUND || !flag_trapping_math ||
3064         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
3065         SSE.  Use ROUND_NO_EXC in constant operand of
3066         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
3067         for 387 instead of extending and truncating.
3068
3069 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3070             Julia Koval  <julia.koval@intel.com>
3071
3072         PR target/66960
3073         PR target/67630
3074         PR target/67634
3075         PR target/67841
3076         PR target/68037
3077         PR target/68618
3078         PR target/68661
3079         PR target/69575
3080         PR target/69596
3081         PR target/69734
3082         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
3083         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
3084         all registers, except for function return registers if there are
3085         no caller-saved registers.
3086         (ix86_set_func_type): New function.
3087         (ix86_set_current_function): Call ix86_set_func_type to set
3088         no_caller_saved_registers and func_type.  Call reinit_regs if
3089         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
3090         nor x87 instructions in interrupt handler nor function with
3091         no_caller_saved_registers attribute.
3092         (ix86_function_ok_for_sibcall): Return false if there are no
3093         caller-saved registers.
3094         (type_natural_mode): Don't warn ABI change for MMX in interrupt
3095         handler.
3096         (ix86_function_arg_advance): Skip for callee in interrupt handler.
3097         (ix86_function_arg): Return special arguments in interrupt handler.
3098         (ix86_promote_function_mode): Promote pointer to word_mode only
3099         for normal functions.
3100         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
3101         interrupt handler.
3102         (ix86_epilogue_uses): New function.
3103         (ix86_hard_regno_scratch_ok): Likewise.
3104         (ix86_save_reg): Preserve all registers in interrupt handler
3105         after reload.  Preserve all registers, except for function return
3106         registers, if there are no caller-saved registers after reload.
3107         (find_drap_reg): Always use callee-saved register if there are
3108         no caller-saved registers.
3109         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
3110         for interrupt handler.
3111         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
3112         Emit cld instruction if stringops are used in interrupt handler
3113         or interrupt handler isn't a leaf function.
3114         (ix86_expand_epilogue): Generate interrupt return for interrupt
3115         handler and pop the 'ERROR_CODE' off the stack before interrupt
3116         return in exception handler.
3117         (ix86_expand_call): Disallow calling interrupt handler directly.
3118         If there are no caller-saved registers, mark all registers that
3119         are clobbered by the call which returns as clobbered.
3120         (ix86_handle_no_caller_saved_registers_attribute): New function.
3121         (ix86_handle_interrupt_attribute): Likewise.
3122         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
3123         attributes.
3124         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
3125         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
3126         accumulation in interrupt function if stack may be realigned to
3127         avoid DRAP.
3128         (EPILOGUE_USES): New.
3129         (function_type): New enum.
3130         (machine_function): Add func_type and no_caller_saved_registers.
3131         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
3132         (interrupt_return): New pattern.
3133         * doc/extend.texi: Document x86 interrupt and
3134         no_caller_saved_registers attributes.
3135
3136 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
3137
3138         PR tree-optimization/52171
3139         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
3140         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
3141         Look for constant strings.  Move some code to emit_block_cmp_hints
3142         and use it.
3143         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
3144         * defaults.h (COMPARE_MAX_PIECES): New macro.
3145         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
3146         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
3147         (clear_by_pieces_1): Don't declare.  Move definition before use.
3148         (can_do_by_pieces): New static function.
3149         (can_move_by_pieces): Use it.  Return bool.
3150         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
3151         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
3152         (class pieces_addr); New.
3153         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
3154         pieces_addr::adjust, pieces_addr::increment_address,
3155         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
3156         functions for it.
3157         (class op_by_pieces_d): New.
3158         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
3159         functions for it.
3160         (class move_by_pieces_d, class compare_by_pieces_d,
3161         class store_by_pieces_d): New subclasses of op_by_pieces_d.
3162         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
3163         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
3164         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
3165         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
3166         compare_by_pieces_d::finish_mode): New member functions.
3167         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
3168         functions.
3169         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
3170         (emit_block_cmp_hints): New function.
3171         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
3172         use the newly defined classes.
3173         * expr.h (by_pieces_constfn): New typedef.
3174         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
3175         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
3176         (move_by_pieces_ninsns): Don't declare.
3177         (can_move_by_pieces): Change return value to bool.
3178         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
3179         (compare_by_pieces_branch_ratio): New hook.
3180         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
3181         (by_pieces_ninsns): Declare.
3182         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
3183         COMPARE_BY_PIECES.
3184         (default_compare_by_pieces_branch_ratio): New function.
3185         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
3186         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
3187         * doc/tm.texi: Regenerate.
3188         * tree-ssa-strlen.c: Include "builtins.h".
3189         (handle_builtin_memcmp): New static function.
3190         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
3191         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
3192
3193 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3194
3195         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
3196         relevant stmts which are simple and invariant.
3197         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
3198         instead of simple and invariant
3199
3200 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3201
3202         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
3203         (vectorizable_reduction): Check for new relevant state.
3204         (vectorizable_live_operation): vectorize live stmts using
3205         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
3206         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
3207         (vect_stmt_relevant_p): Check for stmts which are only used live.
3208         (process_use): Use of a stmt does not inherit it's live value.
3209         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
3210         (vect_analyze_stmt): Check for new relevant state.
3211         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
3212         outside the loop, but not inside it.
3213
3214 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3215
3216         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
3217         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
3218         (vect_get_vec_def_for_operand): Split out code.
3219
3220 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3221
3222         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
3223
3224 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3225
3226         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
3227
3228 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3229
3230         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
3231
3232 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3233
3234         PR middle-end/71387
3235         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3236         to noreturn e->callee->decl that has void return type and void
3237         arguments, adjust gimple_call_fntype and remove lhs even if it had
3238         previously addressable type.
3239
3240 2016-06-02  Jeff Law  <law@redhat.com>
3241
3242         PR tree-optimization/71328
3243         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
3244         error when checking for a jump back onto the copied path.
3245
3246 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
3247
3248         * config/microblaze/microblaze.c (get_branch_target): Add return
3249         NULL_RTX for the non-CALL_P case.
3250         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
3251         (insert_wic): Remove unused local "j".
3252
3253 2016-06-02  Martin Liska  <mliska@suse.cz>
3254
3255         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
3256
3257 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3258             Julia Koval  <julia.koval@intel.com>
3259
3260         * function.c (assign_parm_setup_stack): Force source into a
3261         register if needed.
3262         * target.def (function_incoming_arg): Update documentation to
3263         allow arbitrary address computation based on hard register.
3264         * doc/tm.texi: Regenerated.
3265
3266 2016-06-02  Martin Liska  <mliska@suse.cz>
3267
3268         * predict.c (combine_predictions_for_bb): Fix first match in
3269         cases where a first predictor contains more than one occurence
3270         in list of predictors.  Take the best value in such case.
3271
3272 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3273
3274         PR rtl-optimization/71295
3275         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
3276         offset would go over the size of the inner mode reject it.
3277
3278 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
3279
3280         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
3281         x=x,x and v=v,m instead of x=x,m.
3282
3283         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
3284         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
3285         alternative to v=rm,C.
3286
3287         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
3288         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
3289         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
3290         instead of vex for the last two above mentioned alternatives.
3291
3292 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3293
3294         PR target/70830
3295         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3296
3297 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
3298
3299         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
3300
3301 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
3302
3303         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
3304         from int to unsigned.
3305
3306 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3307
3308         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3309         alternatives, eliminating preferred register class.  Add support
3310         for the MTVSRDD instruction in ISA 3.0.
3311         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3312         reg_or_indexed_operand.
3313         (vsx_splat_v4sf_internal): Likewise.
3314
3315 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3316
3317         PR target/71186
3318         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3319         for loading up all 0's or all 1's.
3320
3321 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3322
3323         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
3324
3325 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
3326
3327         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
3328         extension.
3329         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
3330         * gcc.c (set_source_date_epoch_envvar): New function, sets
3331         the SOURCE_DATE_EPOCH environment variable to the current time.
3332
3333 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3334
3335         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3336         the factor for live Phi nodes.
3337
3338 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3339
3340         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
3341         * tree-parloops.c (parallelize_loops): likewise.
3342         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
3343         tree_unswitch_outer_loop): likewise.
3344
3345 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3346
3347         PR middle-end/71371
3348         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3349         around creation of the temporary.
3350
3351 2016-06-01  Richard Biener  <rguenther@suse.de>
3352
3353         PR tree-optimization/71366
3354         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
3355         (unloop_loops): Move removing edges here ...
3356         (try_unroll_loop_completely): ... from here.
3357         (try_peel_loop): ... and here.
3358         (tree_unroll_loops_completely_1): Track parent loops via
3359         bitmap of header BBs.
3360         (tree_unroll_loops_completely): Adjust for that.
3361
3362 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3363
3364         * config/rs6000/altivec.h (vec_slv): New macro.
3365         (vec_srv): New macro.
3366         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
3367         (UNSPEC_VSRV): New value.
3368         (vslv): New insn.
3369         (vsrv): New insn.
3370         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
3371         (vsrv): New builtin definition.
3372         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
3373         define argument types for new builtin.
3374         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
3375         new builtin.
3376         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
3377         functions.
3378
3379 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3380             Jocelyn Mayer  <l_indien@magic.fr>
3381
3382         PR target/67310
3383         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3384         detect processor family for signature_CENTAUR_ebx.
3385         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3386         signature_CENTAUR_ebx.
3387         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3388         <default>: Pass x86-64 for has_longmode.
3389
3390 2016-06-01  Nathan Sidwell  <nathan@acm.org>
3391
3392         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
3393         undefined weak.
3394
3395 2016-06-01  Richard Biener  <rguenther@suse.de>
3396
3397         PR tree-optimization/71261
3398         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
3399         of stmts successfully put in the bool pattern.  Remove
3400         single-use restriction.
3401         (adjust_bool_pattern_cast): Add cast at the use site via the
3402         pattern def sequence.
3403         (adjust_bool_pattern): Remove recursion, maintain a hash-map
3404         of patterned defs.  Use the pattern def seqence instead of
3405         multiple independent patterns.
3406         (sort_after_uid): New qsort compare function.
3407         (adjust_bool_stmts): New function to process stmts in the bool
3408         pattern in IL order.
3409         (vect_recog_bool_pattern): Adjust.
3410         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
3411         (ifcvt_walk_pattern_tree): Likewise.
3412         (stmt_is_root_of_bool_pattern): Likewise.
3413         (ifcvt_repair_bool_pattern): Likewise.
3414         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
3415
3416 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3417
3418         * loop-unroll.c (decide_unroll_constant_iterations,
3419         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
3420         likely upper bounds.
3421         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
3422
3423 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
3424
3425         * tree-core.h (enum omp_clause_code): Remove
3426         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
3427
3428 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3429
3430         * config/arm/sync.md (arm_store_exclusive<mode>):
3431         Use 'H' output modifier on operands[2] rather than creating a new
3432         entry in out-of-bounds memory of the operands array.
3433         (arm_store_release_exclusivedi): Likewise.
3434
3435 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3436
3437         * config/arm/arm.c (arm_fusion_enabled_p): New function.
3438         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
3439         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
3440         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3441
3442 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3443
3444         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3445         into account live statements for mask producers.
3446
3447 2016-06-01  Richard Biener  <rguenther@suse.de>
3448
3449         PR tree-optimization/71311
3450         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
3451         restrict to non-INTEGER_CST @0.
3452
3453 2016-06-01  Richard Biener  <rguenther@suse.de>
3454
3455         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
3456         (relational patterns): Use :c to avoid pattern duplications.
3457
3458 2016-06-01  Richard Biener  <rguenther@suse.de>
3459
3460         * genmatch.c (comparison_code_p): New predicate.
3461         (swap_tree_comparison): New function.
3462         (commutate): Add for_vec parameter to append new for entries.
3463         Support commutating relational operators by swapping it alongside
3464         operands.
3465         (lower_commutative): Adjust.
3466         (dt_simplify::gen): Do not pass artificial operators to gen
3467         functions.
3468         (decision_tree::gen): Do not add artificial operators as parameters.
3469         (parser::parse_expr): Verify operator commutativity when :c is
3470         applied.  Allow :C to override this.
3471         * match.pd: Adjust patterns to use :C instead of :c where required.
3472
3473 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
3474
3475         PR tree-optimization/71077
3476         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
3477         the combining step, use boolean_false_node and boolean_true_node
3478         as the designated false/true return values.
3479
3480 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3481
3482         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
3483         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
3484         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
3485         PRED_LOOP_EXIT.
3486
3487 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3488
3489         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
3490         of flags impliying the register renaming.
3491         * toplev.c (process_options): Do not imply flag_rename_registers with
3492         loop peeling.
3493
3494 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3495
3496         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
3497         default implementation.
3498
3499 2016-05-31  Nathan Sidwell  <nathan@acm.org>
3500
3501         * dwarf2out.c (cur_line_info_table): Add GTY marker.
3502
3503 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3504
3505         * config/sh/constraints.md (b): Remove constraint.
3506         * config/sh/predicates.md (arith_reg_operand): Remove
3507         TARGET_REGISTER_P.
3508         * config/sh/sh-modes.def (PDI): Remove.
3509         * config/sh/sh.c (sh_target_reg_class,
3510         sh_optimize_target_register_callee_saved): Remove functions.
3511         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
3512         (sh_expand_epilogue): Update comment.
3513         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
3514         sh_secondary_reload): Remove TARGET_REGS related code.
3515         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
3516         TARGET_REGISTER_P): Remove macros.
3517         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
3518         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
3519         TR1_REG, TR2_REG): Remove constants.
3520         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
3521
3522 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3523
3524         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
3525         define_expand patterns.
3526         (adddi3_compact): Rename to adddi3.
3527         (subdi3_compact): Rename to subdi3.
3528         (*negdi2): Rename to negdi2.
3529         (*abs<mode>2): Rename to abs<mode>2.
3530
3531 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3532
3533         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
3534         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
3535         (atomic_sub_fetchsi): ... this new pattern.
3536         (mvtc): Add CC_REG clobber.
3537
3538 2016-05-31  Marek Polacek  <polacek@redhat.com>
3539
3540         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
3541
3542 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3543
3544         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
3545         aarch64_fusion_enabled_p to check for fusion capabilities.
3546
3547 2016-05-31  Richard Biener  <rguenther@suse.de>
3548
3549         PR tree-optimization/71352
3550         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
3551         minus one and a negate.
3552
3553 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3554
3555         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
3556         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
3557         Delete prototype.
3558         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
3559         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
3560         Remove use of aarch64_simd_attr_length_move, set length attribute
3561         directly.
3562         (*aarch64_be_movoi): Likewise.
3563         (*aarch64_be_movci): Likewise.
3564         (*aarch64_be_movxi): Likewise.
3565
3566 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3567
3568         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
3569         It no longer does that.
3570         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
3571
3572 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
3573
3574         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
3575         attribute __unused__.
3576
3577 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3578
3579         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
3580         * config/arm/arm.c (arm_arch_thumb1): Define.
3581         (arm_option_override): Initialize arm_arch_thumb1.
3582         * config/arm/arm.h (arm_arch_thumb1): Declare.
3583         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
3584         support Thumb-1 ISA.
3585
3586 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
3587
3588         PR target/71346
3589         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
3590         `Yv' for scalar operand.
3591
3592 2016-05-31  Tom de Vries  <tom@codesourcery.com>
3593
3594         PR tree-optimization/69068
3595         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
3596         phis with more than two args.
3597
3598 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3599
3600         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3601         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3602         target.
3603
3604 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
3605
3606         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3607         tune_64.
3608         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3609         support on SPARC.
3610         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
3611         cpu_32, cpu_64, tune_32 and tune_64.
3612         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
3613
3614 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
3615
3616         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
3617
3618 2016-05-30  Andi Kleen  <ak@linux.intel.com>
3619
3620         * auto-profile.c (read_profile): Replace asserts with errors
3621         when file does not exist.
3622         * gcov-io.c (gcov_read_words): Dito.
3623
3624 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3625
3626         * tree-cfg.c (print_loop): Print likely upper bounds.
3627
3628 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3629
3630         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
3631         * opts.c (default_options): Enable peel loops at -O3.
3632         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
3633         (try_peel_loop): Do not re-peel already peeled loops;
3634         use likely upper bounds; fix profile updating.
3635         (pass_complete_unroll::execute): Initialize peeled_loops.
3636
3637 2016-05-30  Martin Liska  <mliska@suse.cz>
3638
3639         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
3640         computed costs by frequency of BB they belong to.
3641         (get_scaled_computation_cost_at): New function.
3642
3643 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
3644             Marc Glisse  <marc.glisse@inria.fr>
3645
3646         PR tree-optimization/71289
3647         * match.pd (-1 / B < A, A > -1 / B): New transformations.
3648
3649 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3650
3651         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
3652
3653 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3654
3655         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
3656         for peeled copies; avoid underflow when updating estimates; correctly
3657         scale loop profile.
3658
3659 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3660
3661         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
3662         r236875. Corrected oe3 to oe2 as obvious.
3663
3664 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3665
3666         PR middle-end/71269
3667         PR middle-end/71252
3668         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
3669         that inserted stmt will not dominate stmts that defines its operand.
3670         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
3671         (rewrite_expr_tree_parallel): Likewise.
3672
3673 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3674
3675         PR middle-end/71252
3676         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
3677         all fields including stmt_to_insert are swapped.
3678
3679 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3680
3681         * predict.h (force_edge_cold): Declare.
3682         * predict.c (force_edge_cold): New function.
3683         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
3684         updating.
3685         (canonicalize_loop_induction_variables): Fix formating.
3686
3687 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3688
3689         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
3690         (visium_expand_copysign): Use gen_int_mode directly.
3691         (visium_compute_frame_size): Minor tweaks.
3692
3693 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3694
3695         * tree-vect-loop.c (vect_analyze_loop_2): Use
3696         likely_max_stmt_executions_int.
3697
3698 2016-05-30  Tom de Vries  <tom@codesourcery.com>
3699
3700         PR tree-optimization/69067
3701         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
3702
3703 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
3704
3705         PR target/71245
3706         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
3707         New peepholes to remove unneeded fild/fistp pairs.
3708         (define_peephole2 atomic_loaddi_fpu): Ditto.
3709
3710 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3711
3712         * predict.c (maybe_hot_frequency_p): Avoid division.
3713
3714 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
3715
3716         * doc/install.texi: Use https for shop.fsf.org.
3717
3718 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3719
3720         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
3721         likely_max_stmt_executions_int.
3722
3723 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3724
3725         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
3726         likely_max_stmt_executions_int.
3727
3728 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3729
3730         * profile.c (compute_branch_probabilities): Do not report hitrates
3731         here.
3732         (branch_prob): Report hitrates here.
3733         * predict.c (gimple_predict_edge): Do not assert profile status;
3734         fix formatting issues.
3735
3736 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3737
3738         * predict.c (edge_predicted_by_p): New function.
3739         (predict_paths_for_bb): Do not put multiple predictions of the same type
3740         on one edge.
3741
3742 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3743
3744         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
3745         commit.
3746
3747 2016-05-28  Alan Modra  <amodra@gmail.com>
3748
3749         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
3750
3751 2016-05-28  Alan Modra  <amodra@gmail.com>
3752
3753         PR rtl-optimization/71275
3754         * ira.c (ira): Free dominance info.
3755
3756 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
3757
3758         * doc/sourcebuild.texi: New address for upstream Go repository.
3759
3760 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3761
3762         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
3763         (TARGET_ARM_V7M): Likewise.
3764
3765 2016-05-26  Jeff Law  <law@redhat.com>
3766
3767         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
3768         (thread_across_edge): Remove calls to find_jump_threads_backwards.
3769         * passes.def: Add jump threading passes before DOM/VRP.
3770         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
3771         argument to a basic block from an edge.  Remove tests which are
3772         handled elsewhere.
3773         (pass_data_thread_jumps, class pass_thread_jumps): New.
3774         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
3775         (make_pass_thread_jumps): Likewise.
3776         * tree-pass.h (make_pass_thread_jumps): Declare.
3777
3778 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3779
3780         * config/visium/visium-protos.h (split_double_move): Rename into...
3781         (visium_split_double_move): ...this.
3782         (visium_split_double_add): Declare.
3783         * config/visium/visium.c (split_double_move): Rename into...
3784         (visium_split_double_move): ...this.
3785         (visium_split_double_add): New function.
3786         (visium_expand_copysign): Renumber operands for consistency.
3787         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
3788         (DFmode move splitter): Likewise.
3789         (*addi3_insn): Split by means of visium_split_double_add.
3790         (*adddi3_insn_flags): Delete.
3791         (*plus_plus_sltu<subst_arith>): New insn.
3792         (*subdi3_insn): Split by means of visium_split_double_add.
3793         (subdi3_insn_flags): Delete.
3794         (*minus_minus_sltu<subst_arith>): New insn.
3795         (*negdi2_insn): Split by means of visium_split_double_add.
3796         (*negdi2_insn_flags): Delete.
3797
3798 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
3799
3800         * configure.ac: Treat a --with-headers option without argument
3801         the same as the default (i.e. consult sys-include directory).
3802         * configure: Regenerate.
3803
3804 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3805
3806         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
3807         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
3808         prototype.
3809         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
3810         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3811
3812 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3813
3814         PR target/63596
3815         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
3816         tree-stdarg analysis results.
3817         (aarch64_setup_incoming_varargs): Likewise.
3818
3819 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3820
3821         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
3822         va_list_gpr_counter_field and va_list_fpr_counter_field.
3823
3824 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
3825
3826         PR67609
3827         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
3828         * config/aarch64/aarch64.c
3829         (aarch64_cannot_change_mode_class): Remove function.
3830         * config/aarch64/aarch64-protos.h
3831         (aarch64_cannot_change_mode_class): Remove.
3832
3833 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3834
3835         * cfgloop.c (record_niter_bound): Record likely upper bounds.
3836         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
3837         get_likely_max_loop_iterations_int): New.
3838         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
3839         any_likely_upper_bound.
3840         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
3841         Declare.
3842         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
3843         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
3844         upper bound.
3845         (unroll_loop_constant_iterations): Likewise.
3846         (unroll_loop_runtime_iterations): Likewise.
3847         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
3848         * lto-streamer-out.c (output_cfg): Likewise.
3849         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
3850         bounds.
3851         (canonicalize_loop_induction_variables): Dump likely upper bounds.
3852         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
3853         (likely_max_loop_iterations): New.
3854         (likely_max_loop_iterations_int): New.
3855         (likely_max_stmt_executions): New.
3856         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
3857         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
3858         likely_max_stmt_executions): Declare.
3859
3860 2016-05-27  Marek Polacek  <polacek@redhat.com>
3861
3862         PR middle-end/71308
3863         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
3864
3865 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3866
3867         * config/s390/s390.md (2x risbg splitters): Use
3868         reg_overlap_mentioned_p instead of rtx_equal_p.
3869
3870 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3871
3872         * combine.c (make_compound_operation): Take known zero bits into
3873         account when checking for possible zero_extend.
3874
3875 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3876
3877         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
3878         Use const_int_operand for operand 2 predicate.  Simplify expand code
3879         as a result.
3880
3881 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3882
3883         PR middle-end/71279
3884         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3885         into comparison.
3886
3887 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3888
3889         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
3890         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
3891         that returns CC_SESWPmode and CC_ZESWPmode.
3892         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
3893         and CC_SESWPmode.
3894         (aarch64_rtx_costs): Likewise.
3895
3896 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3897
3898         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3899         for ISA 3.0 min/max support.
3900         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3901         conditional move support.
3902         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3903         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3904         available.
3905         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3906         conditional moves where the comparison type is different from move
3907         type.
3908         (fp_minmax): New code iterator for smin/smax.
3909         (minmax): New code attributes for min/max.
3910         (SMINMAX): Likewise.
3911         (smax<mode>3): Combine min, max insns into one insn using the
3912         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3913         instructions that don't need -ffast-math.
3914         (s<minmax><mode>3): Likewise.
3915         (smax<mode>3_vsx): Likewise.
3916         (smin<mode>3): Likewise.
3917         (s<minmax><mode>3_vsx): Likewise.
3918         (smin<mode>3_vsx): Likewise.
3919         (pre-VSX min/max splitters): Likewise.
3920         (s<minmax><mode>3_fpr): Likewise.
3921         (movsfcc): Rewrite floating point conditional moves to combine
3922         SFmode/DFmode into a single insn.
3923         (mov<mode>cc): Likewise.
3924         (movdfcc): Likewise.
3925         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3926         SFDF2 iterators to handle all combinations.
3927         (fseldfsf4): Likewise.
3928         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3929         (fseldfdf4): Likewise.
3930         (fselsfdf4): Likewise.
3931         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3932         comparison instructions that set a 0/-1 mask, and use it for
3933         floating point conditional move via XXSEL.
3934         (fpmask<mode>): Likewise.
3935         (xxsel<mode>): Likewise.
3936         * config/rs6000/predicates.md (min_max_operator): Delete, no
3937         longer used.
3938         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3939         instructions that generate a 0/-1 mask for use with XXSEL.
3940         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3941         say whether floating point min/max is available, either through
3942         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3943         (TARGET_MINMAX_DF): Likewise.
3944
3945 2016-05-27  Alan Modra  <amodra@gmail.com>
3946
3947         PR rtl-optimization/71275
3948         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
3949         for update_equiv_regs and combine_and_move_insns.
3950
3951 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
3952
3953         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
3954         if_then_else or cond RTXes to calculate attribute value.
3955         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
3956         <attr "length_immediate>: Ditto.
3957         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
3958         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
3959         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
3960         <attr "type">: Ditto.
3961         <attr "prefix_data16">: Ditto.
3962         <attr "prefix_extra">: Ditto.
3963         <attr "length_immediate">: Ditto.
3964         <attr "prefix">: Ditto.
3965         (vec_set<mode>_0) <attr "isa">: Ditto.
3966         <attr "prefix_extra">: Ditto.
3967         <attr "length_immediate">: Ditto.
3968         <attr "prefix">: Ditto.
3969         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
3970         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
3971         (sse2_storelpd) <attr "prefix_data16">: Ditto.
3972         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
3973         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
3974         <attr "length_immediate">: Ditto.
3975         <attr "prefix">: Ditto.
3976         (sse2_movsd) <attr "length_immediate">: Ditto.
3977         <attr "prefix">: Ditto.
3978         (vec_concatv2df)  <attr "isa">: Ditto.
3979         <attr "prefix">: Ditto.
3980         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
3981         (*vec_extractv2di_1) <attr "isa">: Ditto.
3982         <attr "type">: Ditto.
3983         <attr "length_immediate">: Ditto.
3984         <attr "prefix_rex">: Ditto.
3985         <attr "prefix_extra">: Ditto.
3986         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
3987         <attr "prefix_extra">: Ditto.
3988         <attr "length_immediate">: Ditto.
3989         (vec_concatv2di) <attr "isa">: Ditto.
3990         <attr "prefix_extra">: Ditto.
3991         <attr "length_immediate">: Ditto.
3992         <attr "prefix">: Ditto.
3993
3994 2016-05-26  Martin Liska  <mliska@suse.cz>
3995
3996         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3997         function.
3998         (operator+): Likewise.
3999         (operator-): Likewise.
4000         (comp_cost::operator+=): Likewise.
4001         (comp_cost::operator-=): Likewise.
4002         (comp_cost::operator/=): Likewise.
4003         (comp_cost::operator*=): Likewise.
4004         (operator<): Likewise.
4005         (operator==): Likewise.
4006         (operator<=): Likewise.
4007         (new_cost): Remove.
4008         (infinite_cost_p): Likewise.
4009         (add_costs): Likewise.
4010         (sub_costs): Likewise.
4011         (compare_costs): Likewise.
4012         (set_group_iv_cost): Use the newly introduced functions.
4013         (get_address_cost): Likewise.
4014         (get_shiftadd_cost): Likewise.
4015         (force_expr_to_var_cost): Likewise.
4016         (split_address_cost): Likewise.
4017         (ptr_difference_cost): Likewise.
4018         (difference_cost): Likewise.
4019         (get_computation_cost_at): Likewise.
4020         (determine_group_iv_cost_generic): Likewise.
4021         (determine_group_iv_cost_address): Likewise.
4022         (determine_group_iv_cost_cond): Likewise.
4023         (autoinc_possible_for_pair): Likewise.
4024         (determine_group_iv_costs): Likewise.
4025         (cheaper_cost_pair): Likewise.
4026         (iv_ca_recount_cost): Likewise.
4027         (iv_ca_set_no_cp): Likewise.
4028         (iv_ca_set_cp): Likewise.
4029         (iv_ca_cost): Likewise.
4030         (iv_ca_new): Likewise.
4031         (iv_ca_dump): Likewise.
4032         (iv_ca_narrow): Likewise.
4033         (iv_ca_prune): Likewise.
4034         (iv_ca_replace): Likewise.
4035         (try_add_cand_for): Likewise.
4036         (try_improve_iv_set): Likewise.
4037         (find_optimal_iv_set): Likewise.
4038
4039 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
4040
4041         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
4042         that internal functions will clobber all caller-saved registers.
4043
4044 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4045
4046         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
4047         Return a better case_values_threshold when optimizing.
4048
4049 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4050
4051         * config/aarch64/aarch64-simd.md (aarch64_combinez):
4052         Add ? to integer variant.
4053         (aarch64_combinez_be): Likewise.
4054
4055 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
4056
4057         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
4058         instead of x constraint.
4059         (vcvtps2ph256<mask_name>): Likewise.
4060
4061         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
4062         alternative.  Formatting fix.
4063
4064         * config/i386/sse.md
4065         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
4066         to ...
4067         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
4068         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
4069         maybe_evex prefix instead of vex.
4070         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
4071         EXT_REX_SSE_REG_P (op0) case in the splitter.
4072
4073 2016-05-25  Jeff Law  <law@redhat.com>
4074
4075         PR tree-optimization/71272
4076         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
4077         Update comments.  Add test for empty path.
4078
4079 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4080
4081         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
4082         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
4083         special case builtin.
4084         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4085         code for ALTIVEC_BUILTIN_VEC_CMPNE.
4086         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4087         for __builtin_vec_cmpne.
4088
4089 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4090
4091         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4092         redundant test and bail out if the type of the new operand is not
4093         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4094
4095 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4096
4097         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
4098         (x_ix86_target_flags_explicit): Remove.
4099         * config/i386/i386.c (ix86_function_specific_save): Do not copy
4100         x_ix86_target_flags_explicit.
4101         (ix86_function_specific_restore): Ditto.
4102
4103 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4104             H.J. Lu  <hongjiu.lu@intel.com>
4105
4106         PR target/70738
4107         * common/config/i386/i386-common.c
4108         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
4109         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
4110         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
4111         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
4112         (-mgeneral-regs-only): Add new option.
4113         * config/i386/i386.c (ix86_option_override_internal): Don't enable
4114         x87 instructions if only general registers are allowed.
4115         (ix86_target_string): Add ix86_flags argument. Handle additional
4116         flags options through ix86_flags argument.  Update all callers.
4117         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
4118
4119 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4120
4121         PR rtl-optimization/66940
4122         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
4123         decrementing desired_val will not overflow before performing these
4124         operations.
4125
4126 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
4127
4128         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
4129         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
4130         * config/i386/i386.c (enum ix86_builtins): Add
4131         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
4132         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
4133         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
4134         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
4135         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
4136         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
4137         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
4138         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
4139         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
4140         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
4141         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
4142         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
4143         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
4144         __builtin_ia32_cvtps2dq512_mask.
4145         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
4146         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
4147         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
4148         * config/i386/sse.md
4149         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
4150         Rename to ...
4151         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
4152         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
4153         to ...
4154         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
4155         (avx512f_vec_pack_sfix_v8df): New define_expand.
4156         (avx512f_roundpd512): Rename to ...
4157         (avx512f_round<castmode>512): ... this.  Change iterator.
4158         (avx512f_roundps512_sfix): New define_expand.
4159         (round<mode>2_sfix): Change iterator.
4160
4161 2016-05-25  Nick Clifton  <nickc@redhat.com>
4162
4163         * config/msp430/msp430.c (msp430_attr): Produce an error if a
4164         static interrupt handler is detected.
4165         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
4166         default linker script.
4167         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
4168         the low part of a symbolic pointer.
4169
4170 2016-05-25  Richard Biener  <rguenther@suse.de>
4171
4172         PR tree-optimization/71261
4173         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
4174         interesting stmt instead of immediate uses when looking
4175         for the use operand to replace.
4176
4177 2016-05-25  Martin Liska  <mliska@suse.cz>
4178
4179         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
4180
4181 2016-05-25  Richard Biener  <rguenther@suse.de>
4182
4183         PR tree-optimization/71264
4184         * tree-vect-stmts.c (vect_init_vector): Properly deal with
4185         vector type val.
4186
4187 2016-05-25  Martin Liska  <mliska@suse.cz>
4188
4189         PR tree-optimization/71239
4190         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
4191         if DECL_SIZE is NULL.
4192
4193 2016-05-25  Richard Biener  <rguenther@suse.de>
4194
4195         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
4196         * tree-if-conv.c (pass_data_if_conversion): Use it.
4197
4198 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4199
4200         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
4201         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
4202         * varpool.c (varpool_node::get_availability): Likewise.
4203
4204 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4205
4206         * config/rs6000/altivec.md (VNEG iterator): New iterator for
4207         VNEGW/VNEGD instructions.
4208         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
4209         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
4210         support for ISA 3.0 VNEGW/VNEGD instructions.
4211
4212 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
4213
4214         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
4215         pointers inside OACC_DATA regions.
4216         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
4217         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
4218         (gimplify_adjust_omp_clauses): Fix typo in comment.
4219
4220 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4221
4222         * config/rs6000/altivec.md (VParity): New mode iterator for vector
4223         parity built-in functions.
4224         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
4225         zeros.
4226         (p9v_parity<mode>2): Likewise.
4227         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
4228         parity.
4229         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
4230         (parity<mode>2): ISA 3.0 expander for vector parity.
4231         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
4232         power9 built-ins.
4233         (BU_P9_64BIT_MISC_0): Likewise.
4234         (BU_P9_MISC_0): Likewise.
4235         (BU_P9V_AV_1): Likewise.
4236         (BU_P9V_AV_2): Likewise.
4237         (BU_P9V_AV_3): Likewise.
4238         (BU_P9V_AV_P): Likewise.
4239         (BU_P9V_VSX_1): Likewise.
4240         (BU_P9V_OVERLOAD_1): Likewise.
4241         (BU_P9V_OVERLOAD_2): Likewise.
4242         (BU_P9V_OVERLOAD_3): Likewise.
4243         (VCTZB): Add vector count trailing zeros support.
4244         (VCTZH): Likewise.
4245         (VCTZW): Likewise.
4246         (VCTZD): Likewise.
4247         (VPRTYBD): Add vector parity support.
4248         (VPRTYBQ): Likewise.
4249         (VPRTYBW): Likewise.
4250         (VCTZ): Add overloaded vector count trailing zeros support.
4251         (VPRTYB): Add overloaded vector parity support.
4252         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4253         overloaded vector count trailing zeros and parity instructions.
4254         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
4255         vector parity support.
4256         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
4257         trailing zeros support.
4258         (vec_cntlz): Likewise.
4259         (vec_vctzb): Likewise.
4260         (vec_vctzd): Likewise.
4261         (vec_vctzh): Likewise.
4262         (vec_vctzw): Likewise.
4263         (vec_vprtyb): Add ISA 3.0 vector parity support.
4264         (vec_vprtybd): Likewise.
4265         (vec_vprtybw): Likewise.
4266         (vec_vprtybq): Likewise.
4267         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4268         the ISA 3.0 vector count trailing zeros and vector parity built-in
4269         functions.
4270
4271 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4272
4273         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4274         when there is stmt_to_insert.
4275
4276 2016-05-24  Martin Sebor  <msebor@redhat.com>
4277
4278         PR c++/71147
4279         * tree.h (complete_or_array_type_p): New inline function.
4280
4281 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4282
4283         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4284         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4285         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
4286
4287         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
4288         Limit 1st alternative to noavx isa, split 2nd alternative into one
4289         noavx and one avx alternative, use *x and Bm in the former and
4290         x and m in the latter.
4291
4292         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
4293         of sse4 for the first alternative, drop %v from the template
4294         and d operand modifier.  Split second alternative into one sse4_noavx
4295         and one avx alternative, use *x instead of *v in the former and v
4296         instead of *v in the latter.
4297         (*sse4_1_extractps): Use noavx isa instead of * for the first
4298         alternative, drop %v from the template.  Split second alternative into
4299         one noavx and one avx alternative, use *x instead of *v in the
4300         former and v instead of *v in the latter.
4301         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
4302         with noavx and the last one with avx.
4303         (sse4_1_phminposuw): Guard first alternative with noavx isa,
4304         split the second one into one noavx and one avx alternative,
4305         use *x and Bm in the former and x and m in the latter one.
4306         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
4307         alternatives.
4308
4309         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
4310         first two alternatives to noavx, use *x instead of *v in the second
4311         one, add avx alternative without *.
4312         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
4313         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
4314         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
4315
4316 2016-05-24  Jeff Law  <law@redhat.com>
4317
4318         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
4319         New function, extracted from...
4320         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
4321         Allow simple copies and constant initializations in the SSA chain.
4322
4323 2016-05-24  Marek Polacek  <polacek@redhat.com>
4324
4325         PR c/71249
4326         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
4327         scope.
4328
4329 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4330
4331         PR c++/71257
4332         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4333         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4334         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
4335         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
4336         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
4337
4338 2016-05-24  Richard Biener  <rguenther@suse.de>
4339
4340         PR tree-optimization/71240
4341         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
4342         has integral type.
4343
4344 2016-05-24  Richard Biener  <rguenther@suse.de>
4345
4346         PR tree-optimization/71230
4347         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
4348
4349 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4350
4351         * tree-vectorizer.h (vectorizable_comparison): Delete.
4352         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
4353         PURE_SLP_STMT check.
4354         * tree-vect-stmts.c (vectorizable_call): Likewise.
4355         (vectorizable_simd_clone_call): Likewise.
4356         (vectorizable_conversion): Likewise.
4357         (vectorizable_assignment): Likewise.
4358         (vectorizable_shift): Likewise.
4359         (vectorizable_operation): Likewise.
4360         (vectorizable_load): Likewise.
4361         (vectorizable_condition): Likewise.
4362         (vectorizable_store): Likewise.  Assert that we don't have
4363         hybrid SLP.
4364         (vectorizable_comparison): Make static.  Remove redundant
4365         PURE_SLP_STMT check.
4366         (vect_transform_stmt): Assert that we always have an slp_node
4367         if PURE_SLP_STMT.
4368
4369 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4370
4371         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
4372         operands[2] against 1 with comparison against CONST1_RTX.
4373         (<shift>di3_neon): Likewise.
4374         * config/arm/predicates.md (const0_operand): Replace with comparison
4375         against CONST0_RTX.
4376
4377 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4378
4379         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
4380         operands[2] against 1 with comparison against CONST1_RTX.
4381         (ashrdi3): Likewise.
4382         (lshrdi3): Likewise.
4383         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
4384         UINTVAL.
4385         (ashrsi3): Likewise.
4386         (lshrsi3): Likewise.
4387         (rotrsi3): Likewise.
4388         (define_split above *compareqi_eq0): Likewise.
4389         (define_split above "prologue"): Likewise.
4390         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
4391         * config/arm/predicates.md (shift_operator): Likewise.
4392         (shift_nomul_operator): Likewise.
4393         (sat_shift_operator): Likewise.
4394         (thumb1_cmp_operand): Likewise.
4395         (const_neon_scalar_shift_amount_operand): Replace manual range
4396         check with IN_RANGE.
4397         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
4398         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
4399
4400 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4401
4402         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
4403         with HOST_WIDE_INT_1.
4404         (insv): Likewise.
4405         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
4406         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
4407         (arm_canonicalize_comparison): Likewise.
4408         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
4409         HOST_WIDE_INT_1.
4410         (thumb1_size_rtx_costs): Likewise.
4411         (vfp_const_double_index): Replace cast of 1 to unsigned
4412         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4413         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
4414         HOST_WIDE_INT_1.
4415         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
4416         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4417         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
4418         HOST_WIDE_INT with HOST_WIDE_INT_1.
4419
4420 2016-05-24  Marek Polacek  <polacek@redhat.com>
4421
4422         * tree-cfg.h (should_remove_lhs_p): New predicate.
4423         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
4424         * gimplify.c (gimplify_modify_expr): Likewise.
4425         * tree-cfg.c (verify_gimple_call): Likewise.
4426         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
4427         * gimple-fold.c: Include "tree-cfg.h".
4428         (gimple_fold_call): Use should_remove_lhs_p.
4429
4430 2016-05-24  Richard Biener  <rguenther@suse.de>
4431
4432         PR tree-optimization/71253
4433         * cfganal.h (control_dependences): Make robust against edge
4434         and BB removal.
4435         (control_dependences::control_dependences): Remove edge_list argument.
4436         (control_dependences::get_edge): Remove.
4437         (control_dependences::get_edge_src): Add.
4438         (control_dependences::get_edge_dest): Likewise.
4439         (control_dependences::m_el): Make a vector of edge src/dest index.
4440         * cfganal.c (control_dependences::find_control_dependence): Adjust.
4441         (control_dependences::control_dependences): Likewise.
4442         (control_dependences::~control_dependence): Likewise.
4443         (control_dependences::get_edge): Remove.
4444         (control_dependences::get_edge_src): Add.
4445         (control_dependences::get_edge_dest): Likewise.
4446         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
4447         get_edge_src.
4448         (perform_tree_ssa_dce): Adjust.
4449         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
4450         get_edge_src.
4451         (pass_loop_distribution::execute): Adjust.  Do loop destroying
4452         conditional on changed.
4453
4454 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4455
4456         PR target/69857
4457         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
4458         return.  Reindent transformation comment and mention the ARM state
4459         behavior.
4460
4461 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4462
4463         PR middle-end/71252
4464         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
4465         after build_and_add_sum creates new use stmt.
4466
4467 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4468
4469         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
4470         load_lanes/grouped_load classification comes first.  Don't check
4471         whether the vectorization factor is a multiple of the group size
4472         for load_lanes.
4473
4474 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4475
4476         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
4477         GROUP_GAP for single-element interleaving.
4478         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
4479         variable.
4480
4481 2016-05-24  Richard Biener  <rguenther@suse.de>
4482
4483         PR middle-end/70434
4484         PR c/69504
4485         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
4486         bases which are accessed with non-invariant indices.
4487         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
4488         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
4489
4490 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4491
4492         PR middle-end/71170
4493         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
4494         (add_to_ops_vec): Add stmt_to_insert.
4495         (add_repeat_to_ops_vec): Init stmt_to_insert.
4496         (insert_stmt_before_use): New.
4497         (transform_add_to_multiply): Remove mult_stmt insertion and add it
4498         to ops vector.
4499         (get_ops): Init stmt_to_insert.
4500         (maybe_optimize_range_tests): Likewise.
4501         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
4502         (rewrite_expr_tree_parallel): Likewise.
4503         (reassociate_bb): Likewise.
4504
4505 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4506
4507         PR target/71201
4508         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
4509         ISA 3.0 xxperm fusion alternative.
4510         (altivec_vperm_v8hiv16qi): Likewise.
4511         (altivec_vperm_<mode>_uns_internal): Likewise.
4512         (vperm_v8hiv4si): Likewise.
4513         (vperm_v16qiv8hi): Likewise.
4514
4515 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4516             Kelvin Nilsen  <kelvin@gcc.gnu.org>
4517
4518         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
4519         vpermr/xxpermr on ISA 3.0.
4520         (altivec_expand_vec_perm_le): Likewise.
4521         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
4522         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
4523         ISA 3.0.
4524
4525 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
4526
4527         * config/i386/i386.h (IS_STACK_MODE): Enable for
4528         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
4529         SSE_FLOAT_MODE_P macros.
4530         * config/i386/i386.c (ix86_preferred_reload_class): Use
4531         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
4532         Cleanup regclass processing for CONST_DOUBLE_P.
4533         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
4534         (ix86_rtx_costs): Remove redundant TARGET_80387 check
4535         with IS_STACK_MODE macro.
4536         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
4537         with TARGET_SSE2.
4538         (*movdf_internal): Use IS_STACK_MODE macro.
4539         (*movsf_internal): Ditto.
4540
4541 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
4542
4543         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
4544         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
4545
4546 2016-05-23  Jeff Law  <law@redhat.com>
4547
4548         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
4549         extracted from ...
4550         (fsm_find_control_statement_thread_paths): Call it.
4551
4552 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4553
4554         PR ipa/71234
4555         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
4556         from_global_constant if t is not NULL.
4557
4558 2016-05-23  Marek Polacek  <polacek@redhat.com>
4559
4560         PR c/49859
4561         * common.opt (Wswitch-unreachable): New option.
4562         * doc/invoke.texi: Document -Wswitch-unreachable.
4563         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
4564         warning.
4565
4566 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
4567
4568         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
4569         TMR_INDEX is non-NULL.
4570
4571 2016-05-23  Richard Biener  <rguenther@suse.de>
4572
4573         PR tree-optimization/71230
4574         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
4575         (try_special_add_to_ops): ... here.  Always test for single-use.
4576
4577 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4578
4579         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
4580         default block if a PHI node in the original one would be resized.
4581
4582 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4583
4584         PR tree-optimization/58135
4585         * tree-vect-slp.c: When group size is not multiple
4586         of vector size, allow splitting of store group at
4587         vector boundary.
4588
4589 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
4590
4591         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
4592
4593 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
4594
4595         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
4596         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
4597         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
4598         of 64x2.
4599
4600         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
4601         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
4602         v constraint instead of x and vinserti32x4 insn.
4603
4604         * config/i386/sse.md (i128vldq): New mode iterator.
4605         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
4606         avx512dq and avx512vl alternatives.
4607
4608         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
4609         constraint, use maybe_evex prefix instead of vex.
4610         (vec_dupv4sf): Use v constraint instead of x for output
4611         operand except for noavx alternative, use Yv constraint
4612         instead of x for input.  Use maybe_evex prefix instead of vex.
4613         (*vec_dupv4si): Likewise.
4614         (*vec_dupv2di): Likewise.
4615
4616 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
4617
4618         PR middle-end/40921
4619         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
4620         (linearize_expr_tree): Call try_special_add_to_ops.
4621         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
4622
4623 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4624
4625         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
4626         to computed stack_usage.
4627
4628 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
4629
4630         PR target/71103
4631         * config/avr/avr.md (define_expand "mov<mode>"): If the source
4632         operand is subreg (symbol_ref) then move the symbol ref to register.
4633
4634 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
4635
4636         * tree.c (array_at_struct_end_p): Look through MEM_REF.
4637
4638 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
4639
4640         PR middle-end/71179
4641         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
4642         VECTOR type.
4643
4644 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4645
4646         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
4647         ranges by calling get_single_symbol and tidy up.  Look more closely
4648         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
4649
4650 2016-05-20  Jeff Law  <law@redhat.com>
4651
4652         * bitmap.c (bitmap_find_bit): Remove useless test.
4653
4654 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
4655
4656         * function.c (thread_prologue_and_epilogue_insns): Commit the
4657         insertion of the epilogue.
4658
4659 2016-05-20  Martin Jambor  <mjambor@suse.cz>
4660
4661         PR tree-optimization/70884
4662         * tree-sra.c (initialize_constant_pool_replacements): Do not check
4663         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
4664         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
4665         of constant pool data as a reason for scalarization.
4666
4667 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4668
4669         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
4670         for naked functions.
4671         (thumb1_expand_prologue): Likewise.
4672
4673 2016-05-20  Nathan Sidwell  <nathan@acm.org>
4674
4675         * config/nvptx/nptx.c (nvptx_option_override): Only set
4676         flag_toplevel_reorder, if not explicitly specified.  Set
4677         flag_no_common, unless explicitly specified.
4678
4679 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4680
4681         * calls.c (can_implement_as_sibling_call_p): Mark param
4682         reg_parm_stack_space with ATTRIBUTE_UNUSED.
4683
4684 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
4685
4686         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
4687         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
4688         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
4689         constants.
4690         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
4691         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
4692         and CASE_CONST_ANY.
4693
4694 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
4695
4696         * config/nvptx/nvptx.md (sincossf3): New pattern.
4697
4698 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4699
4700         * calls.c (maybe_complain_about_tail_call): New function.
4701         (initialize_argument_information): Call
4702         maybe_complain_about_tail_call when clearing *may_tailcall.
4703         (can_implement_as_sibling_call_p): Call
4704         maybe_complain_about_tail_call when returning false.
4705         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
4706         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
4707         if tail-call optimization fails.
4708         * cfgexpand.c (expand_call_stmt): Initialize
4709         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
4710         * gimple-pretty-print.c (dump_gimple_call): Dump
4711         gimple_call_must_tail_p.
4712         * gimple.c (gimple_build_call_from_tree): Call
4713         gimple_call_set_must_tail with the value of
4714         CALL_EXPR_MUST_TAIL_CALL.
4715         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
4716         (gimple_call_set_must_tail): New function.
4717         (gimple_call_must_tail_p): New function.
4718         * print-tree.c (print_node): Update printing of TREE_STATIC
4719         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
4720         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
4721         trailing comment listing applicable flags.
4722         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
4723
4724 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4725
4726         * calls.c (expand_call): Move "Rest of purposes for tail call
4727         optimizations to fail" to...
4728         (can_implement_as_sibling_call_p): ...this new function, and
4729         split into multiple "if" statements.
4730
4731 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4732
4733         * cfgloop.h (expected_loop_iterations_unbounded,
4734         expected_loop_iterations): Unconstify.
4735         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
4736         profile with known upper bound; return 3 when profile is absent.
4737         (expected_loop_iterations): Update.
4738
4739 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4740
4741         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
4742         and get_max_loop_iterations_int.
4743
4744 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4745
4746         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
4747         realistic upper bounds here.
4748
4749 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
4750
4751         PR c++/71210
4752         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
4753         calls if the LHS is variable length or has addressable type.
4754         If targets[0]->decl is a noreturn call with void return type and
4755         zero arguments, adjust fntype and remove lhs in that case.
4756
4757 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
4758
4759         PR tree-optimization/71079
4760         PR tree-optimization/71206
4761         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
4762
4763 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4764
4765         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
4766         (get_vec_alignment_for_array_decl): Likewise.
4767         (get_vec_alignment_for_record_decl): Likewise.
4768         (increase_alignment::execute): Move code to find alignment to
4769         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
4770         (type_align_map): New hash_map.
4771
4772 2016-05-20  Richard Guenther  <rguenther@suse.de>
4773
4774         PR tree-optimization/29756
4775         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
4776         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
4777         * fold-const.c (operand_equal_p): Likewise.
4778         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
4779         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
4780         * tree-inline.c (estimate_operator_cost): Likewise.
4781         * tree-pretty-print.c (dump_generic_node): Likewise.
4782         * tree-ssa-operands.c (get_expr_operands): Likewise.
4783         * cfgexpand.c (expand_debug_expr): Likewise.
4784         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4785         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
4786         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
4787         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
4788         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
4789         (execute_update_addresses_taken): Do it.
4790
4791 2016-05-20  Richard Biener  <rguenther@suse.de>
4792
4793         PR tree-optimization/71185
4794         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
4795         register operations.
4796
4797 2016-05-20  Richard Biener  <rguenther@suse.de>
4798
4799         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
4800         gimple_seq_add_seq_without_update.
4801         (release_bb_predicate): Assert we have no operands to free.
4802         (if_convertible_loop_p_1): Calculate post dominators later.
4803         Do not free BB predicates here.
4804         (combine_blocks): Do not recompute BB predicates.
4805         (version_loop_for_if_conversion): Save BB predicates around
4806         loop versioning.
4807
4808 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4809
4810         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
4811         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
4812         code.  Ignore sibcalls on EDGE_IGNORE edges.
4813         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
4814         on edges for sibcalls that run without prologue.  The rest of the
4815         function is combined from...
4816         (fix_fake_fallthrough_edge): ... this, and ...
4817         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
4818         function argument, make it a local variable.
4819
4820 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
4821
4822         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
4823         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
4824         for 32-bit mode and SEH for 64-bit.
4825         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
4826         TARGET_64BIT_DEFAULT.
4827
4828 2016-05-19  Ryan Burn  <contact@rnburn.com>
4829
4830         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
4831         * gengtype.c (open_base_files): Add cilk.h to ifiles.
4832
4833 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
4834
4835         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
4836         force pending loads from memory.
4837
4838 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4839
4840         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
4841         (UNSPEC_DARN_32): New unspec constant.
4842         (UNSPEC_DARN_RAW): New unspec constant.
4843         (darn_32): New instruction.
4844         (darn_raw): New instruction.
4845         (darn): New instruction.
4846         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
4847         support and documentation for this macro.
4848         (BU_P9_MISC_1): New macro definition.
4849         (BU_P9_64BIT_MISC_0): New macro definition.
4850         (BU_P9_MISC_0): New macro definition.
4851         (darn_32): New builtin definition.
4852         (darn_raw): New builtin definition.
4853         (darn): New builtin definition.
4854         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
4855         RS6000_BUILTIN_0 directives to surround each occurrence of
4856         #include "rs6000-builtin.def".
4857         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
4858         RS6000_BTM_64BIT flags to the returned mask, depending on
4859         configuration.
4860         (def_builtin): Correct an error in the assignments made to the
4861         debugging variable attr_string.
4862         (rs6000_expand_builtin): Add support for no-operand built-in
4863         functions.
4864         (builtin_function_type): Remove fatal_error assertion that is no
4865         longer valid.
4866         (rs6000_common_init_builtins): Add support for no-operand built-in
4867         functions.
4868         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
4869         definition.
4870         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
4871         definition.
4872         (RS6000_BTM_64BIT): New macro definition.
4873         * doc/extend.texi: Document __builtin_darn (void),
4874         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
4875         functions.
4876
4877 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
4878
4879         * tree-vect-loop.c (vect_analyze_loop_2): Use also
4880         max_loop_iterations_int.
4881
4882 2016-05-19  Marek Polacek  <polacek@redhat.com>
4883
4884         PR tree-optimization/71031
4885         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
4886         condition and adjust the code a bit.
4887
4888 2016-05-19  Martin Liska  <mliska@suse.cz>
4889
4890         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
4891         auto_vec instead of vec.
4892
4893 2016-05-19  Martin Liska  <mliska@suse.cz>
4894
4895         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
4896
4897 2016-05-19  Martin Liska  <mliska@suse.cz>
4898
4899         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
4900
4901 2016-05-19  Martin Liska  <mliska@suse.cz>
4902
4903         * ipa-pure-const.c (set_function_state): Remove an existing
4904         funct_state.
4905         (remove_node_data): Do not free it as it's released
4906         in set_function_state.
4907
4908 2016-05-19  Martin Liska  <mliska@suse.cz>
4909
4910         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4911         bitmap.
4912
4913 2016-05-19  Martin Liska  <mliska@suse.cz>
4914
4915         * omp-simd-clone.c (simd_clone_adjust): Release vector.
4916
4917 2016-05-19  Martin Liska  <mliska@suse.cz>
4918
4919         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4920         an auto_vec instead of re-creating it.
4921
4922 2016-05-19  Martin Liska  <mliska@suse.cz>
4923
4924         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4925         auto_vec instead of vec.
4926
4927 2016-05-19  Martin Liska  <mliska@suse.cz>
4928
4929         * lto-section-in.c (lto_get_section_data): Call
4930         lto_check_version with additional argument.
4931         * lto-streamer.c (lto_check_version): Add new argument.
4932         * lto-streamer.h (lto_check_version): Likewise.
4933
4934 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4935
4936         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
4937         Don't add cost of inner memory when handling sign-extended loads.
4938
4939 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4940
4941         PR rtl-optimization/71148
4942         * cse.c (cse_main): Free dominance info.
4943         (rest_of_handle_cse): Don't free dominance info.
4944         (rest_of_handle_cse2): Likewise.
4945         (rest_of_handle_cse_after_global_opts): Likewise.
4946
4947 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4948
4949         PR target/71056
4950         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
4951         NULL_TREE early if NEON is not available.  Remove now redundant check
4952         in ARM_CHECK_BUILTIN_MODE.
4953
4954 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
4955
4956         PR sanitizer/64354
4957         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
4958         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
4959         * doc/cpp.texi: Document new macros.
4960
4961 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
4962
4963         PR tree-optimization/69848
4964         * tree-vect-loop.c (vectorizable_reduction): Don't factor
4965         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
4966
4967 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4968
4969         * function.c (thread_prologue_and_epilogue_insn): Move the
4970         "goto epilogue_done" one block later.
4971
4972 2016-05-19  Richard Biener  <rguenther@suse.de>
4973
4974         PR tree-optimization/70729
4975         * passes.def: Move LIM pass before PRE.  Remove no longer
4976         required copyprop and move first DCE out of the loop pipeline.
4977
4978 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
4979
4980         PR driver/69265
4981         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
4982         (OBJS-libcommon-target): ...here.
4983         * opts-common.c: Include spellcheck.h.
4984         (cmdline_handle_error): Build a vec of valid options and use it
4985         to suggest provide hints for misspelled arguments.
4986
4987 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR c++/71100
4990         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4991         lhs if it has TREE_ADDRESSABLE type.
4992
4993 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4994
4995         PR target/71145
4996         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4997         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4998
4999 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5000
5001         PR ipa/69708
5002         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
5003         input for NOP_EXPR pass-through functions.
5004         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
5005         aggregate global constant VAR_DECLs in constant jump functions.
5006
5007 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5008
5009         PR ipa/69708
5010         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
5011         from TREE_READONLY parameters.
5012
5013 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5014
5015         PR ipa/69708
5016         * cgraph.h (cgraph_indirect_call_info): New field
5017         guaranteed_unmodified.
5018         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
5019         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5020         appropriate.
5021         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
5022         pass the parameter value to ipa_find_agg_cst_for_param.
5023         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
5024         guaranteed_unmodified, store AA results there instead of bailing out
5025         if present.
5026         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
5027         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
5028         (find_constructor_constant_at_offset): New function.
5029         (ipa_find_agg_cst_from_init): Likewise.
5030         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
5031         static initializers of contants, report back through a new paameter
5032         from_global_constant if that was the case.
5033         (try_make_edge_direct_simple_call): Also pass parameter value to
5034         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5035         appropriate.
5036         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
5037         (ipa_read_indirect_edge_info): Likewise.
5038         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
5039         (ipa_load_from_parm_agg): Likewise.
5040
5041 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
5042
5043         PR rtl-optimization/71150
5044         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
5045         check.
5046
5047 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5048
5049         PR target/70915
5050         * config/rs6000/constraints.md (wE constraint): New constraint
5051         for a vector constant that can be loaded with XXSPLTIB.
5052         (wM constraint): New constraint for a vector constant of a 1's.
5053         (wS constraint): New constraint for a vector constant that can be
5054         loaded with XXSPLTIB and a vector sign extend instruction.
5055         * config/rs6000/predicates.md (xxspltib_constant_split): New
5056         predicates for wE/wS constraints.
5057         (xxspltib_constant_nosplit): Likewise.
5058         (easy_vector_constant): Add support for constants that can be
5059         loaded via XXSPLTIB.
5060         (all_ones_constant): New predicate for vector constant with all
5061         1's set.
5062         (splat_input_operand): Add support for ISA 3.0 word splat operations.
5063         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
5064         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
5065         instruction and possibly with a sign extension.
5066         (output_vec_const_move): Add support for XXSPLTIB. If we are
5067         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
5068         instead of XXLXOR/XXLORC.
5069         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
5070         operations.
5071         (rs6000_legitimize_reload_address): Likewise.
5072         (rs6000_output_move_128bit): Use output_vec_const_move to emit
5073         constants.
5074         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
5075         combine VSX_M and VSX_M2 into one iterator.
5076         (VSX_M2): Likewise.
5077         (VSINT_84): New iterators for loading constants with XXSPLTIB.
5078         (VSINT_842): Likewise.
5079         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
5080         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
5081         XXSPLTIB instruction.
5082         (xxspltib_<mode>_nosplit): Likewise.
5083         (xxspltib_<mode>_split): New insn to load up constants with
5084         XXSPLTIB and a sign extend instruction.
5085         (vsx_mov<mode>): Replace single move that handled all vector types
5086         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
5087         moves (when -mvsx-timode is in effect) into the main vector
5088         moves.  Eliminate separate moves for <VSr> <VSa>, where the
5089         preferred register class (<VSr>) is listed first, and the
5090         secondary register class (<VSa>) is listed second with a '?' to
5091         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
5092         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
5093         that if the register was involved in a slow operation, the
5094         clear/set operation does not wait for the slow operation to
5095         finish.  Adjust the length attributes for 32-bit mode.  Use
5096         rs6000_output_move_128bit and drop the use of the string
5097         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
5098         spacing so that the alternatives and attributes don't generate
5099         long lines, and put things in columns, so that it is easier to
5100         match up the operands and attributes with the insn alternatives.
5101         (vsx_mov<mode>_64bit): Likewise.
5102         (vsx_mov<mode>_32bit): Likewise.
5103         (vsx_movti_64bit): Fold movti into normal vector moves.
5104         (vsx_movti_32bit): Likewise.
5105         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
5106         splat instructions.
5107         (vsx_splat_v4si_internal): Likewise.
5108         (vsx_splat_v4sf_internal): Likewise.
5109         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
5110         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
5111         extend vector elements.
5112         (vsx_sign_extend_hi_<mode>): Likewise.
5113         (vsx_sign_extend_si_v2di): Likewise.
5114         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
5115         declaration.
5116         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
5117         constraints.  Add trailing period to wL documentation.
5118
5119 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
5120
5121         PR middle-end/71020
5122         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
5123         * tree-dfa.c (replace_abnormal_ssa_names): New function.
5124         * tree-call-cdce.c: Include tree-dfa.h.
5125         (can_guard_call_p): New function, extracted from...
5126         (can_use_internal_fn): ...here.
5127         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
5128         and return void.
5129         (shrink_wrap_one_built_in_call): Likewise.
5130         (use_internal_fn): Likewise.
5131         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
5132         and return void.  Call replace_abnormal_ssa_names.
5133         (pass_call_cdce::execute): Check can_guard_call_p during the
5134         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
5135         will always change something.
5136
5137 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5138
5139         PR ipa/70646
5140         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5141         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
5142
5143 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5144
5145         PR ipa/70646
5146         * ipa-inline.h (condition): New field size.
5147         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
5148         for comaprison and store it into the new condition.
5149         (evaluate_conditions_for_known_args): Use condition size to check
5150         access sizes for all but CHANGED conditions.
5151         (unmodified_parm_1): New parameter size_p, store access size into it.
5152         (unmodified_parm): Likewise.
5153         (unmodified_parm_or_parm_agg_item): Likewise.
5154         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
5155         (set_cond_stmt_execution_predicate): Extract access sizes and store
5156         them to conditions.
5157         (set_switch_stmt_execution_predicate): Likewise.
5158         (will_be_nonconstant_expr_predicate): Likewise.
5159         (will_be_nonconstant_predicate): Likewise.
5160         (inline_read_section): Stream condition size.
5161         (inline_write_summary): Likewise.
5162
5163 2016-05-18  Richard Biener  <rguenther@suse.de>
5164
5165         * tree-ssa-loop-im.c (determine_max_movement): Properly add
5166         condition cost to PHI cost instead of total_cost.
5167
5168 2016-05-18  Martin Liska  <mliska@suse.cz>
5169
5170         PR fortran/70856
5171         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5172         merged variables.
5173
5174 2016-05-18  Richard Biener  <rguenther@suse.de>
5175
5176         * lto-streamer.h (LTO_major_version): Bump to 6.
5177
5178 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5179
5180         * function.c (make_split_prologue_seq, make_prologue_seq,
5181         make_epilogue_seq): New functions, factored out from...
5182         (thread_prologue_and_epilogue_insns): Here.
5183
5184 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5185
5186         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5187         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
5188         of before.  Add a comment.
5189
5190 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
5191
5192         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
5193         expression pointer, not pointer to the pointer.
5194
5195 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5196
5197         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
5198         (avx2_pbroadcast<mode>): Add another alternative with v instead
5199         of x constraints in it, using <pbroadcast_evex_isa> isa.
5200         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
5201
5202         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
5203         constraint x instead of v in second alternative, add avx512bw
5204         alternative.
5205
5206         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
5207         constraint x instead of v in second alternative, add avx512bw
5208         alternative.
5209
5210         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
5211         constraint x instead of v in second alternative, add avx512bw
5212         alternative.
5213
5214         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
5215         avx512bw alternative.
5216
5217 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5218
5219         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
5220         array to 128 chars.
5221         (define_insn "*andnottf3"): Ditto.
5222         (define_insn "*<code><mode>3"/any_logic): Ditto.
5223         (define_insn "*<code>tf3"/any_logic): Ditto.
5224         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
5225         operand to block AVX-512VL insn variant emit when it is not enabled.
5226
5227 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5228
5229         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
5230         constraint fot SF mode.
5231
5232 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
5233             Kirill Yukhin  <kirill.yukhin@intel.com>
5234
5235         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
5236         modifiers.
5237         (define_insn "rsqrt14<mode>"): Ditto.
5238         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5239         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5240         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
5241         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
5242         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
5243         Ditto.
5244         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
5245         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
5246         * config/i386/i386.c (ix86_print_operand): Expand check for size
5247         override codes for Intel syntax.
5248
5249 2016-05-18  Richard Biener  <rguenther@suse.de>
5250
5251         PR tree-optimization/71168
5252         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
5253         initialization earlier.
5254
5255 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
5256
5257         * config/aarch64/aarch64-simd.md
5258         (aarch64_reduc_plus_internal<mode>): Rename to...
5259         (reduc_plus_scal): ...This, and remove previous implementation.
5260
5261 2016-05-18  Richard Biener  <rguenther@suse.de>
5262
5263         * passes.def: Put late dse and cd_dce in canonical order.
5264
5265 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
5266
5267         * ipa-inline-transform.c (preserve_function_body_p): Look for
5268         first non-thunk clone.
5269         (save_function_body): Save into first non-thunk.
5270         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
5271         up call stmt id.
5272         (lto_output_node): Inline thunks don't need body in every
5273         partition.
5274         * lto-streamer-in.c: Do not fixup thunk clones.
5275         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
5276         thunks.
5277         * tree-inline.c (copy_bb): Be prepared for target node to be new after
5278         folding suceeds.
5279
5280 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5281
5282         PR middle-end/63586
5283         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
5284         (reassociate_bb): Call transform_add_to_multiply.
5285
5286 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5287
5288         * config/aarch64/aarch64.c (all_extensions): Removed unused
5289         static variable.
5290
5291 2016-05-17  Nathan Sidwell  <nathan@acm.org>
5292
5293         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
5294         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
5295
5296 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
5297
5298         PR tree-optimization/54579
5299         PR middle-end/55299
5300         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
5301
5302 2016-05-17  Marek Polacek  <polacek@redhat.com>
5303
5304         PR ipa/71146
5305         * tree-inline.c (expand_call_inline): Call
5306         maybe_remove_unused_call_args.
5307
5308 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
5309
5310         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
5311         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
5312         * doc/md.texi (fmin@var{m}3): Likewise.
5313
5314 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5315
5316         * match.pd (X & C): New transformation.
5317
5318 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5319
5320         * match.pd (~X & Y): New transformation.
5321
5322 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5323
5324         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
5325         information for new SSA_NAME.
5326         (simplify_conversion_using_ranges): Get range through get_range_info
5327         instead of get_value_range.
5328
5329 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5330
5331         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
5332         Remove inline assembly.
5333         (vmvn_s16): Likewise.
5334         (vmvn_s32): Likewise.
5335         (vmvn_u8): Likewise.
5336         (vmvn_u16): Likewise.
5337         (vmvn_u32): Likewise.
5338         (vmvnq_s8): Likewise.
5339         (vmvnq_s16): Likewise.
5340         (vmvnq_s32): Likewise.
5341         (vmvnq_u8): Likewise.
5342         (vmvnq_u16): Likewise.
5343         (vmvnq_u32): Likewise.
5344         (vmvn_p8): Likewise.
5345         (vmvnq_p16): Likewise.
5346
5347 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5348
5349         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
5350         Use builtin.
5351         (vmul_n_s16): Likewise.
5352         (vmul_n_s32): Likewise.
5353         (vmul_n_u16): Likewise.
5354         (vmul_n_u32): Likewise.
5355         (vmulq_n_f32): Likewise.
5356         (vmulq_n_f64): Likewise.
5357         (vmulq_n_s16): Likewise.
5358         (vmulq_n_s32): Likewise.
5359         (vmulq_n_u16): Likewise.
5360         (vmulq_n_u32): Likewise.
5361
5362 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5363
5364         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
5365         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
5366
5367 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5368
5369         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
5370         to *aarch64_fma4_elt_from_dup<mode>.
5371         (*aarch64_fnma4_elt_to_128df): Rename to
5372         *aarch64_fnma4_elt_from_dup<mode>.
5373         * config/aarch64/arm_neon.h (vfma_n_f64): New.
5374         (vfms_n_f32): Likewise.
5375         (vfms_n_f64): Likewise.
5376         (vfmsq_n_f32): Likewise.
5377         (vfmsq_n_f64): Likewise.
5378
5379 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
5380
5381         * wide-int.h: Change fixed_wide_int_storage from class to struct.
5382
5383 2016-05-17  Richard Biener  <rguenther@suse.de>
5384
5385         PR tree-optimization/71132
5386         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
5387         Only add control dependences for blocks in the loop.
5388         (build_rdg): Adjust.
5389         (generate_code_for_partition): Return whether loop should
5390         be destroyed and delay that.
5391         (distribute_loop): Likewise.
5392         (pass_loop_distribution::execute): Record loops to be destroyed
5393         and perform delayed destroying of loops.
5394
5395 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5396
5397         PR target/70809
5398         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
5399
5400 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5401
5402         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
5403
5404 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5405
5406         PR target/71114
5407         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
5408         insertion point for instructions generated by validize_mem.
5409
5410 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5411
5412         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
5413         in brackets.
5414
5415 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5416
5417         * config/aarch64/aarch64.c
5418         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
5419         rather than a macro.
5420
5421 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5422
5423         * doc/invoke.texi (AArch64 Options): Various updates.
5424
5425 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5426
5427         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
5428         into instrumentation thunks.
5429         * cif-code.def (CIF_CHKP): New.
5430
5431 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
5432
5433         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
5434
5435 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5436
5437         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
5438         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
5439
5440 2016-05-16  Marek Polacek  <polacek@redhat.com>
5441
5442         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
5443         commentary.
5444
5445 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5446
5447         PR hsa/70857
5448         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
5449         the outlined kernel function.
5450
5451 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
5452
5453         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
5454         (ISA_HAS_DLSA): Ditto.
5455
5456 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5457
5458         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
5459
5460 2016-05-16  Nathan Sidwell  <nathan@acm.org>
5461
5462         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
5463         (nvptx_name_replacement): Restore.  Add comment.
5464         (write_fn_proto, write_fn_proto_from_insn,
5465         nvptx_output_call_insn): Restore
5466         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
5467
5468 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5469
5470         * config/aarch64/aarch64.md
5471         (add<mode>3_compareC_cconly_imm): Remove use of %w.
5472         (add<mode>3_compareC_imm): Likewise.
5473         (<optab>si3_uxtw): Split into register and immediate variants.
5474         (andsi3_compare0_uxtw): Likewise.
5475         (and<mode>3_compare0): Likewise.
5476         (and<mode>3nr_compare0): Likewise.
5477         (stack_protect_test_<mode>): Don't use %x for memory operands.
5478
5479 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5480
5481         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
5482
5483 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5484
5485         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
5486         Split integer shifts into shift_reg and bfm.
5487         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5488         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5489         (ror<mode>3_insn): Likewise.
5490         (<optab>si3_insn_uxtw): Likewise.
5491         (<optab><mode>3_insn): Change to rotate_imm.
5492         (extr<mode>5_insn_alt): Likewise.
5493         (extrsi5_insn_uxtw): Likewise.
5494         (extrsi5_insn_uxtw_alt): Likewise.
5495
5496 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5497
5498         * doc/tm.texi: Regenerate.
5499         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
5500         (TARGET_INVALID_RETURN_TYPE): Remove.
5501         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
5502         TARGET_INVALID_RETURN_TYPE.
5503         * target.def (invalid_parameter_type): Remove.
5504         (invalid_return_type): Remove.
5505
5506 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5507
5508         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
5509         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
5510         calls from thunk.
5511         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
5512         gimple body.
5513         (preserve_function_body_p): No need to preserve function body
5514         * cif-codes.def (CIF_THUNK): Remove.
5515         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
5516
5517 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5518
5519         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
5520
5521 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5522
5523         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
5524         for thunks.
5525
5526 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5527
5528         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
5529         (inline_small_functions): Do not look for function symbol when
5530         resetting caches.
5531
5532 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5533
5534         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
5535         of inline thunks
5536
5537 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5538             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5539             Jiong Wang  <jiong.wang@arm.com>
5540
5541         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
5542         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
5543         Define __ARM_FP16_ARGS when appropriate.
5544         * config/arm/arm.c (arm_invalid_parameter_type): Remove
5545         declaration.
5546         (arm_invalid_return_type): Likewise.
5547         (TARGET_INVALID_PARAMETER_TYPE): Remove.
5548         (TARGET_INVALID_RETURN_TYPE): Remove.
5549         (aapcs_vfp_sub_candidate): Allow HFmode.
5550         (aapcs_vfp_allocate): Add comment.  Support HFmode.
5551         (aapcs_vfp_allocate_return_reg): Likewise.
5552         (struct aapcs_cp_arg_layout): Slightly reword comments for
5553         is_return_candidate and allocate_return_reg.
5554         (output_mov_vfp): Update assert.
5555         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
5556         condition.
5557         (arm_invalid_parameter_type): Remove.
5558         (amr_invalid_return_type): Remove.
5559         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
5560         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
5561         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
5562
5563 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5564
5565         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
5566         * config/aarch64/arch64-protos.h
5567         (aarch64_legitimize_reload_address): Remove.
5568         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
5569         Remove.
5570
5571 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5572
5573         * configure.ac: Add ACX_NONCANONICAL_HOST.
5574         * configure: Regenerate.
5575         * Makefile.in: Set host_noncanonical.
5576
5577 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
5578
5579         PR target/71097
5580         * config/i386/i386.md (*movtf_internal): Before register allocation,
5581         do not allow FP constants for CM_MEDIUM memory model, allow only
5582         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
5583         (*movxf_internal): Ditto.
5584         (*movdf_internal): Ditto.
5585         (*movsf_internal): Ditto.
5586
5587 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
5588
5589         PR rtl-optimization/67483
5590         * combine.c (make_compound_operation): Don't call extract_left_shift
5591         with negative shift amounts.
5592
5593 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
5594
5595         PR bootstrap/71071
5596         * fold-const.c (fold_checksum_tree): Allow modification
5597         of TYPE_ALIAS_SET during folding.
5598
5599         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
5600         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
5601         (ix86_split_to_parts): Likewise.  Fix up formatting.
5602
5603 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5604
5605         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
5606         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
5607         printf format.
5608
5609 2016-05-13  Nathan Sidwell  <nathan@acm.org>
5610
5611         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
5612         (nvptx_name_replacement): Delete.
5613         (write_fn_proto, write_fn_proto_from_insn,
5614         nvptx_output_call_insn): Remove nvptx_name_replacement call.
5615         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
5616         * langhooks.c (add_builtin_funcction_common): Call
5617         targetm.mangle_decl_assembler_name.
5618
5619         * config/nvptx/nvptx.c (write_fn_proto): Handle
5620         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
5621
5622 2016-05-13  Martin Liska  <mliska@suse.cz>
5623
5624         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
5625         and PRIu64 in printf format.
5626
5627 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5628
5629         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
5630         comment.
5631
5632 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5633
5634         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
5635         Change --param max-completely-peeled-times to
5636         --param max-completely-peel-times in dump file printing.
5637
5638 2016-05-13  Richard Biener  <rguenther@suse.de>
5639
5640         PR tree-optimization/42587
5641         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
5642         (find_bswap_or_nop_1): Likewise.
5643         (bswap_replace): Likewise.
5644
5645 2016-05-13  Martin Liska  <mliska@suse.cz>
5646
5647         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
5648         Initialize a variable with default value.
5649
5650 2016-05-13  Martin Liska  <mliska@suse.cz>
5651
5652         * doc/invoke.texi: Enhance explanation of error recovery
5653         of sanitizers.
5654
5655 2016-05-13  Martin Liska  <mliska@suse.cz>
5656
5657         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
5658         (struct cost_pair): Change inv_expr_id (int) to inv_expr
5659         (iv_inv_expr_ent *).
5660         (struct iv_inv_expr_ent): Comment struct fields.
5661         (sort_iv_inv_expr_ent): New function.
5662         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
5663         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
5664         a hash_map between iv_inv_expr_ent and number of usages.
5665         (niter_for_exit): Fix coding style.
5666         (tree_ssa_iv_optimize_init): Use renamed variable.
5667         (determine_base_object): Fix coding style.
5668         (alloc_iv): Likewise.
5669         (find_interesting_uses_outside): Likewise.
5670         (add_candidate_1): Likewise.
5671         (add_standard_iv_candidates): Likewise.
5672         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
5673         (prepare_decl_rtl): Fix coding style.
5674         (get_address_cost): Likewise.
5675         (get_shiftadd_cost): Likewise.
5676         (force_expr_to_var_cost): Likewise.
5677         (compare_aff_trees): Likewise.
5678         (get_expr_id): Restructure the function.
5679         (get_loop_invariant_expr_id): Renamed to
5680         get_loop_invariant_expr.
5681         (get_computation_cost_at): Replace usage of inv_expr_id with
5682         inv_expr.
5683         (get_computation_cost): Likewise.
5684         (determine_group_iv_cost_generic): Likewise.
5685         (determine_group_iv_cost_address): Likewise.
5686         (iv_period): Fix coding style.
5687         (iv_elimination_compare_lt): Likewise.
5688         (may_eliminate_iv): Likewise.
5689         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
5690         inv_expr.
5691         (determine_group_iv_costs): Dump invariant expressions.
5692         (iv_ca_recount_cost): Use the newly added hash_map.
5693         (iv_ca_set_remove_invariants): Fix coding style.
5694         (iv_ca_set_add_invariants): Fix coding style.
5695         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
5696         invariants.
5697         (iv_ca_set_cp): Likewise.
5698         (iv_ca_new): Initialize the newly added hash_map and remove
5699         initialization of fields.
5700         (iv_ca_free): Delete the hash_map.
5701         (iv_ca_dump): Dump invariant expressions.
5702         (iv_ca_extend): Fix coding style.
5703         (try_add_cand_for): Likewise.
5704         (create_new_ivs): Dump information about # of avg iterations and
5705         # of used invariant expressions.
5706         (rewrite_use_compare): Fix coding style.
5707         (free_loop_data): Set default value for max_inv_expr_id.
5708
5709 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
5710
5711         * cse.c (rest_of_handle_cse): Use cleanup_cfg
5712         returned value cse_cfg_altered computation.
5713         (rest_of_handle_cse2): Likewise.
5714         (rest_of_handle_cse_after_global_opts): Likewise.
5715
5716 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5717
5718         PR target/53440
5719         * config/arm/arm.c (arm32_output_mi_thunk): New.
5720         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
5721         to split Thumb1 vs TARGET_32BIT functionality.
5722         (arm_thumb1_mi_thunk): New.
5723
5724 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5725
5726         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
5727         to true.
5728
5729 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5730
5731         PR target/71080
5732         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
5733
5734 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5735
5736         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
5737         (expand_builtin_trap): Emit a regular call.
5738         (set_builtin_user_assembler_name): Remove obsolete cases.
5739         * dse.c (scan_insn): Adjust.
5740         * except.c: Include calls.h.
5741         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
5742         emit a regular call to setjmp.
5743         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
5744         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
5745         (emit_block_move_via_libcall): Delete.
5746         (block_move_fn): Delete.
5747         (init_block_move_fn): Likewise.
5748         (emit_block_move_libcall_fn): Likewise.
5749         (emit_block_op_via_libcall): New function.
5750         (set_storage_via_libcall): Tidy up and use memset builtin.
5751         (block_clear_fn): Delete.
5752         (init_block_clear_fn): Likewise.
5753         (clear_storage_libcall_fn): Likewise.
5754         (expand_assignment): Call emit_block_move_via_libcall.
5755         Do not include gt-expr.h.
5756         * expr.h (emit_block_op_via_libcall): Declare.
5757         (emit_block_copy_via_libcall): New inline function.
5758         (emit_block_move_via_libcall): Likewise.
5759         (emit_block_comp_via_libcall): Likewise.
5760         (block_clear_fn): Delete.
5761         (init_block_move_fn): Likewise.
5762         (init_block_clear_fn): Likewise.
5763         (emit_block_move_via_libcall): Likewise.
5764         (set_storage_via_libcall): Add default parameter value.
5765         * libfuncs.h (enum libfunc_index): Remove obsolete values.
5766         (abort_libfunc): Delete.
5767         (memcpy_libfunc): Likewise.
5768         (memmove_libfunc): Likewise.
5769         (memcmp_libfunc): Likewise.
5770         (memset_libfunc): Likewise.
5771         (setbits_libfunc): Likewise.
5772         (setjmp_libfunc): Likewise.
5773         (longjmp_libfunc): Likewise.
5774         (profile_function_entry_libfunc): Likewise.
5775         (profile_function_exit_libfunc): Likewise.
5776         (gcov_flush_libfunc): Likewise.
5777         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
5778         and DECL_VISIBILITY on the declaration.
5779         (init_optabs): Do not initialize obsolete libfuncs.
5780         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
5781         * tree-core.h (ECF_RET1): Define.
5782         (ECF_TM_PURE): Adjust.
5783         (ECF_TM_BUILTIN): Likewise.
5784         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
5785         (build_common_builtin_nodes): Initialize abort builtin.
5786         Add ECF_RET1 on memcpy, memmove and memset builtins.
5787         Pass final flags for alloca and alloca_with_align builtins.
5788         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
5789         obsolete builtins.
5790         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
5791         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
5792         set_storage_via_libcall and call emit_block_copy_via_libcall.
5793
5794 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
5795
5796         * config/i386/i386.md (*call_got_x32): Change operand 0 to
5797         DImode before it is passed to ix86_output_call_operand.
5798         (*call_value_got_x32): Ditto for operand 1.
5799
5800 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
5801
5802         PR rtl-optimization/70904
5803         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
5804         reload for wide mode.
5805
5806 2016-05-12  Marek Polacek  <polacek@redhat.com>
5807
5808         PR c/70756
5809         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
5810         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
5811         * langhooks.h (incomplete_type_error): Likewise.
5812         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
5813         parameter, pass it down to incomplete_type_error.
5814         * tree.h (size_in_bytes): New inline overload.
5815         (size_in_bytes_loc): Renamed from size_in_bytes.
5816
5817 2016-05-12  Richard Biener  <rguenther@suse.de>
5818
5819         PR tree-optimization/71059
5820         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
5821         nary before looking up or entering the expression into the VN
5822         hashes.
5823         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
5824         Make sure to re-use NARYs without result as inserted by
5825         phi-translation.
5826
5827 2016-05-12  Richard Biener  <rguenther@suse.de>
5828
5829         PR tree-optimization/71062
5830         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
5831         field.
5832         * tree-ssa-structalias.c (set_uids_in_ptset): Set
5833         vars_contains_restrict if the var is a restrict tag.
5834         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
5835         do not disambiguate pointers against it.
5836         (dump_points_to_solution): Re-structure and adjust for new
5837         vars_contains_restrict flag.
5838         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
5839
5840 2016-05-12  Martin Liska  <mliska@suse.cz>
5841
5842         * doc/invoke.texi: Explain connection between
5843         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
5844
5845 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
5846
5847         PR tree-optimization/71006
5848         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5849         consider COND_EXPR as a mask producer.
5850
5851 2016-05-12  Marek Polacek  <polacek@redhat.com>
5852
5853         PR driver/71063
5854         * opts.c (common_handle_option): Detect missing argument for --help^.
5855
5856 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5857
5858         PR target/70830
5859         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
5860         when popping the PC and within an interrupt handler routine.
5861         Add missing tab to output of "ldmfd".
5862         (output_return_instruction): Output LDMFD with SP update rather
5863         than POP when returning from interrupt handler.
5864
5865 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
5866
5867         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
5868         TARGET_64BIT && TARGET_AVX512DQ.
5869         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
5870         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
5871         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
5872         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
5873         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
5874         (*vec_extractv4si_zext): Add avx512dq alternative.
5875         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
5876         use v instead of x constraint in other alternatives where possible.
5877
5878         * config/i386/sse.md (sse2_loadld): Use v instead of x
5879         constraint in alternatives 0,1,4.
5880
5881         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
5882         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
5883         v constraints instead of x and <pinsr_evex_isa> isa attribute.
5884
5885         PR target/71019
5886         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
5887         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
5888         is not emitted unless TARGET_AVX512BW.
5889         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
5890         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
5891         for the result operand.
5892
5893         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
5894         constraint instead of x in avx alternatives.  Use maybe_evex instead
5895         of vex prefix.
5896
5897         * config/i386/constraints.md (Yv): New constraint.
5898         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
5899         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
5900         * config/i386/i386.md (avx512fvecmode): New mode attr.
5901         (*pushtf): Use v constraint instead of x.
5902         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
5903         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
5904         (*absneg<mode>2): Use Yv constraint instead of x constraint.
5905         (*absnegtf2_sse): Likewise.
5906         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
5907         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
5908         avx512f alternatives.
5909         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
5910
5911 2016-05-12  Richard Biener  <rguenther@suse.de>
5912
5913         PR tree-optimization/71060
5914         * tree-data-ref.c (initialize_data_dependence_relation): Do not
5915         require exact match of DR_BASE_OBJECT but only matching address and
5916         type.
5917
5918 2016-05-12  Richard Biener  <rguenther@suse.de>
5919
5920         PR tree-optimization/70986
5921         * cfganal.c: Include cfgloop.h.
5922         (dfs_find_deadend): Prefer to take edges exiting loops.
5923
5924 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5925
5926         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5927         compile and run time.
5928
5929 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
5930
5931         PR c/43651
5932         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5933
5934 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
5935
5936         * config/i386/i386.c (legitimize_pic_address): Use
5937         copy_to_suggested_reg instead of gen_movsi.
5938
5939 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5940
5941         * config/rs6000/predicates.md (quad_memory_operand): Move most of
5942         the code into quad_address_p and call it to share code with
5943         vsx_quad_dform_memory_operand.
5944         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
5945         d-form support.
5946         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
5947         bit instead of being a separate word.  Split -mpower9-dform into
5948         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5949         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
5950         for the register class supporting 128-bit quad word memory offsets.
5951         (mode_supports_vsx_dform_quad): Helper function to return if the
5952         register class uses quad word memory offsets.
5953         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
5954         (rs6000_debug_reg_global): Always print if we are using LRA or not.
5955         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
5956         instructions are enabled, set up the appropriate addr_masks for
5957         128-bit types.
5958         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
5959         -mpower9-dform-scalar, instead of -mpower9-dform.
5960         (rs6000_option_override_internal): Split -mpower9-dform into two
5961         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
5962         -mpower9-dform switch sets or clears both.  If we are not using
5963         the LRA register allocator, do not enable -mpower9-dform-vector by
5964         default.  If we are using LRA, enable -mpower9-dform-vector and
5965         -mvsx-timode if it is appropriate.  Issue a warning if either
5966         -mpower9-dform-vector or -mvsx-timode are explicitly used without
5967         enabling LRA.
5968         (quad_address_offset_p): New helper function to return if the
5969         offset is legal for quad word memory instructions.
5970         (quad_address_p): New function to determin if GPR or vector
5971         register quad word memory addresses are legal.
5972         (mem_operand_gpr): Validate quad word address offsets.
5973         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
5974         d-form (register + offset) instructions.
5975         (offsettable_ok_by_alignment): Likewise.
5976         (rs6000_legitimate_offset_address_p): Likewise.
5977         (legitimate_lo_sum_address_p): Likewise.
5978         (rs6000_legitimize_address): Likewise.
5979         (rs6000_legitimize_reload_address): Add more debug statements for
5980         -mdebug=addr.
5981         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
5982         d-form instructions.
5983         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
5984         d-form instructions.  Distinguish different cases in debug
5985         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
5986         d-form instructions.
5987         (rs6000_preferred_reload_class): Likewise.
5988         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
5989         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
5990         of the ISA 2.06 indexed memory instructions.
5991         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
5992         use them to save/restore the saved vector registers instead of
5993         using Altivec instructions.
5994         (rs6000_emit_epilogue): Likewise.
5995         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
5996         (rs6000_opt_masks): Split -mpower9-dform into
5997         -mpower9-dform-scalar and -mpower9-dform-vector.
5998         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
5999         was not selected.
6000         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
6001         ISA 3.0 vector indexed memory instructions, and fold the code into
6002         the normal mov<mode> patterns.
6003         (p9_vecstore_<mode>): Likewise.
6004         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
6005         instructions.
6006         (vsx_movti_64bit): Likewise.
6007         (vsx_movti_32bit): Likewise.
6008         * config/rs6000/constraints.md (wO constraint): New constraint for
6009         ISA 3.0 vector d-form support.
6010         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
6011         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
6012         include -mpower9-dform-vector until we switch over to LRA.
6013         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
6014         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6015         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
6016         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6017         for -mpower9-dform and -mlra.
6018         * doc/md.texi (wO constraint): Document wO constraint.
6019
6020 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
6021
6022         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
6023         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
6024         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
6025         Move handling of non-insn arguments inline into the sole user:
6026         (output_trans_func): ...here.
6027         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
6028         in emitted function prototype.
6029         (output_internal_insn_latency_func): Ditto.  Simplify.
6030         (output_internal_maximal_insn_latency_func): Ditto.  Delete
6031         always-unused argument.
6032         (output_insn_latency_func): Ditto.
6033         (output_maximal_insn_latency_func): Ditto.
6034
6035 2016-05-11  Richard Biener  <rguenther@suse.de>
6036
6037         PR tree-optimization/71055
6038         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
6039         sth with precision not equal to access size verify we don't chop
6040         off bits.
6041
6042 2016-05-11  Richard Biener  <rguenther@suse.de>
6043
6044         PR debug/71057
6045         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
6046         (dwarf2out_finish): Move retry_incomplete_types call ...
6047         (dwarf2out_early_finish): ... here.
6048
6049 2016-05-11  Richard Biener  <rguenther@suse.de>
6050
6051         PR middle-end/71002
6052         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
6053         if the langhook insists on it.
6054         * fold-const.c (make_bit_field_ref): Add arg for the original
6055         reference and preserve its alias-set.
6056         (decode_field_reference): Take exp by reference and adjust it
6057         to the original memory reference.
6058         (optimize_bit_field_compare): Adjust callers.
6059         (fold_truth_andor_1): Likewise.
6060         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
6061
6062 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
6063
6064         PR middle-end/70807
6065         * cfgrtl.h (delete_insn_and_edges): Now return bool.
6066         * cfgrtl.c (delete_insn_and_edges): Likewise.
6067         * config/i386/i386.c (convert_scalars_to_vector): Remove
6068         redundant code.
6069         * cse.c (cse_insn): Compute cse_cfg_altered.
6070         (delete_trivially_dead_insns): Likewise.
6071         (cse_cc_succs): Likewise.
6072         (rest_of_handle_cse): Free dominance info if required.
6073         (rest_of_handle_cse2): Likewise.
6074         (rest_of_handle_cse_after_global_opts): Likewise.
6075
6076 2016-05-11  Alan Modra  <amodra@gmail.com>
6077
6078         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
6079         abi_v4_pass_in_fpr): New functions.
6080         (rs6000_function_arg_boundary): Exclude complex IBM long double
6081         from 64-bit alignment when ABI_V4.
6082         (rs6000_function_arg, rs6000_function_arg_advance_1,
6083         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
6084
6085 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
6086
6087         PR rtl-optimization/71028
6088         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
6089         jump with just a return in the fallthrough block if the branch
6090         block contains just a return as well.
6091
6092 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
6093
6094         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
6095         * match.pd ((X & Y) ^ Y): ... this.
6096         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
6097         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
6098
6099 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6100
6101         * read-md.c (require_char_ws): New function.
6102         (read_string): Simplify using require_char_ws.
6103         (handle_constants): Likewise.
6104         (handle_enum): Likewise.
6105         (handle_file): Likewise.
6106         * read-md.h (require_char_ws): New declaration.
6107         * read-rtl.c (read_conditions): Simplify using require_char_ws.
6108         (read_mapping): Likewise.
6109         (read_rtx_code): Likewise.
6110         (read_nested_rtx): Likewise.
6111
6112 2016-05-10  James Norris  <jnorris@codesourcery.com>
6113
6114         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
6115         if offloading is enabled and -fopenacc or -fopenmp is specified.
6116         (CRTOFFLOADEND): Likewise.
6117         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
6118         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
6119
6120 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
6121
6122         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
6123         gotoff_operand code paths.  Use copy_to_suggested_regs and
6124         expand_simple_binop where appropriate.  Cleanup.
6125
6126 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6127
6128         PR target/70799
6129         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
6130         integer constants.
6131         (dimode_scalar_chain::vector_const_cost): New.
6132         (dimode_scalar_chain::compute_convert_gain): Handle constants.
6133         (dimode_scalar_chain::convert_op): Likewise.
6134         (dimode_scalar_chain::convert_insn): Likewise.
6135
6136 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6137
6138         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
6139         unary operation, not a binary one.
6140
6141 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6142
6143         PR middle-end/70877
6144         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
6145         calls with type casted fndecl.
6146
6147 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6148
6149         PR tree-optimization/70786
6150         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
6151         * calls.c (initialize_argument_information): Bind bounds
6152         with corresponding args passed by reference.
6153
6154 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
6155
6156         PR target/70927
6157         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
6158         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
6159         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
6160         accordingly.
6161
6162 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6163
6164         PR target/70963
6165         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
6166         code for a zero scale factor.
6167         (vsx_xvcvdpuxds_scale): Likewise.
6168
6169 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6170
6171         * diagnostic-show-locus.c (layout::layout): Call show_ruler
6172         if show_ruler_p was set on the context.
6173         (layout::show_ruler): New method.
6174         * diagnostic.h (struct diagnostic_context): Add field
6175         "show_ruler_p".
6176
6177 2016-05-10  Richard Biener  <rguenther@suse.de>
6178
6179         PR tree-optimization/71039
6180         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
6181         (chk_uses): New function.
6182         (propagate_with_phi): Verify we can safely replicate the lhs of an
6183         aggregate assignment on all incoming edges.
6184
6185 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
6186
6187         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
6188         Forward declare.
6189         (rx_atomic_sequence): New class.
6190         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
6191         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
6192         non-inline.
6193         (rx_atomic_sequence::rx_atomic_sequence,
6194         rx_atomic_sequence::~rx_atomic_sequence): New functions.
6195         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
6196         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
6197         CTRLREG_INTB): New constants.
6198         (FETCHOP): New code iterator.
6199         (fethcop_name, fetchop_name2): New iterator code attributes.
6200         (QIHI): New mode iterator.
6201         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
6202         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
6203         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
6204
6205 2016-05-10  Martin Liska  <mliska@suse.cz>
6206
6207         * tree-inline.c (remap_dependence_clique): Do not remap
6208         debugging statements.
6209
6210 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6211
6212         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
6213         ("*fixuns_truncdfdi2_z13")
6214         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
6215         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
6216         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
6217
6218 2016-05-10  Richard Biener  <rguenther@suse.de>
6219
6220         PR tree-optimization/70497
6221         PR tree-optimization/28367
6222         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
6223         split out from ...
6224         (visit_reference_op_load): ... here.
6225         (vn_reference_lookup_3): Use it to handle subreg-like accesses
6226         with simplified BIT_FIELD_REFs.
6227         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
6228         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
6229         correctly.
6230
6231 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6232
6233         * dwarf2out.c (add_abstract_origin_attribute): Adjust
6234         documentation comment.  For BLOCK nodes, add a
6235         DW_AT_abstract_origin attribute that points to the DIE generated
6236         for the origin BLOCK.
6237         (gen_lexical_block_die): Call add_abstract_origin_attribute for
6238         blocks from inlined functions.
6239
6240 2016-05-10  Alan Modra  <amodra@gmail.com>
6241
6242         PR target/70947
6243         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
6244         regrename modifying insns saving lr before __morestack call.
6245         * config/rs6000/rs6000.md (split_stack_return): Similarly for
6246         insns restoring lr after __morestack call.
6247
6248 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
6249
6250         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
6251         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
6252         expanders.
6253         * config/i386/sse.md (vec_interleave_high<mode>,
6254         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
6255         <avx512>_vpermt2var<mode>3_maskz): Likewise.
6256
6257 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6258
6259         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
6260         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
6261         parallel reassociation for power8 and forward.
6262
6263 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
6264
6265         * config/i386/i386.md (absneg splitters with general regs): Use
6266         general_reg_operand predicate.
6267         (btsq peephole2): Use x86_64_immediate_operand to check if new
6268         value is suitable for immediate operand.  Generate emitted insn
6269         using RTL expressions.
6270         (btcq peephole2): Ditto.
6271         (btrq peephole2): Ditto.  Generate correct immediate operand
6272         for AND masking.
6273
6274 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6275
6276         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
6277         bitpos.
6278
6279 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6280
6281         * tree-affine.c (wide_int_constant_multiple_p): Add missing
6282         pointer dereference.
6283
6284 2016-05-09  Richard Biener  <rguenther@suse.de>
6285
6286         PR tree-optimization/70985
6287         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
6288         op0 isn't a gimple register.
6289
6290 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
6291
6292         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
6293         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
6294         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
6295         (i6400_fpu_mult): New cpu units.
6296         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
6297         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
6298         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
6299         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
6300         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
6301         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
6302         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
6303         (i6400_msa_long_float4, i6400_msa_long_float5)
6304         (i6400_msa_long_float8, i6400_msa_fdiv_df)
6305         (i6400_msa_fdiv_sf): New reservations.
6306         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
6307         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
6308         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
6309         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
6310         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
6311         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
6312         (msa_short_cmp, msa_short_float2, msa_short_logic3)
6313         (msa_short_store4, msa_long_load, msa_short_store)
6314         (msa_long_logic, msa_long_float2, msa_long_float4)
6315         (msa_long_float5, msa_long_float8, msa_long_mult)
6316         (msa_long_fdiv, msa_long_div): New reservations.
6317
6318 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
6319             Sameera Deshpande  <sameera.deshpande@imgtec.com>
6320             Matthew Fortune  <matthew.fortune@imgtec.com>
6321             Graham Stott  <graham.stott@imgtec.com>
6322             Chao-ying Fu  <chao-ying.fu@imgtec.com>
6323
6324         * config.gcc: Add MSA header file for mips*-*-* target.
6325         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
6326         (Ubv8i, Urv8):  New constraints.
6327         * config/mips/mips-ftypes.def: Add function types for MSA
6328         builtins.
6329         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
6330         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
6331         * config/mips/mips-msa.md: New file.
6332         * config/mips/mips-protos.h
6333         (mips_split_128bit_const_insns): New prototype.
6334         (mips_msa_idiv_insns): Likewise.
6335         (mips_split_128bit_move): Likewise.
6336         (mips_split_128bit_move_p): Likewise.
6337         (mips_split_msa_copy_d): Likewise.
6338         (mips_split_msa_insert_d): Likewise.
6339         (mips_split_msa_fill_d): Likewise.
6340         (mips_expand_msa_branch): Likewise.
6341         (mips_const_vector_same_val_p): Likewise.
6342         (mips_const_vector_same_bytes_p): Likewise.
6343         (mips_const_vector_same_int_p): Likewise.
6344         (mips_const_vector_shuffle_set_p): Likewise.
6345         (mips_const_vector_bitimm_set_p): Likewise.
6346         (mips_const_vector_bitimm_clr_p): Likewise.
6347         (mips_msa_vec_parallel_const_half): Likewise.
6348         (mips_msa_output_division): Likewise.
6349         (mips_ldst_scaled_shift): Likewise.
6350         (mips_expand_vec_cond_expr): Likewise.
6351         * config/mips/mips.c (enum mips_builtin_type): Add
6352         MIPS_BUILTIN_MSA_TEST_BRANCH.
6353         (mips_gen_const_int_vector_shuffle): New prototype.
6354         (mips_const_vector_bitimm_set_p): New function.
6355         (mips_const_vector_bitimm_clr_p): Likewise.
6356         (mips_const_vector_same_val_p): Likewise.
6357         (mips_const_vector_same_bytes_p): Likewise.
6358         (mips_const_vector_same_int_p): Likewise.
6359         (mips_const_vector_shuffle_set_p): Likewise.
6360         (mips_symbol_insns): Forbid loading symbols via immediate for
6361         MSA.
6362         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
6363         stores.
6364         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
6365         MSA.
6366         (mips_lx_address_p): Add support load indexed address for MSA.
6367         (mips_address_insns): Add calculation of instructions needed for
6368         stores and loads for MSA.
6369         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
6370         CONST_VECTOR for MSA and let it fall through.
6371         (mips_ldst_scaled_shift): New function.
6372         (mips_subword_at_byte): Likewise.
6373         (mips_msa_idiv_insns): Likewise.
6374         (mips_legitimize_move): Validate MSA moves.
6375         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
6376         calculation of costs for MSA division.
6377         (mips_split_move_p): Check if MSA moves need splitting.
6378         (mips_split_move): Split MSA moves if necessary.
6379         (mips_split_128bit_move_p): New function.
6380         (mips_split_128bit_move): Likewise.
6381         (mips_split_msa_copy_d): Likewise.
6382         (mips_split_msa_insert_d): Likewise.
6383         (mips_split_msa_fill_d): Likewise.
6384         (mips_output_move): Handle MSA moves.
6385         (mips_expand_msa_branch): New function.
6386         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
6387         Reinstate 'y' modifier.
6388         (mips_file_start): Add MSA .gnu_attribute.
6389         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
6390         FPRs.
6391         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
6392         (mips_class_max_nregs): Add register size for MSA supported mode.
6393         (mips_cannot_change_mode_class): Allow conversion between MSA
6394         vector modes and TImode.
6395         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
6396         instruction.
6397         (mips_secondary_reload_class): Force MSA loads/stores via memory.
6398         (mips_preferred_simd_mode): Add preffered modes for MSA.
6399         (mips_vector_mode_supported_p): Add MSA supported modes.
6400         (mips_autovectorize_vector_sizes): New function.
6401         (mips_msa_output_division): Likewise.
6402         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
6403         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
6404         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
6405         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
6406         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
6407         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
6408         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
6409         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
6410         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
6411         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
6412         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
6413         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
6414         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
6415         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
6416         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
6417         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
6418         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
6419         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
6420         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
6421         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
6422         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
6423         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
6424         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
6425         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
6426         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
6427         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
6428         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
6429         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
6430         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
6431         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
6432         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
6433         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
6434         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
6435         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
6436         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
6437         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
6438         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
6439         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
6440         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
6441         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
6442         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
6443         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
6444         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
6445         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
6446         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6447         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6448         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6449         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6450         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6451         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6452         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6453         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6454         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
6455         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
6456         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
6457         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
6458         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
6459         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
6460         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
6461         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
6462         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
6463         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
6464         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
6465         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
6466         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
6467         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
6468         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
6469         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
6470         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
6471         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
6472         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
6473         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
6474         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
6475         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
6476         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
6477         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
6478         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
6479         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
6480         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
6481         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
6482         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
6483         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
6484         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
6485         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
6486         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
6487         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
6488         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
6489         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
6490         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
6491         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
6492         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
6493         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
6494         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
6495         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
6496         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
6497         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
6498         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
6499         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
6500         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
6501         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
6502         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
6503         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
6504         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
6505         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
6506         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
6507         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
6508         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
6509         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
6510         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
6511         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
6512         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
6513         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
6514         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
6515         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
6516         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
6517         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
6518         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
6519         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
6520         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
6521         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
6522         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
6523         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
6524         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
6525         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
6526         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
6527         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
6528         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
6529         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
6530         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
6531         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
6532         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
6533         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
6534         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
6535         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
6536         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
6537         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
6538         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
6539         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
6540         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
6541         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
6542         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
6543         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
6544         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
6545         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
6546         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
6547         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
6548         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
6549         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
6550         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
6551         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
6552         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
6553         move_v builtins.
6554         (mips_get_builtin_decl_index): New array.
6555         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
6556         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
6557         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
6558         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
6559         (mips_init_builtins): Initialize mips_get_builtin_decl_index
6560         array.
6561         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
6562         hook.
6563         (mips_expand_builtin_insn): Prepare operands for
6564         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
6565         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
6566         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
6567         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
6568         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
6569         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
6570         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
6571         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
6572         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
6573         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
6574         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
6575         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
6576         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
6577         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
6578         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
6579         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
6580         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
6581         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
6582         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
6583         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
6584         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
6585         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
6586         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
6587         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
6588         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
6589         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
6590         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
6591         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
6592         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
6593         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
6594         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
6595         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
6596         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
6597         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
6598         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
6599         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
6600         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
6601         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
6602         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
6603         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
6604         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
6605         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
6606         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
6607         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
6608         These are set implicitly and an error is reported if overridden.
6609         (mips_expand_builtin_msa_test_branch): New function.
6610         (mips_expand_msa_shuffle): Likewise.
6611         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
6612         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
6613         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
6614         (mips_expand_vec_unpack): Add support for MSA.
6615         (mips_expand_vector_init): Likewise.
6616         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
6617         instead of const0_rtx.
6618         (mips_msa_vec_parallel_const_half): New function.
6619         (mips_gen_const_int_vector): Likewise.
6620         (mips_gen_const_int_vector_shuffle): Likewise.
6621         (mips_expand_msa_cmp): Likewise.
6622         (mips_expand_vec_cond_expr): Likewise.
6623         * config/mips/mips.h
6624         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
6625         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
6626         specified.
6627         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
6628         (ISA_HAS_MSA): New macro.
6629         (UNITS_PER_MSA_REG): Likewise.
6630         (BITS_PER_MSA_REG): Likewise.
6631         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
6632         (MSA_REG_FIRST): New macro.
6633         (MSA_REG_LAST): Likewise.
6634         (MSA_REG_NUM): Likewise.
6635         (MSA_REG_P): Likewise.
6636         (MSA_REG_RTX_P): Likewise.
6637         (MSA_SUPPORTED_MODE_P): Likewise.
6638         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
6639         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
6640         * config/mips/mips.md: Include mips-msa.md.
6641         (alu_type): Add simd_add.
6642         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
6643         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
6644         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
6645         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
6646         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
6647         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
6648         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
6649         simd_move, simd_load, simd_store.  Choose "multi" for moves
6650         for "qword_mode".
6651         (qword_mode): New attribute.
6652         (insn_count): Add instruction count for quad moves.
6653         Increase the count for MIPS SIMD division.
6654         (UNITMODE): Add UNITMODEs for vector types.
6655         (addsub): New code iterator.
6656         * config/mips/mips.opt (mmsa): New option.
6657         * config/mips/msa.h: New file.
6658         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
6659         specified.
6660         * config/mips/mti-linux.h: Likewise.
6661         * config/mips/predicates.md
6662         (const_msa_branch_operand): New constraint.
6663         (const_uimm3_operand): Likewise.
6664         (const_uimm4_operand): Likewise.
6665         (const_uimm5_operand): Likewise.
6666         (const_uimm8_operand): Likewise.
6667         (const_imm5_operand): Likewise.
6668         (aq10b_operand): Likewise.
6669         (aq10h_operand): Likewise.
6670         (aq10w_operand): Likewise.
6671         (aq10d_operand): Likewise.
6672         (const_m1_operand): Likewise.
6673         (reg_or_m1_operand): Likewise.
6674         (const_exp_2_operand): Likewise.
6675         (const_exp_4_operand): Likewise.
6676         (const_exp_8_operand): Likewise.
6677         (const_exp_16_operand): Likewise.
6678         (const_vector_same_val_operand): Likewise.
6679         (const_vector_same_simm5_operand): Likewise.
6680         (const_vector_same_uimm5_operand): Likewise.
6681         (const_vector_same_uimm6_operand): Likewise.
6682         (const_vector_same_uimm8_operand): Likewise.
6683         (par_const_vector_shf_set_operand): Likewise.
6684         (reg_or_vector_same_val_operand): Likewise.
6685         (reg_or_vector_same_simm5_operand): Likewise.
6686         (reg_or_vector_same_uimm6_operand): Likewise.
6687         * doc/extend.texi (MIPS SIMD Architecture Functions): New
6688         section.
6689         * doc/invoke.texi (-mmsa): Document new option.
6690
6691 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6692
6693         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
6694         * configure: Regenerate.
6695         * config.in: Regenerate.
6696         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
6697         on -fvtable-verify.
6698         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
6699         (ENDFILE_VTV_SPEC): Define.
6700
6701 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
6702
6703         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
6704         registers in all interrupt handlers if necessary.
6705         (rl78_option_override): Add warning.
6706         (MUST_SAVE_MDUC_REGISTERS): New macro.
6707         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
6708         * config/rl78/rl78.c (check_mduc_usage): New function.
6709         (mduc_regs): New structure to hold MDUC register data.
6710         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
6711         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
6712         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
6713         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
6714         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
6715         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
6716
6717 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
6718
6719         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
6720         (tree-ssa-loop-niter.h): Ditto.
6721         (idx_within_array_bound, ref_within_array_bound): New functions.
6722         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
6723         Factor out check on writable base object to ...
6724         (base_object_writable): ... here.
6725
6726 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6727
6728         * config/arm/arm.md (probe_stack): Add modes to set source
6729         and destination.
6730
6731 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
6732
6733         * regrename.c (base_reg_class_for_rename): New static function.
6734         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
6735
6736 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
6737
6738         * cgraph.c (thunk_adjust): Export.
6739         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
6740         * cgraphunit.c (thunk_adjust): Export.
6741         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
6742         thunks.
6743         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
6744         inlinable.
6745         * tree-inline.c (expand_call_inline): Expand thunks inline.
6746
6747 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
6748
6749         PR target/70998
6750         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
6751         (*sse2_vd_cvtss2sd): Ditto.
6752         * config/i386/i386.md
6753         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
6754         Generate *sse2_vd_cvtsd2ss pattern.
6755         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
6756         Generate *sse2_vd_cvtss2sd pattern.
6757
6758 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
6759
6760         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
6761         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
6762         users.
6763
6764 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
6765
6766         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
6767         * config/sh/sh.c: Define and declare variables on first use throughout
6768         the file.
6769         (current_function_interrupt): Change to bool type.
6770         (frame_insn): Rename to emit_frame_insn and update users.
6771         (push_regs): Use bool for 'interrupt_handler' argument.
6772         (save_schedule_s): Remove.
6773         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
6774         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
6775         targetm.asm_out.unaligned_op.di.
6776         (gen_far_branch): Remove redundant forward declaration.
6777         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
6778         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
6779         (sh_set_return_address, sh_function_ok_for_sibcall,
6780         scavenge_reg): Update comments.
6781         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
6782         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
6783         (sh_attr_renesas_p): Remove unnecessary parentheses.
6784         (branch_dest): Simplify.
6785         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
6786         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
6787         (CUMULATIVE_ARGS): Change macro to typedef.
6788         (current_function_interrupt): Change to bool type.
6789         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
6790         Surround with __cplusplus ifdef.
6791         (sh_compare_op0, sh_compare_op1): Remove.
6792         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
6793
6794 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
6795
6796         * config/arm/arm.md: (arch): Add neon.
6797         (arch_enabled): Return yes for arch neon when TARGET_NEON.
6798         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
6799         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
6800         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
6801         attributes for alt renumbering.  Mark alt 3 as non-predicable.
6802         (thumb2_movdf_vfp): Likewise.
6803
6804 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
6805
6806         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
6807         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
6808         (*andqi_1): Add preferred_for_speed attribute to disparage
6809         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
6810         (*<code>qi_1): Ditto.
6811         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
6812         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
6813         (*ashlqi3_1): Ditto.
6814         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
6815         Add preferred_for_size attribute to disparage alternative 0 and
6816         preferred_for_speed attribute to disparage alternative 1 for
6817         TARGET_PARTIAL_REG_STALL targets.
6818
6819 2016-05-07  Tom de Vries  <tom@codesourcery.com>
6820
6821         PR tree-optimization/70956
6822         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
6823         def.
6824
6825 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
6826
6827         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
6828         * config/sh/sh.c (sh_cbranch_distance): Implement it.
6829         * config/sh/sh.md (branch_zero): Remove define_attr.
6830         (define_delay): Disable delay slot if branch distance is one insn.
6831
6832 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6833
6834         * config/i386/i386.md (LEAMODE): New mode attribute.
6835         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
6836         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
6837         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
6838         operand 2 predicate.
6839         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
6840         (*lea<mode>_general_3): Ditto.
6841         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
6842
6843 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6844
6845         * genmddump.c (main): Convert argv from char ** to const char **.
6846
6847 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6848
6849         * coretypes.h (OVERRIDE): New macro.
6850         (FINAL): New macro.
6851
6852 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6853
6854         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
6855         allow coalescing if the types are compatible.
6856
6857 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6858
6859         * pass_manager.h (pass_manager::register_pass_name): New method.
6860         (pass_manager::get_pass_by_name): New method.
6861         (pass_manager::create_pass_tab): New method.
6862         (pass_manager::m_name_to_pass_map): New field.
6863         * passes.c (name_to_pass_map): Delete global in favor of field
6864         "m_name_to_pass_map" of pass_manager.
6865         (register_pass_name): Rename from a function to...
6866         (pass_manager::register_pass_name): ...this method, updating
6867         for renaming of global "name_to_pass_map" to field
6868         "m_name_to_pass_map".
6869         (create_pass_tab): Rename from a function to...
6870         (pass_manager::create_pass_tab): ...this method, updating
6871         for renaming of global "name_to_pass_map" to field.
6872         (get_pass_by_name): Rename from a function to...
6873         (pass_manager::get_pass_by_name): ...this method.
6874         (enable_disable_pass): Convert use of get_pass_by_name to
6875         a method call, locating the pass_manager singleton.
6876
6877 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6878
6879         * genattr-common.c (main): Convert argv from char ** to const char **.
6880         * genattr.c (main): Likewise.
6881         * genattrtab.c (main): Likewise.
6882         * genautomata.c (initiate_automaton_gen): Likewise.
6883         (main): Likewise.
6884         * gencodes.c (main): Likewise.
6885         * genconditions.c (main): Likewise.
6886         * genconfig.c (main): Likewise.
6887         * genconstants.c (main): Likewise.
6888         * genemit.c (main): Likewise.
6889         * genenums.c (main): Likewise.
6890         * genextract.c (main): Likewise.
6891         * genflags.c (main): Likewise.
6892         * genmddeps.c (main): Likewise.
6893         * genopinit.c (main): Likewise.
6894         * genoutput.c (main): Likewise.
6895         * genpeep.c (main): Likewise.
6896         * genpreds.c (main): Likewise.
6897         * genrecog.c (main): Likewise.
6898         * gensupport.c (init_rtx_reader_args_cb): Likewise.
6899         (init_rtx_reader_args): Likewise.
6900         * gensupport.h (init_rtx_reader_args_cb): Likewise.
6901         (init_rtx_reader_args): Likewise.
6902         * gentarget-def.c (main): Likewise.
6903         * read-md.c (read_md_files): Likewise.
6904         * read-md.h (read_md_files): Likewise.
6905
6906 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6907
6908         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
6909         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
6910         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
6911         Remove unused predicate.
6912         (register_and_not_fp_reg_operand): Ditto.
6913
6914 2016-05-06  Martin Liska  <mliska@suse.cz>
6915
6916         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6917         instead of vec as the vector is local to the function.
6918
6919 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6920
6921         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6922         avx512bw alternative.
6923
6924         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6925         before the ashr<mode>3 pattern.
6926
6927         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
6928         v instead of x in vex or maybe_vex alternatives, use
6929         maybe_evex instead of vex in prefix.
6930
6931         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
6932         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
6933         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
6934         in vex or maybe_vex alternatives, use maybe_evex instead of vex
6935         in prefix.
6936
6937         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
6938         v instead of x in vex or maybe_vex alternatives, use
6939         maybe_evex instead of vex in prefix.
6940
6941         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
6942         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
6943         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
6944         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
6945         alternatives, use maybe_evex instead of vex in prefix.
6946
6947         * config/i386/sse.md (vec_interleave_lowv4sf,
6948         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
6949         v instead of x in vex or maybe_vex alternatives, use
6950         maybe_evex instead of vex in prefix.
6951
6952         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
6953         v instead of x in vex or maybe_vex alternatives, use
6954         maybe_evex instead of vex in prefix.
6955
6956         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6957         v constraint instead of x.
6958
6959 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6960
6961         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6962         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6963         equality first.
6964
6965 2016-05-06  Richard Biener  <rguenther@suse.de>
6966
6967         PR tree-optimization/70948
6968         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6969         Properly clobber all fields of va_list for __builtin_va_start.
6970
6971 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
6972
6973         PR debug/70935
6974         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6975         loop latch destination.
6976
6977 2016-05-06  Martin Liska  <mliska@suse.cz>
6978
6979         * tree-ssa-uninit.c: Apply manual changes
6980         to the GNU coding style.
6981         (prune_uninit_phi_opnds): Rename from
6982         prune_uninit_phi_opnds_in_unrealizable_paths.
6983
6984 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6985
6986         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6987         mspace): Remove deprecated options.
6988         * doc/invoke.texi (SH options): Remove -mspace.
6989
6990 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6991
6992         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6993
6994 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6995
6996         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6997         corresponding combine split pattern.
6998
6999 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7000
7001         PR target/58219
7002         * config/sh/predicates.md (long_displacement_mem_operand): New.
7003         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
7004         Add movi20, movi20s alternatives.  Adjust length attribute for
7005         alternatives.
7006         (movsi_ie): Allow for any FPU.  Adjust length attribute for
7007         alternatives.
7008         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
7009         attribute for alternatives.
7010         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
7011         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
7012         length attribute for alternatives.
7013
7014 2016-05-06  Richard Biener  <rguenther@suse.de>
7015
7016         PR tree-optimization/70960
7017         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
7018
7019 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7020
7021         PR target/52933
7022         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
7023         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
7024
7025 2016-05-06  Marek Polacek  <polacek@redhat.com>
7026
7027         PR sanitizer/70875
7028         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
7029
7030 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7031
7032         PR target/54089
7033         * config/sh/sh.md (*rotcr): Add another variant.
7034
7035 2016-05-06  Richard Biener  <rguenther@suse.de>
7036
7037         PR middle-end/70931
7038         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
7039
7040 2016-05-06  Richard Biener  <rguenther@suse.de>
7041
7042         PR middle-end/70941
7043         * fold-const.c (split_tree): Always convert to the original type
7044         before negating.
7045
7046 2016-05-06  Richard Biener  <rguenther@suse.de>
7047
7048         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
7049         (fwprop_addr): Likewise.
7050
7051 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7052
7053         PR target/70873
7054         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
7055         New prototype.
7056         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
7057         * config/i386/i386.md (push mem splitter): Use find_constant_src in
7058         the splitter condition.
7059         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
7060         the splitter condition.
7061         (FP float_extend load splitter): Ditto.
7062
7063 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
7064
7065         * config/i386/i386.md (peehole2 patterns): Change true_regnum
7066         to REGNO in all peephole2 patterns.
7067         (post-reload splitters): Change true_regnum to REGNO in
7068         post-reload splitters.
7069         (zero_extend splitters): Use general_reg_operand and
7070         nonimmediate_gr_operand predicates.
7071
7072 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
7073
7074         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
7075         v constraint instead of x.
7076
7077 2016-05-05  Alan Modra  <amodra@gmail.com>
7078
7079         PR target/68662
7080         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7081         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
7082         TARGET_NO_FP_IN_TOC for -mrelocatable.
7083         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
7084         TARGET_RELOCATABLE test.
7085         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7086         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7087         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7088         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7089         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7090         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7091         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7092         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7093         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7094         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7095         Likewise.
7096         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
7097         (rs6000_stack_info): Likewise.
7098         (rs6000_elf_asm_out_constructor): Likewise.
7099         (rs6000_elf_asm_out_destructor): Likewise.
7100         (rs6000_elf_declare_function_name): Likewise.
7101         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
7102         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
7103         Don't define.
7104
7105 2016-05-05  Alan Modra  <amodra@gmail.com>
7106
7107         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
7108
7109 2016-05-05  Alan Modra  <amodra@gmail.com>
7110
7111         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
7112         out-of-line gpr restore for one or two regs if that would add
7113         a save of lr.
7114
7115 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
7116
7117         PR target/70873
7118         * config/i386/i386.md
7119         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
7120         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
7121         as operand 0 predicate.
7122         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
7123         Ditto.
7124         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
7125         Ditto.  Emit the pattern using RTX.
7126
7127         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
7128         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
7129         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
7130         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
7131         Ditto.
7132         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
7133         sse_reg_operand as operand 0 predicate.
7134
7135         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
7136         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
7137         instead of gen_rtx_REG.
7138         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
7139         Ditto.
7140
7141 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7142
7143         * function.c (emit_use_return_register_into_block): Delete.
7144         (gen_return_pattern): Delete.
7145         (emit_return_into_block): Delete.
7146         (active_insn_between): Delete.
7147         (convert_jumps_to_returns): Delete.
7148         (emit_return_for_exit): Delete.
7149         (thread_prologue_and_epilogue_insns): Delete all code dealing with
7150         simple_return for shrink-wrapped blocks.
7151         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
7152         end of blocks that need one.
7153         (get_unconverted_simple_return): Delete.
7154         (convert_to_simple_return): Delete.
7155         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
7156         (convert_to_simple_return): Ditto.
7157
7158 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7159
7160         * cfgcleanup.c (bb_is_just_return): New function.
7161         (try_optimize_cfg): Simplify jumps to return, branches to return,
7162         and branches around return.
7163
7164 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7165
7166         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
7167         branch to a return.
7168
7169 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7170
7171         PR c++/70906
7172         PR c++/70933
7173         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
7174         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
7175         assert flags & OEP_HASH_CHECK, instead of asserting it
7176         never happens.  Handle TARGET_EXPR.
7177         * fold-const.c (operand_equal_p): For hash verification,
7178         or in OEP_HASH_CHECK into flags.
7179
7180 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7181
7182         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
7183         comment.
7184         (compute_samebase_partition_bases): Fix typo.
7185
7186 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7187
7188         * config/i386/sse.md (vec_interleave_highv8sf,
7189         vec_interleave_lowv8sf, vec_interleave_highv4df,
7190         vec_interleave_lowv4df): Remove constraints from expanders.
7191
7192         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
7193
7194 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7195
7196         * tree-inline.c (expand_call_inline): Fix path dealing with
7197         making lhs of call statement undefined.
7198
7199 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7200
7201         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
7202         Check availability on NODE, too.
7203         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
7204         (cgraph_node::call_for_symbol_and_aliases): Likewise.
7205         (varpool_node::call_for_symbol_and_aliase): Likewise.
7206         * ipa-pure-const.c (add_new_function): Analyze all bodies.
7207         (propagate_pure_const): Propagate across interposable functions, too.
7208         (skip_function_for_local_pure_const): Do not skip interposable bodies
7209         with aliases.
7210         (pass_local_pure_const::execute): Update.
7211
7212 2016-05-04  Marek Polacek  <polacek@redhat.com>
7213
7214         * doc/invoke.texi: Document -Wdangling-else.
7215
7216 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7217
7218         * config.gcc: Error out when conflicting multilib is detected.  Do not
7219         loop over multilibs since no combination is legal.
7220
7221 2016-05-04  Alan Modra  <amodra@gmail.com>
7222
7223         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
7224         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
7225         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7226         Align .toc.
7227
7228 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7229
7230         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
7231         Clean up p5600 comments.
7232
7233 2016-05-04  Richard Biener  <rguenther@suse.de>
7234
7235         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
7236         constructor simplifications.
7237         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
7238
7239 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
7240
7241         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
7242         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
7243         result.set_rtx is null instead of aborting.
7244         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
7245         Always enable.
7246         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
7247         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
7248         *mov<mode>_store_postinc): New patterns.
7249
7250 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
7251
7252         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
7253         as commutative.  Check both conversions are NOP.
7254         ((A & B) OP (C & B)): Remove.
7255
7256 2016-05-04  Alan Modra  <amodra@gmail.com>
7257
7258         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
7259
7260 2016-05-04  Alan Modra  <amodra@gmail.com>
7261
7262         PR target/70866
7263         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
7264         when cr2,3,4 are all fixed regs.
7265
7266 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
7267
7268         PR rtl-optimization/57193
7269         * opts.c (default_options_table): Revert OPT_frename_registers change.
7270         * doc/invoke.texi (-frename-registers, -O2): Likewise.
7271
7272 2016-05-03  Martin Sebor  <msebor@redhat.com>
7273
7274         PR c++/66561
7275         * builtins.c (fold_builtin_FILE): New function.
7276         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
7277         (fold_builtin_0): Call them.
7278         * gimplify.c (gimplify_call_expr): Remove the handling of
7279         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
7280
7281         PR c++/66561
7282         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
7283         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
7284         constants.
7285
7286         PR c++/66639
7287         * doc/extend.texi (Function Names as Strings): Update __func__,
7288         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
7289         constants.
7290
7291 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7292             Richard Biener  <rguenther@suse.de>
7293
7294         PR tree-optimization/70916
7295         * tree-if-conv.c: Include cfganal.h.
7296         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
7297         and remove_fake_exit_edges around the optimization pass.
7298
7299 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
7300
7301         * cgraph.c (symbol_table::create_edge): Set inline_failed.
7302         (cgraph_edge::make_direct): Likewise.
7303         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
7304         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
7305         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
7306         (CIF_THUNK): New code.
7307         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
7308         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
7309         (compute_inline_parameters): Set inline_failed for thunks.
7310         (inline_analyze_function): Cleanup.
7311         * ipa-inline.c (can_inline_edge_p): Do not deal with
7312         call_stmt_cannot_inline_p.
7313         (can_early_inline_edge_p): Likewise.
7314         (early_inliner): Initialize inline_failed.
7315         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
7316
7317 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
7318
7319         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
7320         from nonimm_ssenomem_operand.
7321         (nonimm_ssenomem_operand): New predicate.
7322         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
7323         as operand 0 predicate.
7324         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
7325         Disable unsupported alternatives using "enabled" attribute.
7326         Use register_ssemem_operand as operand 0 predicate.
7327         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
7328
7329 2016-05-03  Marek Polacek  <polacek@redhat.com>
7330
7331         PR c/70859
7332         * input.c (expansion_point_location): New function.
7333         * input.h (expansion_point_location): Declare.
7334
7335 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7336
7337         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
7338         occurence with frame_offset_ ones.
7339
7340 2016-05-03  Alan Modra  <amodra@gmail.com>
7341
7342         PR rtl-optimization/70890
7343         * ira.c (combine_and_move_insns): When moving def_insn, remove
7344         equivs on use_insn.
7345
7346 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7347
7348         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
7349         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
7350         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
7351         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
7352
7353 2016-05-03  Alan Modra  <amodra@gmail.com>
7354
7355         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
7356         for SAVE_MULTIPLE/STORE_MULTIPLE.
7357
7358 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7359
7360         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
7361         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
7362
7363 2016-05-03  Richard Biener  <rguenther@suse.de>
7364
7365         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
7366         default true.
7367         (gimplify_arg): Likewise.
7368         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
7369         re-writing the result to a decl if required.
7370         (internal_get_tmp_var): Add allow_ssa parameter
7371         and override into_ssa with it.
7372         (get_formal_tmp_var): Adjust.
7373         (get_initialized_tmp_var): Add allow_ssa parameter.
7374         (gimplify_arg): Add allow_ssa parameter and avoid generating
7375         SSA names for the result false.
7376         (gimplify_call_expr): If the call may return twice do not
7377         gimplify parameters into SSA.
7378         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
7379         (gimplify_modify_expr): Adjust assert.  For noreturn calls
7380         with a SSA name LHS adjust its def.
7381         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
7382         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
7383         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
7384         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
7385         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
7386         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
7387         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
7388         (optimize_target_teams): Do not allow SSA names for clause operands.
7389         (gimplify_expr): Likewise for where we mark the result addressable.
7390         * passes.def (pass_init_datastructures): Remove.
7391         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
7392         (rewrite_stmt): Likewise.
7393         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
7394         (replace_locals_op): Replace SSA names.
7395         (copy_gimple_seq_and_replace_locals): Init src_cfun.
7396         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
7397         * cgraph.c (release_function_body): Free CFG annotations only
7398         when we have a CFG.  Simplify.
7399         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
7400         force_gimple_operand instead of get_initialized_tmp_var.
7401         * tree-pass.h (make_pass_init_datastructures): Remove.
7402         * tree-ssa.c (execute_init_datastructures): Remove.
7403         (pass_data_init_datastructures): Likewise.
7404         (class pass_init_datastructures): Likewise.
7405         (make_pass_init_datastructures): Likewise.
7406         * omp-low.c (create_omp_child_function): Init SSA data structures.
7407         (grid_expand_target_grid_body): Likewise.
7408         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
7409         name before adding it to names_to_release.
7410         (remove_bb): Always release SSA defs.
7411         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
7412         before dereferencing it.
7413         * cgraphunit.c (init_lowered_empty_function): Always
7414         int SSA data structures.
7415         * tree-ssanames.c (release_defs): Remove assert that we are in
7416         SSA form.
7417         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
7418
7419 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7420             Uros Bizjak  <ubizjak@gmail.com>
7421
7422         PR rtl-optimization/70467
7423         * config/i386/predicates.md (x86_64_hilo_int_operand,
7424         x86_64_hilo_general_operand): New predicates.
7425         * config/i386/constraints.md (Wd): New constraint.
7426         * config/i386/i386.md (mode attr di): Use Wd instead of e.
7427         (general_hilo_operand): New mode attr.
7428         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
7429         instead of <general_operand>.
7430         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
7431         x86_64_hilo_general_operand instead of <general_operand>.
7432
7433 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7434
7435         PR tree-optimization/70916
7436         * tree-if-conv.c (constant_or_ssa_name): Removed.
7437         (fold_build_cond_expr): Use is_gimple_val instead of
7438         constant_or_ssa_name.
7439
7440         PR tree-optimization/70916
7441         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
7442         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
7443
7444         PR target/49244
7445         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
7446         (optimize_atomic_bit_test_and): New function.
7447         (pass_fold_builtins::execute): Use it.
7448         * optabs.def (atomic_bit_test_and_set_optab,
7449         atomic_bit_test_and_complement_optab,
7450         atomic_bit_test_and_reset_optab): New optabs.
7451         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
7452         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
7453         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
7454         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
7455         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
7456         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
7457         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
7458         * doc/md.texi (atomic_bit_test_and_set@var{mode},
7459         atomic_bit_test_and_complement@var{mode},
7460         atomic_bit_test_and_reset@var{mode}): Document.
7461         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
7462         atomic_bit_test_and_complement<mode>,
7463         atomic_bit_test_and_reset<mode>): New expanders.
7464         (atomic_bit_test_and_set<mode>_1,
7465         atomic_bit_test_and_complement<mode>_1,
7466         atomic_bit_test_and_reset<mode>_1): New insns.
7467
7468 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
7469
7470         PR rtl-optimization/70687
7471         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
7472         instead of unsigned HOST_WIDE_INT.
7473
7474 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
7475
7476         PR rtl-optimization/44281
7477         * hard-reg-set.h (struct target_hard_regs): New field
7478         x_fixed_nonglobal_reg_set.
7479         (fixed_nonglobal_reg_set): New macro.
7480         * reginfo.c (init_reg_sets_1): Initialize it.
7481         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
7482         of fixed_reg_set.
7483         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
7484
7485 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7486
7487         PR tree-optimization/56541
7488         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
7489         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
7490         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
7491         (any_complicated_phi): new static variable.
7492         (aggressive_if_conv): delete.
7493         (if_convertible_phi_p): support phis with more than two arguments.
7494         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
7495         critical pred edges.
7496         (ifcvt_split_critical_edges): support phis with more than two
7497         arguments by checking new parameter.  only split critical edges
7498         if needed.
7499         (tree_if_conversion): handle simd pragma marked loop using new
7500         local variable aggressive_if_conv.  check any_complicated_phi.
7501
7502 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7503
7504         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
7505         before using it.
7506
7507 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7508
7509         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
7510         cbase.
7511
7512 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
7513
7514         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
7515         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
7516         define_insn_and_split.
7517         (mulsi3_i): New define_insn_and_split.
7518         (mulsi3_call): Convert to define_insn.
7519         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
7520         Remove constraints.
7521
7522 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7523
7524         * machmode.h (mode_complex): Add support to give the complex mode
7525         for a given mode.
7526         (GET_MODE_COMPLEX_MODE): Likewise.
7527         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
7528         stored by build_complex_type and gfc_build_complex_type instead of
7529         trying to figure out the appropriate mode based on the size. Raise
7530         an assertion error, if the type was not set.
7531         * genmodes.c (struct mode_data): Add field for the complex type of
7532         the given type.
7533         (blank_mode): Likewise.
7534         (make_complex_modes): Remember the complex mode created in the
7535         base type.
7536         (emit_mode_complex): Write out the mode_complex array to map a
7537         type mode to the complex version.
7538         (emit_insn_modes_c): Likewise.
7539         * tree.c (build_complex_type): Set the complex type to use before
7540         calling layout_type.
7541         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
7542         support for __float128 complex datatypes.
7543         (rs6000_hard_regno_mode_ok): Likewise.
7544         (rs6000_setup_reg_addr_masks): Likewise.
7545         (rs6000_complex_function_value): Likewise.
7546         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
7547         __float128 and __ibm128 complex.
7548         (FLOAT128_IBM_P): Likewise.
7549         (ALTIVEC_ARG_MAX_RETURN): Likewise.
7550         * doc/extend.texi (Additional Floating Types): Document that
7551         -mfloat128 must be used to enable __float128.  Document complex
7552         __float128 and __ibm128 support.
7553
7554 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7555
7556         PR target/49244
7557         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
7558         char/short arguments promoted to int because of promote_prototypes.
7559
7560 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
7561
7562         * config/i386/predicates.md (register_ssemem_operand): New predicate.
7563         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
7564         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
7565         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
7566         alternatives using "enabled" attribute.  Use register_ssemem_operand
7567         as operand 1 predicate.
7568         (*cmpi<unord>xf_i387): Split XFmode pattern from
7569         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
7570         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
7571         *absneg<mode>2_i387.  Disable unsupported alternatives using
7572         "enabled" attribute.
7573         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
7574
7575 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7576
7577         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
7578         marker.
7579         (oacc_loop_process): Check mask for loop termination.
7580
7581 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7582
7583         * cif-code.def (CIF_THUNK): Add.
7584         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
7585         accidental change.
7586
7587 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7588
7589         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
7590         (dump_inline_summary): Dump it.
7591         (fp_expression_p): New predicate.
7592         (estimate_function_body_sizes): Use it.
7593         (inline_merge_summary): Merge fp_expressions.
7594         (inline_read_section): Read fp_expressions.
7595         (inline_write_summary): Write fp_expressions.
7596         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
7597         codegen boundary if either caller or callee is !fp_expressions.
7598         * ipa-inline.h (inline_summary): Add fp_expressions.
7599         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
7600         to fp_expressions be sure the fp generation flags are updated.
7601
7602 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7603
7604         PR rtl-optimization/70467
7605         * cse.c (cse_insn): Handle no-op MEM moves after folding.
7606
7607         PR rtl-optimization/70467
7608         * ipa-pure-const.c (check_call): Handle internal calls even in
7609         ipa mode like in local mode.
7610
7611 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7612
7613         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
7614
7615 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7616
7617         * match.pd (X u< X, X u> X): New transformations.
7618
7619 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7620
7621         * flag-types.h (enum warn_strict_overflow_code): Move ...
7622         * coretypes.h: ... here.
7623         * fold-const.h (fold_overflow_warning): Declare.
7624         * fold-const.c (fold_overflow_warning): Make non-static.
7625         (fold_comparison): Move the transformation of X +- C1 CMP C2
7626         into X CMP C2 -+ C1 ...
7627         * match.pd: ... here.
7628         * gimple-fold.c (fold_stmt_1): Protect with
7629         fold_defer_overflow_warnings.
7630
7631 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7632
7633         * omp-low.c (struct oacc_loop): Add 'inner' field.
7634         (new_oacc_loop_raw): Initialize it to zero.
7635         (oacc_loop_fixed_partitions): Initialize it.
7636         (oacc_loop_auto_partitions): Partition outermost loop to outermost
7637         available partitioning.
7638
7639 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7640
7641         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
7642         register_operand.
7643         (umulsidi3): Likewise.
7644         (indirect_jump): Fix jump instruction assembly patterns.
7645
7646 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
7647
7648         PR target/70860
7649         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
7650         (nvptx_function_value): Assert non-NULL cfun.
7651
7652 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
7653
7654         PR rtl-optimization/70886
7655         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
7656
7657         * cselib.h (rtx_equal_for_cselib_1): Declare.
7658         (rtx_equal_for_cselib_p: New inline function.
7659         * cselib.c (rtx_equal_for_cselib_p): Delete.
7660         (rtx_equal_for_cselib_1): Make public.
7661
7662 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
7663
7664         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
7665         (register_mixssei387nonimm_operand): Remove predicate.
7666         * config/i386/i386.md (*fop_<mode>_comm): Merge from
7667         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
7668         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
7669         for TARGET_MIX_SSE_I387 alternatives.
7670         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
7671         Disable unsupported alternatives using "enabled" attribute.  Use
7672         nonimm_ssenomem_operand as operand 1 predicate.  Also check
7673         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
7674
7675 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7676
7677         * tree.c (cst_and_fits_in_hwi): Simplify.
7678
7679 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7680
7681         * tree.h (wi::to_wide): New function.
7682         * expr.c (expand_expr_real_1): Use wi::to_wide.
7683         * fold-const.c (int_const_binop_1): Likewise.
7684         (extract_muldiv_1): Likewise.
7685
7686 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7687
7688         * wide-int.h: Update offset_int and widest_int documentation.
7689         (WI_SIGNED_SHIFT_RESULT): New macro.
7690         (wi::binary_shift): Define signed_shift_result_type for
7691         shifts on offset_int- and widest_int-like types.
7692         (generic_wide_int): Support <<= and >>= if << and >> are supported.
7693         * tree.h (int_bit_position): Use shift operators instead of wi::
7694          shifts.
7695         * alias.c (adjust_offset_for_component_ref): Likewise.
7696         * expr.c (get_inner_reference): Likewise.
7697         * fold-const.c (fold_comparison): Likewise.
7698         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
7699         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
7700         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7701         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
7702         (stmt_kills_ref_p): Likewise.
7703         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
7704         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
7705         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7706         (ao_ref_init_from_vn_reference): Likewise.
7707
7708 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7709
7710         * wide-int.h: Update offset_int and widest_int documentation.
7711         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
7712         (wi::binary_traits): Allow ordered comparisons between offset_int and
7713         offset_int, between widest_int and widest_int, and between either
7714         of these types and basic C types.
7715         (operator <, <=, >, >=): Define for the same combinations.
7716         * tree.h (tree_int_cst_lt): Use comparison operators instead
7717         of wi:: comparisons.
7718         (tree_int_cst_le): Likewise.
7719         * gimple-fold.c (fold_array_ctor_reference): Likewise.
7720         (fold_nonarray_ctor_reference): Likewise.
7721         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
7722         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
7723         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
7724         * tree-sra.c (completely_scalarize): Likewise.
7725         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
7726         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
7727         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
7728         (check_for_binary_op_overflow): Likewise.
7729         (search_for_addr_array): Likewise.
7730         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
7731
7732 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7733
7734         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
7735         (arc_save_restore): Likewise.
7736         (arc_dwarf_register_span): Likewise.
7737         (arc_output_pic_addr_const): Initialize suffix variable.
7738
7739 2016-05-02  Martin Liska  <mliska@suse.cz>
7740
7741         * symbol-summary.h (function_summary::function_summary):
7742         Remove checking assert for all cgraph nodes.
7743         (function_summary::get): Check summary_uid.
7744         (symtab_insertion): Check summary_uid.
7745
7746 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7747
7748         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
7749         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
7750         bmaskn instruction.
7751         (arc_dwarf_register_span): Remove enum keyword.
7752         (compact_memory_operand_p): New function.
7753         * config/arc/arc.h (reg_class): Add code density register classes.
7754         (REG_CLASS_NAMES): Likewise.
7755         (REG_CLASS_CONTENTS): Likewise.
7756         * config/arc/arc.md (*movqi_insn): Add code density instructions.
7757         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
7758         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
7759         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
7760         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
7761         constraints.
7762         (h, Rcd, Rsd, Rzd): New register constraints.
7763         (T): Use compact_memory_operand_p function.
7764         * config/arc/predicates.md (compact_load_memory_operand): Remove.
7765
7766 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
7767
7768         * config/sh/sh.md (*negnegt, *movtt): Remove.
7769
7770 2016-05-02  Marek Polacek  <polacek@redhat.com>
7771             Tom de Vries  <tom@codesourcery.com>
7772
7773         PR tree-optimization/70700
7774         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
7775         bigger than FIRST_REF_NODE.
7776
7777 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
7778
7779         PR target/52898
7780         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
7781         TARGET_CMPEQDI_T.
7782         (prepare_cbranch_operands): Don't use scratch register.  Assume that
7783         function is used when pseudos can be created.
7784         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
7785         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
7786         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
7787         define_expand.  Allow it only when pseudos can be created.
7788         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
7789
7790 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
7791
7792         * config/i386/constraints.md (BC): Only allow -1 operands.
7793         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
7794         Add "enabled" attribute.  Update XI mode attribute calculation.
7795         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
7796         (*movoi_internal_avx): Update XI mode attribute calculation.
7797         (*movti_internal): Ditto.
7798
7799 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7800
7801         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
7802         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
7803
7804 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
7805
7806         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
7807         statement on instruction code.  Remove trailing spaces.
7808         (altivec_expand_stv_builtin): Likewise.
7809
7810 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7811
7812         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
7813         (TARGET_FPU_DOUBLE): Simplify.
7814         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
7815         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
7816         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
7817         with 'TARGET_FPU_DOUBLE'.
7818         * config/sh/sh.md: Likewise.
7819
7820 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
7821
7822         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
7823         SH_DIV_STR_FOR_SIZE): Remove.
7824         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
7825         SH_DIV_STR_FOR_SIZE): Remove.
7826
7827 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7828
7829         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
7830         logical_reg_operand): Delete.
7831         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
7832         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
7833         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
7834         match_operand and match_test.
7835         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
7836         variables on their first use.  Return bool values.
7837         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
7838         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
7839         arith_reg_operand for input operand.  Remove empty constraints.
7840         (xorsi3): Delete.
7841         (*xorsi3_compact): Rename to xorsi3.
7842         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
7843         (*zero_extend<mode>si2_disp_mem): Update comment.
7844         (mov_nop): Delete.
7845
7846 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7847
7848         * config/sh/t-sh: Remove SH5 support.
7849         * config.gcc: Likewise.
7850         * configure: Likewise.
7851
7852 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7853
7854         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
7855
7856 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7857
7858         * config/sh/sh.c (register_sh_passes, sh_option_override,
7859         sh_print_operand, prepare_move_operands,
7860         sh_can_follow_jump): Remove TARGET_SH1 checks.
7861         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
7862         PROMOTE_MODE): Likewise.
7863         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
7864         movdi): Likewise.
7865
7866 2016-04-30  Alan Modra  <amodra@gmail.com>
7867
7868         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
7869         restoring when fixed_reg_p, but allow out-of-line or stmw save.
7870         Check for user regs later to avoid unnecessary looping over regs.
7871         Merge user reg check with non-saved reg check.  Don't force
7872         inline VR restore when static chain used.
7873         (rs6000_frame_related): Omit eh_frame info for user regs when
7874         saving.
7875         (fixed_regs_p): Delete.
7876
7877 2016-04-30  Alan Modra  <amodra@gmail.com>
7878
7879         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
7880         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
7881         Update all uses.
7882
7883 2016-04-30  Alan Modra  <amodra@gmail.com>
7884
7885         PR target/69645
7886         * config/rs6000/rs6000.c (fixed_reg_p): New function.
7887         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
7888         Update all uses.
7889
7890 2016-04-30  Alan Modra  <amodra@gmail.com>
7891
7892         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
7893         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
7894         flag_pic test for Darwin.
7895
7896 2016-04-30  Alan Modra  <amodra@gmail.com>
7897
7898         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
7899         throw_calls_crossed.
7900         (REG_FREQ_CALLS_CROSSED): Delete.
7901         (REG_N_THROWING_CALLS_CROSSED): Delete.
7902         * regstat.c (regstat_bb_compute_ri): Don't calculate
7903         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
7904         (dump_reg_info): Don't print call cross frequency.
7905         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
7906         and REG_N_THROWING_CALLS_CROSSED.
7907
7908 2016-04-30  Alan Modra  <amodra@gmail.com>
7909
7910         * regs.h (struct reg_info_t): Delete live_length.
7911         (REG_LIVE_LENGTH): Delete macro.
7912         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
7913         local_live, local_processed and local_live_last_luid params.
7914         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
7915         Formatting fixes.
7916         (regstat_compute_ri): Adjust for above.  Don't set
7917         REG_LIVE_LENGTH.
7918         (dump_reg_info): Don't print live length.
7919         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
7920         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
7921         Localize loop_depth var.
7922
7923 2016-04-30  Alan Modra  <amodra@gmail.com>
7924
7925         * ira.c (enum valid_equiv): New.
7926         (validate_equiv_mem): Return enum.
7927         (update_equiv_mem): Create replacement in more cases.
7928         (add_store_equivs): Update validate_equiv_mem call.
7929
7930 2016-04-30  Alan Modra  <amodra@gmail.com>
7931
7932         * ira.c (combine_and_move_insns): Rather than scanning insns,
7933         use DF infrastucture to find use and def insns.
7934
7935 2016-04-30  Alan Modra  <amodra@gmail.com>
7936
7937         ira.c (combine_and_move_insns): Move invariant conditions..
7938         (ira.c): ..to here.  Call combine_and_move_insns before
7939         add_store_equivs.  Call grow_reg_equivs later.  Allocate
7940         req_equiv later using max_reg_num() rather than global max_regno.
7941         (contains_replace_regs): Delete.
7942         (add_store_equivs): Remove contains_replace_regs test.
7943
7944 2016-04-30  Alan Modra  <amodra@gmail.com>
7945
7946         * ira.c (struct equiv_mem_data): New.
7947         (equiv_mem, equiv_mem_modified): Delete static vars.
7948         (validate_equiv_mem_from_store): Use "data" param to communicate..
7949         (validate_equiv_mem): ..from here.
7950
7951 2016-04-30  Alan Modra  <amodra@gmail.com>
7952
7953         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7954         split out from..
7955         (update_reg_equivs): ..here.  Move allocation and freeing of
7956         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
7957         end_alias_analysis to..
7958         (ira): ..here.
7959
7960 2016-04-30  Alan Modra  <amodra@gmail.com>
7961
7962         * ira.c (pdx_subregs): Delete.
7963         (struct equivalence): Add pdx_subregs field.
7964         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
7965         pdx_subregs access.
7966         (update_equiv_regs): Don't create or free pdx_subregs.  Update
7967         pdx_subregs access.
7968
7969 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7970
7971         * config/rs6000/altivec.h: Change definitions of vec_xl and
7972         vec_xst.
7973         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
7974         (LD_ELEMREV_V2DI): New.
7975         (LD_ELEMREV_V4SF): New.
7976         (LD_ELEMREV_V4SI): New.
7977         (LD_ELEMREV_V8HI): New.
7978         (LD_ELEMREV_V16QI): New.
7979         (ST_ELEMREV_V2DF): New.
7980         (ST_ELEMREV_V2DI): New.
7981         (ST_ELEMREV_V4SF): New.
7982         (ST_ELEMREV_V4SI): New.
7983         (ST_ELEMREV_V8HI): New.
7984         (ST_ELEMREV_V16QI): New.
7985         (XL): New.
7986         (XST): New.
7987         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7988         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
7989         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
7990         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
7991         (altivec_expand_builtin): Add handling for
7992         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
7993         (rs6000_invalid_builtin): Add error-checking for
7994         RS6000_BTM_P9_VECTOR.
7995         (altivec_init_builtins): Define builtins used to implement vec_xl
7996         and vec_xst.
7997         (rs6000_builtin_mask_names): Define power9-vector.
7998         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
7999         (RS6000_BTM_P9_VECTOR): Define.
8000         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
8001         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
8002         (vsx_ld_elemrev_v2df): Likewise.
8003         (vsx_ld_elemrev_v4sf): Likewise.
8004         (vsx_ld_elemrev_v4si): Likewise.
8005         (vsx_ld_elemrev_v8hi): Likewise.
8006         (vsx_ld_elemrev_v16qi): Likewise.
8007         (vsx_st_elemrev_v2df): Likewise.
8008         (vsx_st_elemrev_v2di): Likewise.
8009         (vsx_st_elemrev_v4sf): Likewise.
8010         (vsx_st_elemrev_v4si): Likewise.
8011         (vsx_st_elemrev_v8hi): Likewise.
8012         (vsx_st_elemrev_v16qi): Likewise.
8013         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
8014         grammar.
8015
8016 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
8017
8018         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
8019         out into ...
8020         (simplify_control_stmt_condition_1): ... here.  Recurse into
8021         BIT_AND_EXPRs and BIT_IOR_EXPRs.
8022
8023 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
8024
8025         PR target/69810
8026         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
8027         (zero_extendqi<mode>2_dot): Revert earlier conversion from
8028         define_insn_and_split to define_insn.
8029         (zero_extendqi<mode>2_dot2): Same.
8030         (extendqi<mode>2_dot): Same.
8031         (extendqi<mode>2_dot2): Same.
8032
8033 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8034
8035         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
8036         (probe_stack): New expander.
8037         (probe_stack_<mode>): New insn pattern.
8038
8039 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8040
8041         * config/i386/i386.md
8042         (operations with memory inputs setting flags peephole2):
8043         Remove uneeded REG_P checks.  Cleanup pattern generation.
8044
8045 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8046
8047         * tree-vect-loop.c (vect_transform_loop): Fix
8048         nb_iterations_upper_bound computation for vectorized loop.
8049
8050 2016-04-29  Marek Polacek  <polacek@redhat.com>
8051             Jakub Jelinek  <jakub@redhat.com>
8052
8053         PR sanitizer/70342
8054         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
8055         TARGET_EXPR_SLOT as a base.
8056
8057 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
8058
8059         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
8060         with 'rCm2' constraints to limit possible immediate size.
8061         (*load_zeroextendqisi_update): Likewise.
8062         (*load_signextendqisi_update): Likewise.
8063         (*loadhi_update): Likewise.
8064         (*load_zeroextendhisi_update): Likewise.
8065         (*load_signextendhisi_update): Likewise.
8066         (*loadsi_update): Likewise.
8067         (*loadsf_update): Likewise.
8068
8069 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8070
8071         * config/i386/predicates.md (constm1_operand): Fix comparison.
8072
8073 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8074
8075         * testsuite/gcc.target/arc/ieee_eq.c: New test.
8076
8077 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
8078
8079         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
8080         remaining SH5 related settings.
8081         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
8082         shmedia_prepare_call_address): Delete.
8083         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
8084         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
8085         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
8086         UNSUPPORTED_SH2A): Remove m5 checks.
8087         (sh_divide_strategy_e): Remove SH5 division strategies.
8088         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
8089         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
8090
8091 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8092
8093         * config/s390/s390.c (s390_rtx_costs): Update documentation.
8094
8095 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8096
8097         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
8098         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
8099         Change lder to ldr.
8100         * config/s390/vector.md ("mov<mode>"): Likewise.
8101
8102 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
8103
8104         * config/s390/constraints.md ("U", "W"): Invoke
8105         s390_mem_constraint with "ZR" and "ZT".
8106         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
8107         addresses when using LRA.  Accept also short displacements for S
8108         and T constraints.  Do not check for long displacement target for
8109         S and T constraints.
8110         (s390_mem_constraint): Remove handling of U and W constraints.
8111         * config/s390/s390.md (various patterns): Remove the short
8112         displacement constraints (Q and R) if a long displacement
8113         constraint is present.  Add longdisp as required CPU capability.
8114         * config/s390/vector.md: Likewise.
8115         * config/s390/vx-builtins.md: Likewise.
8116
8117 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8118
8119         PR target/60040
8120         * reload1.c (reload): Call finish_spills before
8121         restarting reload loop. Skip select_reload_regs
8122         if update_eliminables_and_spill returns true.
8123
8124 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8125
8126         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
8127         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
8128         (umulhisi3_imm): Update predicates and constraint letters.
8129         (umulhisi3_reg): Declare instruction as commutative.
8130         * config/arc/constraints.md (J12, J16): New constraints.
8131         * config/arc/predicates.md (short_unsigned_const_operand): New
8132         predicate.
8133         (arc_short_operand): Likewise.
8134         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
8135
8136 2016-04-29  Richard Biener  <rguenther@suse.de>
8137
8138         PR tree-optimization/13962
8139         PR tree-optimization/65686
8140         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
8141         * tree-ssa-alias.c (ptrs_compare_unequal): New function
8142         using PTA to compare pointers.
8143         * match.pd: Add pattern for pointer equality compare simplification
8144         using ptrs_compare_unequal.
8145
8146 2016-04-29  Richard Biener  <rguenther@suse.de>
8147
8148         * stor-layout.c (layout_type): Do not build a pointer-to-element
8149         type for arrays.
8150
8151 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8152
8153         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
8154         Use SWI mode iterator.  Use general_reg_operand predicate.
8155         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
8156         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
8157         predicates.
8158
8159 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR middle-end/70843
8162         * fold-const.c (operand_equal_p): Don't verify hash value equality
8163         if arg0 == arg1.
8164         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
8165         and OMP_CLAUSE.
8166
8167 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8168
8169         PR target/70858
8170         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
8171         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
8172         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
8173         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
8174         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
8175
8176 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8177
8178         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
8179         to info.  Don't initialize separate fields to 0.  Clean up
8180         formatting a bit.
8181
8182 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8183
8184         * config/i386/i386.md (peephole2s for operations with memory inputs):
8185         Use SWI mode iterator.
8186         (peephole2s for operations with memory outputs): Ditto.
8187         Do not check for stack checking probe.
8188
8189         (probe_stack): Remove expander.
8190
8191 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8192             Andrew Burgess  <andrew.burgess@embecosm.com>
8193
8194         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
8195         operands as 32-bits.
8196
8197 2016-04-28  Jason Merrill  <jason@redhat.com>
8198
8199         * gdbinit.in: Skip line-map.h.
8200
8201 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8202             Andrew Burgess  <andrew.burgess@embecosm.com>
8203
8204         * config/arc/arc.c (arc_conditional_register_usage): Take
8205         TARGET_RRQ_CLASS into account.
8206         (arc_print_operand): Support printing 'p' and 's' operands.
8207         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
8208         as 0.
8209         (TARGET_RRQ_CLASS): Define.
8210         (IS_POWEROF2_OR_0_P): Define.
8211         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
8212         alternatives.
8213         (*tst_movb): New define_insn.
8214         (*tst): Avoid recognition if it could prevent '*tst_movb'
8215         combination; replace c/CnL with c/Chs alternative.
8216         (*tst_bitfield_tst): New define_insn.
8217         (*tst_bitfield_asr): New define_insn.
8218         (*tst_bitfield): New define_insn.
8219         (andsi3_i): Add Rrq variant.
8220         (extzv): New define_expand.
8221         (insv): New define_expand.
8222         (*insv_i): New define_insn.
8223         (*movb): New define_insn.
8224         (*movb_signed): New define_insn.
8225         (*movb_high): New define_insn.
8226         (*movb_high_signed): New define_insn.
8227         (*movb_high_signed + 1): New define_split pattern.
8228         (*mrgb): New define_insn.
8229         (*mrgb + 1): New define_peephole2 pattern.
8230         (*mrgb + 2): New define_peephole2 pattern.
8231         * config/arc/arc.opt (mbitops): New option for nps400, uses
8232         TARGET_NPS_BITOPS_DEFAULT.
8233         * config/arc/constraints.md (q): Make register class conditional.
8234         (Rrq): New register constraint.
8235         (Chs): New constraint.
8236         (Clo): New constraint.
8237         (Chi): New constraint.
8238         (Cbf): New constraint.
8239         (Cbn): New constraint.
8240         (C18): New constraint.
8241         (Cbi): New constraint.
8242
8243 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8244
8245         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
8246         dst->popcount.
8247         (bitmap_intersection_of_preds): Ditto.
8248         (bitmap_union_of_succs): Ditto.
8249         (bitmap_union_of_preds): Ditto.
8250         * sbitmap.c (do_popcount): Delete.
8251         (BITMAP_DEBUGGING): Delete.
8252         (sbitmap_verify_popcount): Delete.
8253         (sbitmap_alloc): Don't initialize the popcount field.
8254         (sbitmap_alloc_with_popcount): Delete.
8255         (sbitmap_resize): Don't resize the popcount array.
8256         (sbitmap_vector_alloc): Don't initialize the popcount field.
8257         (bitmap_copy): Don't copy the popcount array.
8258         (bitmap_clear): Don't clear the popcount array.
8259         (bitmap_clear): Delete the popcount array handling.
8260         (bitmap_ior_and_compl): Delete the popcount assert.
8261         (bitmap_not): Ditto.
8262         (bitmap_and_compl): Ditto.
8263         (bitmap_and): Delete the popcount array handling.
8264         (bitmap_xor): Ditto.
8265         (bitmap_ior): Ditto.
8266         (bitmap_or_and): Delete the popcount assert.
8267         (bitmap_and_or): Ditto.
8268         (popcount_table): Delete.
8269         (sbitmap_elt_popcount): Delete.
8270         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
8271         (bitmap_set_bit): Delete the popcount assert.
8272         (bitmap_clear_bit): Ditto.
8273         (sbitmap_free): Don't free the popcount array.
8274         (sbitmap_alloc_with_popcount): Delete declaration.
8275         (sbitmap_popcount): Ditto.
8276
8277 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8278             Andrew Burgess  <andrew.burgess@embecosm.com>
8279
8280         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
8281         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
8282         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
8283         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
8284         * config/arc/arc.opt (mcmem): New option.
8285         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
8286         supply length for r/m alternative.
8287         (*extendqisi2_ac): Likewise.
8288         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
8289         r/Uex alternative.
8290         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
8291         (movhi_insn): Likewise.
8292         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
8293         (*zero_extendqihi2_i): Add r/Ucm alternative.
8294         (*zero_extendqisi2_ac): Likewise.
8295         (*zero_extendhisi2_i): Likewise.
8296         * config/arc/constraints.md (Uex): New memory constraint.
8297         (Ucm): New define_constraint.
8298         * config/arc/predicates.md (long_immediate_loadstore_operand):
8299         Return 0 for MEM with cmem_address address.
8300         (cmem_address_0): New predicates.
8301         (cmem_address_1): Likewise.
8302         (cmem_address_2): Likewise.
8303         (cmem_address): Likewise.
8304
8305 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8306
8307         * config/rs6000/rs6000.c (machine_function): Rename
8308         insn_chain_scanned_p to spe_insn_chain_scanned_p.
8309         (rs6000_stack_info): Adjust.
8310
8311 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8312             Andrew Burgess  <andrew.burgess@embecosm.com>
8313
8314         * config/arc/constraints.md (Usd): Convert to define_constraint.
8315         (Us<): Likewise.
8316         (Us>): Likewise.
8317
8318 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8319
8320         PR target/70821
8321         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
8322         Add new peephole2 where the first insn is *mov<mode>_or instead of
8323         *mov<mode>_internal.
8324
8325 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
8326
8327         * tracer.c (bb_seen): Make static.
8328
8329 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
8330
8331         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
8332         support, setup defaults.
8333         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
8334         * config/arc/arc.c (arc_init): Add NPS400 support.
8335         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
8336         (TARGET_ARC700): NPS400 is also an ARC700.
8337         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
8338
8339 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8340
8341         PR target/70668
8342         * config/nds32/nds32.md (casesi): Don't access the operands array
8343         out of bounds.
8344
8345 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8346
8347         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
8348         (or $-1,reg peephole2): Ditto.
8349         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
8350
8351 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
8352
8353         * doc/extend.texi (Common Function Attributes) [optimize]:
8354         Discourage use of the optimize attribute.
8355
8356 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
8357
8358         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
8359         special case builtin.
8360         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8361         ALTIVEC_BUILTIN_VEC_ADDE.
8362         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8363         support for ALTIVEC_BUILTIN_VEC_ADDE.
8364         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8365         for __builtin_vec_adde.
8366
8367 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8368
8369         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
8370         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
8371
8372 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8373
8374         PR testsuite/70595
8375         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8376         attributes): Document cilkplus_runtime.
8377
8378 2016-04-28  Martin Jambor  <mjambor@suse.cz>
8379
8380         * tree-cfg.c (verify_expr): Verify that local declarations belong to
8381         this function.  Call verify_expr on MEM_REFs and bases of other
8382         handled_components.
8383
8384 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8385
8386         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
8387         for WORD_REGISTER_OPERATIONS to runtime check.
8388
8389 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8390
8391         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
8392
8393 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8394
8395         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
8396         big-endian compilation.
8397         * config/arc/arc.md (addf3): Likewise.
8398         (subdf3): Likewise.
8399         (muldf3): Likewise.
8400
8401 2016-04-28  Richard Biener  <rguenther@suse.de>
8402
8403         PR tree-optimization/70840
8404         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
8405         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
8406         Mark x * pow(x,c) -> pow(x,c+1) commutative.
8407         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
8408
8409 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8410
8411         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
8412         and explain why in a comment.
8413
8414 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8415
8416         * config/arc/arc.md (cpu_facility): Add fpx variant.
8417         (subdf3): Prohibit use reverse sub when assist operations option
8418         is enabled.
8419         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
8420         instructions only when FPX is enabled.
8421         * testsuite/gcc.target/arc/trsub.c: New test.
8422
8423 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8424
8425         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
8426         mult_operator when calculating "type" attribute.
8427         (*fop_<mode>_1_i387): Ditto.
8428         (*fop_xf_1_i387): Ditto.
8429         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
8430         Use std::swap to swap operands.  Use RTL expressions to generate
8431         converted pattern.
8432
8433 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8434             Joern Rennecke  <joern.rennecke@embecosm.com>
8435
8436         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
8437         declaration.
8438         (emit_pic_move): Remove.
8439         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
8440         * config/arc/arc.c (emit_pic_move): Removed.
8441         (TARGET_HAVE_TLS): Define.
8442         (arc_conditional_register_usage): Test for arc_tp_regno.
8443         (arc_print_operand, arc_print_operand_address): Handle TLS
8444         unspecs.
8445         (arc_needs_pcl_p): New function.
8446         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
8447         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
8448         (arc_raw_symbolic_reference_mentioned_p): Likewise.
8449         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
8450         (arc_legitimize_tls_address): Likewise.
8451         (DTPOFF_ZERO_SYM): Define.
8452         (arc_legitimize_pic_address): Make it static, handle TLS cases.
8453         (arc_output_pic_addr_const): Print TLS unspecs.
8454         (prepare_pic_move): New function, replaces emit_pic_move.
8455         (arc_legitimate_constant_p): Handle TLS unspecs.
8456         (arc_legitimate_address_p): Likewise.
8457         (arc_rewrite_small_data_p): Use assert for TLS constants.
8458         (prepare_move_operands): Use prepare_pic_move.
8459         (arc_legitimize_address): Legitimize tls addresses.
8460         (arc_epilogue_uses): Check for arc_tp_regno.
8461         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
8462         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
8463         Define.
8464         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
8465         Likewise.
8466         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
8467         %(arc_tls_extra_start_spec).
8468         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
8469         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
8470         (EH_USES): Define.
8471         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
8472         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
8473         (UNSPEC_TLS_OFF): Add.
8474         (R10_REG): Define.
8475         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
8476         (get_thread_pointersi): New patterns.
8477         * config/arc/arc.opt (mtp-regno): New option.
8478         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
8479         (move_dest_operand): Likewise.
8480         * configure: Regenerate.
8481         * configure.ac: Add arc*-*-* case to test for tls.
8482         * doc/invoke.texi (ARC options): Document mtp-regno.
8483
8484 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8485
8486         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
8487         the new ARC HS SIMD instructions.
8488         (arc_preferred_simd_mode): New function.
8489         (arc_autovectorize_vector_sizes): Likewise.
8490         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8491         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8492         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
8493         (arc_init_builtins): Add new SIMD builtin types.
8494         (arc_split_move): Handle 64 bit vector moves.
8495         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
8496         (TARGET_PLUS_QMACW): Define.
8497         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
8498         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
8499         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
8500         (VSUBADD4H): New builtins.
8501         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
8502         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
8503
8504 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
8505             Matthias Klose  <doko@debian.org>
8506
8507         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
8508
8509 2016-04-28  Richard Biener  <rguenther@suse.de>
8510
8511         PR middle-end/70777
8512         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
8513         canonicalization.
8514
8515 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
8516
8517         * common/config/sh/sh-common.c: Remove SH5 support.
8518         * config/sh/constraints.md: Likewise.
8519         * config/sh/config/sh/elf.h: Likewise.
8520         * config/sh/linux.h: Likewise.
8521         * config/sh/netbsd-elf.h: Likewise.
8522         * config/sh/predicates.md: Likewise.
8523         * config/sh/sh-c.c: Likewise.
8524         * config/sh/sh-protos.h: Likewise.
8525         * config/sh/sh.c: Likewise.
8526         * config/sh/sh.h: Likewise.
8527         * config/sh/sh.md: Likewise.
8528         * config/sh/sh.opt: Likewise.
8529         * config/sh/sync.md: Likewise.
8530         * config/sh/sh64.h: Delete.
8531         * config/sh/shmedia.h: Likewise.
8532         * config/sh/shmedia.md: Likewise.
8533         * config/sh/sshmedia.h: Likewise.
8534         * config/sh/t-netbsd-sh5-64: Likewise.
8535         * config/sh/t-sh64: Likewise.
8536         * config/sh/ushmedia.h: Likewise.
8537
8538 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8539
8540         * config/i386/i386.md (sign_extend to memory peephole2s): Use
8541         general_reg_operand instead of register_operand predicate.
8542
8543 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8544
8545         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
8546
8547 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
8548
8549         * match.pd (A - B > A, A + B < A): New transformations.
8550
8551 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
8552
8553         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
8554         which defaults to true.  Emit an outer pair of parentheses only if
8555         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
8556         don't emit parentheses for the right-hand operand.
8557
8558 2016-04-27  Jeff Law  <law@redhat.com>
8559
8560         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
8561
8562 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8563
8564         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
8565         (altivec_lvx_<mode>_internal): Document.
8566         (altivec_lvx_<mode>_2op): New define_insn.
8567         (altivec_lvx_<mode>_1op): Likewise.
8568         (altivec_lvx_<mode>_2op_si): Likewise.
8569         (altivec_lvx_<mode>_1op_si): Likewise.
8570         (altivec_stvx_<mode>): Remove.
8571         (altivec_stvx_<mode>_internal): Document.
8572         (altivec_stvx_<mode>_2op): New define_insn.
8573         (altivec_stvx_<mode>_1op): Likewise.
8574         (altivec_stvx_<mode>_2op_si): Likewise.
8575         (altivec_stvx_<mode>_1op_si): Likewise.
8576         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8577         Expand vec_ld and vec_st during parsing.
8578         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
8579         changes.
8580         (altivec_expand_stvx_be): Likewise.
8581         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
8582         address-masking behavior in RTL.
8583         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
8584         address-masking behavior in RTL.
8585         (altivec_expand_builtin): Change builtin code arguments for calls
8586         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
8587         (insn_is_swappable_p): Avoid incorrect swap optimization in the
8588         presence of lvx/stvx patterns.
8589         (alignment_with_canonical_addr): New function.
8590         (alignment_mask): Likewise.
8591         (find_alignment_op): Likewise.
8592         (recombine_lvx_pattern): Likewise.
8593         (recombine_stvx_pattern): Likewise.
8594         (recombine_lvx_stvx_patterns): Likewise.
8595         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
8596         stvx patterns from expand.
8597         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
8598         expansions.
8599         (vector_altivec_store_<mode>): Likewise.
8600
8601 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
8602
8603         * config/aarch64/aarch64.md
8604         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
8605         remove the "fp" attributes.
8606         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
8607         add the "simd" attributes.
8608         (*movdf_aarch64): Likewise.
8609         (*movtf_aarch64): Remove the "fp" attributes.
8610         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
8611         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
8612
8613 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8614
8615         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
8616         rtx to rtx_code_label *.
8617         * rtl.h (maybe_set_first_label_num): Likewise.
8618
8619 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8620
8621         * df-core.c (df_add_problem): Make the problem param be const.
8622         (df_remove_problem): Make local "problem" be const.
8623         * df-problems.c (problem_RD): Make const.
8624         (problem_LR): Likewise.
8625         (problem_LIVE): Likewise.
8626         (problem_MIR): Likewise.
8627         (problem_CHAIN): Likewise.
8628         (problem_WORD_LR): Likewise.
8629         (problem_NOTE): Likewise.
8630         (problem_MD): Likewise.
8631         * df-scan.c (problem_SCAN): Likewise.
8632         * df.h (struct df_problem): Make field "dependent_problem" be
8633         const.
8634         (struct dataflow): Likewise for field "problem".
8635         (df_add_problem): Make param const.
8636
8637 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
8638
8639         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
8640         inter-unit moves to/from vector registers are enabled.  Do not disable
8641         for TARGET_MMX.
8642
8643 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8644
8645         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
8646         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
8647         #define to...
8648         (enum df_problem_id): ...this new enum.
8649         (struct df_problem): Convert field "id" from "int" to
8650         enum df_problem_id.
8651
8652 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8653
8654         * rtl.def: Update comment for "things in the instruction chain" to
8655         reflect the removal of the leading "i" field for INSN_UID in
8656         r210360.  Fix bogus apostrophe.
8657
8658 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
8659
8660         * config/i386/i386.md
8661         (lea arith with mem operand + setcc peephole2): Set operator mode.
8662
8663 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
8664
8665         PR target/70155
8666         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
8667         (dimode_scalar_to_vector_candidate_p): This.
8668         (timode_scalar_to_vector_candidate_p): New function.
8669         (scalar_to_vector_candidate_p): Likewise.
8670         (timode_check_non_convertible_regs): Likewise.
8671         (timode_remove_non_convertible_regs): Likewise.
8672         (remove_non_convertible_regs): Likewise.
8673         (remove_non_convertible_regs): Renamed to ...
8674         (dimode_remove_non_convertible_regs): This.
8675         (scalar_chain::~scalar_chain): Make it virtual.
8676         (scalar_chain::compute_convert_gain): Make it pure virtual.
8677         (scalar_chain::mark_dual_mode_def): Likewise.
8678         (scalar_chain::convert_insn): Likewise.
8679         (scalar_chain::convert_registers): Likewise.
8680         (scalar_chain::add_to_queue): Make it protected.
8681         (scalar_chain::emit_conversion_insns): Likewise.
8682         (scalar_chain::replace_with_subreg): Likewise.
8683         (scalar_chain::replace_with_subreg_in_insn): Likewise.
8684         (scalar_chain::convert_op): Likewise.
8685         (scalar_chain::convert_reg): Likewise.
8686         (scalar_chain::make_vector_copies): Likewise.
8687         (scalar_chain::convert_registers): New pure virtual function.
8688         (class dimode_scalar_chain): New class.
8689         (class timode_scalar_chain): Likewise.
8690         (scalar_chain::mark_dual_mode_def): Renamed to ...
8691         (dimode_scalar_chain::mark_dual_mode_def): This.
8692         (timode_scalar_chain::mark_dual_mode_def): New function.
8693         (timode_scalar_chain::convert_insn): Likewise.
8694         (dimode_scalar_chain::convert_registers): Likewise.
8695         (scalar_chain::compute_convert_gain): Renamed to ...
8696         (dimode_scalar_chain::compute_convert_gain): This.
8697         (scalar_chain::replace_with_subreg): Renamed to ...
8698         (dimode_scalar_chain::replace_with_subreg): This.
8699         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
8700         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
8701         (scalar_chain::make_vector_copies): Renamed to ...
8702         (dimode_scalar_chain::make_vector_copies): This.
8703         (scalar_chain::convert_reg): Renamed to ...
8704         (dimode_scalar_chain::convert_reg ): This.
8705         (scalar_chain::convert_op): Renamed to ...
8706         (dimode_scalar_chain::convert_op): This.
8707         (scalar_chain::convert_insn): Renamed to ...
8708         (dimode_scalar_chain::convert_insn): This.
8709         (scalar_chain::convert): Call convert_registers.
8710         (convert_scalars_to_vector): Change to scalar_chain pointer to
8711         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
8712         in 32-bit mode.  Delete scalar_chain pointer.  Call
8713         free_dominance_info in 64-bit mode.
8714         (pass_stv::gate): Remove TARGET_64BIT check.
8715         (ix86_option_override): Put the 64-bit STV pass before the CSE
8716         pass.
8717
8718 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
8719
8720         * dwarf2out.h (struct dw_loc_descr_node): Remove the
8721         dw_loc_frame_offset field.
8722         * dwarf2out.c (new_loc_descr): Likewise.
8723         (resolve_args_picking_1): Turn the VISITED hash set into a
8724         FRAME_OFFSET hash map. Use it to associate a frame offset to
8725         visited nodes. Remove uses of the CHECKING_P macro.
8726         (resolve_args_picking): Update call to resolve_args_picking_1.
8727
8728 2016-04-27  Martin Liska  <mliska@suse.cz>
8729
8730         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
8731         (free_loop_data): Release vuses of groups.
8732
8733 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
8734
8735         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
8736         instead of redundant use_id and boolean have_use_for.
8737         (struct iv_use): Change sub_id into group_id.  Remove field next.
8738         Move fields: related_cands, n_map_members, cost_map and selected
8739         to ...
8740         (struct iv_group): ... here.  New structure.
8741         (struct iv_common_cand): Use structure declaration directly.
8742         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
8743         (MAX_CONSIDERED_USES): Rename macro to ...
8744         (MAX_CONSIDERED_GROUPS): ... here.
8745         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
8746         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
8747         (dump_uses): Rename to ...
8748         (dump_groups): ... here.  Update all uses.
8749         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
8750         (find_induction_variables): Refactor format of dump information.
8751         (record_sub_use): Delete.
8752         (record_use): Update all uses.
8753         (record_group): New function.
8754         (record_group_use, find_interesting_uses_op): Call above functions.
8755         Update all uses.
8756         (find_interesting_uses_cond): Ditto.
8757         (group_compare_offset): New function.
8758         (split_all_small_groups): Rename to ...
8759         (split_small_address_groups_p): ... here.  Update all uses.
8760         (split_address_groups):  Update all uses.
8761         (find_interesting_uses): Refactor format of dump information.
8762         (add_candidate_1): Update all uses.  Remove redundant check on iv,
8763         base and step.
8764         (add_candidate, record_common_cand): Remove redundant assert.
8765         (add_iv_candidate_for_biv): Update use.
8766         (add_iv_candidate_derived_from_uses): Update all uses.
8767         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
8768         (alloc_use_cost_map): Ditto.
8769         (set_use_iv_cost, get_use_iv_cost): Rename to ...
8770         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
8771         (determine_use_iv_cost_generic): Ditto.
8772         (determine_group_iv_cost_generic): Ditto.
8773         (determine_use_iv_cost_address): Ditto.
8774         (determine_group_iv_cost_address): Ditto.
8775         (determine_use_iv_cost_condition): Ditto.
8776         (determine_group_iv_cost_cond): Ditto.
8777         (determine_use_iv_cost): Ditto.
8778         (determine_group_iv_cost): Ditto.
8779         (set_autoinc_for_original_candidates): Update all uses.
8780         (find_iv_candidates): Update all uses.  Refactor dump information.
8781         (determine_use_iv_costs): Ditto.
8782         (determine_iv_costs): Ditto.
8783         (iv_ca_cand_for_use): Rename to ...
8784         (iv_ca_cand_for_group): ... here.  Update all uses.
8785         (iv_ca_add_use, iv_ca_add_group): Ditto.
8786         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
8787         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
8788         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
8789         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
8790         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
8791         (create_new_iv, adjust_iv_update_pos): Ditto.
8792         (rewrite_use_address): Delete.
8793         (rewrite_use_address_1): Rename to ...
8794         (rewrite_use_address): ... here.
8795         (rewrite_use_compare): Update all uses.
8796         (rewrite_use): Delete.
8797         (rewrite_uses): Rename to ...
8798         (rewrite_groups): ... here.  Update all uses.
8799         (remove_unused_ivs, free_loop_data): Update all uses.
8800         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
8801
8802 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8803
8804         * rtlanal.c (nonzero_bits1): Convert preprocessor check
8805         for WORD_REGISTER_OPERATIONS to runtime check.
8806
8807 2016-04-27  Richard Biener  <rguenther@suse.de>
8808
8809         PR ipa/70760
8810         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
8811         aggregate_value_p to determine if a function result is
8812         returned by reference.
8813         (ipa_pta_execute): Functions having their address taken are
8814         not automatically nonlocal.
8815
8816 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8817
8818         PR sanitizer/70683
8819         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
8820         * fold-const.c (operand_equal_p): If flag_checking and
8821         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
8822         and if it returns non-zero, assert iterative_hash_expr on both
8823         args is the same.
8824
8825 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8826
8827         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
8828
8829 2016-04-27  Nick Clifton  <nickc@redhat.com>
8830
8831         PR middle-end/49889
8832         * varasm.c (merge_weak): Generate an error if an attempt is made
8833         to convert a non-weak static function into a weak, public function.
8834
8835 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8836
8837         * params.def (MAX_PARTITION_SIZE): New param.
8838         * doc/invoke.texi: Document lto-max-partition.
8839
8840 2016-04-27  Richard Biener  <rguenther@suse.de>
8841
8842         PR ipa/70785
8843         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
8844         function cummulating used_from_other_partition, externally_visible
8845         and force_output from aliases.
8846         (refered_from_nonlocal_var): Likewise.
8847         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
8848         node flags properly.
8849
8850 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8851
8852         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
8853         (-Wmemset-elt-size): New item.
8854
8855 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8856
8857         PR ada/70759
8858         * stor-layout.h (internal_reference_types): Delete.
8859         * stor-layout.c (reference_types_internal): Likewise.
8860         (internal_reference_types): Likewise.
8861         (layout_type) <REFERENCE_TYPE>: Adjust.
8862
8863 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8864
8865         PR sanitizer/70683
8866         * tree.h (inchash::add_expr): Add FLAGS argument.
8867         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
8868         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
8869         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
8870         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
8871         if swap_tree_comparison (code) is smaller than code, hash that
8872         and arguments in the other order.  Hash CONVERT_EXPR the same
8873         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
8874         of ADDR_EXPR of decl as the decl itself.  Add or remove
8875         OEP_ADDRESS_OF from recursive flags as needed.  For
8876         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
8877         operands commutatively and only the third one normally.
8878         For internal CALL_EXPR hash in CALL_EXPR_IFN.
8879
8880 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8881
8882         * config/rtems.h (LIB_SPEC): Add -latomic.
8883
8884 2016-04-27  Joel Sherrill  <joel@rtems.org>
8885
8886         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
8887         xilink.ld and flags not relevant to RTEMS.
8888
8889 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8890
8891         * toplev.c (backend_init_target): Avoid calling init_reload when using
8892         LRA.
8893
8894 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8895
8896         * reorg.c (try_merge_delay_insns): Declare i and j inside the
8897         for loops rather than one for the whole function.
8898
8899 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8900
8901         * match.pd (X + CST CMP X): New transformation.
8902
8903 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8904
8905         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
8906         * fold-const.c (fold_binary_loc): Remove 2 transformations
8907         superseded by match.pd.
8908         * match.pd (x+x -> x*2): Generalize to integers.
8909
8910 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
8911
8912         * config/i386/i386.md (operation on memory peephole): Duplicate an
8913         existing peephole and adapt it to match lea rather than an operation
8914         that clobbers CC.
8915
8916         PR rtl-optimization/57193
8917         * opts.c (default_options_table): Add OPT_frename_registers at -O2
8918         and above.
8919         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8920
8921 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8922
8923         * tree-if-conv.c (any_pred_load_store): New static variable.
8924         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
8925         any_pred_load_store instead of and_mask_load_store.
8926         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
8927         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
8928         (combine_blocks, tree_if_conversion): Ditto.
8929
8930 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8931
8932         PR tree-optimization/70771
8933         PR tree-optimization/70775
8934         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
8935         virtual PHI nodes.  Delete parameter.
8936         (if_convertible_loop_p_1): Delete argument to above function.
8937         (predicate_all_scalar_phis): Delete code handling single-argument
8938         PHIs.
8939         (tree_if_conversion): Mark and update virtual SSA.
8940
8941 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8942
8943         PR target/61821
8944         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
8945         (x86_elf_aligned_common): Rename to ...
8946         (x86_elf_aligned_decl_common): ... this.
8947         Add decl arg.  Switch to .lbss for largecomm object.  Use
8948         LARGECOMM_SECTION_ASM_OP.
8949         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
8950         renaming.
8951         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8952         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8953         Pass new decl arg.
8954         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8955         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8956
8957 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8958
8959         PR target/59407
8960         * config/i386/i386.c (SECTION_LARGE): Define.
8961         (x86_64_elf_select_section): Set it for large data/bss sections.
8962         Only clear SECTION_WRITE for .lrodata.
8963         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
8964         data/bss sections.
8965         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
8966         * varasm.c (default_elf_asm_named_section): Grow flagchars.
8967         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
8968         SECTION_MACH_DEP.
8969         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8970         * doc/tm.texi: Regenerate.
8971
8972 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8973
8974         PR bootstrap/70704
8975         * configure.ac (--enable-checking): Document extra flag, for
8976         non-release builds default to --enable-checking=yes,extra.
8977         If misc checking and extra checking, define CHECKING_P to 2 instead
8978         of 1.
8979         * common.opt (fchecking=): Add.
8980         * doc/invoke.texi (-fchecking=): Document.
8981         * doc/install.texi: Document --enable-checking changes.
8982         * configure: Regenerated.
8983         * config.in: Regenerated.
8984
8985 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8986
8987         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
8988         attribute instead of which_alternative.
8989         * config/i386/sse.md (*mov<mode>_internal): Ditto.
8990         Use EXT_REX_SSE_REG_P where appropriate.
8991
8992 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8993
8994         * config/i386/predicates.md (const0_operand): Do not match
8995         const_wide_int code.
8996         (const1_operand): Ditto.
8997
8998 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8999
9000         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
9001         for SSE constm1 operands and TARGET_AVX512VL.
9002         (*movti_internal): Ditto.
9003         (*mov<mode>_or): Use constm1_operand predicate.
9004         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
9005         for SSE vector_all_ones operands and TARGET_AVX512VL.
9006         * config/i386/predicates.md (constm1_operand): New predicate.
9007         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
9008         emission of constant -1 load.
9009
9010 2016-04-25  Jason Merrill  <jason@redhat.com>
9011
9012         * gdbinit.in: Skip is-a.h.
9013
9014         * attribs.c (register_scoped_attributes): Fix logic.
9015         * attribs.h: Declare register_scoped_attributes.
9016
9017 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9018
9019         * config/rs6000/rs6000-builtin.def: Correct pasto error for
9020         stxvd2x and stxvw4x built-in functions.
9021
9022 2016-04-25  DJ Delorie  <dj@redhat.com>
9023
9024         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
9025         (ashrhi3): Likewise.
9026         (lshrhi3): Likewise.
9027
9028 2016-04-25  Richard Biener  <rguenther@suse.de>
9029
9030         PR tree-optimization/70780
9031         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
9032         wasn't visited yet.
9033         (compute_antic): Mark blocks with abnormal preds as visited as
9034         they have a final empty antic-in solution already.
9035
9036 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9037
9038         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
9039
9040 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9041
9042         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
9043         mode is VQI to improve mixed mode vectorization.
9044         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
9045         define_insn to match low half of signed vaddw.
9046         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
9047         define_insn to match high half of signed vaddw.
9048         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
9049         define_insn to match low half of unsigned vaddw.
9050         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
9051         define_insn to match high half of unsigned vaddw.
9052         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
9053         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9054         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
9055         for new function.
9056         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9057         * config/arm/predicates.md (vect_par_constant_high): Support
9058         big endian and simplify by calling
9059         arm_simd_check_vect_par_cnst_half
9060         (vect_par_constant_low): Likewise.
9061
9062 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9063
9064         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
9065         predicate for operand 2.
9066
9067 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
9068             H.J. Lu  <hongjiu.lu@intel.com>
9069
9070         * config/i386/i386-protos.h (standard_sse_constant_p): Add
9071         machine_mode argument.
9072         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
9073         constm1_rtx operands.  For VOIDmode constants, get mode from
9074         pred_mode.  Check mode size if the mode is supported by ABI.
9075         (standard_sse_constant_opcode): Do not use standard_constant_p.
9076         Strictly check ABI support for all-ones operands.
9077         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
9078         immediates. Update calls to standard_sse_constant_p.
9079         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
9080         (ix86_rtx_costs): Ditto.
9081         * config/i386/i386.md (*movxi_internal_avx512f): Use
9082         nonimmediate_or_sse_const_operand instead of vector_move_operand.
9083         Use (v,BC) alternative instead of (v,C). Use register_operand
9084         checks instead of MEM_P.
9085         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
9086         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
9087         isa attribute.  Use register_operand checks instead of MEM_P.
9088         (*movti_internal): Use nonimmediate_or_sse_const_operand for
9089         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
9090         alternative and corresponding sse2 isa attribute.
9091         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
9092         to standard_sse_constant_p.
9093         (FP constant splitters): Ditto.
9094         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
9095         (C): Ditto.
9096         * config/i386/predicates.md (constm1_operand): Remove.
9097         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
9098         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
9099         vector_all_ones_operand instead of constm1_operand.
9100
9101 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9102
9103         * print-rtl.c (print_rtx_insn_vec): New function.
9104         * print-rtl.h: New prototype.
9105         * store-motion.c (struct st_expr): Make avail_stores a vector.
9106         (st_expr_entry): Adjust.
9107         (free_st_expr_entry): Likewise.
9108         (print_store_motion_mems): Likewise.
9109         (find_moveable_store): Likewise.
9110         (compute_store_table): Likewise.
9111         (delete_store): Likewise.
9112         (build_store_vectors): Likewise.
9113
9114 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9115
9116         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
9117
9118 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9119
9120         * vec.h (vec_safe_contains): New function.
9121         (vec::contains): Likewise.
9122         (vec::begin): Likewise.
9123         (vec::end): Likewise.
9124
9125 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
9126
9127         PR sanitizer/70712
9128         * cfgexpand.c (expand_stack_vars): Fix typo.
9129
9130 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9131
9132         * system.h (list, map, set, vector): Include conditionally.
9133         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
9134         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
9135         * ipa-icf.c (INCLUDE_LIST): Define.
9136         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
9137         * config/sh/sh.c (INCLUDE_VECTOR): Define.
9138         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
9139         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
9140         * cp/logic.cc (INCLUDE_LIST): Define.
9141         * fortran/trans-common.c (INCLUDE_MAP): Define.
9142
9143 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9144
9145         * auto-profile.c: Remove <string.h> include.
9146         * ipa-icf-gimple.c: Remove <list> include.
9147         * diagnostic.c: Remove <new> include.
9148         * genmatch.c: Likewise.
9149         * pretty-print.c: Likewise.
9150         * toplev.c: Likewise
9151         * c/c-objc-common.c: Likewise.
9152         * cp/error.c: Likewise.
9153         * fortran/error.c: Likewise.
9154
9155 2016-04-22  Richard Biener  <rguenther@suse.de>
9156
9157         * lto-streamer-in.c (input_ssa_names): Do not allocate
9158         GIMPLE_NOP for all SSA names.
9159         * lto-streamer-out.c (output_ssa_names): Do not output
9160         SSA names that should have been released.
9161
9162 2016-04-22  Richard Biener  <rguenther@suse.de>
9163
9164         PR tree-optimization/70740
9165         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
9166         VDEF.
9167
9168 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
9169
9170         PR target/70750
9171         * config/i386/predicates.md (call_insn_operand): Replace
9172         sibcall_memory_operand with memory_operand.
9173
9174 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
9175
9176         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
9177         has_single_use() tests.
9178         (register_edge_assert_for_1): Likewise.
9179         (find_assert_locations_1): Check the liveness bitmap instead of
9180         checking has_single_use().
9181
9182 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9183
9184         PR target/70728
9185         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
9186         Extract AVX-512BW constraint from AVX.
9187
9188 2016-04-21  Richard Biener  <rguenther@suse.de>
9189
9190         PR tree-optimization/70725
9191         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
9192         for phi_convertible_by_degenerating_args.
9193         (predicate_all_scalar_phis): Handle single-argument PHIs.
9194
9195 2016-04-21  Richard Biener  <rguenther@suse.de>
9196
9197         PR middle-end/70747
9198         * fold-const.c (fold_comparison): Return properly typed
9199         constant boolean.
9200
9201 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
9202
9203         PR tree-optimization/70715
9204         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
9205         after expanding BASE using expand_simple_operations.
9206
9207 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9208
9209         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
9210         New transformations.
9211
9212 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9213
9214         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
9215
9216 2016-04-20  Jan Hubicka  <jh@suse.cz>
9217
9218         * ipa-inline.c (can_inline_edge_p): Pass caller info to
9219         ultiimate_alias_target.
9220         (update_callee_keys): Likewise.
9221         (lookup_recursive_calls): Likewise.
9222         (speculation_useful_p): Likewise.
9223
9224 2016-04-20  Jan Hubicka  <jh@suse.cz>
9225
9226         PR ipa/70018
9227         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
9228         (set_nothrow_flag_1): ... this; handle interposition correctly;
9229         recurse on aliases and thunks.
9230         (cgraph_node::set_nothrow_flag): New.
9231         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
9232         functions compiled with non-call exceptions that binds to current
9233         def.
9234         (propagate_nothrow): Be safe WRT interposition.
9235         * cgraph.h (set_nothrow_flag): Update prototype.
9236
9237 2016-04-18  Jan Hubicka  <jh@suse.cz>
9238
9239         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9240         max_loop_iterations_int.
9241         (tree_unswitch_outer_loop): Likewise.
9242
9243 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9244
9245         PR tree-optimization/69489
9246         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
9247         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
9248         Revise dump message.
9249         (if_convertible_bb_p): Remove check on edge count of basic block's
9250         predecessors.
9251
9252 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9253
9254         PR tree-optimization/56625
9255         PR tree-optimization/69489
9256         * tree-data-ref.h (DR_INNERMOST): New macro.
9257         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
9258         hashing struct innermost_loop_behavior.
9259         (ref_DR_map): Remove.
9260         (innermost_DR_map): New map.
9261         (baseref_DR_map): Revise comment.
9262         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
9263         to innermost_DR_map accroding to its innermost loop behavior.
9264         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
9265         to its innermost loop behavior.
9266         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
9267         Add initialization for innermost_DR_map.  Record memory reference
9268         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
9269         have innermost loop behavior.
9270         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
9271         innermost_DR_map.
9272
9273 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
9274
9275         * config/i386/i386.md (*lea<mode>_general_1): Rename from
9276         *lea_general_1.  Use explicit SWI12 mode interator.
9277         (*lea<mode>_general_2): Rename from *lea_general_2.
9278         Use explicit SWI12 mode interator.
9279         (*lea<mode>_general_3): Rename from *lea_general_3.
9280         Use explicit SWI12 mode interator.
9281         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
9282         Use explicit SWI12 mode interator.
9283         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
9284         Use explicit SWI48 mode interator.
9285
9286 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9287
9288         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
9289         Short-cut unaligned load and store cases.  Handle all integer
9290         vector modes.
9291         (ix86_expand_vector_move_misalign): Short-cut unaligned load
9292         and store cases.  Call ix86_avx256_split_vector_move_misalign
9293         directly without checking mode class.
9294
9295 2016-04-20  Andrew Pinski  <apinski@cavium.com>
9296             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9297
9298         PR target/64971
9299         * config/aarch64/aarch64.md (sibcall): Force call
9300         address to be DImode for ILP32.
9301         (sibcall_value): Likewise.
9302
9303 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9304
9305         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
9306
9307 2016-04-20  Richard Biener  <rguenther@suse.de>
9308
9309         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
9310         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
9311         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
9312         (maybe_push_res_to_seq): Adjust.
9313         * gimple-fold.c (maybe_build_generic_op): Likewise.
9314
9315 2016-04-20  Marek Polacek  <polacek@redhat.com>
9316
9317         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
9318         rather than true.
9319
9320 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
9321
9322         * config/i386/sse.md (vec_unpacks_lo_hi): Always
9323         use kmovw to support AVX512F target.
9324
9325 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9326
9327         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
9328
9329 2016-04-20  Marek Polacek  <polacek@redhat.com>
9330
9331         PR tree-optimization/70725
9332         * tree-if-conv.c (is_false_predicate): New function.
9333         (predicate_mem_writes): Use it.
9334
9335 2016-04-20  Richard Biener  <rguenther@suse.de>
9336
9337         PR tree-optimization/70726
9338         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
9339         shift amounts from a pattern stmt operand.
9340
9341 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9342
9343         PR target/70674
9344         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
9345         stack_restore_from_fpr pattern when restoring r15.
9346         (s390_optimize_prologue): Strip away the memory barrier in the
9347         parallel when trying to get rid of restore insns.
9348         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
9349         definition for loading the stack pointer from an FPR.  Compared to
9350         the normal move insn this pattern includes a full memory barrier.
9351
9352 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
9353
9354         PR middle-end/70680
9355         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
9356         implicitly linear or lastprivate iterator on the outer context.
9357
9358 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9359
9360         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
9361         alignment check.
9362         * config/i386/i386.md (ssememalign): Removed.
9363         * config/i386/sse.md: Remove ssememalign attribute from patterns.
9364
9365 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9366
9367         PR target/69201
9368         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
9369         const short * to __builtin_ia32_loaddquhi512_mask.
9370         (_mm512_maskz_loadu_epi16): Likewise.
9371         (_mm512_mask_storeu_epi16): Pass short * to
9372         __builtin_ia32_storedquhi512_mask.
9373         (_mm512_mask_loadu_epi8): Pass const char * to
9374         __builtin_ia32_loaddquqi512_mask.
9375         (_mm512_maskz_loadu_epi8): Likewise.
9376         (_mm512_mask_storeu_epi8): Pass char * to
9377         __builtin_ia32_storedquqi512_mask.
9378         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
9379         const double * to __builtin_ia32_loadupd512_mask.
9380         (_mm512_mask_loadu_pd): Likewise.
9381         (_mm512_maskz_loadu_pd): Likewise.
9382         (_mm512_storeu_pd): Pass double * to
9383         __builtin_ia32_storeupd512_mask.
9384         (_mm512_mask_storeu_pd): Likewise.
9385         (_mm512_loadu_ps): Pass const float * to
9386         __builtin_ia32_loadups512_mask.
9387         (_mm512_mask_loadu_ps): Likewise.
9388         (_mm512_maskz_loadu_ps): Likewise.
9389         (_mm512_storeu_ps): Pass float * to
9390         __builtin_ia32_storeups512_mask.
9391         (_mm512_mask_storeu_ps): Likewise.
9392         (_mm512_mask_loadu_epi64): Pass const long long * to
9393         __builtin_ia32_loaddqudi512_mask.
9394         (_mm512_maskz_loadu_epi64): Likewise.
9395         (_mm512_mask_storeu_epi64): Pass long long *
9396         to __builtin_ia32_storedqudi512_mask.
9397         (_mm512_loadu_si512): Pass const int * to
9398         __builtin_ia32_loaddqusi512_mask.
9399         (_mm512_mask_loadu_epi32): Likewise.
9400         (_mm512_maskz_loadu_epi32): Likewise.
9401         (_mm512_storeu_si512): Pass int * to
9402         __builtin_ia32_storedqusi512_mask.
9403         (_mm512_mask_storeu_epi32): Likewise.
9404         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
9405         char * to __builtin_ia32_storedquqi256_mask.
9406         (_mm_mask_storeu_epi8): Likewise.
9407         (_mm256_mask_loadu_epi16): Pass const short * to
9408         __builtin_ia32_loaddquhi256_mask.
9409         (_mm256_maskz_loadu_epi16): Likewise.
9410         (_mm_mask_loadu_epi16): Pass const short * to
9411         __builtin_ia32_loaddquhi128_mask.
9412         (_mm_maskz_loadu_epi16): Likewise.
9413         (_mm256_mask_loadu_epi8): Pass const char * to
9414         __builtin_ia32_loaddquqi256_mask.
9415         (_mm256_maskz_loadu_epi8): Likewise.
9416         (_mm_mask_loadu_epi8): Pass const char * to
9417         __builtin_ia32_loaddquqi128_mask.
9418         (_mm_maskz_loadu_epi8): Likewise.
9419         (_mm256_mask_storeu_epi16): Pass short * to.
9420         __builtin_ia32_storedquhi256_mask.
9421         (_mm_mask_storeu_epi16): Pass short * to.
9422         __builtin_ia32_storedquhi128_mask.
9423         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
9424         const double * to __builtin_ia32_loadupd256_mask.
9425         (_mm256_maskz_loadu_pd): Likewise.
9426         (_mm_mask_loadu_pd): Pass onst double * to
9427         __builtin_ia32_loadupd128_mask.
9428         (_mm_maskz_loadu_pd): Likewise.
9429         (_mm256_mask_storeu_pd): Pass double * to
9430         __builtin_ia32_storeupd256_mask.
9431         (_mm_mask_storeu_pd): Pass double * to
9432         __builtin_ia32_storeupd128_mask.
9433         (_mm256_mask_loadu_ps): Pass const float * to
9434         __builtin_ia32_loadups256_mask.
9435         (_mm256_maskz_loadu_ps): Likewise.
9436         (_mm_mask_loadu_ps): Pass const float * to
9437         __builtin_ia32_loadups128_mask.
9438         (_mm_maskz_loadu_ps): Likewise.
9439         (_mm256_mask_storeu_ps): Pass float * to
9440         __builtin_ia32_storeups256_mask.
9441         (_mm_mask_storeu_ps): ass float * to
9442         __builtin_ia32_storeups128_mask.
9443         (_mm256_mask_loadu_epi64): Pass const long long * to
9444         __builtin_ia32_loaddqudi256_mask.
9445         (_mm256_maskz_loadu_epi64): Likewise.
9446         (_mm_mask_loadu_epi64): Pass const long long * to
9447         __builtin_ia32_loaddqudi128_mask.
9448         (_mm_maskz_loadu_epi64): Likewise.
9449         (_mm256_mask_storeu_epi64): Pass long long * to
9450         __builtin_ia32_storedqudi256_mask.
9451         (_mm_mask_storeu_epi64): Pass long long * to
9452         __builtin_ia32_storedqudi128_mask.
9453         (_mm256_mask_loadu_epi32): Pass const int * to
9454         __builtin_ia32_loaddqusi256_mask.
9455         (_mm256_maskz_loadu_epi32): Likewise.
9456         (_mm_mask_loadu_epi32): Pass const int * to
9457         __builtin_ia32_loaddqusi128_mask.
9458         (_mm_maskz_loadu_epi32): Likewise.
9459         (_mm256_mask_storeu_epi32): Pass int * to
9460         __builtin_ia32_storedqusi256_mask.
9461         (_mm_mask_storeu_epi32): Pass int * to
9462         __builtin_ia32_storedqusi128_mask.
9463         * config/i386/i386-builtin-types.def (PCSHORT): New.
9464         (PINT64): Likewise.
9465         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
9466         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
9467         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
9468         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
9469         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
9470         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
9471         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
9472         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
9473         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
9474         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
9475         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
9476         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
9477         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
9478         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
9479         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
9480         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
9481         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
9482         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
9483         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
9484         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
9485         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
9486         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
9487         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
9488         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
9489         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
9490         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
9491         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
9492         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
9493         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
9494         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
9495         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
9496         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
9497         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
9498         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
9499         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
9500         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
9501         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
9502         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
9503         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
9504         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
9505         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
9506         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
9507         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
9508         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
9509         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
9510         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
9511         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
9512         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
9513         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
9514         use UNSPEC_STOREU.
9515         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
9516         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
9517         load nor store.
9518         (ix86_expand_vector_move_misalign): Likewise.
9519         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
9520         to scalar function prototype for unaligned load/store builtins.
9521         (ix86_expand_special_args_builtin): Updated.
9522         * config/i386/sse.md (UNSPEC_LOADU): Removed.
9523         (UNSPEC_STOREU): Likewise.
9524         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
9525         (VI_ULOADSTORE_F_AVX512VL): Likewise.
9526         (ssescalarsize): Handle V4TI, V2TI and V1TI.
9527         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9528         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9529         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
9530         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
9531         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
9532         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
9533         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
9534         (<avx512>_storedqu<mode>_mask): Likewise.
9535         (*sse4_2_pcmpestr_unaligned): Likewise.
9536         (*sse4_2_pcmpistr_unaligned): Likewise.
9537         (*mov<mode>_internal): Renamed to ...
9538         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
9539         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
9540         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
9541         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
9542
9543 2016-04-19  Richard Biener  <rguenther@suse.de>
9544
9545         PR tree-optimization/70171
9546         * tree-ssa-phiprop.c: Include stor-layout.h.
9547         (phiprop_insert_phi): Handle the aggregate copy case.
9548         (propagate_with_phi): Likewise.
9549
9550 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
9551
9552         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
9553         instead of simplify_gen_subreg (... , 0).
9554         (ix86_delegitimize_address): Ditto.
9555         (ix86_split_divmod): Ditto.
9556         (ix86_split_copysign_const): Ditto.
9557         (ix86_split_copysign_var): Ditto.
9558         (ix86_expand_args_builtin): Ditto.
9559         (ix86_expand_round_builtin): Ditto.
9560         (ix86_expand_special_args_builtin): Ditto.
9561         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
9562         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
9563         (udivmodqi4): Ditto.
9564         (absneg splitters): Ditto.
9565         (*jcc_bt<mode>_1): Ditto.
9566
9567 2016-04-19  Richard Biener  <rguenther@suse.de>
9568
9569         PR tree-optimization/70724
9570         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
9571         restoring out from ...
9572         (free_scc_vn): ... here.
9573         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
9574         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
9575         tail merging.
9576         (pass_fre::execute): Restore SSA info.
9577
9578 2016-04-19  Richard Biener  <rguenther@suse.de>
9579
9580         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
9581         * gimple-walk.c (walk_gimple_op): Initialize it.
9582         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
9583         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
9584         remapping SSA names of defs.
9585         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
9586         adjustment.
9587
9588 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
9589
9590         PR middle-end/70689
9591         * lra-constraints.c (equiv_substition_p): New.
9592         (process_alt_operands): Use it.
9593         (swap_operands): Swap it.
9594         (curr_insn_transform): Update it.
9595
9596 2016-04-18  Michael Matz  <matz@suse.de>
9597
9598         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
9599         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
9600         * tree-core.h (tree_type_common.align): Use bit-field.
9601         (tree_type_common.spare): New.
9602         (tree_decl_common.off_align): Make smaller.
9603         (tree_decl_common.align): Use bit-field.
9604
9605         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
9606         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
9607         (scan_sharing_clauses): Ditto.
9608         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
9609         (omp_finish_file): Ditto.
9610         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
9611         (layout_decl): Ditto.
9612         (relayout_decl): Ditto.
9613         (finalize_record_size): Use SET_TYPE_ALIGN.
9614         (finalize_type_size): Ditto.
9615         (finish_builtin_struct): Ditto.
9616         (layout_type): Ditto.
9617         (initialize_sizetypes): Ditto.
9618         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
9619         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
9620         (lookup_field_for_decl): Use SET_DECL_ALIGN.
9621         (get_chain_field): Ditto.
9622         (get_trampoline_type): Ditto.
9623         (get_nl_goto_field): Ditto.
9624         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
9625         SET_DECL_ALIGN.
9626         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
9627         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
9628         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
9629         (build_qualified_type): Use SET_TYPE_ALIGN.
9630         (build_aligned_type, build_range_type_1): Ditto.
9631         (build_atomic_base): Ditto.
9632         (build_common_tree_nodes): Ditto.
9633         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
9634         (expand_one_stack_var_at): Ditto.
9635         * coverage.c (build_var): Use SET_DECL_ALIGN.
9636         * except.c (init_eh): Ditto.
9637         * function.c (assign_parm_setup_block): Ditto.
9638         * symtab.c (increase_alignment_1): Ditto.
9639         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
9640         * tree-vect-stmts.c (ensure_base_align): Ditto.
9641         * varasm.c (align_variable): Ditto.
9642         (assemble_variable): Ditto.
9643         (build_constant_desc): Ditto.
9644         (output_constant_def_contents): Ditto.
9645
9646         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
9647         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
9648         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
9649         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
9650         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
9651
9652 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
9653
9654         PR target/70708
9655         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
9656         replace %vmovsd with "%vmovq".
9657         (vec_concatv2df): Likewise.
9658
9659 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
9660
9661         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
9662         (*vec_extractv2si_0): Ditto.
9663         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
9664         (zero_extended_scalar_load_operand splitters): Ditto.
9665         (vec_extract splitters): Ditto.
9666         (*vec_extractv4si_0_zext): Ditto.
9667         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
9668         and lowpart_subreg.
9669         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
9670         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
9671         (*sse4_1_extractps): Use lowpart_subreg.
9672         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
9673
9674 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9675
9676         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
9677         gld requirements.
9678         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
9679         Mention Solaris 11 packaging changes.
9680         Update gas and gld requirements.
9681         Remove reference to pre-Solaris 10 bug.
9682         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
9683         systems and bugs.
9684         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
9685         with cc.
9686
9687 2016-04-17  Jan Hubicka  <jh@suse.cz>
9688
9689         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
9690         max_loop_iterations_int.
9691
9692 2016-04-18  Richard Biener  <rguenther@suse.de>
9693
9694         PR tree-optimization/43434
9695         * tree-ssa-structalias.c (struct vls_data): New.
9696         (visit_loadstore): Handle all pointer-based accesses.
9697         (compute_dependence_clique): Compute a bitmap of restrict tags
9698         assigned bases and pass it to visit_loadstore.
9699
9700 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
9701
9702         PR target/70711
9703         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
9704         armv8.1-a and armv8.1-a+crc.
9705
9706 2016-04-18  Richard Biener  <rguenther@suse.de>
9707
9708         PR tree-optimization/70701
9709         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
9710         references after translating through a memcpy.
9711
9712 2016-04-18  Richard Biener  <rguenther@suse.de>
9713
9714         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
9715         (compute_antic): ... here.  For partial antic use regular
9716         postorder and scrap iteration.
9717         (compute_partial_antic_aux): Remove unused return value.
9718         (init_pre): Do not allocate postorder.
9719         (fini_pre): Do not free postorder.
9720
9721 2016-04-18  Richard Biener  <rguenther@suse.de>
9722
9723         PR middle-end/37870
9724         * expmed.c (extract_bit_field_1): Remove broken case
9725         using a wider MODE_INT mode.
9726
9727 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
9728
9729         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
9730         unless compiling with at least GCC-4.8.
9731
9732 2016-04-17  Jan Hubicka  <jh@suse.cz>
9733
9734         PR bootstrap/70706
9735         * graphite.c (graphite_finalize): Update call to
9736         tree_estimate_probability.
9737         * predict.h (tree_estimate_probability): Update prototype.
9738
9739 2016-04-17  Jan Hubicka  <jh@suse.cz>
9740
9741         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
9742         (tree_estimate_probability): Likewise.
9743         (pass_profile::execute): Update.
9744         (report_predictor_hitrates): New function.
9745         * profile.c (compute_branch_probabilities): Use it.
9746         * predict.h (report_predictor_hitrates): Declare.
9747
9748 2016-04-17  Jan Hubicka  <jh@suse.cz>
9749
9750         PR ipa/70018
9751         * cgraph.h (cgraph_node::set_const_flag,
9752         cgraph_node::set_pure_flag): Update prototype to return bool;
9753         update comment.
9754         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
9755         of interposable symbol are interposable, too.
9756         (cgraph_set_const_flag_1): Rename to ...
9757         (set_const_flag_1): ... this one; change to self recursive function
9758         instead of call_for_symbol_thunks_and_aliases. Handle correctly
9759         clearnig the flag in all variants and also virtual thunks of const
9760         functions are pure; track if any change was done.
9761         (cgraph_node::set_const_flag): Update.
9762         (struct set_pure_flag_info): New struct.
9763         (cgraph_set_pure_flag_1): Rename to ...
9764         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
9765         rather than pointer encoded flags; track if any changes was done;
9766         handle correctly clearning flag and setting flag of aliases already
9767         declared const.
9768         (cgraph_node::set_pure_flag): Update.
9769         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
9770
9771 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9772
9773         PR other/70433
9774         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
9775         backslash in label.
9776
9777 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9778
9779         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
9780         '{}<> ' as escape-for-record.
9781
9782 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9783
9784         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
9785         structure.
9786
9787 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9788
9789         PR other/70185
9790         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
9791         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
9792         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
9793         * passes.c (finish_optimization_passes): Only call
9794         finish_graph_dump_file if dfi->graph_dump_initialized.
9795         (execute_function_dump, pass_init_dump_file): Use
9796         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
9797
9798 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9799
9800         PR tree-optimization/70256
9801         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
9802         (debug_varmap): New function.
9803
9804 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9805
9806         PR other/70183
9807         * passes.c (pass_manager::register_pass): Propagate pflags.
9808
9809 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9810
9811         PR other/68875
9812         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
9813         * passes.c (pass_manager::pass_manager): Declare and init p_start in
9814         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
9815         check if it's equal to p_start.
9816         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
9817
9818 2016-04-15  Jan Hubicka  <jh@suse.cz>
9819
9820         PR ipa/70018
9821         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
9822         function does not bind to current def.
9823         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
9824         handle conservatively calls to functions that does not need to bind
9825         to current def.
9826         (check_call): Update call of worse_state.
9827         (ignore_edge_for_nothrow): Update.
9828         (ignore_edge_for_pure_const): Likewise.
9829         (propagate_pure_const): Update calls to worse_state.
9830         (skip_function_for_local_pure_const): Reformat comments.
9831
9832 2016-04-15  Jan Hubicka  <jh@suse.cz>
9833
9834         PR ipa/70018
9835         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
9836         (cgraph_node::function_symbol): Likewise.
9837         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9838         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
9839         (symtab_node::ultimate_alias_target): Add REF parameter.
9840         (symtab_node::binds_to_current_def_p): Declare.
9841         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
9842         (cgraph_node::function_symbol): Likewise.
9843         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9844         (cgraph_node::get_availability): Likewise.
9845         (cgraph_edge::binds_to_current_def_p): New inline function.
9846         (varpool_node::get_availability): Add REF parameter.
9847         (varpool_node::ultimate_alias_target): Likewise.
9848         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
9849         (symtab_node::binds_to_current_def_p): Likewise.
9850         * varpool.c (varpool_node::get_availability): Likewise.
9851
9852 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9853
9854         PR target/70662
9855         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
9856         Fix mode size check.
9857
9858 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9859
9860         * BASE-VER: Set to 7.0.0.
9861
9862 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
9863
9864         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
9865
9866 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9867
9868         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
9869         architecture revisions.
9870
9871 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
9872
9873         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
9874         * config/i386/i386.c (ix86_using_red_zone): No longer static.
9875         * config/i386/i386.md (stack decrement to push peepholes): Guard
9876         with !x86_using_red_zone ().
9877
9878 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9879
9880         PR c++/70675
9881         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
9882         to dump_generic_node.
9883         (NIY): Pass also flags to do_niy.
9884
9885 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
9886
9887         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
9888         (simd_clone_vector_of_formal_parm_types)
9889         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
9890         (simd_clone_mangle, simd_clone_create)
9891         (simd_clone_adjust_return_type, create_tmp_simd_array)
9892         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
9893         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
9894         (ipa_simd_modify_function_body, simd_clone_linear_addend)
9895         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
9896         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
9897         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
9898         * omp-simd-clone.c: ... this new file.
9899         (simd_clone_vector_of_formal_parm_types): Make it static.
9900         * Makefile.in (OBJS): Add omp-simd-clone.o.
9901
9902 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9903
9904         PR target/70662
9905         * config/i386/sse.md: Use proper memory operand modifiers.
9906
9907
9908 2016-04-15  Richard Biener  <rguenther@suse.de>
9909         Alan Modra  <amodra@gmail.com>
9910
9911         PR tree-optimization/70130
9912         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
9913         when alignment stays not the same and no not use the realign
9914         scheme then.
9915
9916 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9917
9918         PR target/70669
9919         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9920         direct move handlers for KFmode. Change TFmode handlers test from
9921         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
9922
9923 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
9924
9925         PR c++/70594
9926         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
9927         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
9928         (inlined_polymorphic_ctor_dtor_block_p): Use it.
9929         * tree-ssa-live.c (remove_unused_scope_block_p): When
9930         in_ctor_dtor_block, avoid discarding not just BLOCKs with
9931         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
9932         block_ultimate_origin is FUNCTION_DECL.
9933         (remove_unused_locals): If current_function_decl is
9934         polymorphic_ctor_dtor_p, pass initial true to
9935         remove_unused_scope_block_p' is_ctor_dtor_block.
9936
9937 2016-04-14  Martin Sebor  <msebor@redhat.com>
9938
9939         PR c++/69517
9940         PR c++/70019
9941         PR c++/70588
9942         * doc/extend.texi (Variable Length): Revert.
9943
9944 2016-04-14  Marek Polacek  <polacek@redhat.com>
9945             Jan Hubicka  <hubicka@ucw.cz>
9946
9947         PR c++/70029
9948         * tree.c (verify_type): Disable the canonical type of main variant
9949         check.
9950
9951 2016-04-14  Jason Merrill  <jason@redhat.com>
9952
9953         * cfgexpand.c, expr.c: Revert previous change.
9954
9955 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
9956
9957         PR middle-end/70643
9958         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9959         when building a mem ref for the incoming reduction variable.
9960
9961 2016-04-14  Richard Biener  <rguenther@suse.de>
9962
9963         PR tree-optimization/70614
9964         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
9965         loop if the evolution dropped to chrec_dont_know.
9966         (interpret_condition_phi): Likewise.
9967
9968 2016-04-14  Richard Biener  <rguenther@suse.de>
9969
9970         PR tree-optimization/70623
9971         * tree-ssa-pre.c (changed_blocks): Make global ...
9972         (compute_antic): ... local here.  Move and fix worklist
9973         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
9974         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
9975         worklist handling, dump when ANTIC_IN changed.
9976         (compute_partial_antic_aux): Remove worklist handling.
9977         (init_pre): Do not compute post dominators.  Add a comment about
9978         the CFG order chosen.
9979         (fini_pre): Do not free post dominators.
9980
9981 2016-04-13  Martin Sebor  <msebor@redhat.com>
9982
9983         PR c++/69517
9984         PR c++/70019
9985         PR c++/70588
9986         * doc/extend.texi (Variable Length): Document C++ specifics.
9987
9988 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9989
9990         PR c++/70641
9991         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
9992         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
9993         eh edges have been purged.
9994
9995         PR c++/70594
9996         * tree-sra.c (create_access_replacement,
9997         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9998         gets fancy name.
9999         * tree-pretty-print.c (dump_fancy_name): New function.
10000         (dump_decl_name, dump_generic_node): Use it.
10001
10002 2016-04-13  Jason Merrill  <jason@redhat.com>
10003
10004         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
10005         * expr.c (expand_expr_real_1): Likewise.
10006
10007 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10008
10009         * config/i386/i386.md (kunpckhi): Swap operands.
10010         (kunpcksi): Likewise.
10011         (kunpckdi): Likewise.
10012         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
10013         (vec_pack_trunc_<mode>): Likewise.
10014
10015 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10016
10017         PR debug/70628
10018         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
10019
10020         PR middle-end/70633
10021         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
10022         gimplification turns some element into non-constant.
10023
10024         PR debug/70628
10025         * rtl.h (convert_memory_address_addr_space_1): New prototype.
10026         * explow.c (convert_memory_address_addr_space_1): No longer static,
10027         add NO_EMIT argument and don't call convert_modes if true, pass
10028         it down recursively, remove break after return.
10029         (convert_memory_address_addr_space): Adjust caller.
10030         * simplify-rtx.c (simplify_unary_operation_1): Call
10031         convert_memory_address_addr_space_1 instead of convert_memory_address,
10032         if it returns NULL, don't simplify.
10033
10034 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10035
10036         PR target/70630
10037         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
10038
10039 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10040
10041         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10042         Bump the upper SIMDLEN limits, so that if the return type or
10043         characteristic type if the return type is void can be passed in
10044         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
10045         allowed.
10046
10047 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10048
10049         PR target/70640
10050         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
10051         Do not use "=" constraint on an input constraint.
10052         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
10053         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
10054         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
10055         generates (neg (abs ...)) instead of (abs ...).
10056
10057 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10058
10059         PR rtl-optimization/70596
10060         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
10061         just invalidate LRA data and reset them.  Adjust dump wording.
10062
10063 2016-04-12  Martin Liska  <mliska@suse.cz>
10064
10065         Revert
10066         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10067
10068         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10069         estimates here.
10070         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10071         max_loop_iterations_int.
10072         (tree_unswitch_outer_loop): Likewise.
10073         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10074         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10075
10076 2016-04-12  Tom de Vries  <tom@codesourcery.com>
10077
10078         PR tree-optimization/68756
10079         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
10080         instead of new_name.
10081
10082 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10083
10084         PR tree-optimization/70602
10085         * tree-sra.c (generate_subtree_copies): Don't write anything into
10086         constant pool decls.
10087
10088         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
10089         regardless whether there are depend clauses or not.
10090
10091 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10092
10093         PR target/70381
10094         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
10095         target attribute and pragma from changing the -mfloat128
10096         and -mfloat128-hardware options.
10097
10098         * doc/extend.texi (Additional Floating Types): Document PowerPC
10099         __float128 restrictions.
10100
10101 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10102
10103         PR target/70133
10104         * config/aarch64/driver-aarch64.c
10105         (aarch64_get_extension_string_for_isa_flags): New.
10106         (arch_extension): Rename to...
10107         (aarch64_arch_extension): ...This.
10108         (ext_to_feat_string): Rename to...
10109         (aarch64_extensions): ...This.
10110         (aarch64_core_data): Keep track of architecture extension flags.
10111         (cpu_data): Rename to...
10112         (aarch64_cpu_data): ...This.
10113         (aarch64_arch_driver_info): Keep track of architecture extension
10114         flags.
10115         (get_arch_name_from_id): Rename to...
10116         (get_arch_from_id): ...This, change return type.
10117         (host_detect_local_cpu): Update and reformat for renames, handle
10118         extensions through common infrastructure.
10119
10120 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10121
10122         PR target/70133
10123         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
10124         track of a canonical flag name.
10125         (all_extensions): Likewise.
10126         (arch_to_arch_name): Also track extension flags enabled by the arch.
10127         (all_architectures): Likewise.
10128         (aarch64_parse_extension): Move to here.
10129         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
10130         rework.
10131         (aarch64_rewrite_selected_cpu): Update for above change.
10132         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
10133         are handled, such that the single explicit value enabled by an
10134         extension is kept seperate from the implicit values it also enables.
10135         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
10136         to here.
10137         (aarch64_parse_extension): New.
10138         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
10139         here to config/aarch64/aarch64-protos.h.
10140         (aarch64_parse_extension): Move from here to
10141         common/config/aarch64/aarch64-common.c.
10142         (aarch64_option_print): Update.
10143         (aarch64_declare_function_name): Likewise.
10144         (aarch64_start_file): Likewise.
10145         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
10146         the canonical flag for extensions.
10147         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
10148         flags.
10149
10150 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10151
10152         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
10153         AARCH64_FL_CRC.
10154
10155 2016-04-09  Tom de Vries  <tom@codesourcery.com>
10156
10157         PR tree-optimization/68953
10158         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
10159         first to last subscript.
10160
10161 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
10162
10163         PR tree-optimization/70586
10164         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
10165         for any calls.
10166
10167 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
10168
10169         PR lto/70289
10170         PR ipa/70348
10171         PR tree-optimization/70373
10172         PR middle-end/70533
10173         PR middle-end/70534
10174         PR middle-end/70535
10175         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
10176         clauses for acc parallel reductions as necessary.  Error on those
10177         that are private.
10178         * omp-low.c (scan_sharing_clauses): Don't install variables which
10179         are used in acc parallel reductions.
10180         (lower_rec_input_clauses): Remove dead code.
10181         (lower_oacc_reductions): Add support for reference reductions.
10182         (lower_reduction_clauses): Remove dead code.
10183         (lower_omp_target): Don't remap variables appearing in acc parallel
10184         reductions.
10185         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
10186
10187 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
10188
10189         PR middle-end/70593
10190         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
10191         with multiple SSA_NAME defs, force the outputs other than first
10192         to be live before calling live_track_process_def on each output.
10193
10194         PR rtl-optimization/70574
10195         * fwprop.c (forward_propagate_and_simplify): Don't add
10196         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
10197         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
10198         paradoxical subregs within *loc.
10199
10200 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
10201
10202         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
10203         -ftree-parallelize-loops={0,1}.
10204         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
10205         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
10206         * config/ia64/hpux.h (LIB_SPEC): Likewise.
10207         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10208         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
10209
10210 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
10211
10212         PR sanitizer/70541
10213         * asan.c (instrument_derefs): If we get unknown location, extract it
10214         with EXPR_LOCATION.
10215         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
10216
10217 2016-04-08  Tom de Vries  <tom@codesourcery.com>
10218
10219         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
10220         implicit firstprivate clause.
10221
10222 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10223
10224         PR target/70566
10225         * config/arm/thumb2.md (tst + branch-> lsls + branch
10226         peephole below *orsi_not_shiftsi_si): Require that condition
10227         register is dead after the peephole.
10228         (second peephole after the above): Likewise.
10229
10230 2016-04-08  Alan Modra  <amodra@gmail.com>
10231
10232         PR target/70117
10233         * builtins.c (fold_builtin_classify): For IBM extended precision,
10234         look at just the high-order double to test for NaN.
10235         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
10236         test just the high double for Inf but both doubles for subnormal
10237         limit.
10238
10239 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
10240
10241         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
10242         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
10243         node->simdclone->mask_mode != VOIDmode masks.
10244         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
10245         earlier, use it instead of node->simdclone.
10246         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10247         Set clonei->mask_mode.
10248
10249 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10250
10251         PR c/70436
10252         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
10253         Pass it through to cp_parser_already_scoped_statement.
10254         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
10255         it through to cp_parser_statement.
10256         (cp_parser_statement): Pass IF_P through to
10257         cp_parser_iteration_statement.
10258         (cp_parser_pragma): Adjust call to
10259         cp_parser_iteration_statement.
10260
10261 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10262
10263         PR c/70436
10264         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
10265         resolve a future -Wparentheses warning.
10266         * omp-low.c (scan_sharing_clauses): Likewise.
10267         * tree-parloops.c (eliminate_local_variables): Likewise.
10268
10269 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
10270
10271         PR rtl-optimization/70398
10272         * lra-constraints.c (process_address_1): Check zero scale and code
10273         for reloading with zero scale.
10274
10275 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
10276
10277         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
10278         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
10279
10280 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
10281
10282         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10283         Add support for AVX512F clones, include them by default for
10284         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
10285         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
10286         up to 128.
10287
10288         PR middle-end/70550
10289         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
10290         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
10291         firstprivate clauses.
10292         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
10293         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
10294         (lower_omp_target): Set TREE_NO_WARNING for
10295         non-addressable possibly uninitialized vars which are copied into
10296         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
10297
10298 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
10299
10300         * config/pa/predicates.md (integer_store_memory_operand): Accept
10301         REG+D operands with a large offset when reload_in_progress is true.
10302         (floating_point_store_memory_operand): Likewise.
10303
10304 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10305
10306         PR c++/70336
10307         * match.pd (nested int casts): Limit to GIMPLE.
10308
10309 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
10310
10311         PR ipa/66223
10312         * ipa-devirt.c (maybe_record_node): Fix comment; use
10313         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
10314
10315 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10316
10317         PR rtl-optimization/70542
10318         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
10319         if there are any uses other than insn or debug insns.
10320
10321 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
10322             Jakub Jelinek  <jakub@redhat.com>
10323
10324         PR tree-optimization/70509
10325         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
10326         Shift HOST_WIDE_INT_1U instead of 1.
10327
10328 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
10329
10330         PR tree-optimization/70509
10331         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
10332         of the vector base type for index.
10333
10334 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
10335
10336         PR target/70510
10337         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
10338
10339 2016-04-05  Richard Biener  <rguenther@suse.de>
10340
10341         PR tree-optimization/70526
10342         * tree-sra.c (build_ref_for_offset): Use prev_base to
10343         extract the alias pointer type.
10344
10345 2016-04-05  Richard Biener  <rguenther@suse.de>
10346
10347         * dse.c (struct store_info): Remove alias_set member.
10348         (struct read_info_type): Likewise.
10349         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
10350         spill_deleted, clear_alias_set_lookup): Remove.
10351         (get_group_info): Remove dead base == NULL_RTX case.
10352         (dse_step0): Remove initialization of removed variables.
10353         (delete_dead_store_insn): Reomve alias set dumping.
10354         (free_read_records): Remove alias_set handling.
10355         (canon_address): Remove alias_set_out parameter.
10356         (record_store): Remove spill_alias_set, it's always zero.
10357         (check_mem_read_rtx): Likewise.
10358         (dse_step2): Rename from ...
10359         (dse_step2_nospill): ... this.  Adjust.
10360         (scan_stores): Rename from ...
10361         (scan_stores_nospill): ... this.
10362         (scan_reads): Rename from ...
10363         (scan_reads_nospill): ... this.
10364         (scan_stores_spill, scan_reads_spill): Remove.
10365         (dse_step3_scan): Remove for_spills argument which is always false.
10366         (dse_step3): Likewise.
10367         (dse_step5): Rename from ...
10368         (dse_step5_nospill): ... this.  Remove alias_set handling.
10369         (rest_of_handle_dse): Adjust.
10370
10371 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10372
10373         PR target/70525
10374         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
10375         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
10376         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
10377         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
10378
10379 2016-04-05  Richard Biener  <rguenther@suse.de>
10380
10381         PR middle-end/70499
10382         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
10383         non-register type temporaries into SSA.
10384
10385 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
10386
10387         PR ipa/66223
10388         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
10389         calls when sanitizing.
10390         (possible_polymorphic_call_target_p): Fix formatting.
10391
10392 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10393             Jakub Jelinek <jakub@redhat.com>
10394
10395         PR middle-end/70457
10396         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
10397         to ensure a call statement is compatible with a built-in's
10398         prototype.
10399         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
10400         Likewise.
10401
10402 2016-04-04  Richard Biener  <rguenther@suse.de>
10403
10404         PR rtl-optimization/70484
10405         * rtl.h (canon_output_dependence): Declare.
10406         * alias.c (canon_output_dependence): New function.
10407         * dse.c (record_store): Use canon_output_dependence rather
10408         than canon_true_dependence.
10409
10410 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10411
10412         PR ipa/68881
10413         * cgraph.h (symtab_node::copy_visibility_from): New function.
10414         * symtab.c (symtab_node::copy_visibility_from): New function.
10415         * ipa-visibility.c (optimize_weakref): New function.
10416         (function_and_variable_visibility): Use it.
10417
10418 2016-04-04  Martin Liska  <mliska@suse.cz>
10419
10420         PR hsa/70402
10421         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
10422         value that is really in range handled by SBR instruction.
10423         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
10424         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
10425         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
10426
10427 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
10428
10429         PR target/70416
10430         PR target/67391
10431         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
10432         set, but not for SP_REG operands.
10433
10434 2016-04-02  Martin Sebor  <msebor@redhat.com>
10435
10436         PR c++/67376
10437         * fold-const.c (maybe_nonzero_address): New function.
10438         (fold_comparison): Call it.  Fold equality and relational
10439         expressions involving null pointers.
10440         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
10441
10442 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
10443
10444         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
10445         the "Y" constraint (scalar FP 0.0 immediate).
10446
10447         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
10448         Add the "const_double" to the list of operand constraints.
10449
10450 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
10451
10452         PR rtl-optimization/70467
10453         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
10454         If low word of the last operand is 0, just emit addition/subtraction
10455         for the high word.
10456
10457 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10458
10459         PR target/70404
10460         * config/s390/s390.c (s390_expand_insv): Check for everything
10461         constant instead of just VOIDmode stuff.
10462
10463 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10464
10465         PR target/70496
10466         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
10467
10468 2016-04-01  Nathan Sidwell  <nathan@acm.org>
10469
10470         * tree.def (TRY_CATCH_EXPR): Correct documentation.
10471
10472 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
10473
10474         PR rtl-optimization/70461
10475         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
10476         is necessary.
10477
10478 2016-03-31  Martin Liska  <mliska@suse.cz>
10479
10480         PR hsa/70399
10481         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
10482         a tree value or an immediate integer value to a buffer
10483         that is eventually copied to a BRIG section.
10484         (emit_immediate_operand): Call the function here.
10485         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
10486         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
10487         of class' fields that are removed.
10488         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
10489         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
10490         m_brig_repr_size fields.
10491
10492 2016-03-31  Martin Liska  <mliska@suse.cz>
10493
10494         PR hsa/70391
10495         * hsa-gen.c (hsa_function_representation::update_dominance): New
10496         function.
10497         (convert_addr_to_flat_segment): Likewise.
10498         (gen_hsa_memory_set): New alignment argument.
10499         (gen_hsa_ctor_assignment): Likewise.
10500         (gen_hsa_insns_for_single_assignment): Provide alignment
10501         to gen_hsa_ctor_assignment.
10502         (gen_hsa_insns_for_direct_call): Add new argument.
10503         (expand_lhs_of_string_op): New function.
10504         (expand_string_operation_builtin): Likewise.
10505         (expand_memory_copy): New function.
10506         (expand_memory_set): New function.
10507         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
10508         (convert_switch_statements): Change signature.
10509         (generate_hsa): Use a return value of the function.
10510         (pass_gen_hsail::execute): Do not call
10511         convert_switch_statements here.
10512         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
10513         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
10514         (hsa_function_representation::update_dominance): New function.
10515
10516 2016-03-31  Martin Liska  <mliska@suse.cz>
10517
10518         PR hsa/70391
10519         * hsa-brig.c (emit_directive_variable): Emit alignment
10520         according to hsa_symbol::m_align.
10521         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
10522         (dump_hsa_symbol): Dump alignment of HSA symbols.
10523         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
10524         (gen_hsa_addr_with_align): New function.
10525         (hsa_bitmemref_alignment): Use newly added function.
10526         (gen_hsa_insns_for_load): Likewise.
10527         (gen_hsa_insns_for_store): Likewise.
10528         (gen_hsa_memory_copy): New argument added.
10529         (gen_hsa_insns_for_single_assignment): Respect
10530         alignment for assignments processed via gen_hsa_memory_copy.
10531         (gen_hsa_insns_for_direct_call): Likewise.
10532         (gen_hsa_insns_for_return): Likewise.
10533         (gen_function_def_parameters): Set default alignment.
10534         * hsa.c (hsa_object_alignment): New function.
10535         (hsa_byte_alignment): Pasted function.
10536         * hsa.h (hsa_symbol::m_align): New field.
10537
10538 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10539
10540         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
10541         scratch field for goto case.
10542
10543 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
10544
10545         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
10546
10547 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
10548
10549         PR target/70442
10550         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
10551         (scalar_chain::convert_insn): Call convert_op for reg
10552         moves to handle undefined registers.
10553
10554 2016-03-31  Nathan Sidwell  <nathan@acm.org>
10555
10556         PR c++/70393
10557         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
10558         Assert we don't want to move backwards.
10559
10560 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
10561
10562         PR target/70453
10563         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
10564
10565 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
10566
10567         PR rtl-optimization/70460
10568         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
10569         with operand from REG_LABEL_OPERAND, instead substitute
10570         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
10571         Don't do anything for REG_NON_LOCAL_GOTO jumps.
10572
10573 2016-03-31  Martin Liska  <mliska@suse.cz>
10574
10575         * passes.c (execute_one_pass): Do not call
10576         todo_after for a discarded function.
10577
10578 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10579
10580         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
10581         (no_cost, infinite_cost): Initialize the new field.
10582         (get_computation_cost_at): Record setup cost.
10583         (determine_use_iv_cost_address): Skip cost computation for sub
10584         uses if we can estimate it without losing accuracy.
10585
10586 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10587
10588         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10589         estimates here.
10590         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10591         max_loop_iterations_int.
10592         (tree_unswitch_outer_loop): Likewise.
10593         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10594         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10595
10596 2016-03-30  Richard Biener  <rguenther@suse.de>
10597
10598         PR middle-end/70450
10599         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
10600
10601 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
10602
10603         PR target/70421
10604         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
10605         in gen_blendm expander.
10606
10607 2016-03-30  Nick Clifton  <nickc@redhat.com>
10608
10609         PR target/62254
10610         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
10611         case where we are already provided with an SImode SUBREG.
10612
10613 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10614
10615         PR target/70439
10616         * config/i386/i386.c (ix86_expand_epilogue): Properly check
10617         conflict between DRAP register and __builtin_eh_return.
10618
10619 2016-03-30  Michael Matz  <matz@suse.de>
10620             Richard Biener  <rguenther@suse.de>
10621
10622         PR ipa/12392
10623         * ipa-polymorphic-call.c (struct type_change_info): Change
10624         speculative to an unsigned allowing to limit the work we do.
10625         (csftc_abort_walking_p): New inline function..
10626         (check_stmt_for_type_change): Limit the number of may-defs
10627         skipped for speculative devirtualization to
10628         max-speculative-devirt-maydefs.
10629         * params.def (max-speculative-devirt-maydefs): New param.
10630         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
10631
10632 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
10633
10634         PR target/63890
10635         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
10636         and TARGET_MACHO.
10637
10638 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
10639
10640         PR tree-optimization/59124
10641         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
10642         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
10643
10644 2016-03-29  Jeff Law  <law@redhat.com>
10645
10646         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
10647
10648 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10649
10650         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
10651         to HOST_WIDE_INT.
10652
10653 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
10654
10655         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
10656         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
10657         gcrt0.o if linking dynamically.
10658
10659 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10660
10661         PR ipa/70283
10662         * ipa-devirt.c (methods_equal_p): New function.
10663         (compare_virtual_tables): Use it.
10664         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
10665         * cgraphclones.c (clone_function_name_1): Use
10666         symbol_table::symbol_suffix_separator.
10667         * coverage.c (build_var): Likewise.
10668         * symtab.c (symbol_table::symbol_suffix_separator): New.
10669
10670 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
10671
10672         PR rtl-optimization/70429
10673         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
10674         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
10675         mode != result_mode.
10676
10677         PR c++/70353
10678         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
10679
10680         PR tree-optimization/70405
10681         * ssa-iterators.h (num_imm_uses): Add missing braces.
10682
10683 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
10684
10685         PR rtl-optimization/68695
10686         * ira-color.c (allocno_copy_cost_saving): New.
10687         (improve_allocation): Use it.
10688
10689 2016-03-29  Richard Henderson  <rth@redhat.com>
10690
10691         PR middle-end/70355
10692         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
10693
10694 2016-03-29  Richard Biener  <rguenther@suse.de>
10695
10696         PR middle-end/70424
10697         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
10698         use alignment returned by get_pointer_alignment_1 if it is
10699         bigger than BITS_PER_UNIT.
10700         * builtins.c (get_pointer_alignment_1): Do not return true
10701         for alignment extracted from SSA info.
10702
10703 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
10704
10705         * config/ft32/ft32.opt (mnodiv): New.
10706         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
10707         * doc/invoke.texi (FT32 Options -mnodiv): New.
10708
10709 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
10710
10711         PR target/70406
10712         * config/i386/i386.md (define_split, andn): Fix modes.
10713
10714 2016-03-26  Richard Biener  <rguenther@suse.de>
10715             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10716
10717         PR ipa/70366
10718         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
10719         instead of
10720         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
10721         as 2nd argument to cl_optimization_restore().
10722
10723 2016-03-25  Richard Henderson  <rth@redhat.com>
10724
10725         PR target/70120
10726         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
10727         * config/aarch64/aarch64-protos.h: Declare it.
10728         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
10729
10730 2016-03-25  Alan Modra  <amodra@gmail.com>
10731
10732         PR target/70052
10733         * config/rs6000/constraints.md (j): Simplify.
10734         * config/rs6000/predicates.md (easy_fp_constant): Exclude
10735         decimal float 0.D.
10736         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
10737         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
10738          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
10739         in all constraint alternatives.
10740         (movtd_64bit_nodm): Delete "j" constraint alternative.
10741
10742 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
10743
10744         * tree-ssa-propagate.c: Enhance docs for
10745         SSA_PROP_NOT_INTERESTING.
10746
10747 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
10748
10749         * doc/extend.texi: Fix typo in documentation to pure attribute.
10750
10751 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
10752
10753         PR target/70319
10754         * config/pa/pa.md (bswapdi2): Use a scratch register.
10755
10756 2016-03-24  Richard Henderson  <rth@redhat.com>
10757
10758         PR middle-end/69845
10759         * fold-const.c (extract_muldiv_1): Correct test for multiplication
10760         overflow.
10761
10762 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
10763
10764         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
10765         using ix86_expand_binary_operator instead of gen_andsi3.
10766
10767 2016-03-24  Richard Biener  <rguenther@suse.de>
10768
10769         PR tree-optimization/70396
10770         * tree-vect-stmts.c (vectorizable_comparison): Use
10771         get_vectype_for_scalar_type.
10772
10773 2016-03-24  Richard Biener  <rguenther@suse.de>
10774
10775         PR middle-end/70370
10776         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
10777         with register bases.
10778
10779 2016-03-24  Richard Biener  <rguenther@suse.de>
10780
10781         PR tree-optimization/70372
10782         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
10783         build_all_ones_cst to also handle vector types correctly.
10784
10785 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
10786
10787         PR target/70381
10788         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
10789         -mfloat128 here.
10790
10791 2016-03-23  Marek Polacek  <polacek@redhat.com>
10792
10793         PR c++/69884
10794         * doc/invoke.texi: Document -Wignored-attributes.
10795
10796 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10797
10798         PR tree-optimization/69042
10799         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
10800         parameter from 30 to 40.
10801
10802 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10803
10804         PR tree-optimization/69042
10805         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
10806         for use with constant offset stripped in base.
10807
10808 2016-03-23  Richard Biener  <rguenther@suse.de>
10809
10810         PR middle-end/70251
10811         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
10812         mode compatibility check.
10813         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10814
10815 2016-03-23  Jeff Law  <law@redhat.com>
10816
10817         PR tree-optimization/64058
10818         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
10819         CONFLICT_COUNT.
10820         (struct ssa_conflicts): Move up earlier in the file.
10821         (conflicts_, var_map_): New static variables.
10822         (initialize_conflict_count): New function to initialize the
10823         CONFLICT_COUNT field for each conflict pair.
10824         (compare_pairs): Lazily initialize the conflict count and use it
10825         as the first tie-breaker.
10826         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
10827         and wipe conflicts_ and map_ around the call to qsort.  Remove
10828         special case for 2 coalesce pairs.
10829         * bitmap.c (bitmap_count_unique_bits): New function.
10830         (bitmap_count_bits_in_word): New function, extracted from
10831         bitmap_count_bits.
10832         (bitmap_count_bits): Use bitmap_count_bits_in_word.
10833         * bitmap.h (bitmap_count_unique_bits): Declare it.
10834
10835 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
10836
10837         PR target/69917
10838         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
10839         transparent alias chain for decl assembler name.
10840         * config/sol2.c (solaris_assemble_visibility): Likewise.
10841
10842 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10843
10844         * config/arm/arm1020e.md (1020call_op): Reduce reservation
10845         duration.
10846         (v10_fdivs): Likewise.
10847         (v10_fdivd): Likewise.
10848
10849 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10850
10851         PR driver/70132
10852         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
10853         to not call fclose twice on file.
10854
10855 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
10856
10857         PR tree-optimization/70354
10858         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10859         oprnd0 is wider than oprnd1 and there is a cast from the wider
10860         type to oprnd1, mask it with the mask of the narrower type.
10861
10862         PR target/70321
10863         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
10864         Optimize TARGET_STV splitters, if high or low word of last argument
10865         is 0 or -1.
10866
10867 2016-03-22  Jeff Law  <law@redhat.com>
10868
10869         PR target/70232
10870         tree-ssa-threadbackward.c
10871         (fsm_find_control_statement_thread_paths): Correctly distinguish
10872         between old style jump threads vs FSM jump threads.
10873
10874 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
10875
10876         PR target/70302
10877         * config/i386/i386.c (scalar_chain::convert_op): Support
10878         uninitialized register usage case.
10879
10880 2016-03-22  Richard Biener  <rguenther@suse.de>
10881
10882         PR middle-end/70251
10883         * genmatch.c (gen_transform): Adjust last parameter to a three-state
10884         int...
10885         (capture::gen_transform): ... to change behavior when substituting
10886         a condition into cond or not-cond expr context.
10887         (dt_simplify::gen_1): Adjust.
10888         * gimple-match-head.c: Include gimplify.h for unshare_expr.
10889         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
10890         last change and instead change to
10891         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
10892         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10893
10894 2016-03-22  Anthony Green  <green@moxielogic.com>
10895
10896         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
10897         issue for moxiebox targets.
10898         (CC1PLUS_SPEC): Ditto.
10899
10900 2016-03-22  Richard Biener  <rguenther@suse.de>
10901
10902         PR middle-end/70333
10903         * fold-const.c (extract_muldiv_1): Properly perform multiplication
10904         in the wide type.
10905
10906 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10907
10908         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10909
10910 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10911
10912         PR target/70325
10913         * config/i386/i386.c (def_builtin): Handle
10914         OPTION_MASK_ISA_AVX512VL to be and-ed with other
10915         bits.
10916         (const struct builtin_description bdesc_special_args[]):
10917         Remove duplicate ISA bits.
10918
10919 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
10920
10921         PR target/70329
10922         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
10923         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
10924         in a way that works also for AVX512BW.
10925
10926         PR target/70300
10927         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
10928         instead of source if operands[1] is xmm16 and above and
10929         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
10930         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
10931
10932         PR c++/70295
10933         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
10934         on assign if (*from_p) is a comparison, set it to
10935         TREE_NO_WARNING (*from_p).
10936
10937 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10938
10939         PR middle-end/70326
10940         * lra.c (restore_scratches): Ignore deleted insns.
10941
10942 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
10943             Jakub Jelinek  <jakub@redhat.com>
10944
10945         PR tree-optimization/70317
10946         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10947         to HONOR_NANS.
10948
10949 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
10950
10951         PR target/70327
10952         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10953         of ix86_expand_move.
10954         (movoi): Ditto.
10955         (movti): Use general_operand for operand 1 predicate.
10956
10957 2016-03-21  Martin Liska  <mliska@suse.cz>
10958
10959         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10960         insns.
10961         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10962
10963 2016-03-21  Martin Liska  <mliska@suse.cz>
10964
10965         PR ipa/70306
10966         * ipa-icf.c (sem_function::parse): Skip static
10967         constructors and destructors.
10968
10969 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10970
10971         PR target/70296
10972         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
10973         function-like macro, peek following token(s) if it is followed
10974         by CPP_OPEN_PAREN token with optional padding in between, and
10975         if not, don't treat it like a macro.
10976
10977 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
10978             Alexander Monakov  <amonakov@ispras.ru>
10979
10980         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10981         for the stabs debug format.
10982
10983 2016-03-21  Richard Biener  <rguenther@suse.de>
10984
10985         PR tree-optimization/70310
10986         * tree-vect-generic.c (expand_vector_condition): Fold the built
10987         condition.
10988
10989 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10990
10991         PR target/70293
10992         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10993         Block third alternative for AVX-512VL target,
10994
10995 2016-03-21  Martin Liska  <mliska@suse.cz>
10996
10997         PR hsa/70234
10998         * hsa-brig.c (emit_function_directives): Mark unemitted
10999         global variables for emission.
11000         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
11001         (get_symbol_for_decl): Likewise.
11002         * hsa.h (struct hsa_symbol): New flag.
11003
11004 2016-03-21  Richard Biener  <rguenther@suse.de>
11005
11006         PR tree-optimization/70288
11007         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
11008         we do not estimate unsimplified all-constant conditionals or
11009         switches as optimized away.
11010
11011 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
11012
11013         PR rtl-optimization/69102
11014         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
11015         when we have a readonly dependency context.
11016
11017 2016-03-18  Jeff Law  <law@redhat.com>
11018
11019         PR rtl-optimization/70263
11020         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
11021         (update_equiv_regs): When trying to move a store to after the insn
11022         that sets the source of the store, make sure the store occurs after
11023         the insn that sets the source of the store.  When successful note
11024         the REG_EQUIV note created in the dump file.
11025
11026 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
11027             Bernd Schmidt  <bschmidt@redhat.com>
11028
11029         * doc/extend.texi: Document more potential problems with basic asms.
11030
11031 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
11032
11033         PR rtl-optimization/70278
11034         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
11035         VOIDmode.
11036
11037 2016-03-18  Jason Merrill  <jason@redhat.com>
11038
11039         * calls.c (load_register_parameters): Fix zero size sibcall logic.
11040
11041 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
11042
11043         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
11044         values to 128b regs.
11045
11046 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
11047
11048         PR tree-optimization/70252
11049         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
11050         boolean vector has a proper number of elements.
11051         (supportable_narrowing_operation): Likewise.
11052
11053 2016-03-18  Tom de Vries  <tom@codesourcery.com>
11054
11055         PR ipa/70269
11056         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
11057
11058 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
11059
11060         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
11061         instead of replace_rtx for DEBUG_INSNs.
11062
11063 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11064
11065         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
11066         load type reservations.
11067
11068 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
11069
11070         PR target/70188
11071         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
11072         define_constraint for "Q" and "T" constraints.
11073
11074 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
11075
11076         Tweak the pipeline model for Exynos M1
11077
11078         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
11079         model.
11080
11081 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
11082
11083         PR c/70264
11084         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
11085         where one or both locations aren't within a line_map.
11086
11087 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11088
11089         PR driver/70192
11090         * opts.c (finish_options): Don't set flag_pie to the default if
11091         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
11092         if it is -1.
11093
11094 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
11095
11096         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
11097         true as ALL_REGS argument to replace_rtx.
11098
11099 2016-03-17  Richard Biener  <rguenther@suse.de>
11100
11101         PR debug/70271
11102         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
11103         last.
11104
11105 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11106
11107         PR target/70245
11108         * rtl.h (replace_rtx): Add ALL_REGS argument.
11109         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
11110         equality and assert mode is the same, instead of just rtx pointer
11111         equality.
11112         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
11113         true as ALL_REGS argument to replace_rtx.
11114
11115 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
11116
11117         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
11118         for boolean vector with vector mode only.
11119         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11120
11121 2016-03-17  Nick Clifton  <nickc@redhat.com>
11122
11123         PR target/70162
11124         * config/rx/rx.c (rx_print_integer): Print negative constants in
11125         decimal.
11126
11127 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11128
11129         PR target/70261
11130         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
11131
11132 2016-03-16  Richard Henderson  <rth@redhat.com>
11133             Richard Biener  <rguenth@suse.de>
11134
11135         PR middle-end/70240
11136         PR middle-end/68215
11137         PR tree-opt/68714
11138         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
11139         first operand as is_gimple_condexpr.
11140
11141         PR middle-end/70240
11142         PR middle-end/68215
11143         Revert r231575
11144         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
11145         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
11146         Do not gimplify the result.
11147         (do_unop): Adjust call to tree_vec_extract.
11148         (do_binop): Likewise.
11149         (do_compare): Likewise.
11150         (do_plus_minus): Likewise.
11151         (do_negate): Likewise.
11152         (expand_vector_condition): Likewise.
11153         (do_cond): Likewise.
11154
11155 2016-03-16  Richard Henderson  <rth@redhat.com>
11156
11157         PR target/70048
11158         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
11159         (aarch64_classify_address): Use it.
11160         (aarch64_legitimize_address): Force all subexpressions of PLUS
11161         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
11162
11163 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
11164             Richard Biener  <rguenth@suse.de>
11165
11166         PR target/70245
11167         * rtlanal.c (replace_rtx): For REG, if from is a REG,
11168         return to even if only REGNO is equal, and assert
11169         mode is the same.
11170
11171 2016-03-11  Jeff Law  <law@redhat.com>
11172
11173         PR rtl-optimization/70224
11174         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
11175
11176 2016-03-16  Richard Henderson  <rth@redhat.com>
11177
11178         PR middle-end/70199
11179         * function.h (struct function): Add has_forced_label_in_static.
11180         * gimplify.c (force_labels_r): Set it.
11181         * lto-streamer-in.c (input_struct_function_base): Read it.
11182         * lto-streamer-out.c (output_struct_function_base): Write it.
11183         * tree-inline.c (has_label_address_in_static_1): Remove.
11184         (copy_forbidden): Remove fndecl parameter; test
11185         has_forced_label_in_static.
11186         (inline_forbidden_p): Update call to copy_forbidden.
11187         (tree_versionable_function_p): Likewise.
11188         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
11189         (chkp_versioning): Likewise.
11190         * tree-inline.h (copy_forbidden): Update decl.
11191
11192 2016-03-16  Marek Polacek  <polacek@redhat.com>
11193
11194         PR c/70093
11195         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
11196         function being thunked if the result type doesn't have fixed size.
11197         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
11198         doesn't have fixed size.
11199
11200 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
11201
11202         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
11203         reporting malformed loop nest.
11204
11205 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11206
11207         PR lto/70187
11208         * ipa-devirt.c (possible_polymorphic_call_targets): Move
11209         nodes.length () == 1 test to before first nodes[0] access.
11210
11211 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11212
11213         PR tree-optimization/68715
11214         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
11215         single_pred_p test.
11216
11217 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11218
11219         PR tree-optimization/68809
11220         * graphite-scop-detection.c (same_close_phi_node): Test if result types
11221         are the same.
11222
11223 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
11224             Sandra Loosemore  <sandra@codesourcery.com>
11225
11226         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
11227         on leaf attribute. Mention ELF interposition problems.
11228
11229 2016-03-16  Alan Modra  <amodra@gmail.com>
11230
11231         PR rtl-optimization/69195
11232         PR rtl-optimization/47992
11233         * ira.c (indirect_jump_optimize): Ignore artificial defs.
11234         Add comments.
11235
11236 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11237
11238         PR bootstrap/69513
11239         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
11240
11241 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
11242
11243         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
11244
11245 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
11246
11247         PR rtl-optimization/70222
11248         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
11249         optimization if mode is different from result_mode, queue up masking
11250         of the result in outer_op.  Formatting fix.
11251
11252         PR middle-end/70239
11253         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
11254         of safe_grow.
11255
11256 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11257
11258         PR rtl-optimization/69032
11259         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
11260         looping backwards over basic block insns.
11261
11262 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11263
11264         PR target/66660
11265         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
11266         to non-speculative when propagating trap bits.
11267
11268 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11269
11270         PR rtl-optimization/63384
11271         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
11272         DEBUG_INSN_P insns.
11273
11274 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11275
11276         PR target/64411
11277         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
11278         factored out from ...
11279         (sched_analyze_insn): ... here.
11280         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
11281         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
11282         get_implicit_reg_pending_clobbers in it.
11283         (setup_id_reg_sets): Use setup_id_implicit_regs.
11284         (deps_init_id): Ditto.
11285
11286 2016-03-15  Tom de Vries  <tom@codesourcery.com>
11287
11288         PR ipa/70161
11289         * cgraph.c (cgraph_node::get_body): Save, reset and restore
11290         dump_file_name.
11291         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
11292         execute_function_dump.
11293         (execute_one_pass): Don't dump function if it will be dumped after ipa
11294         transform.
11295
11296 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
11297
11298         * genrecog.c (match_pattern_2): If pred is NULL don't call
11299         safe_predicate_mode on it.
11300
11301 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
11302
11303         PR middle-end/70219
11304         * lra-constraints.c (delete_move_and_clobber): Change assertion
11305         to also allow dregno == 0.
11306
11307 2016-03-14  Richard Henderson  <rth@redhat.com>
11308
11309         PR tree-opt/68714
11310         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
11311         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
11312         (reassociate_bb): Use optimize_vec_cond_expr; avoid
11313         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
11314         on vectors.
11315
11316 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
11317
11318         PR target/70083
11319         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
11320         regs.
11321         (lra_create_live_ranges_1): initialize hard register biggest_mode to
11322         VOIDmode.
11323         * lra-constraints.c (split_reg): For hard regs, try to find the
11324         biggest single-register mode used in the function.
11325
11326 2016-03-14  Richard Biener  <rguenther@suse.de>
11327
11328         PR tree-optimization/56365
11329         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
11330         constants to compare against.
11331
11332 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
11333
11334         PR target/70098
11335         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
11336         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
11337         (define_split for the GPR case): Use int_reg_operand instead of
11338         gpc_reg_operand for the output.
11339
11340 2016-03-14  Tom de Vries  <tom@codesourcery.com>
11341
11342         PR tree-optimization/70045
11343         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
11344         create_empty_if_region_on_edge argument.
11345
11346 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
11347
11348         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
11349         (STACK_CHECK_PROTECT): Likewise.
11350         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11351         (STACK_CHECK_PROTECT): Likewise.
11352         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11353         (STACK_CHECK_PROTECT): Likewise.
11354         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
11355         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11356         (STACK_CHECK_PROTECT): Likewise.
11357
11358 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
11359
11360         PR rtl-optimization/69307
11361         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
11362         registers in modes that span more than one register.
11363
11364 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11365
11366         PR target/69614
11367         * lra-constraints.c (delete_move_and_clobber): New.
11368         (remove_inheritance_pseudos): Use it.
11369
11370 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11371
11372         PR ada/70017
11373         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
11374         the libcall is LCT_THROW.
11375         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
11376         for the checking routine.
11377
11378 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11379
11380         PR target/70131
11381         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
11382         optimization if we have direct move.
11383         (roundu32<mode>2_fprs): Likewise.
11384
11385 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
11386
11387         PR target/70123
11388         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
11389         be rematerialized.
11390         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
11391         Arguments swapped.  All callers changed.  Take reg_renumber into
11392         account, and Calculate and compare register ranges for hard regs.
11393
11394 2016-03-11  Jeff Law  <law@redhat.com>
11395
11396         PR tree-optimization/70190
11397         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11398         Handle cases where we can not extract the taken edge, even though we
11399         found a constant value.
11400
11401         PR tree-optimization/64058
11402         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
11403         (num_coalesce_pairs): Move up earlier in file.
11404         (find_coalesce_pair): Initialize the INDEX field for each pair
11405         discovered.
11406         (compare_pairs): No longer sort on the elements in each pair.
11407         Instead break ties with the index of the coalesce pair.
11408
11409 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11410
11411         PR target/70002
11412         * config/aarch64/aarch64-protos.h
11413         (aarch64_save_restore_target_globals): New prototype.
11414         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
11415         Call the above when popping pragma.
11416         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
11417         New function.
11418         (aarch64_set_current_function): Rewrite using the above.
11419
11420 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11421
11422         PR tree-optimization/70177
11423         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
11424         (extract_ops_from_tree): ... this.  In the 2 argument
11425         overload remove _1 suffix.
11426         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
11427         (extract_ops_from_tree): ... this.
11428         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
11429         Adjust callers.
11430         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11431         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
11432         extract_ops_from_tree instead of 2 operand one.
11433
11434 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
11435
11436         PR tree-optimization/70013
11437         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
11438         for constant-pool entries.
11439
11440 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11441
11442         PR rtl-optimization/70174
11443         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
11444         followed by gen_lowpart on force_reg instead of just gen_lowpart.
11445
11446         PR tree-optimization/70169
11447         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
11448         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
11449         for unknown codes.
11450
11451 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11452             Jakub Jelinek  <jakub@redhat.com>
11453
11454         PR target/70160
11455         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
11456         of uninitialized values.
11457
11458 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11459
11460         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
11461         define_expand.
11462         ("*trunctddd2"): New pattern definition.
11463         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
11464         TD->DD truncation.
11465
11466 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11467
11468         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
11469         definitions for BFP and DFP rounding modes.
11470         ("fixuns_truncdddi2", "fixuns_trunctddi2")
11471         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
11472         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
11473         ("fix_trunctf<mode>2"): Use the new constants instead of magic
11474         numbers.
11475
11476 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11477
11478         * config/s390/constraints.md: Adjust comment.
11479         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
11480         s390_decompose_addrstyle_without_index.
11481         * config/s390/predicates.md (shift_count_or_setmem_operand):
11482         Rename to setmem_operand.
11483         * config/s390/s390-protos.h
11484         (s390_decompose_shift_count): Rename to
11485         s390_decompose_addrstyle_without_index.
11486         * config/s390/s390.c (s390_decompose_shift_count)
11487         (s390_mem_constraint, print_shift_count_operand)
11488         (print_operand_address, print_operand): Rename
11489         s390_decompose_shift_count to
11490         s390_decompose_addrstyle_without_index and rename
11491         print_shift_count_operand to print_addrstyle_operand troughout the
11492         file.
11493         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
11494         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
11495         Rename shift_count_or_setmem_operand to setmem_operand.
11496         * config/s390/vx-builtins.md ("vec_insert<mode>")
11497         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
11498         nonmemory_operand.
11499
11500 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11501
11502         PR target/70168
11503         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11504         Handle overlapping retval and newval.
11505
11506 2016-03-10  Nick Clifton  <nickc@redhat.com>
11507
11508         PR target/7044
11509         * config/aarch64/aarch64.c
11510         (aarch64_override_options_after_change_1): When forcing
11511         flag_omit_frame_pointer to be true, use a special value that can
11512         be detected if this function is called again, thus preventing
11513         flag_omit_leaf_frame_pointer from being forced to be false.
11514
11515 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11516
11517         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
11518         Set x_flag_omit_leaf_frame_pointer when handling
11519         -momit-leaf-frame-pointer.
11520
11521 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11522
11523         PR lto/69589
11524         * cgraph.c (cgraph_node::dump): Dump split_part and
11525         indirect_call_target.
11526         * cgraph.h (cgraph_node): Add indirect_call_target flag.
11527         * ipa.c (has_addr_references_p): Cleanup.
11528         (is_indirect_call_target_p): New.
11529         (walk_polymorphic_call_targets): Do not mark virtuals that may be
11530         called indirectly as local.
11531         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
11532
11533 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11534
11535         PR ipa/69630
11536         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11537         on cxa_pure_virtual.
11538
11539 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11540
11541         PR lto/69589
11542         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
11543
11544 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11545
11546         PR lto/69589
11547         * tree.c (need_assembler_name_p): Only record main variant type names.
11548
11549 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11550
11551         PR target/70113.
11552         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
11553         Always define to 0 or 1.
11554         (TARGET_FIX_ERR_A53_843419): New macro.
11555         * config/aarch64/aarch64-elf-raw.h
11556         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
11557         * config/aarch64/aarch64-linux.h: Likewise.
11558         * config/aarch64/aarch64.c
11559         (aarch64_override_options_after_change_1): Do not default
11560         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
11561         843419 is on.
11562         (aarch64_attributes): Handle fix-cortex-a53-843419.
11563         (aarch64_can_inline_p): Likewise.
11564         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
11565
11566 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
11567         Jakub Jelinek <jakub@redhat.com>
11568
11569         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
11570         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
11571         DECL_COMMONS if flag_unconstrained_commons is set.
11572         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11573         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
11574         (funconstrained-commons): Document.
11575
11576 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11577
11578         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
11579         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
11580
11581 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
11582
11583         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
11584         has a proper number of elements.
11585
11586 2016-03-10  Alan Modra  <amodra@gmail.com>
11587
11588         PR rtl-optimization/69195
11589         PR rtl-optimization/47992
11590         * ira.c (recorded_label_ref): Delete.
11591         (update_equiv_regs): Return void.
11592         (indirect_jump_optimize): New function.
11593         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
11594         before regstat_compute_ri.  Don't rebuild_jump_labels here.
11595         Delete update_regstat.
11596
11597 2016-03-10  Richard Biener  <rguenther@suse.de>
11598
11599         PR tree-optimization/70128
11600         * tree-ssa-structalias.c (set_uids_in_ptset): Set
11601         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
11602
11603 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
11604
11605         PR tree-optimization/70152
11606         * tree-sra.c (replace_removed_params_ssa_names): Copy over
11607         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
11608
11609         PR target/70086
11610         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
11611         instead of gen_sse2_loadlpd.
11612         * config/i386/sse.md (*vec_concatv2df): Rename to...
11613         (vec_concatv2df): ... this.
11614
11615         PR tree-optimization/70127
11616         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
11617
11618 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
11619
11620         PR c/68473
11621         PR c++/70105
11622         * diagnostic-show-locus.c (compatible_locations_p): New function.
11623         (layout::layout): Sanitize ranges using compatible_locations_p.
11624
11625 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
11626
11627         PR c/68473
11628         PR c++/70105
11629         * diagnostic-show-locus.c (layout_range::layout_range): Replace
11630         location_range param with three const expanded_locations * and a
11631         bool.
11632         (layout::layout): Replace call to
11633         rich_location::lazily_expand_location with get_expanded_location.
11634         Extract the range and perform location expansion here, passing
11635         the results to the layout_range ctor.
11636         * diagnostic.c (source_range::debug): Delete.
11637         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
11638         of rich_location::get_expanded_location.
11639         * gcc-rich-location.c (get_range_for_expr): Delete.
11640         (gcc_rich_location::add_expr): Reimplement to avoid the
11641         rich_location::add_range overload that took a location_range,
11642         passing a location_t instead.
11643
11644 2016-03-09  Richard Biener  <rguenther@suse.de>
11645         Jakub Jelinek  <jakub@redhat.com>
11646
11647         PR tree-optimization/70138
11648         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11649         Also skip vect_double_reduction_def.
11650
11651 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
11652
11653         PR target/70049
11654         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
11655         if the operand is "m".
11656
11657 2016-03-09  Nathan Sidwell  <nathan@acm.org>
11658
11659         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
11660
11661 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11662
11663         * config/i386/i386.c (processor_target_table): Fix cost table
11664         intialization order for znver1.
11665
11666 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
11667
11668         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
11669         - becuase -> because.
11670         * ipa-reference.c (ignore_module_statics): Likewise.
11671         * cgraph.c (cgraph_node::get_body): Likewise.
11672         * ipa-inline.c (early_inliner): Likewise.
11673         * ipa-devirt.c (types_same_for_odr): Likewise.
11674         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
11675         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
11676
11677 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11678
11679         * tree-ssa-math-opts.c: Fix typo in comment.
11680
11681 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
11682
11683         PR target/70110
11684         * config/i386/i386.c (scalar_chain::make_vector_copies,
11685         scalar_chain::convert_reg): Call end_sequence in between
11686         get_insns and emit_conversion_insns rather than after both
11687         calls.
11688
11689 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
11690
11691         PR target/70064
11692         * config/i386/i386.h (machine_function): Add
11693         pc_thunk_call_expanded flag.
11694         (ix86_pc_thunk_call_expanded): New define.
11695         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
11696         (*set_got): Rename insn pattern from set_got.
11697         (*set_got_labelled): Rename inst pattern from set_got_labelled.
11698         * config/i386/i386.c (ix86_compute_frame_layout): Use
11699         ix86_pc_thunk_call_expanded to prevent red-zone.
11700
11701 2016-03-07  Martin Jambor  <mjambor@suse.cz>
11702
11703         * hsa.h (hsa_get_ctor_statements): Declare.
11704         (hsa_get_dtor_statements): Likewise.
11705         (hsa_get_kernel_dispatch_type): Likewise.
11706         * hsa.c (hsa_get_ctor_statements): New function.
11707         (hsa_get_dtor_statements): Likewise.
11708         (hsa_get_kernel_dispatch_type): Likewise.
11709         * hsa-brig.c (hsa_cdtor_statements): Removed.
11710         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
11711         hsa_get_dtor_statements.
11712         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
11713         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
11714
11715 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11716
11717         * config/arm/arm-cores.def (cortex-r8): New.
11718         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
11719         * config/arm/arm-tune.md: Likewise.
11720         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
11721
11722 2016-03-07  Martin Sebor  <msebor@redhat.com>
11723
11724         PR rtl-optimization/19705
11725         * doc/invoke.texi (Options That Control Optimization): Clarify
11726         -fno-branch-count-reg.
11727
11728 2016-02-26  Richard Biener  <rguenther@suse.de>
11729             Jeff Law  <law@redhat.com>
11730
11731         PR tree-optimization/69740
11732         * cfghooks.c (remove_edge): Request loop fixups if we delete
11733         an edge that might turn an irreducible loop into a natural
11734         loop.
11735         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
11736         Move after definition of loops_state_clear.
11737
11738 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
11739
11740         PR rtl-optimization/69052
11741         * rtlanal.c (commutative_operand_precedence): Set higher precedence
11742         to CONST_WIDE_INT.
11743
11744 2016-03-07  Tom de Vries  <tom@codesourcery.com>
11745
11746         PR tree-optimization/70116
11747         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
11748         is_tm_ending stmts and ubsan/asan internal functions.
11749         (find_duplicate): Use it.  Don't test is_tm_ending here.
11750
11751 2016-03-07  Richard Biener  <rguenther@suse.de>
11752
11753         PR tree-optimization/70115
11754         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
11755         (propagate_constants_for_unrolling): Use replace_uses_by.
11756
11757 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
11758
11759         PR middle-end/69916
11760         * omp-low.c (struct oacc_loop): Add ifns.
11761         (new_oacc_loop_raw): Initialize it.
11762         (finish_oacc_loop): Clear mask & flags if no ifns.
11763         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
11764         (oacc_loop_xform_loop): Add ifns arg & adjust.
11765         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
11766
11767 2016-03-07  Richard Henderson  <rth@redhat.com>
11768
11769         PR rtl-opt/70061
11770         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
11771         (insert_value_copy_on_edge): Likewise.
11772
11773 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11774
11775         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
11776
11777 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11778
11779         PR target/62281
11780         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
11781
11782 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
11783
11784         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
11785
11786 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
11787
11788         Fix sseimul type attribute.
11789         * config/i386/znver1.md
11790         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
11791         znver1_sseimul_avx256_load) : Fix the type attribute.
11792         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
11793         pipe usage and latency.
11794
11795 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
11796
11797         PR c++/70084
11798         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
11799         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
11800         to the right type.
11801
11802 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11803
11804         PR c/69973
11805         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
11806
11807         PR rtl-optimization/69941
11808         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
11809         the reg share its mode.
11810
11811 2016-03-04  Jeff Law  <law@redhat.com>
11812
11813         PR tree-optimization/69196
11814         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11815         If the both SSA_NAMEs are anonymous, then consider them unassociated
11816         and include the PHI in the statement count.
11817
11818 2016-03-05  Tom de Vries  <tom@codesourcery.com>
11819
11820         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
11821         construct in oacc routine.  Check for oacc region in oacc routine.
11822
11823 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11824
11825         PR target/70062
11826         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
11827         2016-02-22 changes, instead don't recurse if RECUR is already true.
11828         Don't change *dynamic_check if RECUR.  Adjust recursive caller
11829         to pass true to the new argument.
11830         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
11831
11832         PR target/70059
11833         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
11834         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
11835         fixes.
11836         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
11837
11838 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11839
11840         PR rtl-optimization/57676
11841         * lra-assigns.c (lra_assign): Guard test for maximum iterations
11842         with flag_checking.
11843
11844 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
11845
11846         * tree-vect-patterns.c (search_type_for_mask): Handle
11847         comparison of booleans.
11848
11849 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11850
11851         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
11852         Fix @xref usage.
11853
11854         PR debug/69947
11855         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
11856         all other ops that have dw_val_class_die_ref operands,
11857         and DW_OP_GNU_entry_value.
11858
11859 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11860
11861         PR rtl-optimization/69904
11862         * config/arm/arm.c (arm_cannot_copy_insn_p):
11863         Return true for load-exclusive instructions.
11864
11865 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
11866
11867         PR target/70021
11868         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
11869         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
11870         the pattern no matter if it is used just by non-pattern, pattern
11871         or mix thereof.
11872         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
11873         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11874         oprnd1 def_stmt is in pattern, don't look through it.
11875
11876 2016-03-03  Marek Polacek  <polacek@redhat.com>
11877
11878         PR middle-end/70050
11879         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
11880
11881 2016-03-03  Martin Liska  <mliska@suse.cz>
11882
11883         PR tree-optimization/70043
11884         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
11885         previous statement if we see a debug statement.
11886
11887 2016-03-03  Richard Biener  <rguenther@suse.de>
11888
11889         PR tree-optimization/55936
11890         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
11891         parameter and guard unsafe equivalence use.
11892         (vrp_evaluate_conditional_warnv_with_ops): Always use
11893         safe equivalences but not via the quadratic compare_names
11894         helper.
11895
11896 2016-03-03  Michael Collison  <michael.collison@linaro.org>
11897
11898         PR target/70014
11899         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
11900         for operand 1 to s_register_operand. Change predicate for operand
11901         2 to arm_not_immediate_operand.
11902
11903 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
11904
11905         * doc/tm.texi: Regenerated.
11906
11907 2016-03-02  Richard Henderson  <rth@redhat.com>
11908
11909         PR rtl-opt/67145
11910         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11911         simplification when all args are positive non-fixed registers.
11912
11913 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11914
11915         * target.def (lra_p): Specify that new ports should use LRA.
11916
11917 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11918
11919         PR libgomp/69555
11920         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
11921         gimplify_type_sizes the type they refer to.
11922         (omp_notice_variable): Handle reference vars to VLAs.
11923         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
11924         reference to VLA decls in the second pass instead of first pass.
11925
11926 2016-03-02  Tom de Vries  <tom@codesourcery.com>
11927
11928         PR tree-optimization/68659
11929         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
11930         new_expr == NULL_TREE.
11931         (get_new_name): Handle ADDR_EXPR.
11932
11933 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
11934
11935         PR rtl-optimization/69052
11936         * loop-invariant.c (canonicalize_address): New function.
11937         (inv_can_prop_to_addr_use): Check validity of address expression
11938         which is canonicalized by above function.
11939
11940 2016-03-02  Alan Modra  <amodra@gmail.com>
11941
11942         PR ipa/69990
11943         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11944         larger alignment.
11945
11946 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11947
11948         PR target/70028
11949         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
11950         (*movhi_internal): Put mask moves from and to memory separately
11951         from moves from/to GPRs.
11952
11953 2016-03-02  Richard Biener  <rguenther@suse.de>
11954
11955         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11956         GENERIC expressions in GIMPLE.
11957
11958 2016-03-02  Richard Biener  <rguenther@suse.de>
11959
11960         * config/i386/i386.c (type_natural_mode): Fix typo.
11961
11962 2016-03-02  Nick Clifton  <nickc@redhat.com>
11963
11964         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11965
11966 2016-03-02  Richard Biener  <rguenther@suse.de>
11967             Uros Bizjak  <ubizjak@gmail.com>
11968
11969         PR target/67278
11970         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11971
11972 2016-03-02  Richard Biener  <rguenther@suse.de>
11973
11974         PR middle-end/67278
11975         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11976
11977 2016-03-02  Marek Polacek  <polacek@redhat.com>
11978
11979         PR c/67854
11980         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11981         "is promoted to" warning.
11982
11983 2016-03-01  DJ Delorie  <dj@redhat.com>
11984
11985         * config.gcc: Deprecate mep-*.
11986
11987 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11988
11989         PR middle-end/70025
11990         * lra-constraints.c (regno_val_use_in): New.
11991         (match_reload): Use it instead of regno_use_in.
11992
11993 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11994
11995         PR rtl-optimization/70007
11996         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
11997         references present in REG_EQUAL notes attached to non-SET patterns.
11998
11999 2016-03-01  Jeff Law  <law@redhat.com>
12000
12001         PR tree-optimization/69196
12002         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12003         Appropriately clamp the number of statements to copy when the
12004         thread path does not traverse a loop backedge.
12005
12006         PR tree-optimization/69196
12007         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12008         Do count some PHIs in the thread path against the insn count.  Decrease
12009         final statement count by one as the control statement in the last
12010         block will get removed.  Remove special cased code for handling PHIs
12011         in the last block.
12012
12013 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
12014
12015         PR target/70027
12016         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
12017         asm dialect alternatives to explicit GOTPCREL calls.
12018
12019 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12020
12021         PR ada/70017
12022         * ira.c (do_reload): Issue warning for generic stack checking here...
12023         * reload1.c (reload): ...instead of here and streamline it.
12024
12025 2016-03-01  Nick Clifton  <nickc@redhat.com>
12026
12027         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
12028
12029 2016-03-01  Richard Biener  <rguenther@suse.de>
12030
12031         PR tree-optimization/69983
12032         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
12033         types and fall back to operand_equal_p.
12034
12035 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12036
12037         Revert
12038         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12039
12040         * config/s390/constraints.md ("jm8"): New constraint.
12041         * config/s390/predicates.md ("const_int_8bitset_operand"): New
12042         predicate.
12043         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
12044         into ...
12045         ("*setmem_long<setmem_and>"): New pattern.
12046         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
12047         into ...
12048         ("*setmem_long_31z<setmem_and>"): New pattern.
12049         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
12050         New substitution rules with the required attributes.
12051
12052
12053 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12054
12055         Revert
12056         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12057
12058         * gensupport.c (process_substs_on_one_elem): Split loop to
12059         complete mark_operands_used_in_match_dup on all expressions in the
12060         vector first.
12061         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12062         and remove function.
12063
12064 2016-03-01  Richard Biener  <rguenther@suse.de>
12065
12066         PR middle-end/70022
12067         * fold-const.c (fold_indirect_ref_1): Fix range checking for
12068         vector BIT_FIELD_REF extract.
12069
12070 2016-03-01  Richard Biener  <rguenther@suse.de>
12071
12072         PR tree-optimization/69994
12073         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
12074
12075 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12076
12077         PR tree-optimization/69956
12078         * tree-vect-stmts.c (supportable_widening_operation): Support
12079         multi-step conversion of boolean vectors.
12080         (supportable_narrowing_operation): Likewise.
12081
12082 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12083
12084         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
12085         anymore.
12086
12087 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12088
12089         * config/s390/subst.md (DSI_VI): New mode iterator.
12090         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
12091         * config/s390/vector.md ("vec_set<mode>"): Move expander before
12092         the insn definition.
12093         ("*vec_set<mode>"): Change predicate and add alternative to
12094         support only either register or const_int operands as element
12095         selector.
12096         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
12097         operands.
12098         ("vec_extract<mode>"): New expander.
12099         ("*vec_extract<mode>"): New insn definition supporting reg and
12100         const_int element selectors.
12101         ("*vec_extract<mode>_plus"): New insn definition supporting
12102         reg+const_int element selectors.
12103         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
12104         following expander+insn definition.
12105         ("<vec_shifts_name><mode>3"): New expander.
12106         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
12107
12108 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12109
12110         * config/s390/s390.md ("*tabort_1"): Change predicate to
12111         nonmemory_operand.  Add a second alternative to cover
12112         register as well as const int operands.
12113         ("*tabort_1_plus"): New pattern definition.
12114
12115 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12116
12117         * config/s390/s390.md ("*ashrdi3_cc_31")
12118         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
12119         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
12120         Merge insn definitions into ...
12121         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12122         New pattern definition.
12123         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
12124         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
12125         ("*ashr<mode>3_and"): Merge insn definitions into ...
12126         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12127         New pattern definition.
12128         * config/s390/subst.md ("addr_style_op_cc_subst")
12129         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
12130         substitutions patterns plus attributes.
12131         Add ashiftrt to SUBST iterator.
12132
12133 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12134
12135         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
12136         op2 to nonmemory_operand.
12137         ("*<shift>di3_31", "*<shift>di3_31_and"):
12138         Merge into single pattern definition ...
12139         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
12140         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
12141         pattern definition ...
12142         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
12143         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
12144         iterator.
12145
12146 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12147
12148         * config/s390/predicates.md (const_int_6bitset_operand): New
12149         predicate.
12150         * config/s390/s390.md: Include subst.md.
12151         ("rotl<mode>3"): New expander.
12152         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
12153         ...
12154         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
12155         * config/s390/subst.md: New file.
12156
12157 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12158
12159         * config/s390/s390.md ("op_type", "atype", "length" attributes):
12160         Remove RRR type.  It doesn't really exist.
12161         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
12162         attributes.
12163         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
12164         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
12165         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
12166         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
12167         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
12168         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
12169         `enabled' attribute.
12170
12171 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12172
12173         * gensupport.c (process_substs_on_one_elem): Split loop to
12174         complete mark_operands_used_in_match_dup on all expressions in the
12175         vector first.
12176         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12177         and remove function.
12178
12179 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12180
12181         PR target/69706
12182         * config/sparc/sparc.c (NWORDS_UP): Rename to...
12183         (CEIL_NWORDS): ...this.  Use CEIL macro.
12184         (compute_fp_layout): Adjust to above renaming.
12185         (function_arg_union_value): Likewise.
12186         (sparc_arg_partial_bytes): Likewise.
12187         (sparc_function_arg_advance): Likewise.
12188
12189 2016-02-29  Jeff Law  <law@redhat.com>
12190
12191         PR tree-optimization/70005
12192         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
12193         where an object with a boolean range is compared against a value
12194         outside [0..1].
12195
12196         PR tree-optimization/69999
12197         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
12198         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
12199         loop cleanups.
12200
12201 2016-02-29  Richard Biener  <rguenther@suse.de>
12202
12203         PR tree-optimization/69994
12204         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
12205         (get_unary_op): Look through nop conversions.
12206         (ops_equal_values_p): New function, look for equality diregarding
12207         nop conversions.
12208         (eliminate_plus_minus_pair): Use ops_equal_values_p
12209         (repropagate_negates): Do not use get_unary_op here.
12210
12211 2016-02-29  Martin Liska  <mliska@suse.cz>
12212
12213         * system.h: Poison ENABLE_CHECKING macro.
12214
12215 2016-02-29  Martin Liska  <mliska@suse.cz>
12216
12217         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
12218         is presented in dump flags.
12219         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12220         (hsa_regalloc): Likewise.
12221
12222 2016-02-19  Richard Biener  <rguenther@suse.de>
12223
12224         PR tree-optimization/69980
12225         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
12226         permutation of those we need to keep.
12227
12228 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12229
12230         PR target/69706
12231         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
12232         (NWORDS_UP): ...this
12233         (init_cumulative_args): Minor tweaks.
12234         (sparc_promote_function_mode): Likewise.
12235         (scan_record_type): Delete.
12236         (traverse_record_type): New function template.
12237         (classify_data_t): New structure type.
12238         (classify_registers): New inline function.
12239         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
12240         exhausted.  Instantiate traverse_record_type on classify_registers and
12241         deal with the case of a structure passed in slot #15 with no FP field
12242         in the first word.
12243         (assign_data_t): New structure type.
12244         (compute_int_layout): New static function.
12245         (compute_fp_layout): Likewise.
12246         (count_registers): New inline function.
12247         (assign_int_registers): New static function.
12248         (assign_fp_registers): Likewise.
12249         (assign_registers): New inline function.
12250         (function_arg_record_value_1): Delete.
12251         (function_arg_record_value_2): Likewise.
12252         (function_arg_record_value_3): Likewise.
12253         (function_arg_record_value): Adjust to above changes.  Instantiate
12254         traverse_record_type on count_registers to first count the number of
12255         registers to be used and then on assign_registers to assign them.
12256         (function_arg_union_value): Adjust to above renaming.
12257         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
12258         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
12259         case of a structure passed in slot #15
12260         (sparc_function_arg_advance): Likewise.
12261         (function_arg_padding): Minor tweak.
12262
12263 2016-02-29  Richard Biener  <rguenther@suse.de>
12264
12265         PR tree-optimization/69720
12266         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
12267         the adjustment_def path for possibly vectorized defs.
12268         (vect_create_epilog_for_reduction): Handle vectorized initial
12269         defs properly.
12270
12271 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
12272
12273         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
12274
12275 2016-02-27  Jeff Law  <law@redhat.com>
12276
12277         Revert
12278         2016-02-26  Richard Biener  <rguenther@suse.de>
12279                     Jeff Law  <law@redhat.com>
12280
12281         PR tree-optimization/69740
12282         * cfghooks.c (remove_edge): Request loop fixups if we delete
12283         an edge that might turn an irreducible loop into a natural
12284         loop.
12285
12286 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
12287
12288         PR rtl-optimization/69896
12289         * tree-vect-generic.c (get_compute_type): Avoid single element
12290         vector types.
12291
12292 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
12293
12294         Rename the AArch64 tuning option and related functions to enable the
12295         Newton series for the reciprocal square root to reflect its
12296         approximative characteristic.
12297
12298         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
12299         function to "aarch64_emit_approx_rsqrt".
12300         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
12301         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
12302         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
12303         (xgene1_tunings): Likewise.
12304         (use_rsqrt_p): Likewise.
12305         (aarch64_emit_swrsqrt): Use new function name.
12306         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
12307         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
12308         text explaining this option.
12309         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
12310
12311 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12312
12313         PR target/69969
12314         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12315         complain about -mallow-movmisalign without -mvsx if
12316         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
12317
12318 2016-02-26  Joel Sherrill  <joel@rtems.org>
12319
12320         * config.gcc: Add x86_64-*-rtems*.
12321         * config/i386/rtems-64.h: New file.
12322
12323 2016-02-26  Joel Sherrill  <joel@rtems.org>
12324
12325         * config.gcc: Add aarch64-*-rtems*.
12326         * config/aarch64/rtems.h: New file.
12327
12328 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
12329
12330         PR target/69946
12331         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
12332         shift amount using %h.  Add comment.
12333
12334 2016-02-26  Richard Biener  <rguenther@suse.de>
12335             Jeff Law  <law@redhat.com>
12336
12337         PR tree-optimization/69740
12338         * cfghooks.c (remove_edge): Request loop fixups if we delete
12339         an edge that might turn an irreducible loop into a natural
12340         loop.
12341
12342 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12343
12344         PR middle-end/69920
12345         * tree-sra.c (sra_modify_assign): Do not remove loads of
12346         uninitialized aggregates to SSA_NAMEs.
12347
12348 2016-02-26  Richard Henderson  <rth@redhat.com>
12349
12350         PR target/69709
12351         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
12352         pseudo in case the target rtx matches the source of the left
12353         shift.
12354
12355 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12356
12357         PR hsa/69568
12358         * hsa.h (hsa_type_packed_p): Declare.
12359         * hsa.c (hsa_type_packed_p): New function.
12360         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
12361         loads.
12362         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
12363         * hsa-brig.c (emit_basic_insn): Likewise.
12364
12365 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12366
12367         pr hsa/69674
12368         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
12369         pointers.
12370         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
12371
12372 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12373
12374         * hsa.h (is_a_helper): New overload for hsa_op_immed for
12375         hsa_op_with_type operands.
12376         (hsa_unsigned_type_for_type): Declare.
12377         * hsa.c (hsa_unsigned_type_for_type): New function.
12378         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
12379         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
12380         the finalizer.  Do not emit extra move.
12381
12382 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12383
12384         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
12385         atomic operations in private segment.
12386
12387 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12388
12389         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
12390         statements to wi->info.  Also disallow omp simd constructs.
12391         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
12392         for not gridifying.  Dump special string for omp_for.
12393
12394 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12395
12396         PR target/69245
12397         * config/aarch64/aarch64.c (aarch64_set_current_function):
12398         Save/restore target globals when switching to
12399         target_option_default_node.
12400
12401 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12402
12403         PR target/69613
12404         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
12405         Return 0 if !SHIFT_COUNT_TRUNCATED.
12406
12407 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12408             Eric Botcazou  <ebotcazou@adacore.com>
12409
12410         PR rtl-optimization/69891
12411         * dse.c (scan_insn): If we can't figure out memset arguments
12412         or they are non-constant, call clear_rhs_from_active_local_stores.
12413
12414 2016-02-26  Martin Liska  <mliska@suse.cz>
12415
12416         * doc/extend.texi: Mention clog10, clog10f an clog10l
12417         in Builtins section.
12418
12419 2016-02-26  Martin Liska  <mliska@suse.cz>
12420
12421         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
12422         CHECKING_P.
12423         (resolve_args_picking_1): Likewise.
12424         * dwarf2out.h (struct GTY): Likewise.
12425
12426 2016-02-26  Martin Liska  <mliska@suse.cz>
12427
12428         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
12429         with flag_checking.
12430         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12431
12432 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
12433             Martin Liska  <mliska@suse.cz>
12434
12435         * doc/install.texi: Mention --enable-valgrind-annotations.
12436
12437 2016-02-26  Richard Biener  <rguenther@suse.de>
12438
12439         PR tree-optimization/69551
12440         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
12441         looking through aliases adjust DECL_PT_UID to refer to the
12442         ultimate alias target.
12443
12444 2016-02-25  Martin Liska  <mliska@suse.cz>
12445
12446         PR middle-end/69919
12447         * alloc-pool.c (after_memory_report): New variable.
12448         * alloc-pool.h (base_pool_allocator ::release): Do not use
12449         the infrastructure if after_memory_report.
12450         * toplev.c (toplev::main): Mark after memory report.
12451
12452 2016-02-25  Richard Biener  <rguenther@suse.de>
12453
12454         PR tree-optimization/48795
12455         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
12456
12457 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
12458
12459         PR driver/68463
12460         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
12461         offloading is enabled and -fopenacc or -fopenmp is specified.
12462         (CRTOFFLOADEND): Likewise.
12463         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
12464         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
12465         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
12466         (offload_objects_file_name): New static var.
12467         (tool_cleanup): Remove offload_objects_file_name file.
12468         (find_offloadbeginend): Replace with ...
12469         (find_crtoffloadtable): ... this.
12470         (run_gcc): Remove offload_argc and offload_argv.
12471         Get offload_objects_file_name from -foffload-objects=... option.
12472         Read names of object files with offload from this file, pass them to
12473         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
12474         don't pass offloadbegin and offloadend to the linker.  Don't pass
12475         offload non-LTO files to the linker, because now they're not claimed.
12476
12477 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
12478
12479         PR ipa/69630
12480         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12481         on builtin_unreachable.
12482
12483 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
12484
12485         PR rtl-optimization/69896
12486         * regcprop.c: Include cfgrtl.h.
12487         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
12488         than remembered mode, either delete it (if noop_move_p), or
12489         treat like copy_p but not noop_p instruction.
12490
12491 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12492
12493         PR debug/69705
12494         * dwarf2out.c (gen_variable_die): Work around buggy LTO
12495         - allow NULL decl for Fortran DW_TAG_common_block variables.
12496
12497 2016-02-24  Jason Merrill  <jason@redhat.com>
12498
12499         * common.opt (flifetime-dse): Add -flifetime-dse=1.
12500
12501 2016-02-24  Richard Biener  <rguenther@suse.de>
12502             Jakub Jelinek  <jakub@redhat.com>
12503
12504         PR middle-end/69760
12505         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
12506         conditionally executed ops to well-defined overflow behavior.
12507
12508 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12509
12510         PR middle-end/69915
12511         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
12512         elements.
12513
12514 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12515
12516         PR rtl-optimization/69886
12517         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
12518         argument.  Use it when checking validity of set instructions.
12519         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
12520         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
12521         callsite.
12522         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
12523         * store-motion.c (find_moveable_store): Update
12524         can_assign_to_reg_without_clobbers_p callsite.
12525
12526 2016-02-24  Richard Biener  <rguenther@suse.de>
12527
12528         PR middle-end/68963
12529         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
12530         bogus check.
12531         (record_nonwrapping_iv): Do not fall back to the low/high bound
12532         for non-constant IV bases if the stmt is not always executed.
12533
12534 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12535
12536         * config/arm/arm-cores.def (cortex-a32): New entry.
12537         * config/arm/arm-tables.opt: Regenerate.
12538         * config/arm/arm-tune.md: Regenerate.
12539         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
12540         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
12541         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
12542         for -mcpu and -mtune.
12543
12544 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12545
12546         PR target/69875
12547         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
12548         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
12549         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
12550         (atomic_loaddi_1): Delete.
12551         (atomic_loaddi): Rewrite expander using the above changes.
12552
12553 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12554
12555         PR c/69918
12556         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
12557         2 to 3.
12558
12559 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12560             Richard Biener  <rguenth@suse.de>
12561
12562         PR middle-end/69909
12563         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
12564         set_mem_attributes if tem is SSA_NAME which got expanded
12565         as a MEM.
12566
12567 2016-02-24  Richard Biener  <rguenther@suse.de>
12568
12569         PR tree-optimization/69907
12570         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
12571         end of permutations for BB vectorization.
12572
12573 2016-02-24  Christian Bruel  <christian.bruel@st.com>
12574
12575         * config/arm/arm-c.c (arm_option_override): Initialize
12576         target_option_current_node.
12577         * config/arm/arm.c (arm_pragma_target_parse): Replace
12578         build_target_option_node call by target_option_current_node.
12579         Set target_option_current_node.
12580         Fix comments.
12581
12582 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
12583
12584         PR target/69810
12585         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
12586         define_insn_and_split to define_insn.
12587         (zero_extendqi<mode>2_dot2): Same.
12588         (extendqi<mode>2_dot): Same.
12589         (extendqi<mode>2_dot2): Same.
12590
12591 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12592
12593         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
12594         and add bypass for AES{D,E} and AESMC pairs.
12595         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
12596         and AESMC pairs.
12597
12598 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12599
12600         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
12601         series for reciprocal square root in Exynos M1.
12602
12603 2016-02-23  Martin Sebor  <msebor@redhat.com>
12604
12605         PR c/69759
12606         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
12607         __builtin_alloca_with_align.
12608
12609 2016-02-23  Richard Henderson  <rth@redhat.com>
12610
12611         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
12612         (ix86_register_pragmas): Remove __seg_tls.
12613         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
12614         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
12615         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
12616         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
12617         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
12618         * doc/extend.texi (__seg_tls): Remove item.
12619
12620 2016-02-23  Richard Biener  <rguenther@suse.de>
12621
12622         * alloc-pool.h (struct allocation_object): Make id member
12623         conditional on CHECKING_P again.
12624         (get_instance): Adjust.
12625         (base_pool_allocator): Likewise.
12626
12627 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
12628
12629         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
12630         (parallelize_loops): In OpenACC kernels mode, set n_threads to
12631         zero.
12632         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
12633         flag_openacc.
12634         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
12635
12636 2016-02-23  Richard Biener  <rguenther@suse.de>
12637
12638         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
12639         * bitmap.h (struct bitmap_usage): Likewise.
12640         (bitmap_move): Declare.
12641         * bitmap.c (register_overhead): Take size_t argument.
12642         (bitmap_move): New function.
12643         * df-problems.c (df_rd_transfer_function): Use bitmap_move
12644         to properly account overhead.
12645         * tree.c (free_node): Use tree_size.
12646
12647 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
12648
12649         PR c++/69902
12650         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
12651         when inverting comparison.
12652
12653         PR c/69900
12654         * common.opt (Wunreachable-code): Add Warning flag.
12655
12656 2016-02-23  Mark Wielaard  <mjw@redhat.com>
12657             Jakub Jelinek  <jakub@redhat.com>
12658
12659         PR c/69911
12660         * cgraphunit.c (check_global_declaration): Check main_input_filename
12661         and DECL_SOURCE_FILE are not NULL.
12662
12663 2016-02-23  Martin Jambor  <mjambor@suse.cz>
12664
12665         PR tree-optimization/69666
12666         * tree-sra.c (sra_modify_assign): Do not attempt to create
12667         default_def replacements for unscalarizable regions.
12668
12669 2016-02-20  Mark Wielaard  <mjw@redhat.com>
12670
12671         PR c/28901
12672         * cgraphunit.c (check_global_declaration): Check level of
12673         warn_unused_const_variable and main_input_filename.
12674         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
12675         (-Wunused-variable): For C implies -Wunused-const-variable=1.
12676         (-Wunused-const-variable): Explain levels 1 and 2.
12677
12678 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
12679
12680         PR target/69888
12681         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
12682         identical arguments.  Formatting and spelling fixes.
12683
12684         PR target/69885
12685         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
12686         be specified.
12687
12688         PR target/69894
12689         PR target/69895
12690         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
12691         and m68k-devices.def.
12692         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
12693         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
12694
12695 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
12696
12697         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
12698         and HImode registers.
12699
12700 2016-02-22  Richard Biener  <rguenther@suse.de>
12701
12702         PR tree-optimization/69882
12703         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
12704         preserve permutations present because of gaps.
12705         (vect_supported_load_permutation_p): Always continue checking
12706         permutations after vect_attempt_slp_rearrange_stmts.
12707
12708 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
12709
12710         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
12711         min_profitable_estimate, rather than min_profitable_iters.
12712
12713 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
12714
12715         PR target/69885
12716         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
12717         SImode for last match_operand.
12718
12719 2016-02-22  Martin Liska  <mliska@suse.cz>
12720
12721         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
12722         return bitsize - 1 as the return value.
12723
12724 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
12725
12726         PR target/69806
12727         PR target/54089
12728         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
12729         Handle negative shift counts.
12730         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
12731         force_reg on the shift constant.
12732         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
12733         (lshrsi3_d): Handle negative shift counts.
12734
12735 2016-02-22  Richard Biener  <rguenther@suse.de>
12736             Tom de Vries  <tom@codesourcery.com>
12737
12738         * graph.c: Include dumpfile.h.
12739         (print_graph_cfg): Split into three overloads.
12740         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
12741
12742 2016-02-22  Tom de Vries  <tom@codesourcery.com>
12743
12744         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
12745         dump-fn.
12746
12747 2016-02-22  Richard Biener  <rguenther@suse.de>
12748
12749         PR ipa/37448
12750         * ipa-inline-transform.c (inline_call): When not updating
12751         overall summaries adjust self size by the growth estimate.
12752         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
12753         hash-set, do not update overall summaries here.  Renamed from ...
12754         (inline_to_all_callers): ... this which is now wrapping the
12755         above and performing delayed overall summary update.
12756         (early_inline_small_functions): Delay updating of the overall
12757         summary.
12758
12759 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
12760
12761         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
12762         variable.
12763
12764 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
12765
12766         PR driver/69805
12767         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
12768         :%* in %:gt() argument.
12769         (greater_than_spec_func): Adjust for expecting only numbers,
12770         if there are more than two numbers, compare the last two.
12771
12772 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
12773
12774         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
12775         -Wnarrowing with -std.
12776
12777 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
12778
12779         PR c++/69851
12780         * expr.c (store_field): Don't use bit-field path if exp is
12781         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
12782         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
12783         and the assignment can be performed by bitwise copy.  Formatting
12784         fix.
12785
12786         PR middle-end/69838
12787         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
12788         call copy_reg_eh_region_note_forward on before and/or after sequences
12789         and remove note from insn if it no longer can throw.
12790
12791         PR target/69820
12792         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
12793         if TARGET_AVX512BW.
12794
12795 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12796
12797         * config/s390/vector.md: Add missing commutative operand markers
12798         to the patterns which qualify for one.
12799         * config/s390/vx-builtins.md: Likewise.
12800
12801 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12802
12803         * config/s390/vector.md (VI, VI_QHS): Add single element vector
12804         types to mode iterators.
12805         (vec_double): ... and mode attribute.
12806         * config/s390/vx-builtins.md (non_vec_int): Likewise.
12807
12808 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12809
12810         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
12811         Change the predicate of op2 from nonimmediate to general and let
12812         reload fix it if necessary.
12813
12814 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12815
12816         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
12817
12818 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12819
12820         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
12821         mode.
12822
12823 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12824
12825         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
12826         * config/s390/s390.c (s390_expand_vec_movstr): New function.
12827         * config/s390/s390.md ("movstr<P:mode>"): Call
12828         s390_expand_vec_movstr.
12829
12830 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12831
12832         * config/s390/s390.md: Add missing output modifier for operand 1
12833         to print it as address properly.
12834
12835 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12836
12837         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
12838         * config/s390/2964.md: New file.
12839         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
12840         of insn grouping attributes depending on the CPU level.
12841         (s390_get_unit_mask): New function.
12842         (s390_sched_score): Remove the OOO from the scheduling macros.
12843         Add loop to calculate a score for the instruction mix.
12844         (s390_sched_reorder): Likewise plus improve debug output.
12845         (s390_sched_variable_issue): Rename macros as above.  Calculate
12846         the unit distances after actually scheduling an insn.  Improve
12847         debug output.
12848         (s390_sched_init): Clear last_scheduled_unit_distance array.
12849         * config/s390/s390.md: Include 2964.md.
12850
12851 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12852
12853         PR target/69671
12854         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
12855         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
12856         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
12857         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
12858         *avx512f_<code>v8div16qi2_mask_1): New insns.
12859
12860 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
12861
12862         PR target/68404
12863         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
12864         2016-02-09 change.
12865
12866         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
12867         earlyclobber from target.  Use wF constraint for fused memory
12868         address.
12869         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
12870
12871 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12872             Martin Liska  <mliska@suse.cz>
12873
12874         PR sanitizer/69863
12875         * cfgexpand.c (asan_sanitize_stack_p): New function.
12876         (partition_stack_vars): Use the function.
12877         (expand_stack_vars): Likewise.
12878         (defer_stack_allocation): Likewise.
12879         (expand_used_vars): Likewise.
12880
12881 2016-02-18  Richard Biener  <rguenther@suse.de>
12882
12883         PR middle-end/69553
12884         * fold-const.c (operand_equal_p): Properly compare offsets for
12885         IMAGPART_EXPR and ARRAY_REF.
12886
12887 2016-02-18  Nick Clifton  <nickc@redhat.com>
12888
12889         PR target/62254
12890         PR target/69610
12891         * config/arm/arm.c (arm_option_override_internal): Disable
12892         interworking if the target does not support thumb instructions.
12893         (arm_reload_in_hi): Handle the case where a register to register
12894         move needs reloading because there is no simple pattern to handle
12895         it.
12896         (arm_reload_out_hi): Likewise.
12897
12898 2016-02-18  Richard Biener  <rguenther@suse.de>
12899
12900         PR middle-end/69854
12901         * match.pd: Don't use fold_binary or fold_unary for folding
12902         constants.
12903
12904 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
12905
12906         PR c++/69850
12907         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
12908         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
12909         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
12910         warn on gimple_no_warning_p statements.
12911
12912 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
12913
12914         * doc/extend.texi (C++ Attributes): Correct description of
12915         warn_unused type attribute.
12916
12917 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12918
12919         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12920         correct instruction.
12921
12922 2016-02-17  Richard Biener  <rguenther@suse.de>
12923
12924         PR rtl-optimization/69609
12925         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
12926         (find_traces_1_round): When ending a trace update cached priority
12927         of successors.
12928         (bb_to_key): Use cached priority when available.
12929         (copy_bb): Initialize cached priority.
12930         (reorder_basic_blocks_software_trace_cache): Likewise.
12931
12932 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12933
12934         PR target/69161
12935         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12936         New predicate.
12937         (aarch64_comparison_operator): Break overly long line into two.
12938         (aarch64_comparison_operation): Likewise.
12939         * config/aarch64/aarch64.md (cstorecc4): Use
12940         aarch64_comparison_operator_mode instead of
12941         aarch64_comparison_operator.
12942         (cstore<mode>4): Likewise.
12943         (aarch64_cstore<mode>): Likewise.
12944         (*cstoresi_insn_uxtw): Likewise.
12945         (cstore<mode>_neg): Likewise.
12946         (*cstoresi_neg_uxtw): Likewise.
12947
12948 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12949
12950         PR target/69161
12951         * config/arm/predicates.md (arm_comparison_operator_mode):
12952         New predicate.
12953         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
12954         instead of arm_comparison_operator.
12955         (*mov_negscc): Likewise.
12956         (*mov_notscc): Likewise.
12957         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
12958         (*thumb2_mov_negscc): Likewise.
12959         (*thumb2_mov_negscc_strict_it): Likewise.
12960         (*thumb2_mov_notscc): Likewise.
12961         (*thumb2_mov_notscc_strict_it): Likewise.
12962
12963 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
12964
12965         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12966         Add missing return.
12967
12968 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
12969
12970         * config/visium/visium.c (machine_libfunc_index): New enum.
12971         (machine_libfuncs): New structure.
12972         (visium_libfuncs): New static variable.
12973         (TARGET_INIT_LIBFUNCS): Define to...
12974         (visium_init_libfuncs): ...this.  New function.
12975         (expand_block_move_4): Use the appropriate libfunc.
12976         (expand_block_move_2): Likewise.
12977         (expand_block_move_1): Likewise.
12978         (expand_block_set_4): Likewise.
12979         (expand_block_set_2): Likewise.
12980         (expand_block_set_1): Likewise.
12981         (visium_trampoline_init): Likewise.
12982
12983 2016-02-17  Nick Clifton  <nickc@redhat.com>
12984
12985         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12986         TI's devices.csv file as of March 2016.
12987
12988 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12989
12990         PR Target/48344
12991         * opts-global.c (handle_common_deferred_options): Introduce and
12992         initialize two global variables to remember command-line options
12993         specifying a stack-limiting register.
12994         * opts.h: Add extern declarations of the two new global variables.
12995         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
12996         variable based on the values of the two new global variables.
12997
12998 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12999
13000         PR c/69835
13001         * common.opt (Wnonnull-compare): New warning.
13002         * doc/invoke.texi (-Wnonnull): Remove text about comparison
13003         of arguments against NULL.
13004         (-Wnonnull-compare): Document.
13005         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
13006         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
13007         * passes.def (pass_warn_nonnull_compare): Add.
13008         * gimple-ssa-nonnull-compare.c: New file.
13009
13010 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13011
13012         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
13013         AARCH64_EXTRA_TUNE_RECIP_SQRT.
13014
13015 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13016
13017         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
13018         reciprocal sqrt for -mlow-precision-recip-sqrt.
13019
13020 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13021             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13022
13023         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
13024         always use lane loads to construct non-constant vectors.
13025
13026 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13027
13028         * config/aarch64/aarch64.md
13029         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
13030         constraints for operand 3.
13031         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
13032
13033 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13034             Richard Biener  <rguenther@suse.de>
13035
13036         PR tree-optimization/69820
13037         * tree-vect-patterns.c (type_conversion_p): Return false if
13038         *orig_type is unsigned single precision or boolean.
13039         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
13040         Formatting fix.
13041
13042 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13043
13044         PR rtl-optimization/69764
13045         PR rtl-optimization/69771
13046         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
13047         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
13048
13049 2016-02-16  Richard Biener  <rguenther@suse.de>
13050
13051         PR tree-optimization/69776
13052         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
13053         sets from caller.
13054         (indirect_refs_may_alias_p): Likewise.
13055         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
13056         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
13057         according to tbaa_p.
13058         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
13059         (optimize_stmt): For redundant store discovery do not allow tbaa.
13060
13061 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
13062
13063         PR tree-optimization/69714
13064         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
13065         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
13066
13067 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
13068
13069         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
13070         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
13071         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
13072         * config/arc/arc.c (arc_init): Check FPU options.
13073         (get_arc_condition_code): Handle new CC_FPU* modes.
13074         (arc_select_cc_mode): Likewise.
13075         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
13076         register pair only. Allow access for ARCv2 accumulator.
13077         (gen_compare_reg): Whenever we have FPU support use FPU compare
13078         instructions.
13079         (arc_reorg): Don't generate brcc insns when FPU compare
13080         instructions are involved.
13081         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
13082         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
13083         floating point emulation.
13084         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
13085         (REVERSE_CONDITION): Add new CC_FPU* modes.
13086         (TARGET_FP_SP_BASE): Define.
13087         (TARGET_FP_DP_BASE): Likewise.
13088         (TARGET_FP_SP_FUSED): Likewise.
13089         (TARGET_FP_DP_FUSED): Likewise.
13090         (TARGET_FP_SP_CONV): Likewise.
13091         (TARGET_FP_DP_CONV): Likewise.
13092         (TARGET_FP_SP_SQRT): Likewise.
13093         (TARGET_FP_DP_SQRT): Likewise.
13094         (TARGET_FP_DP_AX): Likewise.
13095         * config/arc/arc.md (ARCV2_ACC): New constant.
13096         (type): New fpu type attribute.
13097         (SDF): Conditional iterator.
13098         (cstore<mode>, cbranch<mode>): Change expand condition.
13099         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
13100         handles FPU/FPX cases as well.
13101         * config/arc/arc.opt (mfpu): New option.
13102         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
13103         Renamed.
13104         (adddf3, muldf3, subdf3): Removed.
13105         * config/arc/predicates.md (proper_comparison_operator): Recognize
13106         CC_FPU* modes.
13107         * config/arc/fpu.md: New file.
13108         * doc/invoke.texi (ARC Options): Document mfpu option.
13109
13110 2016-02-16  Richard Biener  <rguenther@suse.de>
13111
13112         PR rtl-optimization/69291
13113         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
13114         noce_operand_ok check.
13115
13116 2016-02-16  Tom de Vries  <tom@codesourcery.com>
13117
13118         PR lto/67709
13119         * omp-low.c (simd_clone_create): Remove call to
13120         symtab->call_cgraph_insertion_hooks.
13121
13122 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13123
13124         PR tree-optimization/69802
13125         * tree-ssa-reassoc.c (update_range_test): If op is
13126         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
13127         op == 1 test of precision 1 integral op, otherwise handle
13128         that case as op itself.  Fix up formatting.
13129         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
13130         up formatting.
13131
13132 2016-02-16  Richard Biener  <rguenther@suse.de>
13133
13134         PR tree-optimization/69586
13135         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
13136         types for conversion sources.
13137
13138 2016-02-16  Richard Biener  <rguenther@suse.de>
13139
13140         PR middle-end/69801
13141         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
13142         mask OEP_ADDRESS_OF.
13143
13144 2016-02-16  Alan Modra  <amodra@gmail.com>
13145
13146         PR target/68973
13147         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
13148         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
13149         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
13150         (p8_mtvsrwz): New.
13151         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
13152         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
13153         (p8_fmrgow_<mode>): Likewise.
13154         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
13155         changes.
13156         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
13157         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
13158         to use movdi_internal64.  Remove op0_di.
13159         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
13160
13161 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
13162
13163         Add support for the FCCMP insn types
13164
13165         * config/aarch64/aarch64.md (fccmp): Change insn type.
13166         (fccmpe): Likewise.
13167         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
13168         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
13169         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
13170         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
13171         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
13172         * config/arm/types.md (fccmps): Add new insn type.
13173         (fccmpd): Likewise.
13174
13175 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13176
13177         * alias.c (get_alias_set): Fix a typo in comment.
13178
13179 2016-02-15  Richard Biener  <rguenther@suse.de>
13180
13181         PR tree-optimization/69595
13182         * match.pd: Complete range test simplification to true.
13183
13184 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
13185
13186         PR rtl-optimization/69648
13187         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
13188         pic_offset_table_rtx.
13189
13190         PR rtl-optimization/69752
13191         * ira.c (update_equiv_regs): When looking for more than a single SET,
13192         also take other side effects into account.
13193
13194 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13195
13196         * config/s390/s390.c (s390_function_profiler): Add a new sequence
13197         for z900+ CPUs in 31-bit mode.
13198
13199 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13200
13201         * common/config/s390/s390-common.c (s390_supports_split_stack):
13202         New function.
13203         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
13204         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
13205         * config/s390/s390.c (struct machine_function): New field
13206         split_stack_varargs_pointer.
13207         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
13208         in s390_emit_prologue.
13209         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
13210         vararg pointer.
13211         (morestack_ref): New global.
13212         (SPLIT_STACK_AVAILABLE): New macro.
13213         (s390_expand_split_stack_prologue): New function.
13214         (s390_live_on_entry): New function.
13215         (s390_va_start): Use split-stack vararg pointer if appropriate.
13216         (s390_asm_file_end): Emit the split-stack note sections.
13217         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
13218         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
13219         (UNSPECV_SPLIT_STACK_CALL): New unspec.
13220         (UNSPECV_SPLIT_STACK_DATA): New unspec.
13221         (split_stack_prologue): New expand.
13222         (split_stack_space_check): New expand.
13223         (split_stack_data): New insn.
13224         (split_stack_call): New expand.
13225         (split_stack_call_*): New insn.
13226         (split_stack_cond_call): New expand.
13227         (split_stack_cond_call_*): New insn.
13228
13229 2016-02-15  Richard Biener  <rguenther@suse.de>
13230
13231         PR tree-optimization/69783
13232         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13233         Add trivially correct cases.
13234
13235 2016-02-15  Tom de Vries  <tom@codesourcery.com>
13236
13237         PR lto/69655
13238         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
13239         do_force_output.
13240         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
13241
13242 2016-02-15  Richard Biener  <rguenther@suse.de>
13243
13244         PR tree-optimization/69776
13245         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13246         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
13247         indicate whether we can use TBAA to disambiguate against stores.
13248         Use alias-set zero if not.
13249         (visit_reference_op_store): Do not use TBAA when looking up
13250         redundant stores.
13251         * tree-ssa-pre.c (compute_avail): Use TBAA here.
13252         (eliminate_dom_walker::before_dom_children): But not when looking
13253         up redundant stores.
13254
13255 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
13256
13257         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
13258
13259 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13260
13261         *  config/i386/znver1.md
13262         (znver1_pop, znver1_pop_mem,
13263         znver1_load_imov_double_store,
13264         znver1_load_imov_direct_store,
13265         znver1_load_imov_direct_load,
13266         znver1_load_imov_double_load): Add new.
13267         (znver1_insn, znver1_insn_load): Add icmov type.
13268         (znver1_sseavx_fma,
13269         znver1_sseavx_fma_load,
13270         znver1_avx256_fma,
13271         znver1_avx256_fma_load): Fix pipe usage.
13272
13273 2016-02-14  Alan Modra  <amodra@gmail.com>
13274
13275         PR target/68973
13276         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
13277         with an invalid hard reg, reload just the reg not the entire
13278         pre/post-inc/dec address expression.
13279
13280 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13281
13282         PR target/67260
13283         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
13284         fixed R1_REG scratch reg.
13285         (sibcall_value_pcrel_fdpic): Likewise.
13286
13287 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13288
13289         PR target/67636
13290         PR target/64345
13291         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
13292
13293 2016-02-12  Walter Lee  <walt@tilera.com>
13294
13295         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
13296         * config/tilegx/t-tilegx: Likewise.
13297
13298 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13299
13300         PR other/69554
13301         * diagnostic-show-locus.c (struct line_span): New struct.
13302         (layout::get_first_line): Delete.
13303         (layout::get_last_line): Delete.
13304         (layout::get_num_line_spans): New member function.
13305         (layout::get_line_span): Likewise.
13306         (layout::print_heading_for_line_span_index_p): Likewise.
13307         (layout::get_expanded_location): Likewise.
13308         (layout::calculate_line_spans): Likewise.
13309         (layout::m_first_line): Delete.
13310         (layout::m_last_line): Delete.
13311         (layout::m_line_spans): New field.
13312         (layout::layout): Update comment.  Replace m_first_line and
13313         m_last_line with m_line_spans, replacing their initialization
13314         with a call to calculate_line_spans.
13315         (diagnostic_show_locus): When printing source lines and
13316         annotations, rather than looping over a single span
13317         of lines, instead loop over each line_span within
13318         the layout, with an inner loop over the lines within them.
13319         Call the context's start_span callback when changing line spans.
13320         * diagnostic.c (diagnostic_initialize): Initialize start_span.
13321         (diagnostic_build_prefix): Break out the building of the location
13322         part of the string into...
13323         (diagnostic_get_location_text): ...this new function, rewriting
13324         it from nested ternary expressions to a sequence of "if"
13325         statements.
13326         (default_diagnostic_start_span_fn): New function.
13327         * diagnostic.h (diagnostic_start_span_fn): New typedef.
13328         (diagnostic_context::start_span): New field.
13329         (default_diagnostic_start_span_fn): New prototype.
13330
13331 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13332
13333         PR driver/69779
13334         * gcc.c (driver::finalize): Fix cleanup of "specs".
13335
13336 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13337
13338         PR driver/69265
13339         PR driver/69453
13340         * gcc.c (driver::driver): Initialize m_option_suggestions.
13341         (driver::~driver): Clean up m_option_suggestions.
13342         (suggest_option): Convert to...
13343         (driver::suggest_option): ...this, and split out into
13344         driver::build_option_suggestions and find_closest_string.
13345         (driver::build_option_suggestions): New function, from
13346         first half of suggest_option.  Special-case
13347         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
13348         the sanitizer_opts array.  For options of enum types, add the
13349         various enum values to the candidate strings.
13350         (driver::handle_unrecognized_options): Remove "const".
13351         * gcc.h (driver::handle_unrecognized_options): Likewise.
13352         (driver::build_option_suggestions): New decl.
13353         (driver::suggest_option): New decl.
13354         (driver::m_option_suggestions): New field.
13355         * opts-common.c (add_misspelling_candidates): New function.
13356         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
13357         and make non-static.
13358         * opts.h (sanitizer_opts): New array decl.
13359         (add_misspelling_candidates): New function decl.
13360         * spellcheck.c (find_closest_string): New function.
13361         * spellcheck.h (find_closest_string): New function decl.
13362
13363 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13364
13365         PR rtl-optimization/69764
13366         PR rtl-optimization/69771
13367         * optabs.c (expand_binop_directly): For shift_optab_p, force
13368         convert_modes with VOIDmode if xop1 has VOIDmode.
13369
13370 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
13371
13372         PR target/69729
13373         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
13374         to correctly determine instrumentation thunks.
13375
13376 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13377
13378         PR ipa/69241
13379         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
13380         type by reference, force lhs on the call.
13381
13382         PR ipa/68672
13383         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
13384         Compute retval and retbnd early in all cases if split_part_return_p
13385         and return_bb is not EXIT.  Remove all clobber stmts and reset
13386         all debug stmts that refer to SSA_NAMEs defined in split part,
13387         except if it is retval, in that case replace the old retval with the
13388         lhs of the call to the split part.
13389
13390 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13391
13392         revert:
13393         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13394
13395         PR middle-end/66726
13396         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13397         whose result is used in PHI.
13398         (maybe_optimize_range_tests): Likewise.
13399         (final_range_test_p): Likweise.
13400
13401 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13402
13403         PR middle-end/66726
13404         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13405         whose result is used in PHI.
13406         (maybe_optimize_range_tests): Likewise.
13407         (final_range_test_p): Likweise.
13408
13409 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13410
13411         * cgraph.c: Spelling fixes - behaviour -> behavior and
13412         neighbour -> neighbor.
13413         * target.def: Likewise.
13414         * sel-sched.c: Likewise.
13415         * config/mips/mips.c: Likewise.
13416         * config/arc/arc.md: Likewise.
13417         * config/arm/cortex-a57.md: Likewise.
13418         * config/arm/arm.c: Likewise.
13419         * config/arm/neon.md: Likewise.
13420         * config/arm/arm-c.c: Likewise.
13421         * config/vms/vms-c.c: Likewise.
13422         * config/s390/s390.c: Likewise.
13423         * config/i386/znver1.md: Likewise.
13424         * config/i386/i386.c: Likewise.
13425         * config/ia64/hpux-unix2003.h: Likewise.
13426         * config/msp430/msp430.md: Likewise.
13427         * config/rx/rx.c: Likewise.
13428         * config/rx/rx.md: Likewise.
13429         * config/aarch64/aarch64-simd.md: Likewise.
13430         * config/aarch64/aarch64.c: Likewise.
13431         * config/nvptx/nvptx.c: Likewise.
13432         * config/bfin/bfin.c: Likewise.
13433         * config/cris/cris.opt: Likewise.
13434         * config/rs6000/rs6000.c: Likewise.
13435         * target.h: Likewise.
13436         * spellcheck.c: Likewise.
13437         * ira-build.c: Likewise.
13438         * tree-inline.c: Likewise.
13439         * builtins.c: Likewise.
13440         * lra-constraints.c: Likewise.
13441         * explow.c: Likewise.
13442         * hwint.h: Likewise.
13443         * targhooks.c: Likewise.
13444         * tree-vect-data-refs.c: Likewise.
13445         * expr.c: Likewise.
13446         * doc/tm.texi: Likewise.
13447         * doc/extend.texi: Likewise.
13448         * doc/install.texi: Likewise.
13449         * doc/md.texi: Likewise.
13450         * tree-ssa-tail-merge.c: Likewise.
13451         * sched-int.h: Likewise.
13452         * match.pd: Likewise.
13453         * sched-ebb.c: Likewise.
13454         * target.def (omit_struct_return_reg): Likewise.
13455         * gimple-ssa-isolate-paths.c: Likewise.
13456         (find_implicit_erroneous_behaviour): Renamed to...
13457         (find_implicit_erroneous_behavior): ... this.
13458         (find_explicit_erroneous_behaviour): Renamed to...
13459         (find_explicit_erroneous_behavior): ... this.
13460         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
13461
13462 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
13463
13464         PR rtl-optimization/64682
13465         PR rtl-optimization/69567
13466         PR rtl-optimization/69737
13467         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
13468         in I2 as well, just lose it.
13469
13470 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13471
13472         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
13473         New variable.
13474         (aarch64_last_printed_tune_string): Likewise.
13475         (aarch64_declare_function_name): Only output .arch assembler
13476         directive if it will be different from the previously output
13477         directive.  Same for .tune comment but only if -dA is set.
13478         (aarch64_start_file): New function.
13479         (TARGET_ASM_FILE_START): Define.
13480
13481 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
13482
13483         PR plugins/69758
13484         * Makefile.in (PLUGIN_HEADERS): Add params.list.
13485
13486 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
13487
13488         PR target/65313
13489         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
13490         -Wmaybe-uninitialized warning.
13491
13492 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
13493
13494         PR target/69713
13495         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
13496
13497 2016-02-11  Richard Biener  <rguenther@suse.de>
13498
13499         PR rtl-optimization/69291
13500         * ifcvt.c (noce_try_store_flag_constants): Do not allow
13501         subexpressions affected by changing the result.
13502
13503 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
13504
13505         PR target/69148
13506         * lra-constraints.c (curr_insn_transform): Find in/out operands
13507         for secondary memory moves.  Update dups.
13508
13509 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
13510
13511         PR tree-optimization/69652
13512         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
13513         to nested loop, did source re-formatting, skip debug statements,
13514         add check on statement with volatile operand, remove dead scalar
13515         statements.
13516
13517 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
13518             Patrick Palka  <ppalka@gcc.gnu.org>
13519
13520         PR ipa/69241
13521         PR c++/69649
13522         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
13523         calls if the return type is TREE_ADDRESSABLE.
13524         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
13525         * ipa-split.c (split_function): Fix doubled "we" in comment.
13526         Use void return type for the split part even if
13527         !split_point->split_part_set_retval.
13528
13529 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
13530
13531         PR tree-optimization/68021
13532         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
13533         when computing the value of biv cand by itself.
13534
13535 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13536
13537         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
13538         (cortexa57_tunings): Likewise.
13539         (cortexa72_tunings): Likewise.
13540         (arch_macro_fusion_pair_p): Add support for AES fusion.
13541         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
13542         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
13543         Allow virtual registers before reload so early scheduling works.
13544         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
13545         correct latency and pipeline.
13546         (cortex_a57_crypto_complex): Likewise.
13547         (cortex_a57_crypto_xor): Likewise.
13548         (define_bypass): Add AES bypass.
13549
13550 2016-02-10  Richard Biener  <rguenther@suse.de>
13551
13552         PR tree-optimization/69726
13553         * passes.def: Add DCE pass before late uninit.
13554         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
13555         really fixup if-conversions job.
13556
13557 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13558
13559         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
13560         (arm_cortex_a57_tune): Likewise.
13561         (aarch_macro_fusion_pair_p): Add support for AES fusion.
13562         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
13563
13564 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
13565
13566         * timevar.def (TV_PHASE_DBGINFO): Delete.
13567         (TV_PHASE_CHECK_DBGINFO): Likewise.
13568         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
13569
13570 2016-02-10  Richard Biener  <rguenther@suse.de>
13571
13572         PR tree-optimization/69719
13573         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13574         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
13575
13576 2016-02-09  Andrew Pinski  <apinski@cavium.com>
13577
13578         PR tree-opt/69282
13579         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
13580         get_vcond_mask_icode returns false.
13581
13582 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13583
13584         PR target/68404
13585         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
13586         an ADDIS that adds a pointer to a large constant that sets the
13587         upper16 bits with a load operation.
13588
13589 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13590
13591         PR target/68532
13592         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
13593         order.
13594         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
13595         endian.
13596         (vzipq_s16): Likewise.
13597         (vzipq_s32): Likewise.
13598         (vzipq_f32): Likewise.
13599         (vzipq_u8): Likewise.
13600         (vzipq_u16): Likewise.
13601         (vzipq_u32): Likewise.
13602         (vzipq_p8): Likewise.
13603         (vzipq_p16): Likewise.
13604
13605 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13606
13607         PR target/68532
13608         * config/arm/arm.c (neon_endian_lane_map): New function.
13609         (neon_vector_pair_endian_lane_map): New function.
13610         (arm_evpc_neon_vuzp): Allow for big endian lane order.
13611         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
13612         endian.
13613         (vuzpq_s16): Likewise.
13614         (vuzpq_s32): Likewise.
13615         (vuzpq_f32): Likewise.
13616         (vuzpq_u8): Likewise.
13617         (vuzpq_u16): Likewise.
13618         (vuzpq_u32): Likewise.
13619         (vuzpq_p8): Likewise.
13620         (vuzpq_p16): Likewise.
13621
13622 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
13623
13624         PR target/69634
13625         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
13626         debug insns.
13627
13628 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
13629
13630         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
13631         truncate const_int operand 1 to QImode.
13632
13633 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
13634
13635         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
13636         corresponding to an abnormal edge.
13637
13638 2016-02-09  Tom de Vries  <tom@codesourcery.com>
13639
13640         PR tree-optimization/69599
13641         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
13642         function.
13643         (find_func_aliases_for_builtin_call, find_func_clobbers)
13644         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
13645         partition.
13646
13647 2016-02-09  Richard Biener  <rguenther@suse.de>
13648
13649         PR tree-optimization/69715
13650         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
13651         LHS on calls as non-rewritable.
13652
13653 2016-02-09  Tom de Vries  <tom@codesourcery.com>
13654
13655         PR lto/69707
13656         * lto-wrapper.c (append_diag_options): New function.
13657         (compile_offload_image): Call append_diag_options.
13658
13659 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
13660
13661         PR other/69722
13662         * doc/extend.texi (Flag Output Operands): Correct sectioning.
13663         Minor copy-edit to fix verb tenses.
13664
13665 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
13666
13667         PR tree-optimization/69209
13668         * ipa-split.c (split_function): If split part is not
13669         returning retval, retval has gimple type but is not
13670         gimple value, force it into a SSA_NAME first.
13671
13672 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
13673
13674         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
13675         outdated section.
13676
13677 2016-02-08  Jason Merrill  <jason@redhat.com>
13678
13679         PR c++/69631
13680         * convert.c (convert_to_integer_1): Check dofold on truncation
13681         distribution.
13682         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
13683         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
13684         Rename from *_nofold.
13685         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
13686         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
13687
13688 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
13689
13690         PR target/60410
13691         * tree.c (build_common_tree_nodes): Remove short_double argument.
13692         All callers changed.
13693         * tree.h (build_common_tree_nodes): Adjust declaration.
13694         * doc/invoke.texi (-fshort-double): Remove documentation.
13695         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
13696         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
13697         * lto-wrapper.c (merge_and_complain, append_compiler_options)
13698         (append_linker_options): Don't handle OPT_fshort_double.
13699
13700         PR rtl-optimization/68730
13701         * lra-remat.c (insn_to_cand_activation): New static variable.
13702         (lra_remat): Allocate and free it.
13703         (create_cand): New arg activation. Initialize a field in
13704         insn_to_cand_activation if it is nonnull.
13705         (create_cands): Pass the activation insn to create_cand when making
13706         a candidate involving an output reload.  Reorganize code a little.
13707         (do_remat): Keep track of active status of candidates in a separate
13708         bitmap.
13709
13710 2016-02-08  Richard Biener  <rguenther@suse.de>
13711
13712         PR tree-optimization/69719
13713         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13714         Properly use absolute of the difference of the two offsets to
13715         compare or adjust the segment length.
13716
13717 2016-02-08  Richard Biener  <rguenther@suse.de>
13718             Jeff Law  <law@redhat.com>
13719
13720         PR target/68273
13721         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
13722         types for anonymous SSA names.
13723
13724 2016-02-08   Richard Biener  <rguenther@suse.de>
13725
13726         PR rtl-optimization/69274
13727         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
13728
13729 2016-02-08  Jeff Law  <law@redhat.com>
13730
13731         PR tree-optimization/65917
13732         * tree-ssa-dom.c (record_temporary_equivalences): Record both
13733         equivalences from if (x == y) style conditionals.
13734         (loop_depth_of_name): Remove.
13735         (record_equality): Remove loop depth check.
13736         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
13737         (const_and_copies::record_const_or_copy_raw): New member function.
13738         * tree-ssa-scopedtables.c
13739         (const_and_copies::record_const_or_copy_raw): New, factored out of
13740         (const_and_copies::record_const_or_copy): Call new member function.
13741
13742 2016-02-05  Jeff Law  <law@redhat.com>
13743
13744         PR tree-optimization/68541
13745         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
13746         (count_stmts_in_block): New function.
13747         (poor_ifcvt_candidate_code): Likewise.
13748         (is_feasible_trace): Add some heuristics to determine when path
13749         splitting is profitable.
13750         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
13751         is a diamond with a single exit.
13752
13753 2016-02-05  Martin Sebor  <msebor@redhat.com>
13754
13755         PR c++/69662
13756         * doc/invoke.texi: Update -Wplacement-new to take an optional
13757         argument.
13758
13759 2016-02-06  Richard Henderson  <rth@redhat.com>
13760
13761         PR c/69643
13762         * tree.c (tree_nop_conversion_p): Do not strip casts into or
13763         out of non-standard address spaces.
13764
13765 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
13766
13767         PR rtl-optimization/69691
13768         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
13769
13770 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
13771
13772         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
13773         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
13774         (*ieee128_mfvsrd_64bit): Likewise.
13775         (*ieee128_mfvsrd_32bit): Likewise.
13776
13777 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
13778
13779         PR target/69369
13780         Revert r232560:
13781         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
13782
13783         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
13784         instrumented_version.
13785
13786 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
13787
13788         * doc/invoke.texi (Optimize Options): In table of --param options
13789         rename second occurrence of tracer-min-branch-ratio to
13790         tracer-min-branch-probability, rename
13791         tracer-min-branch-ratio-feedback to
13792         tracer-min-branch-probability-feedback and clarify description,
13793         rename sched-spec-state-edge-prob-cutoff to
13794         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
13795         to selsched-insns-to-rename, rename lto-minpartition to
13796         lto-min-partition, delete reorder-blocks-duplicate and
13797         reorder-blocks-duplicate-feedback.
13798
13799 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13800
13801         * config/s390/s390.c (s390_register_info_set_ranges): Remove
13802         superfluous loops.
13803
13804 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13805
13806         * doc/extend.texi: S/390: Correct some typos.
13807
13808 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13809
13810         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
13811
13812 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13813
13814         PR target/69625
13815         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
13816         (s390_register_info_gprtofpr): Use new macros above.
13817         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
13818         its name.
13819         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
13820         its name.  Adjust restore and save gpr ranges.
13821         (s390_register_info_set_ranges): New function.
13822         (s390_register_info): Use new macros above.  Call
13823         s390_register_info_set_ranges.
13824         (s390_optimize_register_info): Likewise.
13825         (s390_hard_regno_rename_ok): Use new macros.
13826         (s390_hard_regno_scratch_ok): Likewise.
13827         (s390_emit_epilogue): Likewise.
13828         (s390_can_use_return_insn): Likewise.
13829         (s390_optimize_prologue): Likewise.
13830         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
13831
13832 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
13833
13834         PR bootstrap/69677
13835         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
13836         alignment fixes.
13837         (ix86_option_override_internal): Disable TARGET_STV even for
13838         -m{incoming,preferred}-stack-boundary=3.
13839
13840 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13841
13842         * config.gcc: Mark deprecated rtems targets as obsolete.
13843
13844 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
13845
13846         PR rtl-optimization/64682
13847         PR rtl-optimization/69567
13848         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
13849         before I2 only if the register is both used and set in I2.
13850
13851 2016-02-04  DJ Delorie  <dj@redhat.com>
13852
13853         * config/msp430/msp430.c (msp430_start_function): Add function type.
13854
13855 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13856
13857         PR fortran/69368
13858         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
13859
13860 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
13861
13862         PR rtl-optimization/69577
13863         Revert:
13864         2015-10-29  Richard Henderson  <rth@redhat.com>
13865
13866         PR target/68124
13867         PR rtl-opt/67609
13868         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
13869         sse check to the exact conditions of PR 67609.
13870
13871 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
13872
13873         PR target/69667
13874         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
13875         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
13876         not allowed into the traditional Altivec registers.
13877         (movtd_64bit_nodm): Likewise.
13878         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
13879
13880 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
13881
13882         * config/aarch64/cortex-a57-fma-steering.c
13883         (aarch64_register_fma_steering): Remove "static" from arguments
13884         to register_pass.
13885
13886 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
13887
13888         PR target/69619
13889         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
13890         twice when complex.
13891
13892 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
13893
13894         * doc/invoke.texi: Delete -mno-fma4.
13895
13896 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
13897
13898         PR rtl-optimization/69577
13899         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
13900         (find_subregs_of_mode): Update accordingly.  Iterate over partial
13901         definitions.
13902
13903 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
13904
13905         * config/arm/arm-protos.h (neon_reinterpret): Remove.
13906         * config/arm/arm.c (neon_reinterpret): Remove.
13907         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
13908         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
13909         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
13910         vreinterpretti): Remove.
13911         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
13912         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13913         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
13914         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
13915         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
13916         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
13917         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
13918         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
13919         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
13920         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
13921         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
13922         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
13923         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
13924         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
13925         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
13926         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
13927         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
13928         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
13929         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
13930         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
13931         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
13932         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
13933         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
13934         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
13935         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
13936         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
13937         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
13938         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
13939         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
13940         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
13941         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
13942         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
13943         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
13944         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
13945         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
13946         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
13947         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
13948         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
13949         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
13950         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
13951         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
13952         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
13953         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
13954         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
13955         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
13956         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
13957         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
13958         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
13959         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
13960         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
13961         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
13962         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
13963         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
13964         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
13965         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
13966         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
13967         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
13968         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
13969         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
13970         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
13971         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
13972         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
13973         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
13974         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
13975         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
13976         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
13977         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
13978         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
13979         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
13980         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
13981         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
13982         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
13983         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
13984         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
13985         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
13986         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
13987         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
13988         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
13989         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
13990         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
13991         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
13992         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
13993         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
13994         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
13995         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
13996         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
13997         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
13998         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
13999         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
14000         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
14001         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
14002         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
14003         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
14004         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
14005         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
14006         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
14007         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
14008         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
14009         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
14010         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
14011         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
14012         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
14013         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
14014
14015 2016-02-04  Martin Liska  <mliska@suse.cz>
14016
14017         PR sanitizer/69276
14018         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
14019         that are gimple_store_p.
14020         (maybe_instrument_call): Likewise.
14021
14022 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
14023
14024         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
14025         register scaling out of memory reference and comment why.
14026
14027 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14028
14029         PR target/65932
14030         PR target/67714
14031         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
14032         folding the source of a SET.
14033
14034 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14035
14036         PR target/65932
14037         PR target/67714
14038         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
14039         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
14040
14041 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
14042
14043         PR target/65932
14044         PR target/67714
14045         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
14046         HImode.
14047
14048 2016-02-04  Christian Bruel  <christian.bruel@st.com>
14049
14050         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
14051         * config/arm/arm.c (arm_set_current_function): Likewise.
14052
14053 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14054             Ilya Enkovich  <enkovich.gnu@gmail.com>
14055             H.J. Lu  <hongjiu.lu@intel.com>
14056
14057         PR target/69454
14058         * config/i386/i386.c (convert_scalars_to_vector): Remove
14059         stack alignment fixes.
14060         (ix86_option_override_internal): Disable TARGET_STV if stack
14061         might not be aligned enough.
14062         (ix86_minimum_alignment): Assert that TARGET_STV is false.
14063
14064 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
14065
14066         * config/i386/x86-tune.def: Disable default prefetching
14067         for -march=znver1.
14068
14069 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
14070             Vladimir Makarov  <vmakarov@redhat.com>
14071
14072         PR target/69461
14073         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
14074         in validating fused toc addresses.
14075
14076 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
14077
14078         PR c/69627
14079         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
14080         range->m_caret fields if range->m_show_caret_p is false.
14081
14082         PR target/69644
14083         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
14084         Force oldval into register if it does not satisfy reg_or_short_operand
14085         predicate.  Fix up formatting.
14086
14087 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14088             Alexandre Oliva  <aoliva@redhat.com>
14089
14090         PR target/69461
14091         * lra-constraints.c (simplify_operand_subreg): Check additionally
14092         address validity after potential reloading.
14093         (process_address_1): Check insns validity.  In case of failure do
14094         nothing.
14095
14096 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
14097
14098         PR target/69118
14099         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
14100         Fix target.
14101
14102 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
14103
14104         * wide-int.cc (canonize_uhwi): New function.
14105         (wi::divmod_internal): Use it.
14106
14107 2016-02-02  James Norris  <jnorris@codesourcery.com
14108
14109         * gimplify.c (omp_notice_variable): Add usage check.
14110
14111 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
14112
14113         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
14114         like LE, GE, LT, GT when emitting relational operator.
14115
14116 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14117
14118         * ira-costs.c (find_costs_and_classes): Add extra argument.
14119         * target.def (ira_change_pseudo_allocno_class): Add parameter.
14120         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
14121         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
14122         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
14123         Add best_class parameter, and return it if not ALL_REGS.
14124         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
14125         Add parameter.
14126         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
14127         Update target hook.
14128
14129 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14130
14131         * config/aarch64/aarch64.c
14132         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
14133         (aarch64_ira_change_pseudo_allocno_class): New function.
14134
14135 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
14136
14137         PR target/67032
14138         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
14139
14140 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14141
14142         * config/avr/avr.c (avr_option_override): Set
14143         PARAM_ALLOW_STORE_DATA_RACES to 1.
14144
14145 2016-02-02  Richard Biener  <rguenther@suse.de>
14146
14147         PR tree-optimization/69595
14148         * match.pd: Add range test simplifications to true/false.
14149
14150 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
14151
14152         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
14153         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
14154         instead.
14155
14156 2016-02-02  Richard Biener  <rguenther@suse.de>
14157
14158         PR tree-optimization/69606
14159         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
14160         info on the result before moving a stmt.
14161
14162 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
14163
14164         PR middle-end/68542
14165         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
14166         branch with vector comparison.
14167         * config/i386/sse.md (VI48_AVX): New mode iterator.
14168         (define_expand "cbranch<mode>4): Add support for conditional branch
14169         with vector comparison.
14170         * tree-vect-loop.c (optimize_mask_stores): New function.
14171         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
14172         has_mask_store field of vect_info.
14173         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
14174         vectorized loops having masked stores after vec_info destroy.
14175         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
14176         correspondent macros.
14177         (optimize_mask_stores): Add prototype.
14178
14179 2016-02-02  Alan Modra  <amodra@gmail.com>
14180
14181         PR target/69548
14182         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
14183         allow subregs.
14184
14185 2016-02-02  Alan Modra  <amodra@gmail.com>
14186
14187         PR target/68662
14188         * config/rs6000/rs6000.c (need_toc_init): New var, set it
14189         whenever toc_label_name used.
14190         (rs6000_file_start): Don't set up toc section here,
14191         (rs6000_output_function_epilogue): do so here instead,
14192         (rs6000_xcoff_file_start): and here.
14193         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
14194         (load_toc_aix_di): Likewise.
14195
14196 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14197
14198         PR rtl-optimization/69592
14199         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
14200         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
14201         (num_sign_bit_copies_binary_arith_p): New inline function.
14202         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
14203
14204 2016-02-01  Jeff Law  <law@redhat.com>
14205
14206         PR tree-optimization/69580
14207         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
14208         * tree-ssa-threadbackward.c
14209         (fsm_find_control_statement_thread_paths): Do not try to walk
14210         through large PHI nodes.
14211
14212 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14213
14214         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
14215         when count is incremented above limit, don't analyze further
14216         insns afterwards.
14217
14218         * omp-low.c (oacc_parse_default_dims): Avoid
14219         -Wsign-compare warning, make sure value fits into int
14220         rather than just unsigned int.
14221
14222 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
14223
14224         PR tree-optimization/67921
14225         * fold-const.c (split_tree): New parameters.  Convert pointer
14226         type variable part to proper type before negating.
14227         (fold_binary_loc): Pass new arguments to split_tree.
14228
14229 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
14230
14231         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
14232         (nvptx_goacc_validate_dims): Extend to handle global defaults.
14233         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
14234         * doc/tm.texti: Rebuilt.
14235         * doc/invoke.texi (fopenacc-dim): Document.
14236         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
14237         (append_compiler_options): Likewise.
14238         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
14239         (oacc_parse_default_dims): New.
14240         (oacc_validate_dims): Add USED arg.  Select non-unity default when
14241         possible.
14242         (oacc_loop_fixed_partitions): Return mask of used partitions.
14243         (oacc_loop_auto_partitions): Emit dump info.
14244         (oacc_loop_partition): Return mask of used partitions.
14245         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
14246         loop partitioning and validation calls.
14247
14248 2016-02-01  Richard Biener  <rguenther@suse.de>
14249
14250         PR middle-end/69556
14251         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
14252
14253 2016-02-01  Richard Biener  <rguenther@suse.de>
14254
14255         PR tree-optimization/69574
14256         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
14257         of asserting return chrec_dont_know.
14258
14259 2016-02-01  Martin Liska  <mliska@suse.cz>
14260
14261         * mem-stats-traits.h: Add copyright header.
14262         * mem-stats.h: Likewise.
14263
14264 2016-02-01  Richard Biener  <rguenther@suse.de>
14265
14266         PR tree-optimization/69579
14267         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
14268         Do not propagate through abnormal PHI results.
14269
14270 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
14271
14272         * postreload.c (reload_cse_simplify): Remove dead code.
14273
14274 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14275
14276         PR rtl-optimization/69570
14277         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
14278         if there is more than one set, not if there is a single set.
14279
14280 2016-02-01  Richard Henderson  <rth@redhat.com>
14281
14282         PR rtl-opt/69535
14283         * combine.c (make_compound_operation): When looking through a
14284         subreg, make sure to re-extend to the width of the outer mode.
14285
14286 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
14287
14288         PR tree-optimization/69546
14289         * wide-int.cc (wi::divmod_internal): For unsigned division
14290         where both operands fit into uhwi, if o1 is 1 and o0 has
14291         msb set, if divident_prec is larger than bits per hwi,
14292         clear another quotient word and return 2 instead of 1.
14293         Similarly for remainder with msb in HWI set, if dividend_prec
14294         is larger than bits per hwi.
14295
14296 2016-01-29  Martin Jambor  <mjambor@suse.cz>
14297
14298         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
14299         Use short lowercase names.
14300         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
14301         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
14302         acq_rel one.  Protect warning agains segfaults if
14303         get_memory_order_name returns NULL.
14304         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
14305         with release semantics.  Do not warn if get_memory_order already did.
14306         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
14307         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
14308         if get_memory_order already did.
14309
14310 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
14311
14312         * doc/install.texi: Document that isl-0.16 is supported.
14313
14314 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14315
14316         PR target/69299
14317         * config/i386/constraints.md (Bm): Describe as special memory
14318         constraint.
14319         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
14320         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14321         * genpreds.c (struct constraint_data): Add is_special_memory.
14322         (have_special_memory_constraints, special_memory_start): New
14323         static vars.
14324         (special_memory_end): Ditto.
14325         (add_constraint): Add new arg is_special_memory.  Add code to
14326         process its true value.  Update have_special_memory_constraints.
14327         (process_define_constraint): Pass the new arg.
14328         (process_define_register_constraint): Ditto.
14329         (choose_enum_order): Process special memory.
14330         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
14331         function insn_extra_special_memory_constraint.
14332         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14333         * gensupport.c (process_rtx): Process
14334         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14335         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
14336         * ira-lives.c (single_reg_class): Use
14337         insn_extra_special_memory_constraint.
14338         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
14339         * lra-constraints.c (process_alt_operands): Ditto.
14340         (curr_insn_transform): Use insn_extra_special_memory_constraint.
14341         * recog.c (asm_operand_ok, preprocess_constraints): Process
14342         CT_SPECIAL_MEMORY.
14343         * reload.c (find_reloads): Ditto.
14344         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
14345         * stmt.c (parse_input_constraint): Use
14346         insn_extra_special_memory_constraint.
14347
14348 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14349
14350         PR target/69530
14351         * lra-splill.c (lra_final_code_change): Revert r229087 by
14352         removing all sub-registers.
14353
14354 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
14355
14356         PR target/65604
14357         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
14358
14359 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
14360
14361         PR target/69551
14362         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
14363         SSE1, copy target into the temporary reg first before recursing
14364         on it.
14365
14366 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14367
14368         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
14369         with vm.
14370
14371 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14372
14373         * ginclude/stdarg.h: Test __cplusplus instead of
14374         __GXX_EXPERIMENTAL_CXX0X__.
14375
14376 2016-01-29  Richard Biener  <rguenther@suse.de>
14377
14378         PR tree-optimization/69547
14379         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
14380         Do not mark clobbers necessary.
14381         (mark_all_reaching_defs_necessary_1): Likewise.
14382
14383 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14384
14385         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
14386         declaration name with %qs and print it in both error messages.
14387         Also fix indentation.
14388
14389 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14390
14391         PR other/69006
14392         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
14393         trailing blank line from error message.
14394
14395 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14396
14397         PR c++/69462
14398         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
14399         for C++-11.
14400
14401 2016-01-29  Richard Biener  <rguenther@suse.de>
14402
14403         PR middle-end/69537
14404         * match.pd: Allow all integral types when simplifying a
14405         widening or sign-changing conversion.
14406
14407 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14408
14409         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
14410         back to setting codegen_error to fail codegen.
14411
14412 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
14413
14414         PR target/69459
14415         * config/i386/constraints.md (C): Only accept constant zero operand.
14416         (BC): New constraint.
14417         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
14418         instead of C constraint.
14419         * doc/md.texi (Machine Constraints): Update description
14420         of C constraint.
14421
14422 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
14423
14424         PR target/68400
14425         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
14426
14427 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
14428
14429         PR middle-end/69542
14430         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
14431         non-debug insns.
14432
14433 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14434
14435         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
14436         branches if using guessed profile.
14437
14438 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
14439
14440         * graphite-optimize-isl.c (optimize_isl): Fix dump.
14441
14442 2016-01-28  Richard Henderson  <rth@redhat.com>
14443
14444         PR target/69305
14445         * config/aarch64/aarch64-modes.def (CC_Cmode): New
14446         * config/aarch64/aarch64-protos.h: Update.
14447         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
14448         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
14449         (aarch64_get_condition_code_1): Handle CC_Cmode.
14450         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
14451         (*add<mode>3_compareC_cconly_imm): New.
14452         (*add<mode>3_compareC_cconly): New.
14453         (*add<mode>3_compareC_imm): New.
14454         (add<mode>3_compareC): New.
14455         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
14456         to be first.  Use aarch64_carry_operation.
14457         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
14458         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
14459         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
14460         (subti3): Use subdi3_compare1.
14461         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
14462         (sub<mode>3_compare1): New.
14463         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
14464         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
14465         (*subsi3_carryin_uxtw): Likewise.
14466         (*ngc<mode>, *ngcsi_uxtw): Likewise.
14467         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
14468         * config/aarch64/iterators.md (DWI): New.
14469         * config/aarch64/predicates.md (aarch64_carry_operation): New.
14470         (aarch64_borrow_operation): New.
14471
14472 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14473
14474         * graphite-optimize-isl.c (optimize_isl): Print a different debug
14475         message when isl does not return a valid schedule.
14476
14477 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14478
14479         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
14480         Remove comments from class declarations: they are already in the code
14481         close by the defs.
14482
14483 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14484
14485         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
14486         codegen_error_p.
14487         (ternary_op_to_tree): Same.
14488         (unary_op_to_tree): Same.
14489         (nary_op_to_tree): Same.
14490         (gcc_expression_from_isl_expr_op): Same.
14491         (gcc_expression_from_isl_expression): Same.
14492         (graphite_create_new_loop): Same.
14493         (graphite_create_new_loop_guard): Same.
14494         (build_iv_mapping): Same.
14495         (graphite_create_new_guard): Same.
14496         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
14497         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
14498
14499 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14500
14501         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
14502         instead of setting codegen_error to fail codegen.
14503
14504 2016-01-28  Jason Merrill  <jason@redhat.com>
14505
14506         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
14507
14508 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14509
14510         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14511         Remove CONST_INT_P check in CCMP cost calculation.
14512
14513 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14514
14515         * config/aarch64/aarch64.c (generic_vector_cost):
14516         Set vec_permute_cost.
14517         (cortexa57_vector_cost): Likewise.
14518         (exynosm1_vector_cost): Likewise.
14519         (xgene1_vector_cost): Likewise.
14520         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
14521         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
14522         Add vec_permute_cost entry.
14523
14524 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14525
14526         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
14527         immediate as %1.
14528         (add<mode>3_compare0): Likewise.
14529         (addsi3_compare0_uxtw): Likewise.
14530         (add<mode>3nr_compare0): Likewise.
14531         (compare_neg<mode>): Likewise.
14532         (<optab><mode>3): Likewise.
14533
14534 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
14535
14536         * tree-vect-stmts.c (vectorizable_comparison): Add
14537         NULL check for vectype.
14538
14539 2016-01-28  Richard Biener  <rguenther@suse.de>
14540
14541         PR tree-optimization/69466
14542         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
14543         Account for PHIs we couldn't duplicate.
14544
14545 2016-01-28  Martin Liska  <mliska@suse.cz>
14546
14547         PR pch/68758
14548         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
14549         instead of ENABLE_VALGRIND_CHECKING.
14550
14551 2016-01-27  Richard Henderson  <rth@redhat.com>
14552
14553         PR rtl-opt/69447
14554         * lra-remat.c (subreg_regs): New.
14555         (dump_candidates_and_remat_bb_data): Dump it.
14556         (operand_to_remat): Reject if operand in subreg_regs.
14557         (set_bb_regs): Collect subreg_regs.
14558         (lra_remat): Init and free subreg_regs.  Compute
14559         calculate_local_reg_remat_bb_data before create_cands.
14560
14561 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14562
14563         PR target/68986
14564         * config/i386/i386.c (ix86_update_stack_boundary): Don't
14565         change stack_alignment_needed for __tls_get_addr call.
14566
14567 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
14568
14569         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
14570
14571 2016-01-27  Jeff Law  <law@redhat.com>
14572
14573         PR tree-optimization/68398
14574         PR tree-optimization/69196
14575         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
14576         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
14577         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14578         Only count PHIs in the last block in the path.  The others will
14579         const/copy propagate away.  Add heuristic to allow more irreducible
14580         subloops to be created when it is likely profitable to do so.
14581
14582         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14583         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
14584         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
14585
14586 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
14587
14588         PR lto/69254
14589         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
14590         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
14591         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
14592         * tree-streamer-in.c: Include asan.h.
14593         (streamer_get_builtin_tree): For builtins in sanitizer
14594         range call initialize_sanitizer_builtins and retry.
14595
14596 2016-01-27  Ian Lance Taylor  <iant@google.com>
14597
14598         * common.opt (fkeep-gc-roots-live): New undocumented option.
14599         * tree-ssa-loop-ivopts.c (add_candidate_1): If
14600         -fkeep-gc-roots-live, skip pointers.
14601         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
14602         NULL.
14603
14604 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
14605
14606         PR target/69512
14607         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
14608         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
14609
14610 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
14611
14612         PR target/68380
14613         * configure.ac: NetBSD provides SSP in its C library.
14614         * configure: Updated.
14615
14616 2016-01-27  Richard Biener  <rguenther@suse.de>
14617
14618         PR tree-optimization/69166
14619         * tree-vect-loop.c (vect_is_simple_reduction): Always check
14620         reduction code for commutativity / associativity.
14621
14622 2016-01-27  Martin Jambor  <mjambor@suse.cz>
14623
14624         PR tree-optimization/69355
14625         * tree-sra.c (analyze_access_subtree): Correct hole detection when
14626         total_scalarization fails.
14627
14628 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
14629
14630         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
14631         power9.
14632
14633 2016-01-27  Christian Bruel  <christian.bruel@st.com>
14634
14635         PR target/69245
14636         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
14637         Move arm_reset_previous_fndecl and set_target_option_current_node in
14638         the conditional part.  Call save_restore_target_globals.
14639         * config/arm/arm.c (arm_set_current_function):
14640         Refactor to better support #pragma target and attribute mix.
14641         Call save_restore_target_globals.
14642         * config/arm/arm-protos.h (save_restore_target_globals): New function.
14643
14644 2016-01-27  Martin Liska  <mliska@suse.cz>
14645
14646         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
14647         reference for an HSA kernel and its host function.
14648
14649 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
14650
14651         PR tree-optimization/69399
14652         * wide-int.h (wi::lrshift): For larger precisions, only
14653         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
14654
14655 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
14656
14657         * config/arc/predicates.md (proper_comparison_operator): Reject
14658         constant-constant comparison.
14659
14660 2016-01-26  Tom de Vries  <tom@codesourcery.com>
14661
14662         PR tree-optimization/69110
14663         * tree-data-ref.c (initialize_data_dependence_relation): Handle
14664         DR_NUM_DIMENSIONS == 0.
14665
14666 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14667             Sebastian Pop  <s.pop@samsung.com>
14668
14669         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
14670         isl_ast_op_cond and isl_ast_op_select.
14671         (gcc_expression_from_isl_expr_op): Same.
14672
14673 2016-01-26  Jason Merrill  <jason@redhat.com>
14674
14675         PR c++/68782
14676         * tree.c (recompute_constructor_flags): Split out from
14677         build_constructor.
14678         (verify_constructor_flags): New.
14679         * tree.h: Declare them.
14680
14681 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
14682
14683         PR rtl-optimization/69217
14684         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
14685         are no TYPE_FIELDS set for the record type.
14686
14687 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14688
14689         PR target/68662
14690         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
14691         toc_label_name unconditionally.
14692         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
14693         SYMBOL_REF string.  Use toc_label_name instead of constructing
14694         LCTOC1.
14695         (rs6000_elf_declare_function_name): Use toc_label_name instead of
14696         constructing LCTOC1.
14697
14698 2016-01-26  Martin Sebor  <msebor@redhat.com>
14699
14700         PR other/69477
14701         * doc/extend.texi (Common Type Attributes): Move text that talks about
14702         attribute packed from attribute aligned to the section discussing
14703         the former attribute for clarity.
14704
14705 2016-01-26  Richard Henderson  <rth@redhat.com>
14706
14707         PR middle-end/60908
14708         * trans-mem.c (tm_region_init): Mark entry block as visited.
14709
14710 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
14711
14712         PR other/69006
14713         * diagnostic-show-locus.c (layout::print_source_line): Replace
14714         call to pp_newline with call to layout::print_newline.
14715         (layout::print_annotation_line): Likewise.
14716         (layout::move_to_column): Likewise.
14717         (layout::print_any_fixits): After printing any fixits, print a
14718         trailing newline, if necessary.
14719         (layout::print_newline): New method, resetting any colorization
14720         before a newline.
14721         (diagnostic_show_locus): Move the pp_newline to before the
14722         early bailout.  Remove dummy block enclosing the layout instance.
14723         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
14724         of pp_newline_and_flush with pp_flush.
14725         (diagnostic_append_note): Delete use of pp_newline.
14726         (diagnostic_append_note_at_rich_loc): Delete.
14727         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
14728         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
14729         when newline characters are added to the buffer.
14730
14731 2016-01-26  Michael Matz  <matz@suse.de>
14732
14733         * configure.ac (ac_cv_std_swap_in_utility): New test.
14734         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
14735         * configure: Regenerate.
14736         * config.in: Regenerate.
14737
14738 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
14739
14740         * config/arc/arc.md (cstoresi4): Force operand into register.
14741         (arcset<code>): Fix predicate.
14742         (arcsetltu): Likewise.
14743         (arcsetgeu): Likewise.
14744         (arcsethi): Likewise.
14745         (arcsetls): Likewise.
14746
14747 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14748
14749         PR tree-optimization/69483
14750         * gimple-fold.c (canonicalize_constructor_val): Return NULL
14751         if base has error_mark_node type.
14752
14753 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
14754
14755         PR target/68620
14756         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
14757         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
14758         New helper macros.
14759         (vget_lane_f16): Handle big-endian.
14760         (vgetq_lane_f16): Likewise.
14761         (vset_lane_f16): Likewise.
14762         (vsetq_lane_f16): Likewise.
14763         * config/arm/iterators.md (VQXMOV): Add V8HF.
14764         (VDQ): Add V4HF and V8HF.
14765         (V_reg): Handle V4HF and V8HF.
14766         (Is_float_mode): Likewise.
14767         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
14768         neon_vdup_nv8hf): New patterns.
14769         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
14770         Use VD_LANE iterator.
14771         (neon_vld1_dup<mode>): Use VQ2 iterator.
14772
14773 2016-01-26  Nathan Sidwell  <nathan@acm.org>
14774
14775         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
14776         (set_oacc_fn_attrib): Add IS_KERNEL arg.
14777         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
14778         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
14779         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
14780         (oacc_validate_dims): Add LEVEL arg, don't return level.
14781         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
14782         oacc_validate_dims.
14783         (execute_oacc_device_lower): Adjust, add more dump output.
14784         * tree-ssa-loop.c (gate_oacc_kernels): Use
14785         oacc_fn_attrib_kernels_p.
14786         * tree-parloops.c (create_parallel_loop): Adjust
14787         set_oacc_fn_attrib call.
14788
14789 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14790
14791         PR lto/69254
14792         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
14793         (append_compiler_options): Handle -fcilkplus.
14794         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
14795
14796 2016-01-26  Nick Clifton  <nickc@redhat.com>
14797
14798         PR target/66655
14799         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
14800         been marked as DECL_ONE_ONLY but we do not the means to make it
14801         so, then do not allow it to bind locally.
14802
14803 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14804
14805         PR lto/69254
14806         * opts.h (parse_sanitizer_options): New prototype.
14807         * opts.c (sanitizer_opts): New array.
14808         (parse_sanitizer_options): New function.
14809         (common_handle_option): Use parse_sanitizer_options.
14810
14811 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
14812
14813         PR target/68986
14814         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
14815         alignment adjustment to ...
14816         (ix86_update_stack_boundary): Here.  Don't over-align stack for
14817         __tls_get_addr.
14818         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
14819         if __tls_get_addr is called.
14820
14821 2016-01-26  Christian Bruel  <christian.bruel@st.com>
14822
14823         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
14824
14825 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14826
14827         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
14828
14829 2016-01-26  Richard Biener  <rguenther@suse.de>
14830
14831         PR middle-end/69467
14832         * match.pd: Guard X * CST CMP 0 pattern with single_use.
14833
14834 2016-01-26  Richard Biener  <rguenther@suse.de>
14835
14836         PR tree-optimization/69452
14837         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
14838         (move_computations_dom_walker::before_dom_children): Rename
14839         to ...
14840         (move_computations_worker): This.
14841         (move_computations): Perform an RPO rather than a DOM walk.
14842
14843 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14844
14845         PR target/69442
14846         * combine.c (combine_instructions): For REG_EQUAL note with
14847         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
14848         to the underlying register.
14849         * doc/rtl.texi (REG_EQUAL): Document the behavior of
14850         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
14851
14852 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
14853
14854         PR target/67896
14855         * config/aarch64/aarch64-builtins.c
14856         (aarch64_init_simd_builtin_types): Do not set structural
14857         equality to __Poly{8,16,64,128}_t types.
14858
14859 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
14860
14861         PR tree-optimization/69400
14862         * wide-int.cc (wi_pack): Take the precision as argument and
14863         perform canonicalization here rather than in the callers.
14864         Use the main loop to handle all full-width HWIs.  Add a
14865         zero HWI if in_len isn't a full result.
14866         (wi::divmod_internal): Update accordingly.
14867         (wi::mul_internal): Likewise.  Simplify.
14868
14869 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14870             Sebastian Pop  <s.pop@samsung.com>
14871
14872         * graphite-poly.c (apply_poly_transforms): Simplify.
14873         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
14874         (print_isl_map): Same.
14875         (print_isl_union_map): Same.
14876         (print_isl_schedule): New.
14877         (debug_isl_schedule): New.
14878         * graphite-dependences.c (scop_get_reads): Do not call
14879         isl_union_map_add_map that is undocumented isl functionality.
14880         (scop_get_must_writes): Same.
14881         (scop_get_may_writes): Same.
14882         (scop_get_original_schedule): Remove.
14883         (scop_get_dependences): Do not call isl_union_map_compute_flow that
14884         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
14885         (compute_deps): Remove.
14886         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
14887         (debug_schedule_ast): New.
14888         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
14889         set_separate_option.
14890         (graphite_regenerate_ast_isl): Add dump.
14891         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
14892         from scop->transformed_schedule.
14893         (graphite_regenerate_ast_isl): Add more dump.
14894         * graphite-optimize-isl.c (optimize_isl): Set
14895         scop->transformed_schedule.  Check whether schedules are equal.
14896         (apply_poly_transforms): Move here.
14897         * graphite-poly.c (apply_poly_transforms): ... from here.
14898         (free_poly_bb): Static.
14899         (free_scop): Static.
14900         (pbb_number_of_iterations_at_time): Remove.
14901         (print_isl_ast): New.
14902         (debug_isl_ast): New.
14903         (debug_scop_pbb): New.
14904         * graphite-scop-detection.c (print_edge): Move.
14905         (print_sese): Move.
14906         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
14907         (build_scop_scattering): Remove.
14908         (create_pw_aff_from_tree): Assert instead of bailing out.
14909         (add_condition_to_pbb): Remove unused code, do not fail.
14910         (add_conditions_to_domain): Same.
14911         (add_conditions_to_constraints): Remove.
14912         (build_scop_context): New.
14913         (add_iter_domain_dimension): New.
14914         (build_iteration_domains): Initialize pbb->iterators.
14915         Call add_conditions_to_domain.
14916         (nested_in): New.
14917         (loop_at): New.
14918         (index_outermost_in_loop): New.
14919         (index_pbb_in_loop): New.
14920         (outermost_pbb_in): New.
14921         (add_in_sequence): New.
14922         (add_outer_projection): New.
14923         (outer_projection_mupa): New.
14924         (add_loop_schedule): New.
14925         (build_schedule_pbb): New.
14926         (build_schedule_loop): New.
14927         (embed_in_surrounding_loops): New.
14928         (build_schedule_loop_nest): New.
14929         (build_original_schedule): New.
14930         (build_poly_scop): Call build_original_schedule.
14931         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
14932         (free_poly_dr): Remove.
14933         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
14934         (free_poly_bb): Remove.
14935         (debug_loop_vec): Remove.
14936         (print_isl_ast): Declare.
14937         (debug_isl_ast): Declare.
14938         (scop_do_interchange): Remove.
14939         (scop_do_strip_mine): Remove.
14940         (scop_do_block): Remove.
14941         (flatten_all_loops): Remove.
14942         (optimize_isl): Remove.
14943         (pbb_number_of_iterations_at_time): Remove.
14944         (debug_scop_pbb): Declare.
14945         (print_schedule_ast): Declare.
14946         (debug_schedule_ast): Declare.
14947         (struct scop): Remove schedule.  Add original_schedule,
14948         transformed_schedule.
14949         (free_gimple_poly_bb): Remove.
14950         (print_generated_program): Remove.
14951         (debug_generated_program): Remove.
14952         (unify_scattering_dimensions): Remove.
14953         * sese.c (print_edge): ... here.
14954         (print_sese): ... here.
14955         (debug_edge): ... here.
14956         (debug_sese): ... here.
14957         * sese.h (print_edge): Declare.
14958         (print_sese): Declare.
14959         (dump_edge): Declare.
14960         (dump_sese): Declare.
14961
14962 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14963             Sebastian Pop  <s.pop@samsung.com>
14964
14965         * Makefile.in: Set ISLVER in site.exp.
14966
14967 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
14968
14969         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
14970         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
14971         through DECL_VALUE_EXPR for expansion.
14972
14973 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14974
14975         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14976         the frame info after reload completed.
14977
14978 2016-01-25  Jeff Law  <law@redhat.com>
14979
14980         PR tree-optimization/69196
14981         PR tree-optimization/68398
14982         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
14983         tree-ssa-threadupdate.c.
14984         (determine_bb_domination_status): Prototype
14985         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
14986         (determine_bb_domination_status): No longer static.
14987         (valid_jump_thread_path): Remove code to detect characteristics
14988         of the jump thread path not associated with correctness.
14989         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
14990         Correct test for thread path length.  Count PHIs for real operands as
14991         statements that need to be copied.  Do not count ASSERT_EXPRs.
14992         Look at all the blocks in the thread path.  Compute and selectively
14993         filter thread paths based on threading through the latch, threading
14994         a multiway branch or crossing a multiway branch.
14995
14996 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14997
14998         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
14999         decl with __attribute__ ((unused)) annotation.
15000
15001 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
15002
15003         PR target/69421
15004         * tree-vect-stmts.c (vectorizable_condition): Check vectype
15005         of operands is compatible with a statement vectype.
15006
15007 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15008
15009         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
15010         improve wording for mixed storage order support.
15011
15012 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
15013
15014         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
15015         (vcvt_u64_f64): Likewise.
15016         (vcvta_s64_f64): Likewise.
15017         (vcvta_u64_f64): Likewise.
15018         (vcvtm_s64_f64): Likewise.
15019         (vcvtm_u64_f64): Likewise.
15020         (vcvtn_s64_f64): Likewise.
15021         (vcvtn_u64_f64): Likewise.
15022         (vcvtp_s64_f64): Likewise.
15023         (vcvtp_u64_f64): Likewise.
15024
15025 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
15026
15027         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
15028         (arc_init): Check validity mll64 option.
15029         (arc_save_restore): Use double load/store instruction.
15030         (arc_expand_movmem): Likewise.
15031         (arc_split_move): Don't split if we have double load/store
15032         instructions. Returns a boolean.
15033         (arc_process_double_reg_moves): Change function to return boolean
15034         instead of a sequence of instructions.
15035         (arc_dwarf_register_span): New function.
15036         * config/arc/arc-protos.h (arc_split_move): Change prototype.
15037         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
15038         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
15039         (*movdf_insn): Likewise.
15040         * config/arc/arc.opt (mll64): New option.
15041         * config/arc/predicates.md (even_register_operand): New predicate.
15042         * doc/invoke.texi (ARC Options): Add mll64 documentation.
15043
15044 2016-01-25  Richard Biener  <rguenther@suse.de>
15045
15046         PR lto/69393
15047         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
15048         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
15049         DECL_NAMELESS.
15050         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
15051
15052 2016-01-25  Richard Biener  <rguenther@suse.de>
15053
15054         PR tree-optimization/69376
15055         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
15056         flag.
15057         (VN_INFO_ANTI_RANGE_P): New inline.
15058         (VN_INFO_RANGE_TYPE): Likewise.
15059         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
15060         SSA_NAME_ANTI_RANGE_P.
15061         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
15062         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15063         Properly query VN_INFO_RANGE_TYPE.
15064
15065 2016-01-25  Nick Clifton  <nickc@redhat.com>
15066
15067         PR target/66655
15068         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
15069
15070 2016-01-23  Tom de Vries  <tom@codesourcery.com>
15071
15072         PR tree-optimization/69426
15073         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
15074         removed clobber.
15075
15076 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
15077
15078         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
15079         "the the" with "the" in the comments.
15080         * ipa-devirt.c (build_type_inheritance_graph,
15081         update_type_inheritance_graph): Likewise.
15082         * tree.c (build_function_type_list_1): Likewise.
15083         * cfgloopmanip.c (scale_loop_profile): Likewise.
15084         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
15085         * gimple-ssa-split-paths.c
15086         (find_block_to_duplicate_for_splitting_paths): Likewise.
15087         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
15088         * expr.c (convert_move): Likewise.
15089         * var-tracking.c (vt_stack_adjustments): Likewise.
15090         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15091         * tree-vrp.c (test_for_singularity): Likewise.
15092
15093         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
15094         directly instead of building a temporary tree.
15095
15096         PR bootstrap/69434
15097         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
15098         remove <algorithm> include.
15099
15100 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15101
15102         PR target/69432
15103         * config/i386/i386.c: Include dojump.h.
15104         (expand_small_movmem_or_setmem,
15105         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
15106         fixes.
15107         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
15108         if dynamic_check != -1.
15109
15110 2016-01-21  Jeff Law  <law@redhat.com>
15111
15112         PR middle-end/69347
15113         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
15114         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
15115         into dominated_by_p.
15116         (cprop_into_successor_phis): Avoid unnecessary tests.
15117
15118 2016-01-22  Richard Henderson  <rth@redhat.com>
15119
15120         PR target/69416
15121         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
15122         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
15123
15124 2016-01-22  Michael Matz  <matz@suse.de>
15125
15126         * system.h (string, algorithm): Include only conditionally.
15127         (new): Include always under C++.
15128         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
15129         * final.c (toplevel): Ditto.
15130         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
15131         * genconditions.c (write_header): Make gencondmd.c define
15132         INCLUDE_STRING.
15133         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
15134
15135         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
15136         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
15137
15138 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15139
15140         PR target/68674
15141         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
15142
15143 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15144
15145         PR target/69403
15146         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
15147         define_insn_and_split.  Ensure operands[1] and operands[0] do not
15148         get assigned the same register.
15149
15150 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
15151
15152         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
15153
15154 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15155
15156         * config/arm/arm-c.c (arm_pragma_target_parse):
15157         Remove warn_builtin_macro_redefined overwrite.
15158
15159 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15160
15161         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
15162         flag_non_call_exceptions compatibility.
15163
15164 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15165
15166         PR debug/66668
15167         * dwarf2out.c (add_child_die_after): New function.
15168         (dwarf_qual_info_t): New type.
15169         (dwarf_qual_info): New variable.
15170         (qualified_die_p): New function.
15171         (modified_type_die): For -fdebug-types-section, ensure
15172         canonical order of qualifiers.  Put qualified DIEs adjacent
15173         to the corresponding non-qualified type DIE and search there
15174         for existing qualified DIEs.
15175
15176 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15177
15178         * doc/extend.texi (scalar_storage_order type attribute): Document
15179         restriction on type punning and aliasing, and remove future tense.
15180
15181 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
15182
15183         PR target/69252
15184         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
15185         first stage.
15186
15187 2016-01-21  Jeff Law  <law@redhat.com>
15188
15189         PR middle-end/69347
15190         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
15191         useless call to record_temporary_equivalences.
15192         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
15193         allocate 10 slots in the bb_path vector and let it grow as needed.
15194         (fsm_find_control_statement_thread_paths): Similarly for the next_path
15195         vector.
15196
15197 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15198
15199         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
15200         Detangle.
15201         * configure: Regenerate.
15202
15203 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
15204
15205         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
15206         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
15207
15208 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
15209
15210         PR middle-end/66178
15211         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
15212         drop EXPAND_INITIALIZER.
15213         * rtl.h (contains_symbolic_reference_p): Declare.
15214         * rtlanal.c (contains_symbolic_reference_p): New function.
15215         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
15216         a subtraction into a NOT if symbolic constants are involved.
15217
15218 2016-01-21  Anton Blanchard  <anton@samba.org>
15219             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15220
15221         PR target/63354
15222         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
15223         #define.
15224         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
15225         function.
15226
15227 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15228
15229         * config/microblaze/microblaze.c
15230         (get_branch_target): New.
15231         (insert_wic_for_ilb_runout): New.
15232         (insert_wic): New.
15233         (microblaze_machine_dependent_reorg): New.
15234         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
15235         * config/microblaze/microblaze.md
15236         (UNSPEC_IPREFETCH): Define.
15237         (iprefetch): New pattern
15238         * config/microblaze/microblaze.opt
15239         (mxl-prefetch): New flag.
15240
15241 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15242
15243         * config/microblaze/microblaze.h
15244         (FIXED_REGISTERS): Update in macro.
15245         (CALL_USED_REGISTERS): Update in macro.
15246
15247 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
15248
15249         PR rtl-optimization/68920
15250         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
15251         moves.
15252
15253 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15254
15255         PR rtl-optimization/68990
15256         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
15257         pseudo instead of inheritance ones.
15258
15259 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15260             Nick Clifton  <nickc@redhat.com>
15261
15262         PR target/69129
15263         PR target/69012
15264         * config/mips/mips.c (mips_compute_frame_info): Initialise
15265         args_size and hard_frame_pointer_offset fields of the frame
15266         structure before calling mips_global_pointer.
15267
15268 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15269
15270         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
15271         label reference.
15272         * configure: Regenerate.
15273
15274 2016-01-21  Richard Biener  <rguenther@suse.de>
15275
15276         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
15277
15278 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15279
15280         * config/s390/s390.c (s390_asm_declare_function_size): Add code
15281         to actually emit the .size directive.
15282
15283 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
15284              Jakub Jelinek  <jakub@redhat.com>
15285
15286         PR target/69187
15287         PR target/65624
15288         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
15289         args array size by one to avoid buffer overflow.
15290
15291 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15292
15293         * config/s390/s390.md (pool_section_start): Use switch_to_section
15294         to select proper read-only data section instead of hardcoding
15295         .rodata.
15296         (pool_section_end): Use switch_to_section to match the above.
15297
15298 2016-01-21  Richard Biener  <rguenther@suse.de>
15299
15300         PR tree-optimization/69378
15301         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
15302         (set_ssa_val_to): Use it for dominance checks taking into
15303         account not executable edges.
15304
15305 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15306
15307         PR c++/69355
15308         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
15309         for bitsize instead of GET_MODE_PRECISION (mode).
15310
15311 2016-01-20  Martin Sebor  <msebor@redhat.com>
15312
15313         PR c/52291
15314         * extend.texi (__sync Builtins): Clarify the semantics of
15315         __sync_fetch_and_OP built-ins on pointers.
15316         (__atomic Builtins): Same.
15317
15318 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15319             Sebastian Pop  <s.pop@samsung.com>
15320
15321         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
15322         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
15323         (is_valid_rename): Same.
15324         (translate_isl_ast_to_gimple::get_rename): Same.
15325         (translate_isl_ast_to_gimple::rename_all_uses): Same.
15326         (translate_isl_ast_to_gimple::rename_uses): Same.
15327         (get_new_name): Check for close_phi nodes.
15328         (copy_loop_phi_args): Use phi_node_kind.
15329         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
15330         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
15331
15332 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15333             Sebastian Pop  <s.pop@samsung.com>
15334
15335         Revert commit r229783.
15336         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
15337         Remove use of parameter_rename_map.
15338         (copy_def): Remove.
15339         (copy_internal_parameters): Remove.
15340         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
15341         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
15342         (free_sese_info): Do not free parameter_rename_map.
15343         (set_rename): Do not use parameter_rename_map.
15344         (rename_uses): Update call to set_rename.
15345         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
15346         * sese.h (parameter_rename_map_t): Remove.
15347         (struct sese_info_t): Remove field parameter_rename_map.
15348
15349 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15350             Sebastian Pop  <s.pop@samsung.com>
15351
15352         * graphite-isl-ast-to-gimple.c: Fix comment.
15353         * graphite-scop-detection.c (defined_in_loop_p): New.
15354         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
15355         names defined in loop.
15356
15357 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15358             Sebastian Pop  <s.pop@samsung.com>
15359
15360         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15361         Discard unstructured if-then-else regions.
15362
15363 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15364             Sebastian Pop  <s.pop@samsung.com>
15365
15366         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
15367         (cleanup_loop_iter_dom): Remove.
15368         (build_loop_iteration_domains): Remove.
15369         (build_scop_context): Remove.
15370         (build_scop_iteration_domain): Remove.
15371         (add_loop_constraints): New.
15372         (build_iteration_domains): New.
15373         (build_poly_scop): Call build_iteration_domains.
15374
15375 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15376             Sebastian Pop  <s.pop@samsung.com>
15377
15378         * graphite-scop-detection.c
15379         (scop_detection::harmful_loop_in_region): Free dom and loops.
15380         (scop_detection::loop_body_is_valid_scop): Free bbs.
15381
15382 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15383             Sebastian Pop  <s.pop@samsung.com>
15384
15385         * graphite-scop-detection.c (record_loop_in_sese): New.
15386         (gather_bbs::before_dom_children): Call record_loop_in_sese.
15387         (build_scops): Remove call to build_sese_loop_nests.
15388         * sese.c (sese_record_loop): Remove.
15389         (build_sese_loop_nests): Remove.
15390         (new_sese_info): Remove region->loops.
15391         (free_sese_info): Same.
15392         * sese.h (sese_contains_loop): Same.
15393         (build_sese_loop_nests): Remove.
15394         (sese_contains_loop): Remove.
15395
15396 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15397             Sebastian Pop  <s.pop@samsung.com>
15398
15399         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
15400         loop_is_valid_in_scop.
15401         (scop_detection::harmful_stmt_in_region): Renamed
15402         harmful_loop_in_region.
15403         Call loop_is_valid_in_scop.
15404
15405 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15406             Sebastian Pop  <s.pop@samsung.com>
15407
15408         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
15409         isl_ast_node_mark.
15410
15411 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15412             Sebastian Pop  <s.pop@samsung.com>
15413
15414         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
15415         * graphite.h (struct poly_bb): Remove field is_reduction.
15416         (PBB_IS_REDUCTION): Remove.
15417
15418 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15419             Sebastian Pop  <s.pop@samsung.com>
15420
15421         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
15422         (add_pdr_constraints): Same.
15423         (scop_get_reads): Same.
15424         (scop_get_must_writes): Same.
15425         (scop_get_may_writes): Same.
15426         (scop_get_original_schedule): Same.
15427         (extend_schedule): Same.
15428         (apply_schedule_on_deps): Same.
15429         (carries_deps): Same.
15430         (compute_deps): Same.
15431         (scop_get_dependences): Same.
15432         * graphite-isl-ast-to-gimple.c
15433         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
15434         * graphite-optimize-isl.c (get_schedule_for_band): Same.
15435         (get_schedule_for_band_list): Same.
15436         (get_schedule_map): Same.
15437         (apply_schedule_map_to_scop): Same.
15438         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
15439         (build_loop_iteration_domains): Same.
15440         (add_condition_to_pbb): Same.
15441         (add_param_constraints): Same.
15442         (pdr_add_memory_accesses): Same.
15443         (pdr_add_data_dimensions): Same.
15444
15445 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15446
15447         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
15448         requirements.
15449
15450 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15451
15452         * common.opt (feliminate-dwarf2-dups): Replace references to
15453         "DWARF 2" with just "DWARF".
15454         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
15455         * doc/extend.texi: Likewise.
15456         * doc/cpp.texi: Likewise.
15457         * doc/invoke.texi: Likewise.
15458         (Option Summary): Add -gdwarf to list of Debugging Options.
15459         (Debugging Options): Document -gdwarf.
15460         * doc/contrib.texi: Spell "DWARF" like that.
15461
15462 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15463
15464         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
15465         warning.  Fix up formatting.
15466
15467         PR middle-end/67653
15468         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
15469         attempt to mark memory input operand addressable and
15470         call prepare_gimple_addressable in that case.  Don't adjust
15471         input_location for diagnostics, use error_at instead.
15472
15473 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
15474
15475         * config/rs6000/ppc-auxv.h: New file.
15476         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
15477         (cpu_is): Likewise.
15478         (cpu_supports): Likewise.
15479         * config/rs6000/rs6000.c: include "ppc-auxv.h".
15480         (cpu_is_info): New variable.
15481         (cpu_supports_info): Likewise.
15482         (tcb_verification_symbol): Likewise.
15483         (cpu_builtin_p): Likewise.
15484         (cpu_expand_builtin): New function.
15485         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
15486         (rs6000_init_builtins): Likewise.
15487         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
15488         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
15489         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
15490         * configure: Regenerate.
15491         * config.in: Likewise.
15492         * doc/extend.texi (PowerPC Built-in Functions): Document
15493         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
15494
15495 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
15496
15497         PR target/68609
15498         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
15499         domain check.
15500         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
15501         for V4SFmode.
15502
15503 2016-01-20  Richard Henderson  <rth@redhat.com>
15504
15505         PR bootstrap/69343
15506         PR bootstrap/69339
15507         PR tree-opt/68964
15508         Revert:
15509         * tree.c (tm_define_builtin): New.
15510         (find_tm_vector_type): New.
15511         (build_tm_vector_builtins): New.
15512         (build_common_builtin_nodes): Call it.
15513
15514 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
15515
15516         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
15517         (arm_fp_ok): Likewise.
15518         (arm_fp): Likewise.
15519         (arm_crypto): Likewise.
15520
15521 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
15522             Richard Biener  <rguenther@suse.de>
15523
15524         PR tree-optimization/69328
15525         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
15526         vectors have same number of elements.
15527         (vectorizable_condition): Fix masked version recognition.
15528
15529 2016-01-20  Richard Biener  <rguenther@suse.de>
15530
15531         PR tree-optimization/69345
15532         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
15533         (VN_INFO_PTR_INFO): Likewise.
15534         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
15535         info when it is equal between non-dominating SSA names.
15536         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15537         Make sure to look at original SSA infos.
15538
15539 2016-01-20  Jeff Law  <law@redhat.com>
15540
15541         PR target/25114
15542         * config/m68k/predicates.md (pow2_m1_operand): New predicate
15543         extracted from ...
15544         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
15545         (pc_or_label_operand): New predicate.
15546         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
15547         tests for small integers that are 2^n - 1.
15548
15549 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
15550
15551         * doc/invoke.texi (Options Summary): Add '.' after @xref.
15552
15553 2016-01-19  Jeff Law  <law@redhat.com>
15554
15555         PR middle-end/69347
15556         * tree-ssa-threadbackwards.c
15557         (fsm_find_control_statement_thread_paths): Do not try to lookup
15558         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
15559
15560 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
15561
15562         * doc/lto.texi: Remove text that says only Gold has linker plugin
15563         support.
15564
15565 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
15566
15567         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
15568         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
15569         the DIE accordingly.
15570         (modified_type_die): Add REVERSE parameter and pass it recursively,
15571         as well as to base_type_die.  Adjust presence check accordingly.
15572         (base_type_for_mode): Adjust call to modified_type_die.
15573         (add_type_attribute): Add REVERSE parameter and pass it to
15574         modified_type_die.
15575         (generic_parameter_die): Adjust call to add_type_attribute.
15576         (add_scalar_info): Likewise.
15577         (add_subscript_info): Likewise.
15578         (gen_array_type_die): Likewise.
15579         (gen_descr_array_type_die): Likewise.
15580         (gen_entry_point_die): Likewise.
15581         (gen_enumeration_type_die): Likewise.
15582         (gen_formal_parameter_die): Likewise.
15583         (gen_subprogram_die): Likewise.
15584         (gen_variable_die ): Likewise.
15585         (gen_const_die): Likewise.
15586         (gen_field_die): Likewise.
15587         (gen_pointer_type_die): Likewise.
15588         (gen_reference_type_die): Likewise.
15589         (gen_ptr_to_mbr_type_die): Likewise.
15590         (gen_inheritance_die): Likewise.
15591         (gen_subroutine_type_die): Likewise.
15592         (gen_typedef_die): Likewise.
15593         (force_type_die): Adjust call to modified_type_die.
15594
15595 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
15596
15597         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
15598         flow throughout the file.  Fix broken link to Objective-C 2.0
15599         documentation.
15600         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
15601         errors.
15602
15603 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15604
15605         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
15606
15607 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15608
15609         PR ipa/66223
15610         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
15611         (maybe_record_node): Record cxa_pure_virtual as the only possible
15612         target if there are not ohter candidates.
15613         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
15614
15615 2016-01-19  Richard Biener  <rguenther@suse.de>
15616
15617         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
15618         (get_memory_order): Likewise.
15619
15620 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
15621
15622         * tree-vect-stmts.c (vectorizable_store): Check
15623         rhs vectype.
15624
15625 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
15626
15627         PR jit/68446
15628         * gcc.c (driver::decode_argv): Add call to
15629         init_opts_obstack before init_options_struct.
15630         * opts.c (init_opts_obstack): Remove idempotency.
15631         (init_options_struct): Replace call to init_opts_obstack
15632         with a gcc_assert to verify that it has already been called.
15633         * toplev.c (toplev::main): Add call to init_opts_obstack before
15634         calls to init_options_struct.
15635         (toplev::finalize): Move cleanup of opts_obstack next to
15636         cleanup of save_decoded_options, clearing the latter, and
15637         save_decoded_options_count.
15638
15639 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15640
15641         PR target/69135
15642         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
15643         attribute to unconditional.  Remove %? from output template.
15644
15645 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15646             Jiong Wang  <jiong.wang@arm.com>
15647
15648         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
15649         generated from different expand order.
15650
15651 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15652
15653         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15654         Add support for CCMP costing.
15655
15656 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15657
15658         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
15659         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
15660         (fccmpe<mode>): Likewise.
15661         (fcmp): Rename to fcmp and globalize pattern.
15662         (fcmpe): Likewise.
15663         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
15664         (aarch64_gen_ccmp_next): Add FP support.
15665
15666 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15667
15668         * target.def (gen_ccmp_first): Update documentation.
15669         (gen_ccmp_next): Likewise.
15670         * doc/tm.texi (gen_ccmp_first): Update documentation.
15671         (gen_ccmp_next): Likewise.
15672         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
15673         expand_ccmp_expr_1.  Improve comments.
15674         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
15675         (ccmp_ior<mode>): Remove pattern.
15676         (cmp<mode>): Remove expand.
15677         (cmp): Globalize pattern.
15678         (cstorecc4): Use cc_register.
15679         (mov<mode>cc): Remove ccmp_cc_register check.
15680         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
15681         Simplify after removal of CC_DNE/* modes.
15682         (aarch64_ccmp_mode_to_code): Remove.
15683         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
15684         In 'k' case use integer as condition.
15685         (aarch64_nzcv_codes): Remove inverted cases.
15686         (aarch64_code_to_ccmode): Remove.
15687         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
15688         comparison with CC register to be used in folowing CCMP/branch/CSEL.
15689         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
15690         pattern.  Return the comparison with CC register.  Invert conditions
15691         when bitcode is OR.
15692         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
15693         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
15694
15695 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15696
15697         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
15698         instrumented_version.
15699
15700 2016-01-19  Richard Biener  <rguenther@suse.de>
15701
15702         PR tree-optimization/69336
15703         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
15704         handled components with get_ref_base_and_extent.
15705         (equal_mem_array_ref_p): Adjust.
15706
15707 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
15708
15709         PR debug/65779
15710         * shrink-wrap.c: Include valtrack.h.
15711         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
15712         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
15713         in between insn and where it will be moved to.  Call
15714         dead_debug_insert_temp.
15715         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
15716         first and dead_debug_local_finish at the end.
15717         For uses and defs bitmap, handle all regs in between REGNO and
15718         END_REGNO, not just the first one.
15719
15720 2016-01-19  Richard Biener  <rguenther@suse.de>
15721
15722         PR tree-optimization/69352
15723         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
15724         (equal_mem_array_ref_p): Constrain size and max size properly.
15725         Compare the reverse flag.
15726
15727 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
15728
15729         * ira.c (ira): Update regstat data if we deleted insns.
15730
15731 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
15732
15733         PR rtl-optimization/68955
15734         PR rtl-optimization/64557
15735         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
15736         here.  Fix up formatting.
15737         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
15738
15739 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15740
15741         PR lto/69133
15742         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
15743         assume that the node has body.
15744         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
15745         check.
15746
15747 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15748
15749         * lto-streamer-out.c (lto_output): Do not stream instrumentation
15750         thunks.
15751
15752 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15753
15754         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
15755         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
15756
15757 2016-01-19  Martin Jambor  <mjambor@suse.cz>
15758             Martin Liska  <mliska@suse.cz>
15759             Michael Matz  <matz@suse.de>
15760
15761         * Makefile.in (OBJS): Add new source files.
15762         (GTFILES): Add hsa.c.
15763         * common.opt (disable_hsa): New variable.
15764         (-Whsa): New warning.
15765         * config.in (ENABLE_HSA): New.
15766         * configure.ac: Treat hsa differently from other accelerators.
15767         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
15768         $enable_offloading.
15769         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
15770         * doc/install.texi (Configuration): Document --with-hsa-runtime,
15771         --with-hsa-runtime-include, --with-hsa-runtime-lib and
15772         --with-hsa-kmt-lib.
15773         * doc/invoke.texi (-Whsa): Document.
15774         (hsa-gen-debug-stores): Likewise.
15775         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
15776         to invoke offload compiler for hsa acclerator.
15777         * opts.c (common_handle_option): Determine whether HSA offloading
15778         should be performed.
15779         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
15780         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
15781         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
15782         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
15783         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
15784         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
15785         GF_OMP_FOR_KIND_GRID_LOOP.
15786         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
15787         (pp_gimple_stmt_1): Likewise.
15788         * gimple-walk.c (walk_gimple_stmt): Likewise.
15789         * gimple.c (gimple_build_omp_grid_body): New function.
15790         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
15791         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
15792         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
15793         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
15794         GF_OMP_TEAMS_GRID_PHONY.
15795         (gimple_statement_omp_single_layout): Updated comments.
15796         (gimple_build_omp_grid_body): New function.
15797         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
15798         (gimple_omp_for_grid_phony): New function.
15799         (gimple_omp_for_set_grid_phony): Likewise.
15800         (gimple_omp_parallel_grid_phony): Likewise.
15801         (gimple_omp_parallel_set_grid_phony): Likewise.
15802         (gimple_omp_teams_grid_phony): Likewise.
15803         (gimple_omp_teams_set_grid_phony): Likewise.
15804         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
15805         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
15806         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
15807         (BUILT_IN_GOMP_TARGET): Updated type.
15808         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
15809         (adjust_for_condition): New function.
15810         (get_omp_for_step_from_incr): Likewise.
15811         (extract_omp_for_data): Moved parts to adjust_for_condition and
15812         get_omp_for_step_from_incr.
15813         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
15814         (fixup_child_record_type): Bail out if receiver_decl is NULL.
15815         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
15816         (scan_omp_parallel): Do not create child functions for phony
15817         constructs.
15818         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
15819         (scan_omp_1_op): Checking assert we are not remapping to
15820         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
15821         (parallel_needs_hsa_kernel_p): New function.
15822         (expand_parallel_call): Register apprpriate parallel child
15823         functions as HSA kernels.
15824         (grid_launch_attributes_trees): New type.
15825         (grid_attr_trees): New variable.
15826         (grid_create_kernel_launch_attr_types): New function.
15827         (grid_insert_store_range_dim): Likewise.
15828         (grid_get_kernel_launch_attributes): Likewise.
15829         (get_target_argument_identifier_1): Likewise.
15830         (get_target_argument_identifier): Likewise.
15831         (get_target_argument_value): Likewise.
15832         (push_target_argument_according_to_value): Likewise.
15833         (get_target_arguments): Likewise.
15834         (expand_omp_target): Call get_target_arguments instead of looking
15835         up for teams and thread limit.
15836         (grid_expand_omp_for_loop): New function.
15837         (grid_arg_decl_map): New type.
15838         (grid_remap_kernel_arg_accesses): New function.
15839         (grid_expand_target_kernel_body): New function.
15840         (expand_omp): Call it.
15841         (lower_omp_for): Do not emit phony constructs.
15842         (lower_omp_taskreg): Do not emit phony constructs but create for them
15843         a temporary variable receiver_decl.
15844         (lower_omp_taskreg): Do not emit phony constructs.
15845         (lower_omp_teams): Likewise.
15846         (lower_omp_grid_body): New function.
15847         (lower_omp_1): Call it.
15848         (grid_reg_assignment_to_local_var_p): New function.
15849         (grid_seq_only_contains_local_assignments): Likewise.
15850         (grid_find_single_omp_among_assignments_1): Likewise.
15851         (grid_find_single_omp_among_assignments): Likewise.
15852         (grid_find_ungridifiable_statement): Likewise.
15853         (grid_target_follows_gridifiable_pattern): Likewise.
15854         (grid_remap_prebody_decls): Likewise.
15855         (grid_copy_leading_local_assignments): Likewise.
15856         (grid_process_kernel_body_copy): Likewise.
15857         (grid_attempt_target_gridification): Likewise.
15858         (grid_gridify_all_targets_stmt): Likewise.
15859         (grid_gridify_all_targets): Likewise.
15860         (execute_lower_omp): Call grid_gridify_all_targets.
15861         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
15862         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
15863         (tree_omp_clause): Added union field dimension.
15864         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
15865         * tree.c (omp_clause_num_ops): Added number of arguments of
15866         OMP_CLAUSE__GRIDDIM_.
15867         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
15868         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
15869         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
15870         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
15871         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
15872         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
15873         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
15874         * tree-pass.h (make_pass_gen_hsail): Declare.
15875         (make_pass_ipa_hsa): Likewise.
15876         * ipa-hsa.c: New file.
15877         * lto-section-in.c (lto_section_name): Add hsa section name.
15878         * lto-streamer.h (lto_section_type): Add hsa section.
15879         * timevar.def (TV_IPA_HSA): New.
15880         * hsa-brig-format.h: New file.
15881         * hsa-brig.c: New file.
15882         * hsa-dump.c: Likewise.
15883         * hsa-gen.c: Likewise.
15884         * hsa.c: Likewise.
15885         * hsa.h: Likewise.
15886         * toplev.c (compile_file): Call hsa_output_brig.
15887         * hsa-regalloc.c: New file.
15888
15889 2016-01-18  Jeff Law  <law@redhat.com>
15890
15891         PR tree-optimization/69320
15892         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
15893         ranged object, do nothing if the RHS constant is not [0..1].
15894         (optimize_stmt): Comparing a boolean ranged object against a
15895         constant outside [0..1] results in a compile-time constant.
15896
15897         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
15898         test.
15899
15900 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
15901
15902         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15903         (Option Summary): Update to reflect new section and moved options.
15904         (C++ Dialect Options): Move -fstats to new section.
15905         (Debugging Options): Move all dump, statistics, and other GCC
15906         developer options to new section.  Rewrite section introduction
15907         and re-order remaining options to put the more basic ones first.
15908         (Optimization Options): Move -fira-verbose and -flto-report* to
15909         new section.
15910         (Developer Options): New section incorporating moved options.
15911         * doc/cppopts.texi (-dM): Update cross-reference.
15912
15913 2016-01-18  Richard Henderson  <rth@redhat.com>
15914
15915         PR target/69176
15916         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
15917         operands to pseudo only if CSE is expected.  Split long immediate
15918         operands only after reload, and for the stack pointer.
15919         (*add<GPI>3_pluslong): Remove.
15920         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
15921         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
15922         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
15923         (*add<GPI>3 peepholes): New.
15924         (*add<GPI>3 splitters): New.
15925         * config/aarch64/constraints.md (Upl): New.
15926         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
15927
15928 2016-01-18  Richard Biener  <rguenther@suse.de>
15929
15930         PR tree-optimization/69297
15931         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15932         stmt at most once.
15933         (vect_bb_vectorization_profitable_p): Clear visited flag again.
15934
15935 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
15936
15937         PR middle-end/68542
15938         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
15939         of mixind vector and scalar types.
15940         (fold_relational_const): Add handling of vector
15941         comparison with boolean result.
15942         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
15943         comparison of vector operands with boolean result for EQ/NE only.
15944         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
15945         (verify_gimple_cond): Likewise.
15946         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
15947         valid type of VAL.
15948
15949 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
15950
15951         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15952         !TARGET_OCTEON.
15953
15954 2016-01-18  Richard Biener  <rguenther@suse.de>
15955
15956         PR middle-end/69308
15957         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15958
15959 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15960
15961         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15962
15963 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15964
15965         * omp-low.c (set_oacc_fn_attrib): Make extern.
15966         * omp-low.h (set_oacc_fn_attrib): Declare.
15967         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
15968         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
15969         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
15970         Add and handle function parameter oacc_kernels_p.
15971         (find_reduc_addr, get_omp_data_i_param): New function.
15972         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
15973         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
15974         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
15975         Calculate dominance info.  Skip loops that are not in a kernels region
15976         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
15977         (pass_parallelize_loops::execute): Call parallelize_loops with
15978         oacc_kernels_p argument.
15979         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
15980         New member function.
15981         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
15982         * passes.def: Add argument to pass_parallelize_loops instantation.
15983
15984 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15985
15986         * tree-parloops.c (pass_parallelize_loops::execute): Allow
15987         pass_parallelize_loops to be run outside the loop pipeline.
15988
15989 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15990
15991         * tree-scalar-evolution.c (follow_copies_to_constant): New.
15992         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15993
15994 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15995
15996         PR target/63679
15997         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
15998         using get_ref_base_and_extent.
15999         (equal_mem_array_ref_p): New.
16000         (hashable_expr_equal_p): Add call to previous.
16001
16002 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16003
16004         PR target/63679
16005         * tree-sra.c (disqualified_constants, constant_decl_p): New.
16006         (sra_initialize): Allocate disqualified_constants.
16007         (sra_deinitialize): Free disqualified_constants.
16008         (disqualify_candidate): Update disqualified_constants when appropriate.
16009         (create_access): Scan for constant-pool entries as we go along.
16010         (scalarizable_type_p): Add check against type_contains_placeholder_p.
16011         (maybe_add_sra_candidate): Allow constant-pool entries.
16012         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
16013         (initialize_constant_pool_replacements): New.
16014         (sra_modify_assign): Avoid mangling assignments created by previous,
16015         and don't generate writes into constant pool.
16016         (sra_modify_function_body): Call initialize_constant_pool_replacements.
16017
16018 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16019
16020         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
16021         andnot instruction.
16022         (scalar_chain::convert_op): Likewise.
16023         * config/i386/i386.md (*andndi3_doubleword): New.
16024
16025 2016-01-18  Richard Biener  <rguenther@suse.de>
16026
16027         PR tree-optimization/69170
16028         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
16029         building a vector from scalar results of a pattern stmt.
16030
16031 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
16032
16033         * haifa-sched.c (autopref_multipass_init): Work around
16034         -Wmaybe-uninitialized warning.
16035
16036 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16037
16038         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
16039         against the constant 0.
16040
16041 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16042
16043         PR tree-optimization/68799
16044         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
16045         look up phi candidates in the statement-candidate map.
16046         (phi_add_costs): Likewise.
16047         (record_phi_increments): Likewise.
16048         (phi_incr_cost): Likewise.
16049         (ncd_with_phi): Likewise.
16050         (all_phi_incrs_profitable): Likewise.
16051
16052 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
16053
16054         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
16055         -Wmaybe-uninitialized warning.
16056
16057 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
16058
16059         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16060         (Option Summary): Update to reflect new section and moved options.
16061         (C++ Dialect Options): Move -fvtable-verify and related options.
16062         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
16063         and profiling-related options.
16064         (Optimization Options): Move profile generation options and
16065         -fstack-protector and related options.
16066         (Instrumentation Options): New section incorporating moved options.
16067         (Code Generation Options): Move -finstrument-functions and
16068         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
16069
16070 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16071
16072         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
16073
16074 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16075
16076         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
16077
16078 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
16079
16080         * hash-table.h (hash_table::empty): Turn into an inline wrapper
16081         that checks whether the table is already empty.  Rename the
16082         original implementation to...
16083         (hash_table::empty_slot): ...this new private function.
16084
16085 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
16086
16087         PR diagnostic/68899
16088         * diagnostic-show-locus.c (layout::print_source_line): Move x
16089         offset of line until after call to
16090         get_line_width_without_trailing_whitespace.
16091
16092 2016-01-15  Jeff Law  <law@redhat.com>
16093
16094         PR tree-optimization/69270
16095         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
16096         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
16097         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
16098         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
16099         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16100         ssa_name_has_boolean_range and constant_boolean_node.
16101
16102 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16103
16104         PR rtl-optimization/69030
16105         * lra-spills.c (remove_pseudos): Check nrefs and make the function
16106         returning bool.
16107         (spill_pseudos): Delete debug insn for dead pseudo.
16108         (lra_spill): Initiate spill_hard_reg and slots memory separately.
16109
16110 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
16111
16112         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
16113         New.
16114         (TYPES_UNOPUS): Likewise.
16115         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
16116         builtin type, from UNOP to UNOPUS.
16117         (lbtruncuv4sf): Likewise.
16118         (lbtruncuv2df): Likewise.
16119         (lrounduv2sf): Likewise.
16120         (lrounduv4sf): Likewise.
16121         (lrounduv2df): Likewise.
16122         (lroundusf): Likewise.
16123         (lroundusf): Likewise.
16124         (lceiluv2sf): Likewise.
16125         (lceiluv4sf): Likewise.
16126         (lceiluv2df): Likewise.
16127         (lceilusf): Likewise.
16128         (lceiludf): Likewise.
16129         (lflooruv2sf): Likewise.
16130         (lflooruv4sf): Likewise.
16131         (lflooruv2df): Likewise.
16132         (lfloorusf): Likewise.
16133         (lfloorudf): Likewise.
16134         (lfrintnuv2sf): Likewise.
16135         (lfrintnuv4sf): Likewise.
16136         (lfrintnuv2df): Likewise.
16137         (lfrintnusf): Likewise.
16138         (lfrintnudf): Likewise.
16139         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
16140         conversion.
16141         (vcvtq_u32_f32): Likewise.
16142         (vcvtq_u64_f64): Likewise.
16143         (vcvta_u32_f32): Likewise.
16144         (vcvtaq_u32_f32): Likewise.
16145         (vcvtaq_u64_f64): Likewise.
16146         (vcvtm_u32_f32): Likewise.
16147         (vcvtmq_u32_f32): Likewise.
16148         (vcvtmq_u64_f64): Likewise.
16149         (vcvtn_u32_f32): Likwise.
16150         (vcvtnq_u32_f32): Likewise.
16151         (vcvtnq_u64_f64): Likewise.
16152         (vcvtp_u32_f32): Likewise.
16153         (vcvtpq_u32_f32): Likewise.
16154         (vcvtpq_u64_f64): Likewise.
16155         (vcvtmd_u64_f64): Likewise.
16156         (vcvtms_u32_f32): Likewise.
16157         (vcvtad_u64_f64): Likewise.
16158         (vcvtas_u32_f32): Likewise.
16159         (vcvtnd_u64_f64): Likewise.
16160         (vcvtns_u32_f32): Likewise.
16161         (vcvtpd_u64_f64): Likewise.
16162         (vcvtps_u32_f32): Likewise.
16163
16164 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16165
16166         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
16167         CSEL of zero_extended registers.
16168
16169 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16170
16171         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
16172         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
16173
16174 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16175
16176         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
16177         false when argument string is not found in the attributes table
16178         at all.
16179
16180 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
16181
16182         PR target/68609
16183         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
16184         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
16185         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
16186         precision estimate.
16187
16188 2016-01-15  Richard Biener  <rguenther@suse.de>
16189
16190         PR tree-optimization/66856
16191         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
16192         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
16193         (vect_create_new_slp_node): Increment stmt reference count.
16194         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
16195         an SLP tree before swapping operands.
16196         (vect_build_slp_tree): Likewise.
16197         (destroy_bb_vec_info): Free stmt info after SLP instances.
16198         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
16199         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
16200         (STMT_VINFO_NUM_SLP_USES): New macro.
16201
16202 2016-01-15  Richard Biener  <rguenther@suse.de>
16203
16204         PR debug/69137
16205         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
16206         (add_linkage_name): ... here.
16207         (gen_typedef_die): Use add_linkage_name_raw instead of
16208         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
16209         if necessary.
16210
16211 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
16212
16213         * gimplify.c (oacc_default_clause): Decode reference and pointer
16214         types for both kernels and parallel regions.
16215
16216 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
16217
16218         PR middle-end/69246
16219         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
16220
16221 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16222
16223         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
16224         (convert_scalars_to_vector): Likewise.
16225
16226 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
16227
16228         * doc/extend.texi (Type Traits): Fix grammar.
16229
16230 2016-01-15  Martin Jambor  <mjambor@suse.cz>
16231
16232         * tree-inline.c (remap_decl): Use existing dclarations if
16233         remapping a type and prevent_decl_creation_for_types.
16234         (replace_locals_stmt): Do an initial remapping of non-VLA typed
16235         decls first.  Do real remapping with
16236         prevent_decl_creation_for_types set.
16237         * tree-inline.h (copy_body_data): New field
16238         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
16239         padding.
16240
16241 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16242
16243         * config/s390/s390.opt (mmvcle): More verbose help text.
16244
16245 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16246
16247         * config/s390/s390.opt: Add period to -mzvector option text.
16248
16249 2016-01-15  Richard Biener  <rguenther@suse.de>
16250
16251         PR tree-optimization/68961
16252         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
16253         of invariants in stores again.
16254
16255 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16256
16257         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
16258
16259 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16260
16261         * config/i386/i386.c (ix86_expand_branch): Don't split
16262         DI mode xor instruction to SI mode.
16263
16264 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16265
16266         PR ipa/68148
16267         * ipa-icf.c (sem_function::merge): Virtual functions may become
16268         reachable even if they address is not taken and there are no
16269         idrect calls.
16270
16271 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16272
16273         * lto-streamer-out.c (subtract_estimated_size): New function.
16274         (get_symbol_initial_value): Use it.
16275
16276 2016-01-15  Christian Bruel  <christian.bruel@st.com>
16277
16278         PR target/65837
16279         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
16280         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
16281         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
16282         use add_builtin_function_ext_scope instead of add_builtin_function.
16283         (neon_set_p, neon_crypto_set_p): Remove.
16284         (arm_init_builtins): Always call arm_init_neon_builtins and
16285         arm_init_crypto_builtins.
16286         (arm_expand_builtin): Check that builtins are allowed for the arch.
16287         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
16288         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
16289         arm_init_neon_builtins call.
16290
16291 2016-01-15  Richard Biener  <rguenther@suse.de>
16292
16293         PR tree-optimization/69117
16294         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
16295         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
16296         of the leader conservatively.
16297         (free_scc_vn): Restore original SSA name infos.
16298
16299 2016-01-14  Jeff Law  <law@redhat.com>
16300
16301         PR tree-optimization/69270
16302         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
16303         single bit of precision, verify it's also unsigned.
16304         (record_edge_info): Use constant_boolean_node rather than fold_convert
16305         to convert boolean_true/boolean_false to the right type.
16306
16307 2016-01-14  Richard Henderson  <rth@redhat.com>
16308
16309         PR rtl-opt/69014
16310         * loop-doloop.c (record_reg_sets): New.
16311         (doloop_optimize): Reject the transform if the sequence
16312         clobbers registers live at the end of the loop block.
16313         (doloop_optimize_loops): Enable df_live if needed.
16314
16315 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16316
16317         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
16318         * config/rs6000/rs6000.c: Likewise.
16319         * config/rs6000/rs6000.h: Likewise.
16320         * config/rs6000/rs6000.md: Likewise.
16321         * doc/extend.texi: Likewsie.
16322
16323 2016-01-14  Jeff Law  <law@redhat.com>
16324
16325         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
16326         typo.
16327
16328 2016-01-14  Richard Henderson  <rth@redhat.com>
16329
16330         PR c/69272
16331         PR tree-opt/68964
16332         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
16333         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
16334         instead of builtin_decl_declared_p to test for declaration.
16335
16336 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
16337
16338         * doc/loop.texi (Loop Analysis and Representation): Document
16339         loop_depth function.
16340
16341 2016-01-14  Tom de Vries  <tom@codesourcery.com>
16342
16343         PR tree-optimization/68773
16344         * omp-low.c (expand_omp_target): Don't set force_output.
16345         * varpool.c (varpool_node::get_create): Same.
16346         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
16347         offload_funcs with force_output.
16348
16349 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16350
16351         PR debug/69244
16352         * lra-eliminations.c (move_plus_up): Don't change anything if either
16353         the outer or inner subreg mode is not MODE_INT.
16354         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
16355         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
16356
16357 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16358
16359         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
16360         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
16361         reduc_uplus_@var{m}): Remove.
16362         * expr.c (expand_expr_real_2): Remove expansion path for
16363         reduc_[us](min|max|plus) optabs.
16364         * optabs-tree.c (scalar_reduc_to_vector): Remove.
16365         * optabs-tree.h (scalar_reduc_to_vector): Remove.
16366         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
16367         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
16368         * tree-vect-loop.c (vectorizable_reduction): Remove test for
16369         reduc_[us](min|max|plus) optabs.
16370
16371 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16372
16373         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
16374         (reduc_plus_scal_v2sf): New.
16375         (reduc_smax_v2sf): Rename to...
16376         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
16377         (reduc_smin_v2sf): Rename to...
16378         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
16379
16380 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
16381
16382         * alias.c (compare_base_symbol_refs): New function.
16383         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
16384         it.
16385
16386 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16387
16388         PR middle-end/68146
16389         PR tree-optimization/69155
16390         * tree-complex.c: Include cfganal.h.
16391         (phis_to_revisit): New variable.
16392         (extract_component): Add phiarg_p argument.  Assert that returned
16393         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
16394         (update_phi_components): Partly rewrite to use loop over real/imag
16395         components instead of code duplication.  If extract_component returns
16396         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
16397         create_tmp_reg into the PHI node instead, and mention the phi triplet
16398         in phis_to_revisit.
16399         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
16400         in phis_to_revisit at the end.
16401
16402 2016-01-14  Richard Biener  <rguenther@suse.de>
16403
16404         PR tree-optimization/68060
16405         * tree-vect-loop.c (vect_is_simple_reduction): Check the
16406         outer loop reduction is only used in the inner loop before
16407         detecting a double reduction.
16408
16409 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16410
16411         PR target/68269
16412         * combine.c (expand_field_assignment): Punt if compute_mode is
16413         unsupported scalar mode.
16414
16415 2016-01-14  Richard Biener  <rguenther@suse.de>
16416
16417         PR tree-optimization/66856
16418         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
16419         SLP node only if it built successfully.
16420         (vect_analyze_slp_instance): Adjust.
16421
16422 2016-01-14  Jeff Law  <law@redhat.com>
16423
16424         PR tree-optimization/69270
16425         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
16426         (record_edge_info): Use it.  Convert boolean_{true,false}_node
16427         to the type of op0.
16428
16429 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
16430
16431         PR ipa/66487
16432         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
16433         use block_ultimate_origin
16434         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
16435
16436 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16437
16438         * doc/invoke.texi (Submodel Options): Rename section to
16439         "Machine-Dependent Options" to better reflect its content.
16440         Rewrite introductory text to remove archaic CPU names.
16441         Update references.
16442
16443 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16444
16445         * doc/invoke.texi (Code Gen Options): Move section up in file,
16446         before target-specific options.  Update menu and option summary
16447         to reflect the new section ordering.
16448
16449 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16450
16451         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
16452         (C++ Dialect Options): Add cross-reference to -std option.
16453         * doc/standards.texi (C++ Language): Document C++14 support.
16454
16455 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16456
16457         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
16458         for pack/unpack functions for __ibm128.
16459         (PACK_IF): Likewise.
16460         (UNPACK_IF): Likewise.
16461
16462         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
16463         support for __ibm128 pack/unpack functions.
16464         (rs6000_invalid_builtin): Likewise.
16465         (rs6000_init_builtins): Likewise.
16466         (rs6000_opt_masks): Likewise.
16467
16468         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
16469         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
16470         functions
16471         (RS6000_BTM_COMMON): Likewise.
16472
16473         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
16474         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
16475         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
16476         128-bit floating point.  Add support for the double values to be
16477         in Altivec registers for TF/IF packing and unpacking, but restrict
16478         TD packing sub-fields to be FPR registers.  Don't allow overlapped
16479         register support for packing.  Allow pack inputs to be memory
16480         locations.  Don't build generator functions for unpack<mode>_dm
16481         and unpack<mode>_nodm.
16482         (unpack<mode>_dm): Likewise.
16483         (unpack<mode>_nodm): Likewise.
16484         (pack<mode>): Likewise.
16485
16486         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
16487         built-in functions to pack/unpack explicit __ibm128 values.
16488         (__builtin_unpack_ibm128): Likewise.
16489
16490         * doc/extend.texi (PowerPC Built-in Functions): Document
16491         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
16492
16493 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
16494
16495         PR c/66208
16496         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
16497         Add new arg loc and pass it down as context.
16498         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
16499         to the location to use for the warning.
16500         (check_function_arguments): New arg loc.  All callers changed.  Pass
16501         it to check_function_nonnull.
16502         * c-common.h (check_function_arguments): Adjust declaration.
16503
16504 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
16505
16506         PR tree-optimization/69156
16507         * gimple.c (validate_type): Removed.
16508         (gimple_builtin_call_types_compatible_p): Use
16509         useless_type_conversion_p instead of validate_type.
16510         * value-prof.c (gimple_stringop_fixed_value): Fold
16511         icall_size to correct type.
16512
16513 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16514
16515         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
16516         effects.
16517
16518 2016-01-13  Richard Henderson  <rth@redhat.com>
16519
16520         PR tree-opt/68964
16521         * target.def (builtin_tm_load, builtin_tm_store): Remove.
16522         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
16523         (ix86_builtin_tm_store): Remove.
16524         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16525         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16526         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16527         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16528         * doc/tm.texi: Rebuild.
16529
16530         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
16531         (BUILT_IN_TM_MEMCPY_RTWN): New.
16532         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
16533         fallback from vector to integer helpers.
16534         (build_tm_load): Handle vector types directly, instead of
16535         via target hook.
16536         (build_tm_store): Likewise.
16537         (expand_assign_tm): Prepare for register types not handled by
16538         the above.  Copy them to memory and use memcpy.
16539         * tree.c (tm_define_builtin): New.
16540         (find_tm_vector_type): New.
16541         (build_tm_vector_builtins): New.
16542         (build_common_builtin_nodes): Call it.
16543
16544 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
16545
16546         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
16547         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
16548
16549 2016-01-13  Tom de Vries  <tom@codesourcery.com>
16550
16551         PR tree-optimization/69169
16552         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
16553         handled_struct_type param.
16554         (create_variable_info_for, intra_create_variable_infos): Call
16555         create_variable_info_for_1 with extra arg.
16556
16557 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
16558
16559         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
16560         and "armv8.1-a+crc" entries.
16561
16562 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
16563
16564         PR target/69228
16565         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
16566         Change first operand predicate from register_or_constm1_operand
16567         to register_operand.
16568         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
16569         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
16570         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
16571         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
16572         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
16573         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
16574         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
16575         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
16576         comparison with constm1_rtx from vec_prefetch_gen part.
16577
16578 2016-01-13  Richard Biener  <rguenther@suse.de>
16579
16580         PR tree-optimization/69013
16581         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
16582         Exchange assert for a test.
16583
16584 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16585
16586         PR target/69247
16587         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
16588
16589 2016-01-13  Richard Biener  <rguenther@suse.de>
16590
16591         PR tree-optimization/69242
16592         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
16593         assert with a check.
16594
16595 2016-01-13  Richard Biener  <rguenther@suse.de>
16596
16597         PR tree-optimization/69186
16598         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16599         Properly guard vect_update_misalignment_for_peel call.
16600
16601 2016-01-12  Jeff Law  <law@redhat.com>
16602
16603         PR tree-optimization/pr67755
16604         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
16605         "need_profile_correction".
16606         (thread_block_1): Initialize new field to false by default.  If we
16607         have multiple thread paths through a common joiner to different
16608         final targets, then set new field to true.
16609         (compute_path_counts): Only do count adjustment when it's really
16610         needed.
16611
16612 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16613
16614         * doc/invoke.texi (Spec Files): Move section down in file, past
16615         all command-line option descriptions.
16616
16617 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16618
16619         PR middle-end/54809
16620         * doc/gty.texi: Remove documentation of mark_hook.
16621         * gengtype.c (struct write_types_data): Remove code to support
16622         mark_hook attribute.
16623         (walk_type): Likewise.
16624         (write_func_for_structure): Likewise.
16625
16626 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16627
16628         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
16629         Directory Options, and -specs= to Overall Options.
16630         (Overall Options): Adjust similarly.  Reorder to group related
16631         options together.  Make -specs= cross-reference the spec file details.
16632         (Directory Options): Adjust similarly.
16633
16634 2016-01-12  Jeff Law  <law@redhat.com>
16635
16636         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
16637
16638 2016-01-12  Olivier Hainque  <hainque@adacore.com>
16639
16640         * gcc.c (spec_undefvar_allowed): New global.
16641         (process_command): Set to true when running for --version or --help,
16642         alone or together.
16643         (getenv_spec_function): When the variable is not defined, use the
16644         variable name as the variable value if we're allowed not to issue
16645         a fatal error.
16646
16647 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
16648
16649         PR tree-optimization/68911
16650         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
16651         information computed for expression "init + nit * step".
16652
16653 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16654
16655         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
16656         about name of GCC executable.  Remove deleted node from menu.
16657         (Directory Options) <-B>: Remove cross-reference to deleted node.
16658         (Target Options): Delete section.
16659
16660 2016-01-12  Christian Bruel  <christian.bruel@st.com>
16661
16662         PR target/69180
16663         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
16664         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
16665
16666 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
16667
16668         PR target/69198
16669         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
16670         aligned_mem is properly set for AVX512-VL floating point masked
16671         stores.
16672
16673         PR target/69175
16674         * ifcvt.c (cond_exec_process_if_block): When removing the last
16675         insn from then_bb, remove also any possible barriers that follow it.
16676
16677 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
16678
16679         PR target/68456
16680         PR target/69226
16681         * config/i386/iamcu.h (SIZE_TYPE): New macro.
16682         (PTRDIFF_TYPE): Likewise.
16683         (WCHAR_TYPE): Likewise.
16684         (WCHAR_TYPE_SIZE): Likewise.
16685         (STDINT_LONG32): Likewise.
16686
16687 2016-01-12  Richard Biener  <rguenther@suse.de>
16688
16689         PR tree-optimization/69053
16690         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
16691         convert initial value for cond reductions.
16692
16693 2016-01-12  Richard Biener  <rguenther@suse.de>
16694
16695         PR tree-optimization/69007
16696         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
16697         widen_sum after dot_prod and sad.
16698
16699 2016-01-12  Richard Biener  <rguenther@suse.de>
16700
16701         PR tree-optimization/69168
16702         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
16703         pattern stmt SLP type.
16704         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
16705         end up unused so cope with that case.
16706
16707 2016-01-12  Richard Biener  <rguenther@suse.de>
16708
16709         PR tree-optimization/69157
16710         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
16711         stmts def type only during analyze phase.
16712         (vectorizable_call): Likewise.
16713         (vectorizable_simd_clone_call): Likewise.
16714         (vectorizable_conversion): Likewise.
16715         (vectorizable_assignment): Likewise.
16716         (vectorizable_shift): Likewise.
16717         (vectorizable_operation): Likewise.
16718         (vectorizable_store): Likewise.
16719         (vectorizable_load): Likewise.
16720
16721 2016-01-12  Richard Biener  <rguenther@suse.de>
16722
16723         PR tree-optimization/69174
16724         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
16725         space.
16726         (vectorizable_load): Properly compute the number of loads needed
16727         for permuted strided SLP loads and do not spuriously assign
16728         to SLP_TREE_VEC_STMTS.
16729
16730 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
16731
16732         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
16733         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
16734         (MD_EXEC_PREFIX): Remove.
16735         (MD_STARTFILE_PREFIX) Removee.
16736         (FILE_NAME_ABSOLUTE_P): Remove.
16737         (CPP_SPEC): Do not read macros from sys/version.h.
16738         (LINK_COMMAND_SPEC): Remove.
16739         (LOCAL_INCLUDE_DIR): Remove.
16740         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
16741         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
16742         (POST_LINK_SPEC): Define to invoke stubify after linker
16743         (LIBSTDCXX): Remove define
16744         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
16745         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
16746         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
16747         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
16748         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
16749         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
16750         (i386_djgpp_asm_named_section): Add propotype of new procedure
16751
16752         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
16753         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
16754         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
16755         in config/i386/djgpp.h).
16756         (STANDARD_STARTFILE_PREFIX_2): Define identical to
16757         STANDARD_STARTFILE_PREFIX_1.
16758         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
16759         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
16760         installation errors.
16761         (MAX_OFILE_ALIGNMENT): Define to 128.
16762         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
16763
16764         * config/i386/djgpp.c: New file. Add implementation of
16765         i386_djgpp_asm_named_section.
16766
16767         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
16768
16769         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
16770         Add rule for building djgpp.o.
16771
16772 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16773
16774         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
16775         (rtx_is_swappable_p): Reductions are swappable.
16776         (insn_is_swappable_p): V2DF reductions are swappable.
16777
16778 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
16779
16780         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
16781         reloads for other unsupported memory operands.
16782
16783 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
16784             Jim Wilson  <jim.wilson@linaro.org>
16785
16786         PR target/69194
16787         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
16788         copy_to_mode_reg instead of force_reg.
16789
16790 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
16791
16792         PR target/69225
16793         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
16794         TARGET_80387 is true.
16795
16796 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
16797
16798         PR target/69071
16799         * lra-eliminations.c (move_plus_up): Only move plus up
16800         if subreg of the constant can be simplified into constant
16801         and use the simplified subreg of the constant instead of
16802         the original constant.
16803
16804         * fold-const.c (fold_convertible_p): Don't return true
16805         for conversion of VECTOR_TYPE to same sized integral type.
16806         (fold_convert_loc): Fix up formatting.  Fold conversion of
16807         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
16808         instead of NOP_EXPR.
16809
16810         PR tree-optimization/69214
16811         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
16812         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16813         Formatting fix.
16814
16815         PR tree-optimization/69207
16816         * tree-vect-slp.c (vect_get_constant_vectors): For
16817         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
16818         fold_convertible_p to vector_type's element type, and always
16819         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
16820
16821 2016-01-11  Richard Biener  <rguenther@suse.de>
16822
16823         PR tree-optimization/69173
16824         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
16825         fixup the cycle if all stmts are in a pattern.
16826
16827 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
16828
16829         PR middle-end/68999
16830         * alias.c (base_alias_check): Move check for addresses with
16831         alignment ANDs before the call for compare_base_decls.
16832         (memrefs_conflict_p): Return -1 for different decls
16833         that went through alignment adjustments.
16834
16835 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16836
16837         PR rtl-optimization/68796
16838         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
16839         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
16840         and QImode comparisons against zero with CC_NZmode.
16841         * config/aarch64/iterators.md (short_mask): New mode_attr.
16842
16843 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
16844
16845         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
16846         (<avx512>_store<mode>_mask): Likewise.
16847
16848 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
16849             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16850
16851         PR rtl-optimization/68841
16852         * ifcvt.c (struct noce_if_info): Add orig_x field.
16853         (bbs_ok_for_cmove_arith): Add to_rename parameter.
16854         Don't record conflicts on to_rename if it's present.
16855         Allow memory destinations in sets.
16856         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
16857         blocks, passing orig_x to the checks.
16858         (noce_process_if_block): Set if_info->orig_x appropriately.
16859
16860 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16861
16862         PR tree-optimization/69069
16863         * tree-parloops.c (create_parallel_loop): Add missing phi args.
16864
16865 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16866
16867         PR rtl-optimization/68920
16868         * config/i386/i386.c (ix86_option_override_internal): Restrict number
16869         of conditional moves for  RTL if-conversion to 1 for
16870         TARGET_ONE_IF_CONV_INSN.
16871         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
16872         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
16873         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
16874         parameter to restirct number of conditional moves for
16875         RTL if-conversion.
16876         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
16877         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
16878         conditionl moves.
16879
16880 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
16881
16882         PR bootstrap/69123
16883         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
16884         onepart vars.  Fix typo in comment.  Fix reversed condition in
16885         unshare test.
16886         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
16887
16888         PR bootstrap/69123
16889         * var-tracking.c (dump_onepart_variable_differences): New.
16890         (dataflow_set_different): If a detailed dump is requested,
16891         delay early returns and dump differences between onepart
16892         variables present before and after, and added variables.
16893
16894 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
16895
16896         PR target/69010
16897         * expr.c (expand_expr_real_1): For boolean vector constants
16898         with a scalar mode use const_scalar_mask_from_tree.
16899         (const_scalar_mask_from_tree): New.
16900         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
16901         assigned to a mask type to handle constants.
16902
16903 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16904
16905         PR ipa/69044
16906         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16907         useless parameters if we cannot change function signature.
16908
16909 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16910
16911         PR ipa/66616
16912         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16913         flag.
16914
16915 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16916
16917         PR tree-optimization/69109
16918         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16919         latch with phi.
16920
16921 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16922
16923         PR tree-optimization/69108
16924         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
16925         res is not used in a phi.
16926
16927 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
16928
16929         PR 67425
16930         * common.opt (frandom-seed): Fix parameter name.
16931         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16932
16933 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16934
16935         PR tree-optimization/69058
16936         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16937         not supported.
16938
16939 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
16940
16941         * config/arc/arc.opt (mdiv-rem): Add period to the end.
16942         (mcode-density): Likewise.
16943
16944 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16945
16946         PR tree-optimization/69062
16947         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
16948         (parallelize_loops): Don't paralelize loop that has phi with address
16949         arg.
16950
16951 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16952
16953         PR tree-optimization/69039
16954         * tree-parloops.c (try_create_reduction_list): Only allow single exit
16955         phi for reduction.
16956
16957 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
16958
16959         PR middle-end/68743
16960         * match.pd: Require target has function_c99_misc before doing
16961         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
16962
16963 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
16964
16965         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16966         use GMPINC.
16967         * configure: Regenerate.
16968
16969 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
16970
16971         PR middle-end/50865
16972         PR tree-optimization/69097
16973         * fold-const.h (expr_not_equal_to): New prototype.
16974         * fold-const.c: Include stringpool.h and tree-ssanames.h.
16975         (expr_not_equal_to): New function.
16976         * match.pd (X % -Y is the same as X % Y): Don't optimize
16977         unless X is known not to be equal to minimum or Y is known
16978         not to be equal to -1.
16979         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
16980         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
16981         (simplify_stmt_using_ranges): Adjust caller.
16982         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
16983         substitute_and_fold.
16984
16985 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
16986
16987         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16988         w/o DECL_NAME.
16989
16990 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16991
16992         PR tree-optimization/69167
16993         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
16994         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
16995         ops[0] comparison.
16996         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16997
16998 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16999             Richard Biener  <rguenther@suse.de>
17000
17001         PR tree-optimization/68707
17002         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
17003         instances that can be handled via vect_load_lanes.
17004
17005 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
17006
17007         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
17008         if we can't determine address equivalence.
17009         * alias.c (compare_base_decl): Update for changed return value of
17010         symtab_node::equal_address_to.
17011
17012 2016-01-08  Jason Merrill  <jason@redhat.com>
17013
17014         PR c++/68983
17015         PR c++/67557
17016         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
17017         * expr.c (store_field): Not here.
17018         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
17019         call with TREE_ADDRESSABLE type.
17020         * tree-cfg.c (verify_gimple_call): Adjust.
17021
17022 2016-01-08  Olivier Hainque  <hainque@adacore.com>
17023
17024         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
17025         libc_internal.
17026
17027 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17028
17029         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
17030         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
17031         (reduc_smin_v2sf): Rename to...
17032         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
17033         (reduc_splus_v2sf): Rename to...
17034         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
17035
17036 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17037
17038         PR tree-optimization/69162
17039         * gimplify.c (gimplify_va_arg_expr): Encode original type of
17040         valist argument in another argument.
17041         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
17042         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
17043         to determine the va_list type, build a MEM_REF instead of
17044         build_fold_indirect_ref.
17045
17046         PR tree-optimization/69172
17047         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
17048         gimple_build.
17049
17050 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17051
17052         PR tree-optimization/67781
17053         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
17054         and cmpnop in two steps: first the ones not accessed in original
17055         gimple expression in a endian independent way and then the ones not
17056         accessed in the final result in an endian-specific way.
17057
17058 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17059
17060         PR tree-optimization/69083
17061         * tree-vect-slp.c (vect_get_constant_vectors): For
17062         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
17063         element type.  If op is fold_convertible_p to vector_type's element
17064         type, use NOP_EXPR instead of VCE.
17065
17066 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
17067
17068         PR rtl-optimization/67778
17069         PR rtl-optimization/68634
17070         PR rtl-optimization/68909
17071         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
17072         block from the stack until done with it.  Remove a superfluous
17073         bitmap set.  Remove a superfluous bitmap test.
17074
17075 2016-01-07  Martin Sebor  <msebor@redhat.com>
17076
17077         PR c/68966
17078         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
17079         constraint on the type of arguments.
17080
17081 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
17082
17083         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
17084         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
17085         unaligned_access on the gcc_options set.
17086         * config/arm/arm.c (arm_option_override_internal): Use
17087         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
17088
17089 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17090
17091         PR target/69140
17092         * config/i386/i386.c (ix86_frame_pointer_required): Enable
17093         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
17094
17095 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17096
17097         Revert
17098         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17099
17100         PR target/69140
17101         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17102         depending on frame_pointer_needed before remaining integer and SSE
17103         registers are saved.
17104
17105 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
17106
17107         PR 1078
17108         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
17109
17110 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17111
17112         PR target/69171
17113         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
17114         Use the "xBm" constraint.
17115         (float<sseintvecmodelower><mode>2<mask_name><round_name):
17116         Likewise.
17117         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
17118         (sse_cvtsi2ssq<round_name>): Likewise.
17119         (sse_cvtss2si<round_name>): Likewise.
17120         (sse_cvtss2siq<round_name>): Likewise.
17121         (sse2_cvtsi2sdq<round_name>): Likewise.
17122         (sse2_cvtsd2si<round_name>): Likewise.
17123         (sse2_cvtsd2siq<round_name>): Likewise.
17124         * config/i386/subst.md (round_nimm_scalar_predicate): New
17125         predicate.
17126
17127 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
17128
17129         PR middle-end/67639
17130         * varasm.c (make_decl_rtl): Mark invalid register vars as
17131         DECL_EXTERNAL.
17132
17133         PR rtl-optimization/66206
17134         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
17135         All callers changed.
17136
17137 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
17138
17139         PR tree-optimization/69141
17140         * tree-ssa-pre.c: Include langhooks.h.
17141         (eliminate_dom_walker::before_dom_children): Use
17142         lang_hooks.decl_printable_name instead of
17143         cgraph_node::get ()->name ().
17144
17145         PR middle-end/68960
17146         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
17147         it and DECL_ALIGN too.
17148
17149 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
17150
17151         * config/mips/mips-ftypes.def: Sort to lexicographical order.
17152
17153 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17154
17155         PR target/69140
17156         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17157         depending on frame_pointer_needed before remaining integer and SSE
17158         registers are saved.
17159
17160 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17161
17162         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
17163         mode iterator with VSX_M2.
17164         (*p9_vecstore_<mode>): Likewise.
17165         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
17166         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
17167         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
17168         (define_split for VSX_LE128 stores): Likewise.
17169         (define_peephole2 for TImode LE swaps): Likewise.
17170         (define_split for VSX_LE128 post-reload stores): Likewise.
17171
17172 2016-01-06  Marek Polacek  <polacek@redhat.com>
17173
17174         PR sanitizer/69099
17175         * convert.c (convert_to_integer_1): Adjust call to
17176         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
17177         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
17178         EXPR instead of ARG.
17179         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
17180
17181 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17182
17183         PR 1078
17184         * doc/extend.texi (RL78 Variable Attributes): New section.
17185
17186 2016-01-05  Marek Polacek  <polacek@redhat.com>
17187
17188         PR c/69104
17189         * builtins.c (get_memmodel): Use expansion point location rather than
17190         the input location.  Call warning_at rather than warning.
17191         (expand_builtin_atomic_compare_exchange): Likewise.
17192         (expand_builtin_atomic_load): Likewise.
17193         (expand_builtin_atomic_store): Likewise.
17194         (expand_builtin_atomic_clear): Likewise.
17195
17196 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17197
17198         PR target/68991
17199         * config/i386/i386.c (ix86_expand_vector_logical_operator):
17200         Replace nonimmediate_operand with vector_operand.
17201         * config/i386/predicates.md (vector_operand): New predicate.
17202         (general_vector_operand): Replace nonimmediate_operand with
17203         vector_operand.
17204         * config/i386/sse.md: Replace nonimmediate_operand with
17205         vector_operand and m constraint with Bm constraint on SSE
17206         patterns with 16-byte memory operand.
17207         * config/i386/subst.md (round_nimm_predicate): Replace
17208         nonimmediate_operand with vector_operand.
17209         (round_saeonly_nimm_predicate): Likewise.
17210         (round_saeonly_nimm_scalar_predicate): New.
17211
17212 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17213
17214         PR target/68991
17215         * config/i386/constraints.md (Bm): New constraint.
17216         * config/i386/predicates.md (vector_memory_operand): New
17217         predicate.
17218         * config/i386/sse.md: Replace xm with xBm in plusminus and
17219         any_logic patterns.
17220
17221 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17222
17223         PR 1078
17224         * doc/extend.texi (V850 Function Attributes): New section.
17225         (V850 Variable Attributes): New section.
17226
17227 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17228
17229         PR 1078
17230         * doc/extend.texi (MicroBlaze Function Attributes): Document
17231         interrupt_handler and fast_interrupt attributes.
17232
17233 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
17234
17235         PR other/60465
17236         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
17237         for local symbolic operands.
17238         * config/ia64/predicates.md (local_symbolic_operand64): New
17239         predicate.
17240
17241 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17242
17243         PR rtl-optimization/68651
17244         * combine.c (combine_simplify_rtx): Canonicalize x + x into
17245         x << 1.
17246
17247 2016-01-05  Nathan Sidwell  <nathan@acm.org>
17248
17249         * alias.c (compare_base_decls): Use symtab_node::get.
17250
17251 2016-01-05  Nick Clifton  <nickc@redhat.com>
17252
17253         PR target/68770
17254         * ira-costs.c (copy_cost): Initialise the t_icode field of the
17255         secondary_reload_info structure.
17256
17257         PR target/66655
17258         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
17259         decls if weak support is available.
17260
17261 2016-01-04  Martin Sebor  <msebor@redhat.com>
17262
17263         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
17264
17265 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
17266
17267         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17268         OPTION_MASK_P9_DFORM.
17269
17270         * config/rs6000/constraints.md (wo constraint): New constraint for
17271         ISA 3.0 (power9).
17272
17273         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
17274         for wo constraint.
17275         (rs6000_init_hard_regno_mode_ok): Likewise.
17276
17277         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
17278         wo constraint.
17279
17280         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
17281         expanders not to have constraints.  Add support for ISA 3.0 xxperm
17282         instruction.  Add support for fusing xxlor with xxperm.
17283         (altivec_vperm_<mode>_internal): Likewise.
17284         (altivec_vperm_v8hiv16qi): Likewise.
17285         (altivec_vperm_<mode>v16q): Likewise.
17286         (altivec_vperm_<mode>_uns): Likewise.
17287         (vperm_v8hiv4si): Likewise.
17288         (vperm_v16qiv8hi): Likewise.
17289
17290         * doc/md.texi (RS/6000 constraints): Document wo constraint.
17291
17292 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
17293
17294         Update copyright years.
17295
17296         * gcc.c (process_command): Update copyright notice dates.
17297         * gcov-dump.c (print_version): Ditto.
17298         * gcov.c (print_version): Ditto.
17299         * gcov-tool.c (print_version): Ditto.
17300         * gengtype.c (create_file): Ditto.
17301         * doc/cpp.texi: Bump @copying's copyright year.
17302         * doc/cppinternals.texi: Ditto.
17303         * doc/gcc.texi: Ditto.
17304         * doc/gccint.texi: Ditto.
17305         * doc/gcov.texi: Ditto.
17306         * doc/install.texi: Ditto.
17307         * doc/invoke.texi: Ditto.
17308
17309 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17310
17311         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
17312         modes larger than TImode as TImode if NEON is not enabled.
17313
17314 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17315
17316         PR target/69100
17317         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
17318         mode for %f0-%f31 only if TARGET_FPU.
17319
17320 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17321
17322         PR target/69072
17323         * config/sparc/sparc.c (scan_record_type): Take into account subfields
17324         to compute the PACKED_P predicate.
17325         (function_arg_record_value): Minor tweaks.
17326
17327 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17328
17329         * doc/install.texi (--with-multilib-list): Describe the meaning of the
17330         option for arm*-*-* targets.
17331
17332 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
17333
17334         * doc/extend.texi (Common Function Attributes): Move docs for
17335         MSP430-specific attributes to....
17336         (MSP430 Function Attributes): ...here.  Delete the redundant
17337         entries and copy-edit the remaining text.
17338         (MSP430 Variable Attributes): Use uniform format for index
17339         entries and add a cross-reference to the corresponding function
17340         attribute docs.
17341
17342 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
17343
17344         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
17345         -finite-math typo.
17346         (x86 Options): Likewise.
17347
17348 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17349
17350         PR 1078
17351
17352         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
17353         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
17354         to corresponding attribute.
17355
17356 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17357
17358         * doc/extend.texi (Common Function Attributes) <noplt>: Move
17359         to correct alphabetization of table.  Copy-edit and correct
17360         markup.
17361         <stack_protect>: Likewise.
17362         <target_clones>: Likewise.
17363         <simd>: Likewise.
17364         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
17365         Correct punctuation.
17366         (Code Gen Options) <-fno-plt>: Copy-edit.
17367
17368 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17369
17370         PR target/68917
17371         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
17372         SI values.  Explicitly convert SI to DI and vice-versa.
17373
17374 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
17375
17376         PR tree-optimization/69070
17377         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
17378         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
17379
17380         PR sanitizer/69055
17381         * ubsan.c (ubsan_instrument_float_cast): Call
17382         initialize_sanitizer_builtins.
17383
17384         PR target/69015
17385         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
17386 \f
17387 Copyright (C) 2016 Free Software Foundation, Inc.
17388
17389 Copying and distribution of this file, with or without modification,
17390 are permitted in any medium without royalty provided the copyright
17391 notice and this notice are preserved.