1 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
4 for ISA 3.0 min/max support.
5 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
6 conditional move support.
7 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
8 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
10 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
11 conditional moves where the comparison type is different from move
13 (fp_minmax): New code iterator for smin/smax.
14 (minmax): New code attributes for min/max.
16 (smax<mode>3): Combine min, max insns into one insn using the
17 fp_minmax code iterator. Add support for ISA 3.0 min/max
18 instructions that don't need -ffast-math.
19 (s<minmax><mode>3): Likewise.
20 (smax<mode>3_vsx): Likewise.
21 (smin<mode>3): Likewise.
22 (s<minmax><mode>3_vsx): Likewise.
23 (smin<mode>3_vsx): Likewise.
24 (pre-VSX min/max splitters): Likewise.
25 (s<minmax><mode>3_fpr): Likewise.
26 (movsfcc): Rewrite floating point conditional moves to combine
27 SFmode/DFmode into a single insn.
28 (mov<mode>cc): Likewise.
30 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
31 SFDF2 iterators to handle all combinations.
32 (fseldfsf4): Likewise.
33 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
34 (fseldfdf4): Likewise.
35 (fselsfdf4): Likewise.
36 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
37 comparison instructions that set a 0/-1 mask, and use it for
38 floating point conditional move via XXSEL.
39 (fpmask<mode>): Likewise.
40 (xxsel<mode>): Likewise.
41 * config/rs6000/predicates.md (min_max_operator): Delete, no
43 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
44 instructions that generate a 0/-1 mask for use with XXSEL.
45 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
46 say whether floating point min/max is available, either through
47 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
48 (TARGET_MINMAX_DF): Likewise.
50 2016-05-27 Alan Modra <amodra@gmail.com>
52 PR rtl-optimization/71275
53 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
54 for update_equiv_regs and combine_and_move_insns.
56 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
58 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
59 if_then_else or cond RTXes to calculate attribute value.
60 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
61 <attr "length_immediate>: Ditto.
62 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
63 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
64 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
66 <attr "prefix_data16">: Ditto.
67 <attr "prefix_extra">: Ditto.
68 <attr "length_immediate">: Ditto.
69 <attr "prefix">: Ditto.
70 (vec_set<mode>_0) <attr "isa">: Ditto.
71 <attr "prefix_extra">: Ditto.
72 <attr "length_immediate">: Ditto.
73 <attr "prefix">: Ditto.
74 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
75 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
76 (sse2_storelpd) <attr "prefix_data16">: Ditto.
77 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
78 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
79 <attr "length_immediate">: Ditto.
80 <attr "prefix">: Ditto.
81 (sse2_movsd) <attr "length_immediate">: Ditto.
82 <attr "prefix">: Ditto.
83 (vec_concatv2df) <attr "isa">: Ditto.
84 <attr "prefix">: Ditto.
85 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
86 (*vec_extractv2di_1) <attr "isa">: Ditto.
88 <attr "length_immediate">: Ditto.
89 <attr "prefix_rex">: Ditto.
90 <attr "prefix_extra">: Ditto.
91 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
92 <attr "prefix_extra">: Ditto.
93 <attr "length_immediate">: Ditto.
94 (vec_concatv2di) <attr "isa">: Ditto.
95 <attr "prefix_extra">: Ditto.
96 <attr "length_immediate">: Ditto.
97 <attr "prefix">: Ditto.
99 2016-05-26 Martin Liska <mliska@suse.cz>
101 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
103 (operator+): Likewise.
104 (operator-): Likewise.
105 (comp_cost::operator+=): Likewise.
106 (comp_cost::operator-=): Likewise.
107 (comp_cost::operator/=): Likewise.
108 (comp_cost::operator*=): Likewise.
109 (operator<): Likewise.
110 (operator==): Likewise.
111 (operator<=): Likewise.
113 (infinite_cost_p): Likewise.
114 (add_costs): Likewise.
115 (sub_costs): Likewise.
116 (compare_costs): Likewise.
117 (set_group_iv_cost): Use the newly introduced functions.
118 (get_address_cost): Likewise.
119 (get_shiftadd_cost): Likewise.
120 (force_expr_to_var_cost): Likewise.
121 (split_address_cost): Likewise.
122 (ptr_difference_cost): Likewise.
123 (difference_cost): Likewise.
124 (get_computation_cost_at): Likewise.
125 (determine_group_iv_cost_generic): Likewise.
126 (determine_group_iv_cost_address): Likewise.
127 (determine_group_iv_cost_cond): Likewise.
128 (autoinc_possible_for_pair): Likewise.
129 (determine_group_iv_costs): Likewise.
130 (cheaper_cost_pair): Likewise.
131 (iv_ca_recount_cost): Likewise.
132 (iv_ca_set_no_cp): Likewise.
133 (iv_ca_set_cp): Likewise.
134 (iv_ca_cost): Likewise.
135 (iv_ca_new): Likewise.
136 (iv_ca_dump): Likewise.
137 (iv_ca_narrow): Likewise.
138 (iv_ca_prune): Likewise.
139 (iv_ca_replace): Likewise.
140 (try_add_cand_for): Likewise.
141 (try_improve_iv_set): Likewise.
142 (find_optimal_iv_set): Likewise.
144 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
146 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
147 that internal functions will clobber all caller-saved registers.
149 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
151 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
152 Return a better case_values_threshold when optimizing.
154 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
156 * config/aarch64/aarch64-simd.md (aarch64_combinez):
157 Add ? to integer variant.
158 (aarch64_combinez_be): Likewise.
160 2016-05-26 Jakub Jelinek <jakub@redhat.com>
162 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
163 instead of x constraint.
164 (vcvtps2ph256<mask_name>): Likewise.
166 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
167 alternative. Formatting fix.
170 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
172 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
173 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
174 maybe_evex prefix instead of vex.
175 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
176 EXT_REX_SSE_REG_P (op0) case in the splitter.
178 2016-05-25 Jeff Law <law@redhat.com>
180 PR tree-optimization/71272
181 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
182 Update comments. Add test for empty path.
184 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
186 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
187 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
188 special case builtin.
189 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
190 code for ALTIVEC_BUILTIN_VEC_CMPNE.
191 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
192 for __builtin_vec_cmpne.
194 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
196 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
197 redundant test and bail out if the type of the new operand is not
198 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
200 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
202 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
203 (x_ix86_target_flags_explicit): Remove.
204 * config/i386/i386.c (ix86_function_specific_save): Do not copy
205 x_ix86_target_flags_explicit.
206 (ix86_function_specific_restore): Ditto.
208 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
209 H.J. Lu <hongjiu.lu@intel.com>
212 * common/config/i386/i386-common.c
213 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
214 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
215 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
216 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
217 (-mgeneral-regs-only): Add new option.
218 * config/i386/i386.c (ix86_option_override_internal): Don't enable
219 x87 instructions if only general registers are allowed.
220 (ix86_target_string): Add ix86_flags argument. Handle additional
221 flags options through ix86_flags argument. Update all callers.
222 * doc/invoke.texi: Document -mgeneral-regs-only.
224 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
226 PR rtl-optimization/66940
227 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
228 decrementing desired_val will not overflow before performing these
231 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
233 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
234 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
235 * config/i386/i386.c (enum ix86_builtins): Add
236 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
237 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
238 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
239 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
240 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
241 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
242 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
243 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
244 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
245 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
246 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
247 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
248 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
249 __builtin_ia32_cvtps2dq512_mask.
250 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
251 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
252 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
254 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
256 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
257 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
259 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
260 (avx512f_vec_pack_sfix_v8df): New define_expand.
261 (avx512f_roundpd512): Rename to ...
262 (avx512f_round<castmode>512): ... this. Change iterator.
263 (avx512f_roundps512_sfix): New define_expand.
264 (round<mode>2_sfix): Change iterator.
266 2016-05-25 Nick Clifton <nickc@redhat.com>
268 * config/msp430/msp430.c (msp430_attr): Produce an error if a
269 static interrupt handler is detected.
270 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
271 default linker script.
272 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
273 the low part of a symbolic pointer.
275 2016-05-25 Richard Biener <rguenther@suse.de>
277 PR tree-optimization/71261
278 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
279 interesting stmt instead of immediate uses when looking
280 for the use operand to replace.
282 2016-05-25 Martin Liska <mliska@suse.cz>
284 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
286 2016-05-25 Richard Biener <rguenther@suse.de>
288 PR tree-optimization/71264
289 * tree-vect-stmts.c (vect_init_vector): Properly deal with
292 2016-05-25 Martin Liska <mliska@suse.cz>
294 PR tree-optimization/71239
295 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
296 if DECL_SIZE is NULL.
298 2016-05-25 Richard Biener <rguenther@suse.de>
300 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
301 * tree-if-conv.c (pass_data_if_conversion): Use it.
303 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
305 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
306 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
307 * varpool.c (varpool_node::get_availability): Likewise.
309 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
311 * config/rs6000/altivec.md (VNEG iterator): New iterator for
312 VNEGW/VNEGD instructions.
313 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
314 (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
315 support for ISA 3.0 VNEGW/VNEGD instructions.
317 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
319 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
320 pointers inside OACC_DATA regions.
321 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
322 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
323 (gimplify_adjust_omp_clauses): Fix typo in comment.
325 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
327 * config/rs6000/altivec.md (VParity): New mode iterator for vector
328 parity built-in functions.
329 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
331 (p9v_parity<mode>2): Likewise.
332 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
334 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
335 (parity<mode>2): ISA 3.0 expander for vector parity.
336 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
338 (BU_P9_64BIT_MISC_0): Likewise.
339 (BU_P9_MISC_0): Likewise.
340 (BU_P9V_AV_1): Likewise.
341 (BU_P9V_AV_2): Likewise.
342 (BU_P9V_AV_3): Likewise.
343 (BU_P9V_AV_P): Likewise.
344 (BU_P9V_VSX_1): Likewise.
345 (BU_P9V_OVERLOAD_1): Likewise.
346 (BU_P9V_OVERLOAD_2): Likewise.
347 (BU_P9V_OVERLOAD_3): Likewise.
348 (VCTZB): Add vector count trailing zeros support.
352 (VPRTYBD): Add vector parity support.
355 (VCTZ): Add overloaded vector count trailing zeros support.
356 (VPRTYB): Add overloaded vector parity support.
357 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
358 overloaded vector count trailing zeros and parity instructions.
359 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
360 vector parity support.
361 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
362 trailing zeros support.
363 (vec_cntlz): Likewise.
364 (vec_vctzb): Likewise.
365 (vec_vctzd): Likewise.
366 (vec_vctzh): Likewise.
367 (vec_vctzw): Likewise.
368 (vec_vprtyb): Add ISA 3.0 vector parity support.
369 (vec_vprtybd): Likewise.
370 (vec_vprtybw): Likewise.
371 (vec_vprtybq): Likewise.
372 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
373 the ISA 3.0 vector count trailing zeros and vector parity built-in
376 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
378 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
379 when there is stmt_to_insert.
381 2016-05-24 Martin Sebor <msebor@redhat.com>
384 * gcc/tree.h (complete_or_array_type_p): New inline function.
386 2016-05-24 Jakub Jelinek <jakub@redhat.com>
388 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
389 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
390 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
392 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
393 Limit 1st alternative to noavx isa, split 2nd alternative into one
394 noavx and one avx alternative, use *x and Bm in the former and
395 x and m in the latter.
397 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
398 of sse4 for the first alternative, drop %v from the template
399 and d operand modifier. Split second alternative into one sse4_noavx
400 and one avx alternative, use *x instead of *v in the former and v
401 instead of *v in the latter.
402 (*sse4_1_extractps): Use noavx isa instead of * for the first
403 alternative, drop %v from the template. Split second alternative into
404 one noavx and one avx alternative, use *x instead of *v in the
405 former and v instead of *v in the latter.
406 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
407 with noavx and the last one with avx.
408 (sse4_1_phminposuw): Guard first alternative with noavx isa,
409 split the second one into one noavx and one avx alternative,
410 use *x and Bm in the former and x and m in the latter one.
411 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
414 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
415 first two alternatives to noavx, use *x instead of *v in the second
416 one, add avx alternative without *.
417 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
418 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
419 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
421 2016-05-24 Jeff Law <law@redhat.com>
423 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
424 New function, extracted from...
425 (fsm_find_control_statement_thread_paths): Here. Use the new function.
426 Allow simple copies and constant initializations in the SSA chain.
428 2016-05-24 Marek Polacek <polacek@redhat.com>
431 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
434 2016-05-24 Jakub Jelinek <jakub@redhat.com>
437 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
438 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
439 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
440 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
441 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
443 2016-05-24 Richard Biener <rguenther@suse.de>
445 PR tree-optimization/71240
446 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
449 2016-05-24 Richard Biener <rguenther@suse.de>
451 PR tree-optimization/71230
452 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
454 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
456 * tree-vectorizer.h (vectorizable_comparison): Delete.
457 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
459 * tree-vect-stmts.c (vectorizable_call): Likewise.
460 (vectorizable_simd_clone_call): Likewise.
461 (vectorizable_conversion): Likewise.
462 (vectorizable_assignment): Likewise.
463 (vectorizable_shift): Likewise.
464 (vectorizable_operation): Likewise.
465 (vectorizable_load): Likewise.
466 (vectorizable_condition): Likewise.
467 (vectorizable_store): Likewise. Assert that we don't have
469 (vectorizable_comparison): Make static. Remove redundant
471 (vect_transform_stmt): Assert that we always have an slp_node
474 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
476 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
477 operands[2] against 1 with comparison against CONST1_RTX.
478 (<shift>di3_neon): Likewise.
479 * config/arm/predicates.md (const0_operand): Replace with comparison
482 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
484 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
485 operands[2] against 1 with comparison against CONST1_RTX.
488 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
493 (define_split above *compareqi_eq0): Likewise.
494 (define_split above "prologue"): Likewise.
495 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
496 * config/arm/predicates.md (shift_operator): Likewise.
497 (shift_nomul_operator): Likewise.
498 (sat_shift_operator): Likewise.
499 (thumb1_cmp_operand): Likewise.
500 (const_neon_scalar_shift_amount_operand): Replace manual range
502 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
503 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
505 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
507 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
508 with HOST_WIDE_INT_1.
510 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
511 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
512 (arm_canonicalize_comparison): Likewise.
513 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
515 (thumb1_size_rtx_costs): Likewise.
516 (vfp_const_double_index): Replace cast of 1 to unsigned
517 HOST_WIDE_INT with HOST_WIDE_INT_1U.
518 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
520 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
521 HOST_WIDE_INT with HOST_WIDE_INT_1U.
522 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
523 HOST_WIDE_INT with HOST_WIDE_INT_1.
525 2016-05-24 Marek Polacek <polacek@redhat.com>
527 * tree-cfg.h (should_remove_lhs_p): New predicate.
528 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
529 * gimplify.c (gimplify_modify_expr): Likewise.
530 * tree-cfg.c (verify_gimple_call): Likewise.
531 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
532 * gimple-fold.c: Include "tree-cfg.h".
533 (gimple_fold_call): Use should_remove_lhs_p.
535 2016-05-24 Richard Biener <rguenther@suse.de>
537 PR tree-optimization/71253
538 * cfganal.h (control_dependences): Make robust against edge
540 (control_dependences::control_dependences): Remove edge_list argument.
541 (control_dependences::get_edge): Remove.
542 (control_dependences::get_edge_src): Add.
543 (control_dependences::get_edge_dest): Likewise.
544 (control_dependences::m_el): Make a vector of edge src/dest index.
545 * cfganal.c (control_dependences::find_control_dependence): Adjust.
546 (control_dependences::control_dependences): Likewise.
547 (control_dependences::~control_dependence): Likewise.
548 (control_dependences::get_edge): Remove.
549 (control_dependences::get_edge_src): Add.
550 (control_dependences::get_edge_dest): Likewise.
551 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
553 (perform_tree_ssa_dce): Adjust.
554 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
556 (pass_loop_distribution::execute): Adjust. Do loop destroying
557 conditional on changed.
559 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
562 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
563 return. Reindent transformation comment and mention the ARM state
566 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
569 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
570 after build_and_add_sum creates new use stmt.
572 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
574 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
575 load_lanes/grouped_load classification comes first. Don't check
576 whether the vectorization factor is a multiple of the group size
579 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
581 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
582 GROUP_GAP for single-element interleaving.
583 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
586 2016-05-24 Richard Biener <rguenther@suse.de>
590 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
591 bases which are accessed with non-invariant indices.
592 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
593 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
595 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
598 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
599 (add_to_ops_vec): Add stmt_to_insert.
600 (add_repeat_to_ops_vec): Init stmt_to_insert.
601 (insert_stmt_before_use): New.
602 (transform_add_to_multiply): Remove mult_stmt insertion and add it
604 (get_ops): Init stmt_to_insert.
605 (maybe_optimize_range_tests): Likewise.
606 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
607 (rewrite_expr_tree_parallel): Likewise.
608 (reassociate_bb): Likewise.
610 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
613 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
614 ISA 3.0 xxperm fusion alternative.
615 (altivec_vperm_v8hiv16qi): Likewise.
616 (altivec_vperm_<mode>_uns_internal): Likewise.
617 (vperm_v8hiv4si): Likewise.
618 (vperm_v16qiv8hi): Likewise.
620 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
621 Kelvin Nilsen <kelvin@gcc.gnu.org>
623 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
624 vpermr/xxpermr on ISA 3.0.
625 (altivec_expand_vec_perm_le): Likewise.
626 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
627 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
630 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
632 * config/i386/i386.h (IS_STACK_MODE): Enable for
633 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
634 SSE_FLOAT_MODE_P macros.
635 * config/i386/i386.c (ix86_preferred_reload_class): Use
636 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
637 Cleanup regclass processing for CONST_DOUBLE_P.
638 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
639 (ix86_rtx_costs): Remove redundant TARGET_80387 check
640 with IS_STACK_MODE macro.
641 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
643 (*movdf_internal): Use IS_STACK_MODE macro.
644 (*movsf_internal): Ditto.
646 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
648 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
649 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
651 2016-05-23 Jeff Law <law@redhat.com>
653 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
655 (fsm_find_control_statement_thread_paths): Call it.
657 2016-05-23 Martin Jambor <mjambor@suse.cz>
660 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
661 from_global_constant if t is not NULL.
663 2016-05-23 Marek Polacek <polacek@redhat.com>
666 * common.opt (Wswitch-unreachable): New option.
667 * doc/invoke.texi: Document -Wswitch-unreachable.
668 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
671 2016-05-23 Bin Cheng <bin.cheng@arm.com>
673 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
674 TMR_INDEX is non-NULL.
676 2016-05-23 Richard Biener <rguenther@suse.de>
678 PR tree-optimization/71230
679 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
680 (try_special_add_to_ops): ... here. Always test for single-use.
682 2016-05-23 Martin Jambor <mjambor@suse.cz>
684 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
685 default block if a PHI node in the original one would be resized.
687 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
689 PR tree-optimization/58135
690 * tree-vect-slp.c: When group size is not multiple
691 of vector size, allow splitting of store group at
694 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
696 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
698 2016-05-22 Jakub Jelinek <jakub@redhat.com>
700 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
701 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
702 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
705 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
706 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
707 v constraint instead of x and vinserti32x4 insn.
709 * config/i386/sse.md (i128vldq): New mode iterator.
710 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
711 avx512dq and avx512vl alternatives.
713 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
714 constraint, use maybe_evex prefix instead of vex.
715 (vec_dupv4sf): Use v constraint instead of x for output
716 operand except for noavx alternative, use Yv constraint
717 instead of x for input. Use maybe_evex prefix instead of vex.
718 (*vec_dupv4si): Likewise.
719 (*vec_dupv2di): Likewise.
721 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
724 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
725 (linearize_expr_tree): Call try_special_add_to_ops.
726 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
728 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
730 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
731 to computed stack_usage.
733 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
736 * config/avr/avr.md (define_expand "mov<mode>"): If the source
737 operand is subreg (symbol_ref) then move the symbol ref to register.
739 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
741 * tree.c (array_at_struct_end_p): Look through MEM_REF.
743 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
746 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
749 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
751 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
752 ranges by calling get_single_symbol and tidy up. Look more closely
753 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
755 2016-05-20 Jeff Law <law@redhat.com>
757 * bitmap.c (bitmap_find_bit): Remove useless test.
759 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
761 * function.c (thread_prologue_and_epilogue_insns): Commit the
762 insertion of the epilogue.
764 2016-05-20 Martin Jambor <mjambor@suse.cz>
766 PR tree-optimization/70884
767 * tree-sra.c (initialize_constant_pool_replacements): Do not check
768 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
769 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
770 of constant pool data as a reason for scalarization.
772 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
774 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
776 (thumb1_expand_prologue): Likewise.
778 2016-05-20 Nathan Sidwell <nathan@acm.org>
780 * config/nvptx/nptx.c (nvptx_option_override): Only set
781 flag_toplevel_reorder, if not explicitly specified. Set
782 flag_no_common, unless explicitly specified.
784 2016-05-20 David Malcolm <dmalcolm@redhat.com>
786 * calls.c (can_implement_as_sibling_call_p): Mark param
787 reg_parm_stack_space with ATTRIBUTE_UNUSED.
789 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
791 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
792 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
793 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
795 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
796 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
799 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
801 * config/nvptx/nvptx.md (sincossf3): New pattern.
803 2016-05-20 David Malcolm <dmalcolm@redhat.com>
805 * calls.c (maybe_complain_about_tail_call): New function.
806 (initialize_argument_information): Call
807 maybe_complain_about_tail_call when clearing *may_tailcall.
808 (can_implement_as_sibling_call_p): Call
809 maybe_complain_about_tail_call when returning false.
810 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
811 ensure try_tail_call is set. Call maybe_complain_about_tail_call
812 if tail-call optimization fails.
813 * cfgexpand.c (expand_call_stmt): Initialize
814 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
815 * gimple-pretty-print.c (dump_gimple_call): Dump
816 gimple_call_must_tail_p.
817 * gimple.c (gimple_build_call_from_tree): Call
818 gimple_call_set_must_tail with the value of
819 CALL_EXPR_MUST_TAIL_CALL.
820 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
821 (gimple_call_set_must_tail): New function.
822 (gimple_call_must_tail_p): New function.
823 * print-tree.c (print_node): Update printing of TREE_STATIC
824 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
825 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
826 trailing comment listing applicable flags.
827 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
829 2016-05-20 David Malcolm <dmalcolm@redhat.com>
831 * calls.c (expand_call): Move "Rest of purposes for tail call
832 optimizations to fail" to...
833 (can_implement_as_sibling_call_p): ...this new function, and
834 split into multiple "if" statements.
836 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
838 * cfgloop.h (expected_loop_iterations_unbounded,
839 expected_loop_iterations): Unconstify.
840 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
841 profile with known upper bound; return 3 when profile is absent.
842 (expected_loop_iterations): Update.
844 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
846 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
847 and get_max_loop_iterations_int.
849 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
851 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
852 realistic upper bounds here.
854 2016-05-20 Jakub Jelinek <jakub@redhat.com>
857 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
858 calls if the LHS is variable length or has addressable type.
859 If targets[0]->decl is a noreturn call with void return type and
860 zero arguments, adjust fntype and remove lhs in that case.
862 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
864 PR tree-optimization/71079
865 PR tree-optimization/71206
866 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
868 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
870 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
871 (get_vec_alignment_for_array_decl): Likewise.
872 (get_vec_alignment_for_record_decl): Likewise.
873 (increase_alignment::execute): Move code to find alignment to
874 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
875 (type_align_map): New hash_map.
877 2016-05-20 Richard Guenther <rguenther@suse.de>
879 PR tree-optimization/29756
880 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
881 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
882 * fold-const.c (operand_equal_p): Likewise.
883 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
884 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
885 * tree-inline.c (estimate_operator_cost): Likewise.
886 * tree-pretty-print.c (dump_generic_node): Likewise.
887 * tree-ssa-operands.c (get_expr_operands): Likewise.
888 * cfgexpand.c (expand_debug_expr): Likewise.
889 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
890 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
891 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
892 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
893 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
894 (execute_update_addresses_taken): Do it.
896 2016-05-20 Richard Biener <rguenther@suse.de>
898 PR tree-optimization/71185
899 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
902 2016-05-20 Richard Biener <rguenther@suse.de>
904 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
905 gimple_seq_add_seq_without_update.
906 (release_bb_predicate): Assert we have no operands to free.
907 (if_convertible_loop_p_1): Calculate post dominators later.
908 Do not free BB predicates here.
909 (combine_blocks): Do not recompute BB predicates.
910 (version_loop_for_if_conversion): Save BB predicates around
913 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
915 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
916 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
917 code. Ignore sibcalls on EDGE_IGNORE edges.
918 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
919 on edges for sibcalls that run without prologue. The rest of the
920 function is combined from...
921 (fix_fake_fallthrough_edge): ... this, and ...
922 (try_shrink_wrapping): ... a part of this. Remove the bb_with
923 function argument, make it a local variable.
925 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
927 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
928 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
929 for 32-bit mode and SEH for 64-bit.
930 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
931 TARGET_64BIT_DEFAULT.
933 2016-05-19 Ryan Burn <contact@rnburn.com>
935 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
936 * gengtype.c (open_base_files): Add cilk.h to ifiles.
938 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
940 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
941 force pending loads from memory.
943 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
945 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
946 (UNSPEC_DARN_32): New unspec constant.
947 (UNSPEC_DARN_RAW): New unspec constant.
948 (darn_32): New instruction.
949 (darn_raw): New instruction.
950 (darn): New instruction.
951 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
952 support and documentation for this macro.
953 (BU_P9_MISC_1): New macro definition.
954 (BU_P9_64BIT_MISC_0): New macro definition.
955 (BU_P9_MISC_0): New macro definition.
956 (darn_32): New builtin definition.
957 (darn_raw): New builtin definition.
958 (darn): New builtin definition.
959 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
960 RS6000_BUILTIN_0 directives to surround each occurrence of
961 #include "rs6000-builtin.def".
962 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
963 RS6000_BTM_64BIT flags to the returned mask, depending on
965 (def_builtin): Correct an error in the assignments made to the
966 debugging variable attr_string.
967 (rs6000_expand_builtin): Add support for no-operand built-in
969 (builtin_function_type): Remove fatal_error assertion that is no
971 (rs6000_common_init_builtins): Add support for no-operand built-in
973 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
975 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
977 (RS6000_BTM_64BIT): New macro definition.
978 * doc/extend.texi: Document __builtin_darn (void),
979 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
982 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
984 * tree-vect-loop.c (vect_analyze_loop_2): Use also
985 max_loop_iterations_int.
987 2016-05-19 Marek Polacek <polacek@redhat.com>
989 PR tree-optimization/71031
990 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
991 condition and adjust the code a bit.
993 2016-05-19 Martin Liska <mliska@suse.cz>
995 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
996 auto_vec instead of vec.
998 2016-05-19 Martin Liska <mliska@suse.cz>
1000 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1002 2016-05-19 Martin Liska <mliska@suse.cz>
1004 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1006 2016-05-19 Martin Liska <mliska@suse.cz>
1008 * ipa-pure-const.c (set_function_state): Remove an existing
1010 (remove_node_data): Do not free it as it's released
1011 in set_function_state.
1013 2016-05-19 Martin Liska <mliska@suse.cz>
1015 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1018 2016-05-19 Martin Liska <mliska@suse.cz>
1020 * omp-simd-clone.c (simd_clone_adjust): Release vector.
1022 2016-05-19 Martin Liska <mliska@suse.cz>
1024 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1025 an auto_vec instead of re-creating it.
1027 2016-05-19 Martin Liska <mliska@suse.cz>
1029 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1030 auto_vec instead of vec.
1032 2016-05-19 Martin Liska <mliska@suse.cz>
1034 * lto-section-in.c (lto_get_section_data): Call
1035 lto_check_version with additional argument.
1036 * lto-streamer.c (lto_check_version): Add new argument.
1037 * lto-streamer.h (lto_check_version): Likewise.
1039 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1041 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
1042 Don't add cost of inner memory when handling sign-extended loads.
1044 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
1046 PR rtl-optimization/71148
1047 * cse.c (cse_main): Free dominance info.
1048 (rest_of_handle_cse): Don't free dominance info.
1049 (rest_of_handle_cse2): Likewise.
1050 (rest_of_handle_cse_after_global_opts): Likewise.
1052 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1055 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
1056 NULL_TREE early if NEON is not available. Remove now redundant check
1057 in ARM_CHECK_BUILTIN_MODE.
1059 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
1062 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
1063 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
1064 * doc/cpp.texi: Document new macros.
1066 2016-05-19 Bin Cheng <bin.cheng@arm.com>
1068 PR tree-optimization/69848
1069 * tree-vect-loop.c (vectorizable_reduction): Don't factor
1070 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
1072 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1074 * function.c (thread_prologue_and_epilogue_insn): Move the
1075 "goto epilogue_done" one block later.
1077 2016-05-19 Richard Biener <rguenther@suse.de>
1079 PR tree-optimization/70729
1080 * passes.def: Move LIM pass before PRE. Remove no longer
1081 required copyprop and move first DCE out of the loop pipeline.
1083 2016-05-18 David Malcolm <dmalcolm@redhat.com>
1086 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
1087 (OBJS-libcommon-target): ...here.
1088 * opts-common.c: Include spellcheck.h.
1089 (cmdline_handle_error): Build a vec of valid options and use it
1090 to suggest provide hints for misspelled arguments.
1092 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1095 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
1096 lhs if it has TREE_ADDRESSABLE type.
1098 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
1101 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
1102 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
1104 2016-05-18 Martin Jambor <mjambor@suse.cz>
1107 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
1108 input for NOP_EXPR pass-through functions.
1109 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
1110 aggregate global constant VAR_DECLs in constant jump functions.
1112 2016-05-18 Martin Jambor <mjambor@suse.cz>
1115 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
1116 from TREE_READONLY parameters.
1118 2016-05-18 Martin Jambor <mjambor@suse.cz>
1121 * cgraph.h (cgraph_indirect_call_info): New field
1122 guaranteed_unmodified.
1123 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
1124 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1126 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
1127 pass the parameter value to ipa_find_agg_cst_for_param.
1128 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
1129 guaranteed_unmodified, store AA results there instead of bailing out
1131 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
1132 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
1133 (find_constructor_constant_at_offset): New function.
1134 (ipa_find_agg_cst_from_init): Likewise.
1135 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
1136 static initializers of contants, report back through a new paameter
1137 from_global_constant if that was the case.
1138 (try_make_edge_direct_simple_call): Also pass parameter value to
1139 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1141 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
1142 (ipa_read_indirect_edge_info): Likewise.
1143 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
1144 (ipa_load_from_parm_agg): Likewise.
1146 2016-05-18 Jiong Wang <jiong.wang@arm.com>
1148 PR rtl-optimization/71150
1149 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
1152 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1155 * config/rs6000/constraints.md (wE constraint): New constraint
1156 for a vector constant that can be loaded with XXSPLTIB.
1157 (wM constraint): New constraint for a vector constant of a 1's.
1158 (wS constraint): New constraint for a vector constant that can be
1159 loaded with XXSPLTIB and a vector sign extend instruction.
1160 * config/rs6000/predicates.md (xxspltib_constant_split): New
1161 predicates for wE/wS constraints.
1162 (xxspltib_constant_nosplit): Likewise.
1163 (easy_vector_constant): Add support for constants that can be
1164 loaded via XXSPLTIB.
1165 (all_ones_constant): New predicate for vector constant with all
1167 (splat_input_operand): Add support for ISA 3.0 word splat operations.
1168 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
1169 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
1170 instruction and possibly with a sign extension.
1171 (output_vec_const_move): Add support for XXSPLTIB. If we are
1172 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
1173 instead of XXLXOR/XXLORC.
1174 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
1176 (rs6000_legitimize_reload_address): Likewise.
1177 (rs6000_output_move_128bit): Use output_vec_const_move to emit
1179 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
1180 combine VSX_M and VSX_M2 into one iterator.
1182 (VSINT_84): New iterators for loading constants with XXSPLTIB.
1183 (VSINT_842): Likewise.
1184 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
1185 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
1186 XXSPLTIB instruction.
1187 (xxspltib_<mode>_nosplit): Likewise.
1188 (xxspltib_<mode>_split): New insn to load up constants with
1189 XXSPLTIB and a sign extend instruction.
1190 (vsx_mov<mode>): Replace single move that handled all vector types
1191 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
1192 moves (when -mvsx-timode is in effect) into the main vector
1193 moves. Eliminate separate moves for <VSr> <VSa>, where the
1194 preferred register class (<VSr>) is listed first, and the
1195 secondary register class (<VSa>) is listed second with a '?' to
1196 discourage use. Prefer loading 0/-1 in any VSX register for ISA
1197 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
1198 that if the register was involved in a slow operation, the
1199 clear/set operation does not wait for the slow operation to
1200 finish. Adjust the length attributes for 32-bit mode. Use
1201 rs6000_output_move_128bit and drop the use of the string
1202 instructions for 32-bit movti when -mvsx-timode is in effect. Use
1203 spacing so that the alternatives and attributes don't generate
1204 long lines, and put things in columns, so that it is easier to
1205 match up the operands and attributes with the insn alternatives.
1206 (vsx_mov<mode>_64bit): Likewise.
1207 (vsx_mov<mode>_32bit): Likewise.
1208 (vsx_movti_64bit): Fold movti into normal vector moves.
1209 (vsx_movti_32bit): Likewise.
1210 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
1212 (vsx_splat_v4si_internal): Likewise.
1213 (vsx_splat_v4sf_internal): Likewise.
1214 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
1215 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
1216 extend vector elements.
1217 (vsx_sign_extend_hi_<mode>): Likewise.
1218 (vsx_sign_extend_si_v2di): Likewise.
1219 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
1221 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
1222 constraints. Add trailing period to wL documentation.
1224 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
1227 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
1228 * tree-dfa.c (replace_abnormal_ssa_names): New function.
1229 * tree-call-cdce.c: Include tree-dfa.h.
1230 (can_guard_call_p): New function, extracted from...
1231 (can_use_internal_fn): ...here.
1232 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
1234 (shrink_wrap_one_built_in_call): Likewise.
1235 (use_internal_fn): Likewise.
1236 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
1237 and return void. Call replace_abnormal_ssa_names.
1238 (pass_call_cdce::execute): Check can_guard_call_p during the
1239 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
1240 will always change something.
1242 2016-05-18 Martin Jambor <mjambor@suse.cz>
1245 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
1246 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
1248 2016-05-18 Martin Jambor <mjambor@suse.cz>
1251 * ipa-inline.h (condition): New field size.
1252 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
1253 for comaprison and store it into the new condition.
1254 (evaluate_conditions_for_known_args): Use condition size to check
1255 access sizes for all but CHANGED conditions.
1256 (unmodified_parm_1): New parameter size_p, store access size into it.
1257 (unmodified_parm): Likewise.
1258 (unmodified_parm_or_parm_agg_item): Likewise.
1259 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
1260 (set_cond_stmt_execution_predicate): Extract access sizes and store
1262 (set_switch_stmt_execution_predicate): Likewise.
1263 (will_be_nonconstant_expr_predicate): Likewise.
1264 (will_be_nonconstant_predicate): Likewise.
1265 (inline_read_section): Stream condition size.
1266 (inline_write_summary): Likewise.
1268 2016-05-18 Richard Biener <rguenther@suse.de>
1270 * tree-ssa-loop-im.c (determine_max_movement): Properly add
1271 condition cost to PHI cost instead of total_cost.
1273 2016-05-18 Martin Liska <mliska@suse.cz>
1276 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
1279 2016-05-18 Richard Biener <rguenther@suse.de>
1281 * lto-streamer.h (LTO_major_version): Bump to 6.
1283 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1285 * function.c (make_split_prologue_seq, make_prologue_seq,
1286 make_epilogue_seq): New functions, factored out from...
1287 (thread_prologue_and_epilogue_insns): Here.
1289 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1291 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
1292 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
1293 of before. Add a comment.
1295 2016-05-18 Bin Cheng <bin.cheng@arm.com>
1297 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1298 expression pointer, not pointer to the pointer.
1300 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1302 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
1303 (avx2_pbroadcast<mode>): Add another alternative with v instead
1304 of x constraints in it, using <pbroadcast_evex_isa> isa.
1305 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
1307 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1308 constraint x instead of v in second alternative, add avx512bw
1311 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1312 constraint x instead of v in second alternative, add avx512bw
1315 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1316 constraint x instead of v in second alternative, add avx512bw
1319 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1320 avx512bw alternative.
1322 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1324 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1326 (define_insn "*andnottf3"): Ditto.
1327 (define_insn "*<code><mode>3"/any_logic): Ditto.
1328 (define_insn "*<code>tf3"/any_logic): Ditto.
1329 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1330 operand to block AVX-512VL insn variant emit when it is not enabled.
1332 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1334 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1335 constraint fot SF mode.
1337 2016-05-18 Petr Murzin <petr.murzin@intel.com>
1338 Kirill Yukhin <kirill.yukhin@intel.com>
1340 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1342 (define_insn "rsqrt14<mode>"): Ditto.
1343 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1344 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1345 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1346 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1347 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1349 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1350 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1351 * config/i386/i386.c (ix86_print_operand): Expand check for size
1352 override codes for Intel syntax.
1354 2016-05-18 Richard Biener <rguenther@suse.de>
1356 PR tree-optimization/71168
1357 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1358 initialization earlier.
1360 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
1362 * config/aarch64/aarch64-simd.md
1363 (aarch64_reduc_plus_internal<mode>): Rename to...
1364 (reduc_plus_scal): ...This, and remove previous implementation.
1366 2016-05-18 Richard Biener <rguenther@suse.de>
1368 * passes.def: Put late dse and cd_dce in canonical order.
1370 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
1372 * ipa-inline-transform.c (preserve_function_body_p): Look for
1373 first non-thunk clone.
1374 (save_function_body): Save into first non-thunk.
1375 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1377 (lto_output_node): Inline thunks don't need body in every
1379 * lto-streamer-in.c: Do not fixup thunk clones.
1380 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1382 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1385 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1388 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1389 (reassociate_bb): Call transform_add_to_multiply.
1391 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1393 * config/aarch64/aarch64.c (all_extensions): Removed unused
1396 2016-05-17 Nathan Sidwell <nathan@acm.org>
1398 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1399 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1401 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1403 PR tree-optimization/54579
1405 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1407 2016-05-17 Marek Polacek <polacek@redhat.com>
1410 * tree-inline.c (expand_call_inline): Call
1411 maybe_remove_unused_call_args.
1413 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1415 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1416 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1417 * doc/md.texi (fmin@var{m}3): Likewise.
1419 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1421 * match.pd (X & C): New transformation.
1423 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1425 * match.pd (~X & Y): New transformation.
1427 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1429 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1430 information for new SSA_NAME.
1431 (simplify_conversion_using_ranges): Get range through get_range_info
1432 instead of get_value_range.
1434 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1436 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1437 Remove inline assembly.
1438 (vmvn_s16): Likewise.
1439 (vmvn_s32): Likewise.
1440 (vmvn_u8): Likewise.
1441 (vmvn_u16): Likewise.
1442 (vmvn_u32): Likewise.
1443 (vmvnq_s8): Likewise.
1444 (vmvnq_s16): Likewise.
1445 (vmvnq_s32): Likewise.
1446 (vmvnq_u8): Likewise.
1447 (vmvnq_u16): Likewise.
1448 (vmvnq_u32): Likewise.
1449 (vmvn_p8): Likewise.
1450 (vmvnq_p16): Likewise.
1452 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1454 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1456 (vmul_n_s16): Likewise.
1457 (vmul_n_s32): Likewise.
1458 (vmul_n_u16): Likewise.
1459 (vmul_n_u32): Likewise.
1460 (vmulq_n_f32): Likewise.
1461 (vmulq_n_f64): Likewise.
1462 (vmulq_n_s16): Likewise.
1463 (vmulq_n_s32): Likewise.
1464 (vmulq_n_u16): Likewise.
1465 (vmulq_n_u32): Likewise.
1467 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1469 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1470 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1472 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1474 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1475 to *aarch64_fma4_elt_from_dup<mode>.
1476 (*aarch64_fnma4_elt_to_128df): Rename to
1477 *aarch64_fnma4_elt_from_dup<mode>.
1478 * config/aarch64/arm_neon.h (vfma_n_f64): New.
1479 (vfms_n_f32): Likewise.
1480 (vfms_n_f64): Likewise.
1481 (vfmsq_n_f32): Likewise.
1482 (vfmsq_n_f64): Likewise.
1484 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1486 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1488 2016-05-17 Richard Biener <rguenther@suse.de>
1490 PR tree-optimization/71132
1491 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1492 Only add control dependences for blocks in the loop.
1493 (build_rdg): Adjust.
1494 (generate_code_for_partition): Return whether loop should
1495 be destroyed and delay that.
1496 (distribute_loop): Likewise.
1497 (pass_loop_distribution::execute): Record loops to be destroyed
1498 and perform delayed destroying of loops.
1500 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1503 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1505 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1507 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1509 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1512 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1513 insertion point for instructions generated by validize_mem.
1515 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1517 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1520 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1522 * config/aarch64/aarch64.c
1523 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1524 rather than a macro.
1526 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1528 * doc/invoke.texi (AArch64 Options): Various updates.
1530 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1532 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1533 into instrumentation thunks.
1534 * cif-code.def (CIF_CHKP): New.
1536 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1538 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1540 2016-05-16 Martin Jambor <mjambor@suse.cz>
1542 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1543 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1545 2016-05-16 Marek Polacek <polacek@redhat.com>
1547 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1550 2016-05-16 Martin Jambor <mjambor@suse.cz>
1553 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1554 the outlined kernel function.
1556 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1558 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1559 (ISA_HAS_DLSA): Ditto.
1561 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1563 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1565 2016-05-16 Nathan Sidwell <nathan@acm.org>
1567 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1568 (nvptx_name_replacement): Restore. Add comment.
1569 (write_fn_proto, write_fn_proto_from_insn,
1570 nvptx_output_call_insn): Restore
1571 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1573 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1575 * config/aarch64/aarch64.md
1576 (add<mode>3_compareC_cconly_imm): Remove use of %w.
1577 (add<mode>3_compareC_imm): Likewise.
1578 (<optab>si3_uxtw): Split into register and immediate variants.
1579 (andsi3_compare0_uxtw): Likewise.
1580 (and<mode>3_compare0): Likewise.
1581 (and<mode>3nr_compare0): Likewise.
1582 (stack_protect_test_<mode>): Don't use %x for memory operands.
1584 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1586 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1588 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1590 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1591 Split integer shifts into shift_reg and bfm.
1592 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1593 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1594 (ror<mode>3_insn): Likewise.
1595 (<optab>si3_insn_uxtw): Likewise.
1596 (<optab><mode>3_insn): Change to rotate_imm.
1597 (extr<mode>5_insn_alt): Likewise.
1598 (extrsi5_insn_uxtw): Likewise.
1599 (extrsi5_insn_uxtw_alt): Likewise.
1601 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1603 * doc/tm.texi: Regenerate.
1604 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1605 (TARGET_INVALID_RETURN_TYPE): Remove.
1606 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1607 TARGET_INVALID_RETURN_TYPE.
1608 * target.def (invalid_parameter_type): Remove.
1609 (invalid_return_type): Remove.
1611 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1613 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1614 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1616 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1618 (preserve_function_body_p): No need to preserve function body
1619 * cif-codes.def (CIF_THUNK): Remove.
1620 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1622 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1624 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1626 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1628 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1631 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1633 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1634 (inline_small_functions): Do not look for function symbol when
1637 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1639 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1642 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1643 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1644 Jiong Wang <jiong.wang@arm.com>
1646 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1647 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1648 Define __ARM_FP16_ARGS when appropriate.
1649 * config/arm/arm.c (arm_invalid_parameter_type): Remove
1651 (arm_invalid_return_type): Likewise.
1652 (TARGET_INVALID_PARAMETER_TYPE): Remove.
1653 (TARGET_INVALID_RETURN_TYPE): Remove.
1654 (aapcs_vfp_sub_candidate): Allow HFmode.
1655 (aapcs_vfp_allocate): Add comment. Support HFmode.
1656 (aapcs_vfp_allocate_return_reg): Likewise.
1657 (struct aapcs_cp_arg_layout): Slightly reword comments for
1658 is_return_candidate and allocate_return_reg.
1659 (output_mov_vfp): Update assert.
1660 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1662 (arm_invalid_parameter_type): Remove.
1663 (amr_invalid_return_type): Remove.
1664 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1665 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1666 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1668 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1670 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1671 * config/aarch64/arch64-protos.h
1672 (aarch64_legitimize_reload_address): Remove.
1673 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1676 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1678 * configure.ac: Add ACX_NONCANONICAL_HOST.
1679 * configure: Regenerate.
1680 * Makefile.in: Set host_noncanonical.
1682 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1685 * config/i386/i386.md (*movtf_internal): Before register allocation,
1686 do not allow FP constants for CM_MEDIUM memory model, allow only
1687 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1688 (*movxf_internal): Ditto.
1689 (*movdf_internal): Ditto.
1690 (*movsf_internal): Ditto.
1692 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1694 PR rtl-optimization/67483
1695 * combine.c (make_compound_operation): Don't call extract_left_shift
1696 with negative shift amounts.
1698 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1701 * fold-const.c (fold_checksum_tree): Allow modification
1702 of TYPE_ALIAS_SET during folding.
1704 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1705 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1706 (ix86_split_to_parts): Likewise. Fix up formatting.
1708 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1710 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1711 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1714 2016-05-13 Nathan Sidwell <nathan@acm.org>
1716 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1717 (nvptx_name_replacement): Delete.
1718 (write_fn_proto, write_fn_proto_from_insn,
1719 nvptx_output_call_insn): Remove nvptx_name_replacement call.
1720 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1721 * langhooks.c (add_builtin_funcction_common): Call
1722 targetm.mangle_decl_assembler_name.
1724 * config/nvptx/nvptx.c (write_fn_proto): Handle
1725 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1727 2016-05-13 Martin Liska <mliska@suse.cz>
1729 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1730 and PRIu64 in printf format.
1732 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1734 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1737 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1739 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1740 Change --param max-completely-peeled-times to
1741 --param max-completely-peel-times in dump file printing.
1743 2016-05-13 Richard Biener <rguenther@suse.de>
1745 PR tree-optimization/42587
1746 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
1747 (find_bswap_or_nop_1): Likewise.
1748 (bswap_replace): Likewise.
1750 2016-05-13 Martin Liska <mliska@suse.cz>
1752 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1753 Initialize a variable with default value.
1755 2016-05-13 Martin Liska <mliska@suse.cz>
1757 * doc/invoke.texi: Enhance explanation of error recovery
1760 2016-05-13 Martin Liska <mliska@suse.cz>
1762 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
1763 (struct cost_pair): Change inv_expr_id (int) to inv_expr
1764 (iv_inv_expr_ent *).
1765 (struct iv_inv_expr_ent): Comment struct fields.
1766 (sort_iv_inv_expr_ent): New function.
1767 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
1768 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
1769 a hash_map between iv_inv_expr_ent and number of usages.
1770 (niter_for_exit): Fix coding style.
1771 (tree_ssa_iv_optimize_init): Use renamed variable.
1772 (determine_base_object): Fix coding style.
1773 (alloc_iv): Likewise.
1774 (find_interesting_uses_outside): Likewise.
1775 (add_candidate_1): Likewise.
1776 (add_standard_iv_candidates): Likewise.
1777 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
1778 (prepare_decl_rtl): Fix coding style.
1779 (get_address_cost): Likewise.
1780 (get_shiftadd_cost): Likewise.
1781 (force_expr_to_var_cost): Likewise.
1782 (compare_aff_trees): Likewise.
1783 (get_expr_id): Restructure the function.
1784 (get_loop_invariant_expr_id): Renamed to
1785 get_loop_invariant_expr.
1786 (get_computation_cost_at): Replace usage of inv_expr_id with
1788 (get_computation_cost): Likewise.
1789 (determine_group_iv_cost_generic): Likewise.
1790 (determine_group_iv_cost_address): Likewise.
1791 (iv_period): Fix coding style.
1792 (iv_elimination_compare_lt): Likewise.
1793 (may_eliminate_iv): Likewise.
1794 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
1796 (determine_group_iv_costs): Dump invariant expressions.
1797 (iv_ca_recount_cost): Use the newly added hash_map.
1798 (iv_ca_set_remove_invariants): Fix coding style.
1799 (iv_ca_set_add_invariants): Fix coding style.
1800 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
1802 (iv_ca_set_cp): Likewise.
1803 (iv_ca_new): Initialize the newly added hash_map and remove
1804 initialization of fields.
1805 (iv_ca_free): Delete the hash_map.
1806 (iv_ca_dump): Dump invariant expressions.
1807 (iv_ca_extend): Fix coding style.
1808 (try_add_cand_for): Likewise.
1809 (create_new_ivs): Dump information about # of avg iterations and
1810 # of used invariant expressions.
1811 (rewrite_use_compare): Fix coding style.
1812 (free_loop_data): Set default value for max_inv_expr_id.
1814 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
1816 * cse.c (rest_of_handle_cse): Use cleanup_cfg
1817 returned value cse_cfg_altered computation.
1818 (rest_of_handle_cse2): Likewise.
1819 (rest_of_handle_cse_after_global_opts): Likewise.
1821 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1824 * config/arm/arm.c (arm32_output_mi_thunk): New.
1825 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
1826 to split Thumb1 vs TARGET_32BIT functionality.
1827 (arm_thumb1_mi_thunk): New.
1829 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1831 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
1834 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1837 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
1839 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
1841 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
1842 (expand_builtin_trap): Emit a regular call.
1843 (set_builtin_user_assembler_name): Remove obsolete cases.
1844 * dse.c (scan_insn): Adjust.
1845 * except.c: Include calls.h.
1846 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
1847 emit a regular call to setjmp.
1848 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
1849 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
1850 (emit_block_move_via_libcall): Delete.
1851 (block_move_fn): Delete.
1852 (init_block_move_fn): Likewise.
1853 (emit_block_move_libcall_fn): Likewise.
1854 (emit_block_op_via_libcall): New function.
1855 (set_storage_via_libcall): Tidy up and use memset builtin.
1856 (block_clear_fn): Delete.
1857 (init_block_clear_fn): Likewise.
1858 (clear_storage_libcall_fn): Likewise.
1859 (expand_assignment): Call emit_block_move_via_libcall.
1860 Do not include gt-expr.h.
1861 * expr.h (emit_block_op_via_libcall): Declare.
1862 (emit_block_copy_via_libcall): New inline function.
1863 (emit_block_move_via_libcall): Likewise.
1864 (emit_block_comp_via_libcall): Likewise.
1865 (block_clear_fn): Delete.
1866 (init_block_move_fn): Likewise.
1867 (init_block_clear_fn): Likewise.
1868 (emit_block_move_via_libcall): Likewise.
1869 (set_storage_via_libcall): Add default parameter value.
1870 * libfuncs.h (enum libfunc_index): Remove obsolete values.
1871 (abort_libfunc): Delete.
1872 (memcpy_libfunc): Likewise.
1873 (memmove_libfunc): Likewise.
1874 (memcmp_libfunc): Likewise.
1875 (memset_libfunc): Likewise.
1876 (setbits_libfunc): Likewise.
1877 (setjmp_libfunc): Likewise.
1878 (longjmp_libfunc): Likewise.
1879 (profile_function_entry_libfunc): Likewise.
1880 (profile_function_exit_libfunc): Likewise.
1881 (gcov_flush_libfunc): Likewise.
1882 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
1883 and DECL_VISIBILITY on the declaration.
1884 (init_optabs): Do not initialize obsolete libfuncs.
1885 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
1886 * tree-core.h (ECF_RET1): Define.
1887 (ECF_TM_PURE): Adjust.
1888 (ECF_TM_BUILTIN): Likewise.
1889 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
1890 (build_common_builtin_nodes): Initialize abort builtin.
1891 Add ECF_RET1 on memcpy, memmove and memset builtins.
1892 Pass final flags for alloca and alloca_with_align builtins.
1893 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
1895 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
1896 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
1897 set_storage_via_libcall and call emit_block_copy_via_libcall.
1899 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
1901 * config/i386/i386.md (*call_got_x32): Change operand 0 to
1902 DImode before it is passed to ix86_output_call_operand.
1903 (*call_value_got_x32): Ditto for operand 1.
1905 2016-05-12 Jiong Wang <jiong.wang@arm.com>
1907 PR rtl-optimization/70904
1908 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
1909 reload for wide mode.
1911 2016-05-12 Marek Polacek <polacek@redhat.com>
1914 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
1915 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
1916 * langhooks.h (incomplete_type_error): Likewise.
1917 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
1918 parameter, pass it down to incomplete_type_error.
1919 * tree.h (size_in_bytes): New inline overload.
1920 (size_in_bytes_loc): Renamed from size_in_bytes.
1922 2016-05-12 Richard Biener <rguenther@suse.de>
1924 PR tree-optimization/71059
1925 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
1926 nary before looking up or entering the expression into the VN
1928 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
1929 Make sure to re-use NARYs without result as inserted by
1932 2016-05-12 Richard Biener <rguenther@suse.de>
1934 PR tree-optimization/71062
1935 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1937 * tree-ssa-structalias.c (set_uids_in_ptset): Set
1938 vars_contains_restrict if the var is a restrict tag.
1939 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
1940 do not disambiguate pointers against it.
1941 (dump_points_to_solution): Re-structure and adjust for new
1942 vars_contains_restrict flag.
1943 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1945 2016-05-12 Martin Liska <mliska@suse.cz>
1947 * doc/invoke.texi: Explain connection between
1948 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
1950 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
1952 PR tree-optimization/71006
1953 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1954 consider COND_EXPR as a mask producer.
1956 2016-05-12 Marek Polacek <polacek@redhat.com>
1959 * opts.c (common_handle_option): Detect missing argument for --help^.
1961 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1964 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
1965 when popping the PC and within an interrupt handler routine.
1966 Add missing tab to output of "ldmfd".
1967 (output_return_instruction): Output LDMFD with SP update rather
1968 than POP when returning from interrupt handler.
1970 2016-05-12 Jakub Jelinek <jakub@redhat.com>
1972 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
1973 TARGET_64BIT && TARGET_AVX512DQ.
1974 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
1975 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
1976 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
1977 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
1978 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
1979 (*vec_extractv4si_zext): Add avx512dq alternative.
1980 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
1981 use v instead of x constraint in other alternatives where possible.
1983 * config/i386/sse.md (sse2_loadld): Use v instead of x
1984 constraint in alternatives 0,1,4.
1986 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
1987 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
1988 v constraints instead of x and <pinsr_evex_isa> isa attribute.
1991 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
1992 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
1993 is not emitted unless TARGET_AVX512BW.
1994 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
1995 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
1996 for the result operand.
1998 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
1999 constraint instead of x in avx alternatives. Use maybe_evex instead
2002 * config/i386/constraints.md (Yv): New constraint.
2003 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
2004 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
2005 * config/i386/i386.md (avx512fvecmode): New mode attr.
2006 (*pushtf): Use v constraint instead of x.
2007 (*movtf_internal): Likewise. For TARGET_AVX512VL and
2008 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
2009 (*absneg<mode>2): Use Yv constraint instead of x constraint.
2010 (*absnegtf2_sse): Likewise.
2011 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
2012 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
2013 avx512f alternatives.
2014 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
2016 2016-05-12 Richard Biener <rguenther@suse.de>
2018 PR tree-optimization/71060
2019 * tree-data-ref.c (initialize_data_dependence_relation): Do not
2020 require exact match of DR_BASE_OBJECT but only matching address and
2023 2016-05-12 Richard Biener <rguenther@suse.de>
2025 PR tree-optimization/70986
2026 * cfganal.c: Include cfgloop.h.
2027 (dfs_find_deadend): Prefer to take edges exiting loops.
2029 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2031 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2032 compile and run time.
2034 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
2037 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2039 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
2041 * config/i386/i386.c (legitimize_pic_address): Use
2042 copy_to_suggested_reg instead of gen_movsi.
2044 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2046 * config/rs6000/predicates.md (quad_memory_operand): Move most of
2047 the code into quad_address_p and call it to share code with
2048 vsx_quad_dform_memory_operand.
2049 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
2051 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
2052 bit instead of being a separate word. Split -mpower9-dform into
2053 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2054 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
2055 for the register class supporting 128-bit quad word memory offsets.
2056 (mode_supports_vsx_dform_quad): Helper function to return if the
2057 register class uses quad word memory offsets.
2058 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
2059 (rs6000_debug_reg_global): Always print if we are using LRA or not.
2060 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
2061 instructions are enabled, set up the appropriate addr_masks for
2063 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
2064 -mpower9-dform-scalar, instead of -mpower9-dform.
2065 (rs6000_option_override_internal): Split -mpower9-dform into two
2066 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
2067 -mpower9-dform switch sets or clears both. If we are not using
2068 the LRA register allocator, do not enable -mpower9-dform-vector by
2069 default. If we are using LRA, enable -mpower9-dform-vector and
2070 -mvsx-timode if it is appropriate. Issue a warning if either
2071 -mpower9-dform-vector or -mvsx-timode are explicitly used without
2073 (quad_address_offset_p): New helper function to return if the
2074 offset is legal for quad word memory instructions.
2075 (quad_address_p): New function to determin if GPR or vector
2076 register quad word memory addresses are legal.
2077 (mem_operand_gpr): Validate quad word address offsets.
2078 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
2079 d-form (register + offset) instructions.
2080 (offsettable_ok_by_alignment): Likewise.
2081 (rs6000_legitimate_offset_address_p): Likewise.
2082 (legitimate_lo_sum_address_p): Likewise.
2083 (rs6000_legitimize_address): Likewise.
2084 (rs6000_legitimize_reload_address): Add more debug statements for
2086 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
2087 d-form instructions.
2088 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
2089 d-form instructions. Distinguish different cases in debug
2090 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
2091 d-form instructions.
2092 (rs6000_preferred_reload_class): Likewise.
2093 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
2094 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
2095 of the ISA 2.06 indexed memory instructions.
2096 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
2097 use them to save/restore the saved vector registers instead of
2098 using Altivec instructions.
2099 (rs6000_emit_epilogue): Likewise.
2100 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
2101 (rs6000_opt_masks): Split -mpower9-dform into
2102 -mpower9-dform-scalar and -mpower9-dform-vector.
2103 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
2105 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
2106 ISA 3.0 vector indexed memory instructions, and fold the code into
2107 the normal mov<mode> patterns.
2108 (p9_vecstore_<mode>): Likewise.
2109 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
2111 (vsx_movti_64bit): Likewise.
2112 (vsx_movti_32bit): Likewise.
2113 * config/rs6000/constraints.md (wO constraint): New constraint for
2114 ISA 3.0 vector d-form support.
2115 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
2116 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
2117 include -mpower9-dform-vector until we switch over to LRA.
2118 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
2119 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2120 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
2121 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2122 for -mpower9-dform and -mlra.
2123 * doc/md.texi (wO constraint): Document wO constraint.
2125 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
2127 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
2128 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
2129 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
2130 Move handling of non-insn arguments inline into the sole user:
2131 (output_trans_func): ...here.
2132 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
2133 in emitted function prototype.
2134 (output_internal_insn_latency_func): Ditto. Simplify.
2135 (output_internal_maximal_insn_latency_func): Ditto. Delete
2136 always-unused argument.
2137 (output_insn_latency_func): Ditto.
2138 (output_maximal_insn_latency_func): Ditto.
2140 2016-05-11 Richard Biener <rguenther@suse.de>
2142 PR tree-optimization/71055
2143 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
2144 sth with precision not equal to access size verify we don't chop
2147 2016-05-11 Richard Biener <rguenther@suse.de>
2150 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
2151 (dwarf2out_finish): Move retry_incomplete_types call ...
2152 (dwarf2out_early_finish): ... here.
2154 2016-05-11 Richard Biener <rguenther@suse.de>
2157 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
2158 if the langhook insists on it.
2159 * fold-const.c (make_bit_field_ref): Add arg for the original
2160 reference and preserve its alias-set.
2161 (decode_field_reference): Take exp by reference and adjust it
2162 to the original memory reference.
2163 (optimize_bit_field_compare): Adjust callers.
2164 (fold_truth_andor_1): Likewise.
2165 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
2167 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
2170 * cfgrtl.h (delete_insn_and_edges): Now return bool.
2171 * cfgrtl.c (delete_insn_and_edges): Likewise.
2172 * config/i386/i386.c (convert_scalars_to_vector): Remove
2174 * cse.c (cse_insn): Compute cse_cfg_altered.
2175 (delete_trivially_dead_insns): Likewise.
2176 (cse_cc_succs): Likewise.
2177 (rest_of_handle_cse): Free dominance info if required.
2178 (rest_of_handle_cse2): Likewise.
2179 (rest_of_handle_cse_after_global_opts): Likewise.
2181 2016-05-11 Alan Modra <amodra@gmail.com>
2183 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
2184 abi_v4_pass_in_fpr): New functions.
2185 (rs6000_function_arg_boundary): Exclude complex IBM long double
2186 from 64-bit alignment when ABI_V4.
2187 (rs6000_function_arg, rs6000_function_arg_advance_1,
2188 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
2190 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
2192 PR rtl-optimization/71028
2193 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
2194 jump with just a return in the fallthrough block if the branch
2195 block contains just a return as well.
2197 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
2199 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
2200 * match.pd ((X & Y) ^ Y): ... this.
2201 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
2202 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
2204 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2206 * read-md.c (require_char_ws): New function.
2207 (read_string): Simplify using require_char_ws.
2208 (handle_constants): Likewise.
2209 (handle_enum): Likewise.
2210 (handle_file): Likewise.
2211 * read-md.h (require_char_ws): New declaration.
2212 * read-rtl.c (read_conditions): Simplify using require_char_ws.
2213 (read_mapping): Likewise.
2214 (read_rtx_code): Likewise.
2215 (read_nested_rtx): Likewise.
2217 2016-05-10 James Norris <jnorris@codesourcery.com>
2219 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
2220 if offloading is enabled and -fopenacc or -fopenmp is specified.
2221 (CRTOFFLOADEND): Likewise.
2222 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
2223 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
2225 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
2227 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
2228 gotoff_operand code paths. Use copy_to_suggested_regs and
2229 expand_simple_binop where appropriate. Cleanup.
2231 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2234 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
2236 (dimode_scalar_chain::vector_const_cost): New.
2237 (dimode_scalar_chain::compute_convert_gain): Handle constants.
2238 (dimode_scalar_chain::convert_op): Likewise.
2239 (dimode_scalar_chain::convert_insn): Likewise.
2241 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2243 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
2244 unary operation, not a binary one.
2246 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2249 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
2250 calls with type casted fndecl.
2252 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2254 PR tree-optimization/70786
2255 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
2256 * calls.c (initialize_argument_information): Bind bounds
2257 with corresponding args passed by reference.
2259 2016-05-10 Jakub Jelinek <jakub@redhat.com>
2262 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
2263 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
2264 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
2267 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2270 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
2271 code for a zero scale factor.
2272 (vsx_xvcvdpuxds_scale): Likewise.
2274 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2276 * diagnostic-show-locus.c (layout::layout): Call show_ruler
2277 if show_ruler_p was set on the context.
2278 (layout::show_ruler): New method.
2279 * diagnostic.h (struct diagnostic_context): Add field
2282 2016-05-10 Richard Biener <rguenther@suse.de>
2284 PR tree-optimization/71039
2285 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
2286 (chk_uses): New function.
2287 (propagate_with_phi): Verify we can safely replicate the lhs of an
2288 aggregate assignment on all incoming edges.
2290 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
2292 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2294 (rx_atomic_sequence): New class.
2295 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
2296 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
2298 (rx_atomic_sequence::rx_atomic_sequence,
2299 rx_atomic_sequence::~rx_atomic_sequence): New functions.
2300 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
2301 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
2302 CTRLREG_INTB): New constants.
2303 (FETCHOP): New code iterator.
2304 (fethcop_name, fetchop_name2): New iterator code attributes.
2305 (QIHI): New mode iterator.
2306 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
2307 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2308 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2310 2016-05-10 Martin Liska <mliska@suse.cz>
2312 * tree-inline.c (remap_dependence_clique): Do not remap
2313 debugging statements.
2315 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2317 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2318 ("*fixuns_truncdfdi2_z13")
2319 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2320 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2321 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2323 2016-05-10 Richard Biener <rguenther@suse.de>
2325 PR tree-optimization/70497
2326 PR tree-optimization/28367
2327 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2329 (visit_reference_op_load): ... here.
2330 (vn_reference_lookup_3): Use it to handle subreg-like accesses
2331 with simplified BIT_FIELD_REFs.
2332 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2333 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2336 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2338 * dwarf2out.c (add_abstract_origin_attribute): Adjust
2339 documentation comment. For BLOCK nodes, add a
2340 DW_AT_abstract_origin attribute that points to the DIE generated
2341 for the origin BLOCK.
2342 (gen_lexical_block_die): Call add_abstract_origin_attribute for
2343 blocks from inlined functions.
2345 2016-05-10 Alan Modra <amodra@gmail.com>
2348 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2349 regrename modifying insns saving lr before __morestack call.
2350 * config/rs6000/rs6000.md (split_stack_return): Similarly for
2351 insns restoring lr after __morestack call.
2353 2016-05-09 Jakub Jelinek <jakub@redhat.com>
2355 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2356 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2358 * config/i386/sse.md (vec_interleave_high<mode>,
2359 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2360 <avx512>_vpermt2var<mode>3_maskz): Likewise.
2362 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2364 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2365 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2366 parallel reassociation for power8 and forward.
2368 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
2370 * config/i386/i386.md (absneg splitters with general regs): Use
2371 general_reg_operand predicate.
2372 (btsq peephole2): Use x86_64_immediate_operand to check if new
2373 value is suitable for immediate operand. Generate emitted insn
2374 using RTL expressions.
2375 (btcq peephole2): Ditto.
2376 (btrq peephole2): Ditto. Generate correct immediate operand
2379 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2381 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2384 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2386 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2387 pointer dereference.
2389 2016-05-09 Richard Biener <rguenther@suse.de>
2391 PR tree-optimization/70985
2392 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2393 op0 isn't a gimple register.
2395 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2397 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2398 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2399 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2400 (i6400_fpu_mult): New cpu units.
2401 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2402 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2403 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2404 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2405 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2406 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2407 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2408 (i6400_msa_long_float4, i6400_msa_long_float5)
2409 (i6400_msa_long_float8, i6400_msa_fdiv_df)
2410 (i6400_msa_fdiv_sf): New reservations.
2411 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2412 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2413 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2414 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2415 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2416 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2417 (msa_short_cmp, msa_short_float2, msa_short_logic3)
2418 (msa_short_store4, msa_long_load, msa_short_store)
2419 (msa_long_logic, msa_long_float2, msa_long_float4)
2420 (msa_long_float5, msa_long_float8, msa_long_mult)
2421 (msa_long_fdiv, msa_long_div): New reservations.
2423 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
2424 Sameera Deshpande <sameera.deshpande@imgtec.com>
2425 Matthew Fortune <matthew.fortune@imgtec.com>
2426 Graham Stott <graham.stott@imgtec.com>
2427 Chao-ying Fu <chao-ying.fu@imgtec.com>
2429 * config.gcc: Add MSA header file for mips*-*-* target.
2430 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2431 (Ubv8i, Urv8): New constraints.
2432 * config/mips/mips-ftypes.def: Add function types for MSA
2434 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2435 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2436 * config/mips/mips-msa.md: New file.
2437 * config/mips/mips-protos.h
2438 (mips_split_128bit_const_insns): New prototype.
2439 (mips_msa_idiv_insns): Likewise.
2440 (mips_split_128bit_move): Likewise.
2441 (mips_split_128bit_move_p): Likewise.
2442 (mips_split_msa_copy_d): Likewise.
2443 (mips_split_msa_insert_d): Likewise.
2444 (mips_split_msa_fill_d): Likewise.
2445 (mips_expand_msa_branch): Likewise.
2446 (mips_const_vector_same_val_p): Likewise.
2447 (mips_const_vector_same_bytes_p): Likewise.
2448 (mips_const_vector_same_int_p): Likewise.
2449 (mips_const_vector_shuffle_set_p): Likewise.
2450 (mips_const_vector_bitimm_set_p): Likewise.
2451 (mips_const_vector_bitimm_clr_p): Likewise.
2452 (mips_msa_vec_parallel_const_half): Likewise.
2453 (mips_msa_output_division): Likewise.
2454 (mips_ldst_scaled_shift): Likewise.
2455 (mips_expand_vec_cond_expr): Likewise.
2456 * config/mips/mips.c (enum mips_builtin_type): Add
2457 MIPS_BUILTIN_MSA_TEST_BRANCH.
2458 (mips_gen_const_int_vector_shuffle): New prototype.
2459 (mips_const_vector_bitimm_set_p): New function.
2460 (mips_const_vector_bitimm_clr_p): Likewise.
2461 (mips_const_vector_same_val_p): Likewise.
2462 (mips_const_vector_same_bytes_p): Likewise.
2463 (mips_const_vector_same_int_p): Likewise.
2464 (mips_const_vector_shuffle_set_p): Likewise.
2465 (mips_symbol_insns): Forbid loading symbols via immediate for
2467 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2469 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2471 (mips_lx_address_p): Add support load indexed address for MSA.
2472 (mips_address_insns): Add calculation of instructions needed for
2473 stores and loads for MSA.
2474 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
2475 CONST_VECTOR for MSA and let it fall through.
2476 (mips_ldst_scaled_shift): New function.
2477 (mips_subword_at_byte): Likewise.
2478 (mips_msa_idiv_insns): Likewise.
2479 (mips_legitimize_move): Validate MSA moves.
2480 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
2481 calculation of costs for MSA division.
2482 (mips_split_move_p): Check if MSA moves need splitting.
2483 (mips_split_move): Split MSA moves if necessary.
2484 (mips_split_128bit_move_p): New function.
2485 (mips_split_128bit_move): Likewise.
2486 (mips_split_msa_copy_d): Likewise.
2487 (mips_split_msa_insert_d): Likewise.
2488 (mips_split_msa_fill_d): Likewise.
2489 (mips_output_move): Handle MSA moves.
2490 (mips_expand_msa_branch): New function.
2491 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2492 Reinstate 'y' modifier.
2493 (mips_file_start): Add MSA .gnu_attribute.
2494 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2496 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2497 (mips_class_max_nregs): Add register size for MSA supported mode.
2498 (mips_cannot_change_mode_class): Allow conversion between MSA
2499 vector modes and TImode.
2500 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2502 (mips_secondary_reload_class): Force MSA loads/stores via memory.
2503 (mips_preferred_simd_mode): Add preffered modes for MSA.
2504 (mips_vector_mode_supported_p): Add MSA supported modes.
2505 (mips_autovectorize_vector_sizes): New function.
2506 (mips_msa_output_division): Likewise.
2507 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2508 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2509 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2510 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2511 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2512 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2513 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2514 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2515 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2516 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2517 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2518 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2519 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2520 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2521 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2522 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2523 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2524 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2525 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2526 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2527 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2528 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2529 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2530 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2531 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2532 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2533 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2534 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2535 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2536 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2537 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2538 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2539 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2540 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2541 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2542 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2543 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2544 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2545 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2546 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2547 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2548 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2549 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2550 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2551 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2552 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2553 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2554 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2555 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2556 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2557 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2558 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2559 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2560 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2561 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2562 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2563 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2564 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2565 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2566 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2567 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2568 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2569 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2570 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2571 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2572 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2573 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2574 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2575 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2576 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2577 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2578 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2579 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2580 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2581 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2582 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2583 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2584 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2585 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2586 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2587 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2588 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2589 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2590 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2591 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2592 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2593 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2594 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2595 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2596 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2597 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2598 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2599 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2600 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2601 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2602 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2603 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2604 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2605 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2606 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2607 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2608 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2609 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2610 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2611 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2612 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2613 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2614 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2615 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2616 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2617 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2618 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2619 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2620 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2621 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2622 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2623 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2624 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2625 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2626 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2627 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2628 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2629 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2630 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2631 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2632 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2633 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2634 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2635 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2636 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2637 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2638 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2639 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2640 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2641 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2642 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2643 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2644 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2645 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2646 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2647 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2648 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2649 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2650 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2651 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2652 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2653 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2654 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2655 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2656 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2657 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2659 (mips_get_builtin_decl_index): New array.
2660 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2661 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2662 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2663 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2664 (mips_init_builtins): Initialize mips_get_builtin_decl_index
2666 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2668 (mips_expand_builtin_insn): Prepare operands for
2669 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2670 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2671 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2672 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2673 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2674 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2675 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2676 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2677 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2678 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2679 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2680 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2681 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2682 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2683 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2684 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2685 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2686 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2687 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2688 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2689 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2690 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2691 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2692 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2693 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2694 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2695 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2696 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2697 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2698 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2699 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2700 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2701 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2702 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2703 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2704 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2705 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2706 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2707 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2708 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2709 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2710 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2711 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2712 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2713 These are set implicitly and an error is reported if overridden.
2714 (mips_expand_builtin_msa_test_branch): New function.
2715 (mips_expand_msa_shuffle): Likewise.
2716 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2717 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2718 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2719 (mips_expand_vec_unpack): Add support for MSA.
2720 (mips_expand_vector_init): Likewise.
2721 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2722 instead of const0_rtx.
2723 (mips_msa_vec_parallel_const_half): New function.
2724 (mips_gen_const_int_vector): Likewise.
2725 (mips_gen_const_int_vector_shuffle): Likewise.
2726 (mips_expand_msa_cmp): Likewise.
2727 (mips_expand_vec_cond_expr): Likewise.
2728 * config/mips/mips.h
2729 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2730 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2732 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2733 (ISA_HAS_MSA): New macro.
2734 (UNITS_PER_MSA_REG): Likewise.
2735 (BITS_PER_MSA_REG): Likewise.
2736 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2737 (MSA_REG_FIRST): New macro.
2738 (MSA_REG_LAST): Likewise.
2739 (MSA_REG_NUM): Likewise.
2740 (MSA_REG_P): Likewise.
2741 (MSA_REG_RTX_P): Likewise.
2742 (MSA_SUPPORTED_MODE_P): Likewise.
2743 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2744 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2745 * config/mips/mips.md: Include mips-msa.md.
2746 (alu_type): Add simd_add.
2747 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
2748 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
2749 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
2750 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
2751 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
2752 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
2753 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
2754 simd_move, simd_load, simd_store. Choose "multi" for moves
2756 (qword_mode): New attribute.
2757 (insn_count): Add instruction count for quad moves.
2758 Increase the count for MIPS SIMD division.
2759 (UNITMODE): Add UNITMODEs for vector types.
2760 (addsub): New code iterator.
2761 * config/mips/mips.opt (mmsa): New option.
2762 * config/mips/msa.h: New file.
2763 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
2765 * config/mips/mti-linux.h: Likewise.
2766 * config/mips/predicates.md
2767 (const_msa_branch_operand): New constraint.
2768 (const_uimm3_operand): Likewise.
2769 (const_uimm4_operand): Likewise.
2770 (const_uimm5_operand): Likewise.
2771 (const_uimm8_operand): Likewise.
2772 (const_imm5_operand): Likewise.
2773 (aq10b_operand): Likewise.
2774 (aq10h_operand): Likewise.
2775 (aq10w_operand): Likewise.
2776 (aq10d_operand): Likewise.
2777 (const_m1_operand): Likewise.
2778 (reg_or_m1_operand): Likewise.
2779 (const_exp_2_operand): Likewise.
2780 (const_exp_4_operand): Likewise.
2781 (const_exp_8_operand): Likewise.
2782 (const_exp_16_operand): Likewise.
2783 (const_vector_same_val_operand): Likewise.
2784 (const_vector_same_simm5_operand): Likewise.
2785 (const_vector_same_uimm5_operand): Likewise.
2786 (const_vector_same_uimm6_operand): Likewise.
2787 (const_vector_same_uimm8_operand): Likewise.
2788 (par_const_vector_shf_set_operand): Likewise.
2789 (reg_or_vector_same_val_operand): Likewise.
2790 (reg_or_vector_same_simm5_operand): Likewise.
2791 (reg_or_vector_same_uimm6_operand): Likewise.
2792 * doc/extend.texi (MIPS SIMD Architecture Functions): New
2794 * doc/invoke.texi (-mmsa): Document new option.
2796 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2798 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
2799 * configure: Regenerate.
2800 * config.in: Regenerate.
2801 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
2803 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
2804 (ENDFILE_VTV_SPEC): Define.
2806 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
2808 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
2809 registers in all interrupt handlers if necessary.
2810 (rl78_option_override): Add warning.
2811 (MUST_SAVE_MDUC_REGISTERS): New macro.
2812 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
2813 * config/rl78/rl78.c (check_mduc_usage): New function.
2814 (mduc_regs): New structure to hold MDUC register data.
2815 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
2816 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
2817 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
2818 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
2819 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
2820 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
2822 2016-05-09 Bin Cheng <bin.cheng@arm.com>
2824 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
2825 (tree-ssa-loop-niter.h): Ditto.
2826 (idx_within_array_bound, ref_within_array_bound): New functions.
2827 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
2828 Factor out check on writable base object to ...
2829 (base_object_writable): ... here.
2831 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2833 * config/arm/arm.md (probe_stack): Add modes to set source
2836 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
2838 * regrename.c (base_reg_class_for_rename): New static function.
2839 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
2841 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
2843 * cgraph.c (thunk_adjust): Export.
2844 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
2845 * cgraphunit.c (thunk_adjust): Export.
2846 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
2848 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
2850 * tree-inline.c (expand_call_inline): Expand thunks inline.
2852 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
2855 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
2856 (*sse2_vd_cvtss2sd): Ditto.
2857 * config/i386/i386.md
2858 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
2859 Generate *sse2_vd_cvtsd2ss pattern.
2860 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
2861 Generate *sse2_vd_cvtss2sd pattern.
2863 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2865 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
2866 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
2869 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2871 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
2872 * config/sh/sh.c: Define and declare variables on first use throughout
2874 (current_function_interrupt): Change to bool type.
2875 (frame_insn): Rename to emit_frame_insn and update users.
2876 (push_regs): Use bool for 'interrupt_handler' argument.
2877 (save_schedule_s): Remove.
2878 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
2879 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
2880 targetm.asm_out.unaligned_op.di.
2881 (gen_far_branch): Remove redundant forward declaration.
2882 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
2883 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
2884 (sh_set_return_address, sh_function_ok_for_sibcall,
2885 scavenge_reg): Update comments.
2886 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
2887 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
2888 (sh_attr_renesas_p): Remove unnecessary parentheses.
2889 (branch_dest): Simplify.
2890 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
2891 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
2892 (CUMULATIVE_ARGS): Change macro to typedef.
2893 (current_function_interrupt): Change to bool type.
2894 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
2895 Surround with __cplusplus ifdef.
2896 (sh_compare_op0, sh_compare_op1): Remove.
2897 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
2899 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
2901 * config/arm/arm.md: (arch): Add neon.
2902 (arch_enabled): Return yes for arch neon when TARGET_NEON.
2903 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
2904 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
2905 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
2906 attributes for alt renumbering. Mark alt 3 as non-predicable.
2907 (thumb2_movdf_vfp): Likewise.
2909 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
2911 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
2912 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
2913 (*andqi_1): Add preferred_for_speed attribute to disparage
2914 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
2915 (*<code>qi_1): Ditto.
2916 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
2917 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
2918 (*ashlqi3_1): Ditto.
2919 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
2920 Add preferred_for_size attribute to disparage alternative 0 and
2921 preferred_for_speed attribute to disparage alternative 1 for
2922 TARGET_PARTIAL_REG_STALL targets.
2924 2016-05-07 Tom de Vries <tom@codesourcery.com>
2926 PR tree-optimization/70956
2927 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
2930 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2932 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
2933 * config/sh/sh.c (sh_cbranch_distance): Implement it.
2934 * config/sh/sh.md (branch_zero): Remove define_attr.
2935 (define_delay): Disable delay slot if branch distance is one insn.
2937 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2939 * config/i386/i386.md (LEAMODE): New mode attribute.
2940 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
2941 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
2942 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
2943 operand 2 predicate.
2944 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
2945 (*lea<mode>_general_3): Ditto.
2946 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
2948 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2950 * genmddump.c (main): Convert argv from char ** to const char **.
2952 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2954 * coretypes.h (OVERRIDE): New macro.
2957 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
2959 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
2960 allow coalescing if the types are compatible.
2962 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2964 * pass_manager.h (pass_manager::register_pass_name): New method.
2965 (pass_manager::get_pass_by_name): New method.
2966 (pass_manager::create_pass_tab): New method.
2967 (pass_manager::m_name_to_pass_map): New field.
2968 * passes.c (name_to_pass_map): Delete global in favor of field
2969 "m_name_to_pass_map" of pass_manager.
2970 (register_pass_name): Rename from a function to...
2971 (pass_manager::register_pass_name): ...this method, updating
2972 for renaming of global "name_to_pass_map" to field
2973 "m_name_to_pass_map".
2974 (create_pass_tab): Rename from a function to...
2975 (pass_manager::create_pass_tab): ...this method, updating
2976 for renaming of global "name_to_pass_map" to field.
2977 (get_pass_by_name): Rename from a function to...
2978 (pass_manager::get_pass_by_name): ...this method.
2979 (enable_disable_pass): Convert use of get_pass_by_name to
2980 a method call, locating the pass_manager singleton.
2982 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2984 * genattr-common.c (main): Convert argv from char ** to const char **.
2985 * genattr.c (main): Likewise.
2986 * genattrtab.c (main): Likewise.
2987 * genautomata.c (initiate_automaton_gen): Likewise.
2989 * gencodes.c (main): Likewise.
2990 * genconditions.c (main): Likewise.
2991 * genconfig.c (main): Likewise.
2992 * genconstants.c (main): Likewise.
2993 * genemit.c (main): Likewise.
2994 * genenums.c (main): Likewise.
2995 * genextract.c (main): Likewise.
2996 * genflags.c (main): Likewise.
2997 * genmddeps.c (main): Likewise.
2998 * genopinit.c (main): Likewise.
2999 * genoutput.c (main): Likewise.
3000 * genpeep.c (main): Likewise.
3001 * genpreds.c (main): Likewise.
3002 * genrecog.c (main): Likewise.
3003 * gensupport.c (init_rtx_reader_args_cb): Likewise.
3004 (init_rtx_reader_args): Likewise.
3005 * gensupport.h (init_rtx_reader_args_cb): Likewise.
3006 (init_rtx_reader_args): Likewise.
3007 * gentarget-def.c (main): Likewise.
3008 * read-md.c (read_md_files): Likewise.
3009 * read-md.h (read_md_files): Likewise.
3011 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3013 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
3014 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
3015 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
3016 Remove unused predicate.
3017 (register_and_not_fp_reg_operand): Ditto.
3019 2016-05-06 Martin Liska <mliska@suse.cz>
3021 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3022 instead of vec as the vector is local to the function.
3024 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3026 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3027 avx512bw alternative.
3029 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3030 before the ashr<mode>3 pattern.
3032 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
3033 v instead of x in vex or maybe_vex alternatives, use
3034 maybe_evex instead of vex in prefix.
3036 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
3037 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
3038 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
3039 in vex or maybe_vex alternatives, use maybe_evex instead of vex
3042 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
3043 v instead of x in vex or maybe_vex alternatives, use
3044 maybe_evex instead of vex in prefix.
3046 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
3047 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
3048 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
3049 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
3050 alternatives, use maybe_evex instead of vex in prefix.
3052 * config/i386/sse.md (vec_interleave_lowv4sf,
3053 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
3054 v instead of x in vex or maybe_vex alternatives, use
3055 maybe_evex instead of vex in prefix.
3057 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
3058 v instead of x in vex or maybe_vex alternatives, use
3059 maybe_evex instead of vex in prefix.
3061 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3062 v constraint instead of x.
3064 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
3066 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3067 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3070 2016-05-06 Richard Biener <rguenther@suse.de>
3072 PR tree-optimization/70948
3073 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3074 Properly clobber all fields of va_list for __builtin_va_start.
3076 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
3079 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3080 loop latch destination.
3082 2016-05-06 Martin Liska <mliska@suse.cz>
3084 * tree-ssa-uninit.c: Apply manual changes
3085 to the GNU coding style.
3086 (prune_uninit_phi_opnds): Rename from
3087 prune_uninit_phi_opnds_in_unrealizable_paths.
3089 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3091 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
3092 mspace): Remove deprecated options.
3093 * doc/invoke.texi (SH options): Remove -mspace.
3095 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3097 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
3099 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3101 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
3102 corresponding combine split pattern.
3104 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3107 * config/sh/predicates.md (long_displacement_mem_operand): New.
3108 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
3109 Add movi20, movi20s alternatives. Adjust length attribute for
3111 (movsi_ie): Allow for any FPU. Adjust length attribute for
3113 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
3114 attribute for alternatives.
3115 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
3116 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
3117 length attribute for alternatives.
3119 2016-05-06 Richard Biener <rguenther@suse.de>
3121 PR tree-optimization/70960
3122 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
3124 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3127 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
3128 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
3130 2016-05-06 Marek Polacek <polacek@redhat.com>
3133 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
3135 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3138 * config/sh/sh.md (*rotcr): Add another variant.
3140 2016-05-06 Richard Biener <rguenther@suse.de>
3143 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
3145 2016-05-06 Richard Biener <rguenther@suse.de>
3148 * fold-const.c (split_tree): Always convert to the original type
3151 2016-05-06 Richard Biener <rguenther@suse.de>
3153 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
3154 (fwprop_addr): Likewise.
3156 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3159 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
3161 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
3162 * config/i386/i386.md (push mem splitter): Use find_constant_src in
3163 the splitter condition.
3164 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
3165 the splitter condition.
3166 (FP float_extend load splitter): Ditto.
3168 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
3170 * config/i386/i386.md (peehole2 patterns): Change true_regnum
3171 to REGNO in all peephole2 patterns.
3172 (post-reload splitters): Change true_regnum to REGNO in
3173 post-reload splitters.
3174 (zero_extend splitters): Use general_reg_operand and
3175 nonimmediate_gr_operand predicates.
3177 2016-05-05 Jakub Jelinek <jakub@redhat.com>
3179 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
3180 v constraint instead of x.
3182 2016-05-05 Alan Modra <amodra@gmail.com>
3185 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3186 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
3187 TARGET_NO_FP_IN_TOC for -mrelocatable.
3188 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
3189 TARGET_RELOCATABLE test.
3190 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3191 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3192 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3193 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3194 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3195 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3196 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3197 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3198 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
3199 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3201 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
3202 (rs6000_stack_info): Likewise.
3203 (rs6000_elf_asm_out_constructor): Likewise.
3204 (rs6000_elf_asm_out_destructor): Likewise.
3205 (rs6000_elf_declare_function_name): Likewise.
3206 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
3207 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
3210 2016-05-05 Alan Modra <amodra@gmail.com>
3212 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
3214 2016-05-05 Alan Modra <amodra@gmail.com>
3216 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
3217 out-of-line gpr restore for one or two regs if that would add
3220 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
3223 * config/i386/i386.md
3224 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
3225 Change to post-epilogue_completed late splitter. Use sse_reg_operand
3226 as operand 0 predicate.
3227 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
3229 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
3230 Ditto. Emit the pattern using RTX.
3232 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
3233 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
3234 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
3235 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
3237 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
3238 sse_reg_operand as operand 0 predicate.
3240 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
3241 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
3242 instead of gen_rtx_REG.
3243 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
3246 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3248 * function.c (emit_use_return_register_into_block): Delete.
3249 (gen_return_pattern): Delete.
3250 (emit_return_into_block): Delete.
3251 (active_insn_between): Delete.
3252 (convert_jumps_to_returns): Delete.
3253 (emit_return_for_exit): Delete.
3254 (thread_prologue_and_epilogue_insns): Delete all code dealing with
3255 simple_return for shrink-wrapped blocks.
3256 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
3257 end of blocks that need one.
3258 (get_unconverted_simple_return): Delete.
3259 (convert_to_simple_return): Delete.
3260 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
3261 (convert_to_simple_return): Ditto.
3263 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3265 * cfgcleanup.c (bb_is_just_return): New function.
3266 (try_optimize_cfg): Simplify jumps to return, branches to return,
3267 and branches around return.
3269 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3271 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
3274 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3278 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
3279 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
3280 assert flags & OEP_HASH_CHECK, instead of asserting it
3281 never happens. Handle TARGET_EXPR.
3282 * fold-const.c (operand_equal_p): For hash verification,
3283 or in OEP_HASH_CHECK into flags.
3285 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
3287 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
3289 (compute_samebase_partition_bases): Fix typo.
3291 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3293 * config/i386/sse.md (vec_interleave_highv8sf,
3294 vec_interleave_lowv8sf, vec_interleave_highv4df,
3295 vec_interleave_lowv4df): Remove constraints from expanders.
3297 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3299 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3301 * tree-inline.c (expand_call_inline): Fix path dealing with
3302 making lhs of call statement undefined.
3304 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3306 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
3307 Check availability on NODE, too.
3308 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3309 (cgraph_node::call_for_symbol_and_aliases): Likewise.
3310 (varpool_node::call_for_symbol_and_aliase): Likewise.
3311 * ipa-pure-const.c (add_new_function): Analyze all bodies.
3312 (propagate_pure_const): Propagate across interposable functions, too.
3313 (skip_function_for_local_pure_const): Do not skip interposable bodies
3315 (pass_local_pure_const::execute): Update.
3317 2016-05-04 Marek Polacek <polacek@redhat.com>
3319 * doc/invoke.texi: Document -Wdangling-else.
3321 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3323 * config.gcc: Error out when conflicting multilib is detected. Do not
3324 loop over multilibs since no combination is legal.
3326 2016-05-04 Alan Modra <amodra@gmail.com>
3328 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3329 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3330 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3333 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
3335 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3336 Clean up p5600 comments.
3338 2016-05-04 Richard Biener <rguenther@suse.de>
3340 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3341 constructor simplifications.
3342 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3344 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
3346 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3347 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3348 result.set_rtx is null instead of aborting.
3349 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3351 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3352 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3353 *mov<mode>_store_postinc): New patterns.
3355 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
3357 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
3358 as commutative. Check both conversions are NOP.
3359 ((A & B) OP (C & B)): Remove.
3361 2016-05-04 Alan Modra <amodra@gmail.com>
3363 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3365 2016-05-04 Alan Modra <amodra@gmail.com>
3368 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3369 when cr2,3,4 are all fixed regs.
3371 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
3373 PR rtl-optimization/57193
3374 * opts.c (default_options_table): Revert OPT_frename_registers change.
3375 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3377 2016-05-03 Martin Sebor <msebor@redhat.com>
3380 * builtins.c (fold_builtin_FILE): New function.
3381 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3382 (fold_builtin_0): Call them.
3383 * gimplify.c (gimplify_call_expr): Remove the handling of
3384 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3387 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3388 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3392 * doc/extend.texi (Function Names as Strings): Update __func__,
3393 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3396 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3397 Richard Biener <rguenther@suse.de>
3399 PR tree-optimization/70916
3400 * tree-if-conv.c: Include cfganal.h.
3401 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3402 and remove_fake_exit_edges around the optimization pass.
3404 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3406 * cgraph.c (symbol_table::create_edge): Set inline_failed.
3407 (cgraph_edge::make_direct): Likewise.
3408 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3409 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3410 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3411 (CIF_THUNK): New code.
3412 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3413 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3414 (compute_inline_parameters): Set inline_failed for thunks.
3415 (inline_analyze_function): Cleanup.
3416 * ipa-inline.c (can_inline_edge_p): Do not deal with
3417 call_stmt_cannot_inline_p.
3418 (can_early_inline_edge_p): Likewise.
3419 (early_inliner): Initialize inline_failed.
3420 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3422 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3424 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3425 from nonimm_ssenomem_operand.
3426 (nonimm_ssenomem_operand): New predicate.
3427 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3428 as operand 0 predicate.
3429 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3430 Disable unsupported alternatives using "enabled" attribute.
3431 Use register_ssemem_operand as operand 0 predicate.
3432 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3434 2016-05-03 Marek Polacek <polacek@redhat.com>
3437 * input.c (expansion_point_location): New function.
3438 * input.h (expansion_point_location): Declare.
3440 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3442 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3443 occurence with frame_offset_ ones.
3445 2016-05-03 Alan Modra <amodra@gmail.com>
3447 PR rtl-optimization/70890
3448 * ira.c (combine_and_move_insns): When moving def_insn, remove
3451 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3453 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3454 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3455 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3456 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3458 2016-05-03 Alan Modra <amodra@gmail.com>
3460 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3461 for SAVE_MULTIPLE/STORE_MULTIPLE.
3463 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3465 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3466 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3468 2016-05-03 Richard Biener <rguenther@suse.de>
3470 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3472 (gimplify_arg): Likewise.
3473 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3474 re-writing the result to a decl if required.
3475 (internal_get_tmp_var): Add allow_ssa parameter
3476 and override into_ssa with it.
3477 (get_formal_tmp_var): Adjust.
3478 (get_initialized_tmp_var): Add allow_ssa parameter.
3479 (gimplify_arg): Add allow_ssa parameter and avoid generating
3480 SSA names for the result false.
3481 (gimplify_call_expr): If the call may return twice do not
3482 gimplify parameters into SSA.
3483 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3484 (gimplify_modify_expr): Adjust assert. For noreturn calls
3485 with a SSA name LHS adjust its def.
3486 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3487 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3488 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3489 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3490 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
3491 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
3492 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3493 (optimize_target_teams): Do not allow SSA names for clause operands.
3494 (gimplify_expr): Likewise for where we mark the result addressable.
3495 * passes.def (pass_init_datastructures): Remove.
3496 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3497 (rewrite_stmt): Likewise.
3498 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3499 (replace_locals_op): Replace SSA names.
3500 (copy_gimple_seq_and_replace_locals): Init src_cfun.
3501 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3502 * cgraph.c (release_function_body): Free CFG annotations only
3503 when we have a CFG. Simplify.
3504 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3505 force_gimple_operand instead of get_initialized_tmp_var.
3506 * tree-pass.h (make_pass_init_datastructures): Remove.
3507 * tree-ssa.c (execute_init_datastructures): Remove.
3508 (pass_data_init_datastructures): Likewise.
3509 (class pass_init_datastructures): Likewise.
3510 (make_pass_init_datastructures): Likewise.
3511 * omp-low.c (create_omp_child_function): Init SSA data structures.
3512 (grid_expand_target_grid_body): Likewise.
3513 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3514 name before adding it to names_to_release.
3515 (remove_bb): Always release SSA defs.
3516 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3517 before dereferencing it.
3518 * cgraphunit.c (init_lowered_empty_function): Always
3519 int SSA data structures.
3520 * tree-ssanames.c (release_defs): Remove assert that we are in
3522 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3524 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3525 Uros Bizjak <ubizjak@gmail.com>
3527 PR rtl-optimization/70467
3528 * config/i386/predicates.md (x86_64_hilo_int_operand,
3529 x86_64_hilo_general_operand): New predicates.
3530 * config/i386/constraints.md (Wd): New constraint.
3531 * config/i386/i386.md (mode attr di): Use Wd instead of e.
3532 (general_hilo_operand): New mode attr.
3533 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3534 instead of <general_operand>.
3535 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3536 x86_64_hilo_general_operand instead of <general_operand>.
3538 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3540 PR tree-optimization/70916
3541 * tree-if-conv.c (constant_or_ssa_name): Removed.
3542 (fold_build_cond_expr): Use is_gimple_val instead of
3543 constant_or_ssa_name.
3545 PR tree-optimization/70916
3546 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3547 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3550 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3551 (optimize_atomic_bit_test_and): New function.
3552 (pass_fold_builtins::execute): Use it.
3553 * optabs.def (atomic_bit_test_and_set_optab,
3554 atomic_bit_test_and_complement_optab,
3555 atomic_bit_test_and_reset_optab): New optabs.
3556 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3557 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3558 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3559 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3560 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3561 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3562 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3563 * doc/md.texi (atomic_bit_test_and_set@var{mode},
3564 atomic_bit_test_and_complement@var{mode},
3565 atomic_bit_test_and_reset@var{mode}): Document.
3566 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3567 atomic_bit_test_and_complement<mode>,
3568 atomic_bit_test_and_reset<mode>): New expanders.
3569 (atomic_bit_test_and_set<mode>_1,
3570 atomic_bit_test_and_complement<mode>_1,
3571 atomic_bit_test_and_reset<mode>_1): New insns.
3573 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3575 PR rtl-optimization/70687
3576 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
3577 instead of unsigned HOST_WIDE_INT.
3579 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3581 PR rtl-optimization/44281
3582 * hard-reg-set.h (struct target_hard_regs): New field
3583 x_fixed_nonglobal_reg_set.
3584 (fixed_nonglobal_reg_set): New macro.
3585 * reginfo.c (init_reg_sets_1): Initialize it.
3586 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3588 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3590 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3592 PR tree-optimization/56541
3593 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3594 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3595 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3596 (any_complicated_phi): new static variable.
3597 (aggressive_if_conv): delete.
3598 (if_convertible_phi_p): support phis with more than two arguments.
3599 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3600 critical pred edges.
3601 (ifcvt_split_critical_edges): support phis with more than two
3602 arguments by checking new parameter. only split critical edges
3604 (tree_if_conversion): handle simd pragma marked loop using new
3605 local variable aggressive_if_conv. check any_complicated_phi.
3607 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3609 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3612 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3614 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3617 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3619 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3620 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3621 define_insn_and_split.
3622 (mulsi3_i): New define_insn_and_split.
3623 (mulsi3_call): Convert to define_insn.
3624 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3627 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3629 * machmode.h (mode_complex): Add support to give the complex mode
3631 (GET_MODE_COMPLEX_MODE): Likewise.
3632 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3633 stored by build_complex_type and gfc_build_complex_type instead of
3634 trying to figure out the appropriate mode based on the size. Raise
3635 an assertion error, if the type was not set.
3636 * genmodes.c (struct mode_data): Add field for the complex type of
3638 (blank_mode): Likewise.
3639 (make_complex_modes): Remember the complex mode created in the
3641 (emit_mode_complex): Write out the mode_complex array to map a
3642 type mode to the complex version.
3643 (emit_insn_modes_c): Likewise.
3644 * tree.c (build_complex_type): Set the complex type to use before
3645 calling layout_type.
3646 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3647 support for __float128 complex datatypes.
3648 (rs6000_hard_regno_mode_ok): Likewise.
3649 (rs6000_setup_reg_addr_masks): Likewise.
3650 (rs6000_complex_function_value): Likewise.
3651 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3652 __float128 and __ibm128 complex.
3653 (FLOAT128_IBM_P): Likewise.
3654 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3655 * doc/extend.texi (Additional Floating Types): Document that
3656 -mfloat128 must be used to enable __float128. Document complex
3657 __float128 and __ibm128 support.
3659 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3662 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3663 char/short arguments promoted to int because of promote_prototypes.
3665 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3667 * config/i386/predicates.md (register_ssemem_operand): New predicate.
3668 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3669 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3670 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
3671 alternatives using "enabled" attribute. Use register_ssemem_operand
3672 as operand 1 predicate.
3673 (*cmpi<unord>xf_i387): Split XFmode pattern from
3674 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3675 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3676 *absneg<mode>2_i387. Disable unsupported alternatives using
3677 "enabled" attribute.
3678 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3680 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3682 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3684 (oacc_loop_process): Check mask for loop termination.
3686 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3688 * cif-code.def (CIF_THUNK): Add.
3689 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3692 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3694 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3695 (dump_inline_summary): Dump it.
3696 (fp_expression_p): New predicate.
3697 (estimate_function_body_sizes): Use it.
3698 (inline_merge_summary): Merge fp_expressions.
3699 (inline_read_section): Read fp_expressions.
3700 (inline_write_summary): Write fp_expressions.
3701 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3702 codegen boundary if either caller or callee is !fp_expressions.
3703 * ipa-inline.h (inline_summary): Add fp_expressions.
3704 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3705 to fp_expressions be sure the fp generation flags are updated.
3707 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3709 PR rtl-optimization/70467
3710 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3712 PR rtl-optimization/70467
3713 * ipa-pure-const.c (check_call): Handle internal calls even in
3714 ipa mode like in local mode.
3716 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3718 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3720 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3722 * match.pd (X u< X, X u> X): New transformations.
3724 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3726 * flag-types.h (enum warn_strict_overflow_code): Move ...
3727 * coretypes.h: ... here.
3728 * fold-const.h (fold_overflow_warning): Declare.
3729 * fold-const.c (fold_overflow_warning): Make non-static.
3730 (fold_comparison): Move the transformation of X +- C1 CMP C2
3731 into X CMP C2 -+ C1 ...
3732 * match.pd: ... here.
3733 * gimple-fold.c (fold_stmt_1): Protect with
3734 fold_defer_overflow_warnings.
3736 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3738 * omp-low.c (struct oacc_loop): Add 'inner' field.
3739 (new_oacc_loop_raw): Initialize it to zero.
3740 (oacc_loop_fixed_partitions): Initialize it.
3741 (oacc_loop_auto_partitions): Partition outermost loop to outermost
3742 available partitioning.
3744 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3746 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3748 (umulsidi3): Likewise.
3749 (indirect_jump): Fix jump instruction assembly patterns.
3751 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
3754 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3755 (nvptx_function_value): Assert non-NULL cfun.
3757 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
3759 PR rtl-optimization/70886
3760 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3762 * cselib.h (rtx_equal_for_cselib_1): Declare.
3763 (rtx_equal_for_cselib_p: New inline function.
3764 * cselib.c (rtx_equal_for_cselib_p): Delete.
3765 (rtx_equal_for_cselib_1): Make public.
3767 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3769 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
3770 (register_mixssei387nonimm_operand): Remove predicate.
3771 * config/i386/i386.md (*fop_<mode>_comm): Merge from
3772 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
3773 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
3774 for TARGET_MIX_SSE_I387 alternatives.
3775 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
3776 Disable unsupported alternatives using "enabled" attribute. Use
3777 nonimm_ssenomem_operand as operand 1 predicate. Also check
3778 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
3780 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3782 * tree.c (cst_and_fits_in_hwi): Simplify.
3784 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3786 * tree.h (wi::to_wide): New function.
3787 * expr.c (expand_expr_real_1): Use wi::to_wide.
3788 * fold-const.c (int_const_binop_1): Likewise.
3789 (extract_muldiv_1): Likewise.
3791 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3793 * wide-int.h: Update offset_int and widest_int documentation.
3794 (WI_SIGNED_SHIFT_RESULT): New macro.
3795 (wi::binary_shift): Define signed_shift_result_type for
3796 shifts on offset_int- and widest_int-like types.
3797 (generic_wide_int): Support <<= and >>= if << and >> are supported.
3798 * tree.h (int_bit_position): Use shift operators instead of wi::
3800 * alias.c (adjust_offset_for_component_ref): Likewise.
3801 * expr.c (get_inner_reference): Likewise.
3802 * fold-const.c (fold_comparison): Likewise.
3803 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
3804 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
3805 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3806 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3807 (stmt_kills_ref_p): Likewise.
3808 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
3809 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3810 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3811 (ao_ref_init_from_vn_reference): Likewise.
3813 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3815 * wide-int.h: Update offset_int and widest_int documentation.
3816 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
3817 (wi::binary_traits): Allow ordered comparisons between offset_int and
3818 offset_int, between widest_int and widest_int, and between either
3819 of these types and basic C types.
3820 (operator <, <=, >, >=): Define for the same combinations.
3821 * tree.h (tree_int_cst_lt): Use comparison operators instead
3822 of wi:: comparisons.
3823 (tree_int_cst_le): Likewise.
3824 * gimple-fold.c (fold_array_ctor_reference): Likewise.
3825 (fold_nonarray_ctor_reference): Likewise.
3826 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
3827 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
3828 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
3829 * tree-sra.c (completely_scalarize): Likewise.
3830 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
3831 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
3832 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
3833 (check_for_binary_op_overflow): Likewise.
3834 (search_for_addr_array): Likewise.
3835 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
3837 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3839 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
3840 (arc_save_restore): Likewise.
3841 (arc_dwarf_register_span): Likewise.
3842 (arc_output_pic_addr_const): Initialize suffix variable.
3844 2016-05-02 Martin Liska <mliska@suse.cz>
3846 * symbol-summary.h (function_summary::function_summary):
3847 Remove checking assert for all cgraph nodes.
3848 (function_summary::get): Check summary_uid.
3849 (symtab_insertion): Check summary_uid.
3851 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3853 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
3854 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
3856 (arc_dwarf_register_span): Remove enum keyword.
3857 (compact_memory_operand_p): New function.
3858 * config/arc/arc.h (reg_class): Add code density register classes.
3859 (REG_CLASS_NAMES): Likewise.
3860 (REG_CLASS_CONTENTS): Likewise.
3861 * config/arc/arc.md (*movqi_insn): Add code density instructions.
3862 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
3863 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
3864 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
3865 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
3867 (h, Rcd, Rsd, Rzd): New register constraints.
3868 (T): Use compact_memory_operand_p function.
3869 * config/arc/predicates.md (compact_load_memory_operand): Remove.
3871 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3873 * config/sh/sh.md (*negnegt, *movtt): Remove.
3875 2016-05-02 Marek Polacek <polacek@redhat.com>
3876 Tom de Vries <tom@codesourcery.com>
3878 PR tree-optimization/70700
3879 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
3880 bigger than FIRST_REF_NODE.
3882 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3885 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
3887 (prepare_cbranch_operands): Don't use scratch register. Assume that
3888 function is used when pseudos can be created.
3889 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
3890 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
3891 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
3892 define_expand. Allow it only when pseudos can be created.
3893 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
3895 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
3897 * config/i386/constraints.md (BC): Only allow -1 operands.
3898 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
3899 Add "enabled" attribute. Update XI mode attribute calculation.
3900 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
3901 (*movoi_internal_avx): Update XI mode attribute calculation.
3902 (*movti_internal): Ditto.
3904 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3906 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
3907 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
3909 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
3911 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
3912 statement on instruction code. Remove trailing spaces.
3913 (altivec_expand_stv_builtin): Likewise.
3915 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3917 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
3918 (TARGET_FPU_DOUBLE): Simplify.
3919 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
3920 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
3921 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
3922 with 'TARGET_FPU_DOUBLE'.
3923 * config/sh/sh.md: Likewise.
3925 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
3927 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
3928 SH_DIV_STR_FOR_SIZE): Remove.
3929 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
3930 SH_DIV_STR_FOR_SIZE): Remove.
3932 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3934 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
3935 logical_reg_operand): Delete.
3936 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
3937 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
3938 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
3939 match_operand and match_test.
3940 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
3941 variables on their first use. Return bool values.
3942 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
3943 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
3944 arith_reg_operand for input operand. Remove empty constraints.
3946 (*xorsi3_compact): Rename to xorsi3.
3947 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
3948 (*zero_extend<mode>si2_disp_mem): Update comment.
3951 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3953 * config/sh/t-sh: Remove SH5 support.
3954 * config.gcc: Likewise.
3955 * configure: Likewise.
3957 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3959 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3961 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3963 * config/sh/sh.c (register_sh_passes, sh_option_override,
3964 sh_print_operand, prepare_move_operands,
3965 sh_can_follow_jump): Remove TARGET_SH1 checks.
3966 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
3967 PROMOTE_MODE): Likewise.
3968 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
3971 2016-04-30 Alan Modra <amodra@gmail.com>
3973 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
3974 restoring when fixed_reg_p, but allow out-of-line or stmw save.
3975 Check for user regs later to avoid unnecessary looping over regs.
3976 Merge user reg check with non-saved reg check. Don't force
3977 inline VR restore when static chain used.
3978 (rs6000_frame_related): Omit eh_frame info for user regs when
3980 (fixed_regs_p): Delete.
3982 2016-04-30 Alan Modra <amodra@gmail.com>
3984 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
3985 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
3988 2016-04-30 Alan Modra <amodra@gmail.com>
3991 * config/rs6000/rs6000.c (fixed_reg_p): New function.
3992 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
3995 2016-04-30 Alan Modra <amodra@gmail.com>
3997 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3998 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
3999 flag_pic test for Darwin.
4001 2016-04-30 Alan Modra <amodra@gmail.com>
4003 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
4004 throw_calls_crossed.
4005 (REG_FREQ_CALLS_CROSSED): Delete.
4006 (REG_N_THROWING_CALLS_CROSSED): Delete.
4007 * regstat.c (regstat_bb_compute_ri): Don't calculate
4008 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
4009 (dump_reg_info): Don't print call cross frequency.
4010 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
4011 and REG_N_THROWING_CALLS_CROSSED.
4013 2016-04-30 Alan Modra <amodra@gmail.com>
4015 * regs.h (struct reg_info_t): Delete live_length.
4016 (REG_LIVE_LENGTH): Delete macro.
4017 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
4018 local_live, local_processed and local_live_last_luid params.
4019 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
4021 (regstat_compute_ri): Adjust for above. Don't set
4023 (dump_reg_info): Don't print live length.
4024 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
4025 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
4026 Localize loop_depth var.
4028 2016-04-30 Alan Modra <amodra@gmail.com>
4030 * ira.c (enum valid_equiv): New.
4031 (validate_equiv_mem): Return enum.
4032 (update_equiv_mem): Create replacement in more cases.
4033 (add_store_equivs): Update validate_equiv_mem call.
4035 2016-04-30 Alan Modra <amodra@gmail.com>
4037 * ira.c (combine_and_move_insns): Rather than scanning insns,
4038 use DF infrastucture to find use and def insns.
4040 2016-04-30 Alan Modra <amodra@gmail.com>
4042 ira.c (combine_and_move_insns): Move invariant conditions..
4043 (ira.c): ..to here. Call combine_and_move_insns before
4044 add_store_equivs. Call grow_reg_equivs later. Allocate
4045 req_equiv later using max_reg_num() rather than global max_regno.
4046 (contains_replace_regs): Delete.
4047 (add_store_equivs): Remove contains_replace_regs test.
4049 2016-04-30 Alan Modra <amodra@gmail.com>
4051 * ira.c (struct equiv_mem_data): New.
4052 (equiv_mem, equiv_mem_modified): Delete static vars.
4053 (validate_equiv_mem_from_store): Use "data" param to communicate..
4054 (validate_equiv_mem): ..from here.
4056 2016-04-30 Alan Modra <amodra@gmail.com>
4058 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4060 (update_reg_equivs): ..here. Move allocation and freeing of
4061 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
4062 end_alias_analysis to..
4065 2016-04-30 Alan Modra <amodra@gmail.com>
4067 * ira.c (pdx_subregs): Delete.
4068 (struct equivalence): Add pdx_subregs field.
4069 (set_paradoxical_subreg): Remove pdx_subregs param. Update
4071 (update_equiv_regs): Don't create or free pdx_subregs. Update
4074 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4076 * config/rs6000/altivec.h: Change definitions of vec_xl and
4078 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
4079 (LD_ELEMREV_V2DI): New.
4080 (LD_ELEMREV_V4SF): New.
4081 (LD_ELEMREV_V4SI): New.
4082 (LD_ELEMREV_V8HI): New.
4083 (LD_ELEMREV_V16QI): New.
4084 (ST_ELEMREV_V2DF): New.
4085 (ST_ELEMREV_V2DI): New.
4086 (ST_ELEMREV_V4SF): New.
4087 (ST_ELEMREV_V4SI): New.
4088 (ST_ELEMREV_V8HI): New.
4089 (ST_ELEMREV_V16QI): New.
4092 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4093 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
4094 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
4095 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
4096 (altivec_expand_builtin): Add handling for
4097 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
4098 (rs6000_invalid_builtin): Add error-checking for
4099 RS6000_BTM_P9_VECTOR.
4100 (altivec_init_builtins): Define builtins used to implement vec_xl
4102 (rs6000_builtin_mask_names): Define power9-vector.
4103 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
4104 (RS6000_BTM_P9_VECTOR): Define.
4105 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
4106 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
4107 (vsx_ld_elemrev_v2df): Likewise.
4108 (vsx_ld_elemrev_v4sf): Likewise.
4109 (vsx_ld_elemrev_v4si): Likewise.
4110 (vsx_ld_elemrev_v8hi): Likewise.
4111 (vsx_ld_elemrev_v16qi): Likewise.
4112 (vsx_st_elemrev_v2df): Likewise.
4113 (vsx_st_elemrev_v2di): Likewise.
4114 (vsx_st_elemrev_v4sf): Likewise.
4115 (vsx_st_elemrev_v4si): Likewise.
4116 (vsx_st_elemrev_v8hi): Likewise.
4117 (vsx_st_elemrev_v16qi): Likewise.
4118 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
4121 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
4123 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
4125 (simplify_control_stmt_condition_1): ... here. Recurse into
4126 BIT_AND_EXPRs and BIT_IOR_EXPRs.
4128 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
4131 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
4132 (zero_extendqi<mode>2_dot): Revert earlier conversion from
4133 define_insn_and_split to define_insn.
4134 (zero_extendqi<mode>2_dot2): Same.
4135 (extendqi<mode>2_dot): Same.
4136 (extendqi<mode>2_dot2): Same.
4138 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4140 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
4141 (probe_stack): New expander.
4142 (probe_stack_<mode>): New insn pattern.
4144 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4146 * config/i386/i386.md
4147 (operations with memory inputs setting flags peephole2):
4148 Remove uneeded REG_P checks. Cleanup pattern generation.
4150 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
4152 * tree-vect-loop.c (vect_transform_loop): Fix
4153 nb_iterations_upper_bound computation for vectorized loop.
4155 2016-04-29 Marek Polacek <polacek@redhat.com>
4156 Jakub Jelinek <jakub@redhat.com>
4159 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4160 TARGET_EXPR_SLOT as a base.
4162 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
4164 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
4165 with 'rCm2' constraints to limit possible immediate size.
4166 (*load_zeroextendqisi_update): Likewise.
4167 (*load_signextendqisi_update): Likewise.
4168 (*loadhi_update): Likewise.
4169 (*load_zeroextendhisi_update): Likewise.
4170 (*load_signextendhisi_update): Likewise.
4171 (*loadsi_update): Likewise.
4172 (*loadsf_update): Likewise.
4174 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4176 * config/i386/predicates.md (constm1_operand): Fix comparison.
4178 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4180 * testsuite/gcc.target/arc/ieee_eq.c: New test.
4182 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
4184 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
4185 remaining SH5 related settings.
4186 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
4187 shmedia_prepare_call_address): Delete.
4188 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
4189 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
4190 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
4191 UNSUPPORTED_SH2A): Remove m5 checks.
4192 (sh_divide_strategy_e): Remove SH5 division strategies.
4193 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
4194 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
4196 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
4198 * config/s390/s390.c (s390_rtx_costs): Update documentation.
4200 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4202 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
4203 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
4205 * config/s390/vector.md ("mov<mode>"): Likewise.
4207 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
4209 * config/s390/constraints.md ("U", "W"): Invoke
4210 s390_mem_constraint with "ZR" and "ZT".
4211 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
4212 addresses when using LRA. Accept also short displacements for S
4213 and T constraints. Do not check for long displacement target for
4214 S and T constraints.
4215 (s390_mem_constraint): Remove handling of U and W constraints.
4216 * config/s390/s390.md (various patterns): Remove the short
4217 displacement constraints (Q and R) if a long displacement
4218 constraint is present. Add longdisp as required CPU capability.
4219 * config/s390/vector.md: Likewise.
4220 * config/s390/vx-builtins.md: Likewise.
4222 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4225 * reload1.c (reload): Call finish_spills before
4226 restarting reload loop. Skip select_reload_regs
4227 if update_eliminables_and_spill returns true.
4229 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4231 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
4232 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
4233 (umulhisi3_imm): Update predicates and constraint letters.
4234 (umulhisi3_reg): Declare instruction as commutative.
4235 * config/arc/constraints.md (J12, J16): New constraints.
4236 * config/arc/predicates.md (short_unsigned_const_operand): New
4238 (arc_short_operand): Likewise.
4239 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
4241 2016-04-29 Richard Biener <rguenther@suse.de>
4243 PR tree-optimization/13962
4244 PR tree-optimization/65686
4245 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
4246 * tree-ssa-alias.c (ptrs_compare_unequal): New function
4247 using PTA to compare pointers.
4248 * match.pd: Add pattern for pointer equality compare simplification
4249 using ptrs_compare_unequal.
4251 2016-04-29 Richard Biener <rguenther@suse.de>
4253 * stor-layout.c (layout_type): Do not build a pointer-to-element
4256 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4258 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
4259 Use SWI mode iterator. Use general_reg_operand predicate.
4260 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
4261 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
4264 2016-04-29 Jakub Jelinek <jakub@redhat.com>
4267 * fold-const.c (operand_equal_p): Don't verify hash value equality
4269 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
4272 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4275 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4276 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4277 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4278 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4279 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4281 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4283 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
4284 to info. Don't initialize separate fields to 0. Clean up
4287 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4289 * config/i386/i386.md (peephole2s for operations with memory inputs):
4290 Use SWI mode iterator.
4291 (peephole2s for operations with memory outputs): Ditto.
4292 Do not check for stack checking probe.
4294 (probe_stack): Remove expander.
4296 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4297 Andrew Burgess <andrew.burgess@embecosm.com>
4299 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4300 operands as 32-bits.
4302 2016-04-28 Jason Merrill <jason@redhat.com>
4304 * gdbinit.in: Skip line-map.h.
4306 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4307 Andrew Burgess <andrew.burgess@embecosm.com>
4309 * config/arc/arc.c (arc_conditional_register_usage): Take
4310 TARGET_RRQ_CLASS into account.
4311 (arc_print_operand): Support printing 'p' and 's' operands.
4312 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4314 (TARGET_RRQ_CLASS): Define.
4315 (IS_POWEROF2_OR_0_P): Define.
4316 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4318 (*tst_movb): New define_insn.
4319 (*tst): Avoid recognition if it could prevent '*tst_movb'
4320 combination; replace c/CnL with c/Chs alternative.
4321 (*tst_bitfield_tst): New define_insn.
4322 (*tst_bitfield_asr): New define_insn.
4323 (*tst_bitfield): New define_insn.
4324 (andsi3_i): Add Rrq variant.
4325 (extzv): New define_expand.
4326 (insv): New define_expand.
4327 (*insv_i): New define_insn.
4328 (*movb): New define_insn.
4329 (*movb_signed): New define_insn.
4330 (*movb_high): New define_insn.
4331 (*movb_high_signed): New define_insn.
4332 (*movb_high_signed + 1): New define_split pattern.
4333 (*mrgb): New define_insn.
4334 (*mrgb + 1): New define_peephole2 pattern.
4335 (*mrgb + 2): New define_peephole2 pattern.
4336 * config/arc/arc.opt (mbitops): New option for nps400, uses
4337 TARGET_NPS_BITOPS_DEFAULT.
4338 * config/arc/constraints.md (q): Make register class conditional.
4339 (Rrq): New register constraint.
4340 (Chs): New constraint.
4341 (Clo): New constraint.
4342 (Chi): New constraint.
4343 (Cbf): New constraint.
4344 (Cbn): New constraint.
4345 (C18): New constraint.
4346 (Cbi): New constraint.
4348 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4350 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4352 (bitmap_intersection_of_preds): Ditto.
4353 (bitmap_union_of_succs): Ditto.
4354 (bitmap_union_of_preds): Ditto.
4355 * sbitmap.c (do_popcount): Delete.
4356 (BITMAP_DEBUGGING): Delete.
4357 (sbitmap_verify_popcount): Delete.
4358 (sbitmap_alloc): Don't initialize the popcount field.
4359 (sbitmap_alloc_with_popcount): Delete.
4360 (sbitmap_resize): Don't resize the popcount array.
4361 (sbitmap_vector_alloc): Don't initialize the popcount field.
4362 (bitmap_copy): Don't copy the popcount array.
4363 (bitmap_clear): Don't clear the popcount array.
4364 (bitmap_clear): Delete the popcount array handling.
4365 (bitmap_ior_and_compl): Delete the popcount assert.
4366 (bitmap_not): Ditto.
4367 (bitmap_and_compl): Ditto.
4368 (bitmap_and): Delete the popcount array handling.
4369 (bitmap_xor): Ditto.
4370 (bitmap_ior): Ditto.
4371 (bitmap_or_and): Delete the popcount assert.
4372 (bitmap_and_or): Ditto.
4373 (popcount_table): Delete.
4374 (sbitmap_elt_popcount): Delete.
4375 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4376 (bitmap_set_bit): Delete the popcount assert.
4377 (bitmap_clear_bit): Ditto.
4378 (sbitmap_free): Don't free the popcount array.
4379 (sbitmap_alloc_with_popcount): Delete declaration.
4380 (sbitmap_popcount): Ditto.
4382 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4383 Andrew Burgess <andrew.burgess@embecosm.com>
4385 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4386 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4387 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4388 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4389 * config/arc/arc.opt (mcmem): New option.
4390 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4391 supply length for r/m alternative.
4392 (*extendqisi2_ac): Likewise.
4393 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4395 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4396 (movhi_insn): Likewise.
4397 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4398 (*zero_extendqihi2_i): Add r/Ucm alternative.
4399 (*zero_extendqisi2_ac): Likewise.
4400 (*zero_extendhisi2_i): Likewise.
4401 * config/arc/constraints.md (Uex): New memory constraint.
4402 (Ucm): New define_constraint.
4403 * config/arc/predicates.md (long_immediate_loadstore_operand):
4404 Return 0 for MEM with cmem_address address.
4405 (cmem_address_0): New predicates.
4406 (cmem_address_1): Likewise.
4407 (cmem_address_2): Likewise.
4408 (cmem_address): Likewise.
4410 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4412 * config/rs6000/rs6000.c (machine_function): Rename
4413 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4414 (rs6000_stack_info): Adjust.
4416 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4417 Andrew Burgess <andrew.burgess@embecosm.com>
4419 * config/arc/constraints.md (Usd): Convert to define_constraint.
4423 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4426 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4427 Add new peephole2 where the first insn is *mov<mode>_or instead of
4428 *mov<mode>_internal.
4430 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4432 * tracer.c (bb_seen): Make static.
4434 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4436 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4437 support, setup defaults.
4438 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4439 * config/arc/arc.c (arc_init): Add NPS400 support.
4440 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4441 (TARGET_ARC700): NPS400 is also an ARC700.
4442 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4444 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4447 * config/nds32/nds32.md (casesi): Don't access the operands array
4450 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4452 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4453 (or $-1,reg peephole2): Ditto.
4454 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4456 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4458 * doc/extend.texi (Common Function Attributes) [optimize]:
4459 Discourage use of the optimize attribute.
4461 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4463 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4464 special case builtin.
4465 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4466 ALTIVEC_BUILTIN_VEC_ADDE.
4467 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4468 support for ALTIVEC_BUILTIN_VEC_ADDE.
4469 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4470 for __builtin_vec_adde.
4472 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4474 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4475 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4477 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4480 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4481 attributes): Document cilkplus_runtime.
4483 2016-04-28 Martin Jambor <mjambor@suse.cz>
4485 * tree-cfg.c (verify_expr): Verify that local declarations belong to
4486 this function. Call verify_expr on MEM_REFs and bases of other
4489 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4491 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4492 for WORD_REGISTER_OPERATIONS to runtime check.
4494 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4496 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4498 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4500 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4501 big-endian compilation.
4502 * config/arc/arc.md (addf3): Likewise.
4506 2016-04-28 Richard Biener <rguenther@suse.de>
4508 PR tree-optimization/70840
4509 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4510 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4511 Mark x * pow(x,c) -> pow(x,c+1) commutative.
4512 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4514 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4516 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4517 and explain why in a comment.
4519 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4521 * config/arc/arc.md (cpu_facility): Add fpx variant.
4522 (subdf3): Prohibit use reverse sub when assist operations option
4524 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4525 instructions only when FPX is enabled.
4526 * testsuite/gcc.target/arc/trsub.c: New test.
4528 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4530 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4531 mult_operator when calculating "type" attribute.
4532 (*fop_<mode>_1_i387): Ditto.
4533 (*fop_xf_1_i387): Ditto.
4534 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4535 Use std::swap to swap operands. Use RTL expressions to generate
4538 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4539 Joern Rennecke <joern.rennecke@embecosm.com>
4541 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4543 (emit_pic_move): Remove.
4544 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4545 * config/arc/arc.c (emit_pic_move): Removed.
4546 (TARGET_HAVE_TLS): Define.
4547 (arc_conditional_register_usage): Test for arc_tp_regno.
4548 (arc_print_operand, arc_print_operand_address): Handle TLS
4550 (arc_needs_pcl_p): New function.
4551 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4552 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4553 (arc_raw_symbolic_reference_mentioned_p): Likewise.
4554 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4555 (arc_legitimize_tls_address): Likewise.
4556 (DTPOFF_ZERO_SYM): Define.
4557 (arc_legitimize_pic_address): Make it static, handle TLS cases.
4558 (arc_output_pic_addr_const): Print TLS unspecs.
4559 (prepare_pic_move): New function, replaces emit_pic_move.
4560 (arc_legitimate_constant_p): Handle TLS unspecs.
4561 (arc_legitimate_address_p): Likewise.
4562 (arc_rewrite_small_data_p): Use assert for TLS constants.
4563 (prepare_move_operands): Use prepare_pic_move.
4564 (arc_legitimize_address): Legitimize tls addresses.
4565 (arc_epilogue_uses): Check for arc_tp_regno.
4566 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4567 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4569 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4571 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4572 %(arc_tls_extra_start_spec).
4573 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4574 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4576 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4577 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4578 (UNSPEC_TLS_OFF): Add.
4580 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4581 (get_thread_pointersi): New patterns.
4582 * config/arc/arc.opt (mtp-regno): New option.
4583 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4584 (move_dest_operand): Likewise.
4585 * configure: Regenerate.
4586 * configure.ac: Add arc*-*-* case to test for tls.
4587 * doc/invoke.texi (ARC options): Document mtp-regno.
4589 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4591 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4592 the new ARC HS SIMD instructions.
4593 (arc_preferred_simd_mode): New function.
4594 (arc_autovectorize_vector_sizes): Likewise.
4595 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4596 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4597 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4598 (arc_init_builtins): Add new SIMD builtin types.
4599 (arc_split_move): Handle 64 bit vector moves.
4600 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4601 (TARGET_PLUS_QMACW): Define.
4602 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4603 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4604 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4605 (VSUBADD4H): New builtins.
4606 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4607 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4609 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4610 Matthias Klose <doko@debian.org>
4612 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4614 2016-04-28 Richard Biener <rguenther@suse.de>
4617 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4620 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4622 * common/config/sh/sh-common.c: Remove SH5 support.
4623 * config/sh/constraints.md: Likewise.
4624 * config/sh/config/sh/elf.h: Likewise.
4625 * config/sh/linux.h: Likewise.
4626 * config/sh/netbsd-elf.h: Likewise.
4627 * config/sh/predicates.md: Likewise.
4628 * config/sh/sh-c.c: Likewise.
4629 * config/sh/sh-protos.h: Likewise.
4630 * config/sh/sh.c: Likewise.
4631 * config/sh/sh.h: Likewise.
4632 * config/sh/sh.md: Likewise.
4633 * config/sh/sh.opt: Likewise.
4634 * config/sh/sync.md: Likewise.
4635 * config/sh/sh64.h: Delete.
4636 * config/sh/shmedia.h: Likewise.
4637 * config/sh/shmedia.md: Likewise.
4638 * config/sh/sshmedia.h: Likewise.
4639 * config/sh/t-netbsd-sh5-64: Likewise.
4640 * config/sh/t-sh64: Likewise.
4641 * config/sh/ushmedia.h: Likewise.
4643 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4645 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4646 general_reg_operand instead of register_operand predicate.
4648 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4650 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4652 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4654 * match.pd (A - B > A, A + B < A): New transformations.
4656 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4658 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4659 which defaults to true. Emit an outer pair of parentheses only if
4660 EMIT_PARENS. When continuing a chain of && or || (or & or |),
4661 don't emit parentheses for the right-hand operand.
4663 2016-04-27 Jeff Law <law@redhat.com>
4665 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4667 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4669 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4670 (altivec_lvx_<mode>_internal): Document.
4671 (altivec_lvx_<mode>_2op): New define_insn.
4672 (altivec_lvx_<mode>_1op): Likewise.
4673 (altivec_lvx_<mode>_2op_si): Likewise.
4674 (altivec_lvx_<mode>_1op_si): Likewise.
4675 (altivec_stvx_<mode>): Remove.
4676 (altivec_stvx_<mode>_internal): Document.
4677 (altivec_stvx_<mode>_2op): New define_insn.
4678 (altivec_stvx_<mode>_1op): Likewise.
4679 (altivec_stvx_<mode>_2op_si): Likewise.
4680 (altivec_stvx_<mode>_1op_si): Likewise.
4681 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4682 Expand vec_ld and vec_st during parsing.
4683 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4685 (altivec_expand_stvx_be): Likewise.
4686 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4687 address-masking behavior in RTL.
4688 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4689 address-masking behavior in RTL.
4690 (altivec_expand_builtin): Change builtin code arguments for calls
4691 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4692 (insn_is_swappable_p): Avoid incorrect swap optimization in the
4693 presence of lvx/stvx patterns.
4694 (alignment_with_canonical_addr): New function.
4695 (alignment_mask): Likewise.
4696 (find_alignment_op): Likewise.
4697 (recombine_lvx_pattern): Likewise.
4698 (recombine_stvx_pattern): Likewise.
4699 (recombine_lvx_stvx_patterns): Likewise.
4700 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4701 stvx patterns from expand.
4702 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4704 (vector_altivec_store_<mode>): Likewise.
4706 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4708 * config/aarch64/aarch64.md
4709 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4710 remove the "fp" attributes.
4711 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4712 add the "simd" attributes.
4713 (*movdf_aarch64): Likewise.
4714 (*movtf_aarch64): Remove the "fp" attributes.
4715 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4716 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4718 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4720 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4721 rtx to rtx_code_label *.
4722 * rtl.h (maybe_set_first_label_num): Likewise.
4724 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4726 * df-core.c (df_add_problem): Make the problem param be const.
4727 (df_remove_problem): Make local "problem" be const.
4728 * df-problems.c (problem_RD): Make const.
4729 (problem_LR): Likewise.
4730 (problem_LIVE): Likewise.
4731 (problem_MIR): Likewise.
4732 (problem_CHAIN): Likewise.
4733 (problem_WORD_LR): Likewise.
4734 (problem_NOTE): Likewise.
4735 (problem_MD): Likewise.
4736 * df-scan.c (problem_SCAN): Likewise.
4737 * df.h (struct df_problem): Make field "dependent_problem" be
4739 (struct dataflow): Likewise for field "problem".
4740 (df_add_problem): Make param const.
4742 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4744 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4745 inter-unit moves to/from vector registers are enabled. Do not disable
4748 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4750 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
4751 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
4753 (enum df_problem_id): ...this new enum.
4754 (struct df_problem): Convert field "id" from "int" to
4757 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4759 * rtl.def: Update comment for "things in the instruction chain" to
4760 reflect the removal of the leading "i" field for INSN_UID in
4761 r210360. Fix bogus apostrophe.
4763 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4765 * config/i386/i386.md
4766 (lea arith with mem operand + setcc peephole2): Set operator mode.
4768 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
4771 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
4772 (dimode_scalar_to_vector_candidate_p): This.
4773 (timode_scalar_to_vector_candidate_p): New function.
4774 (scalar_to_vector_candidate_p): Likewise.
4775 (timode_check_non_convertible_regs): Likewise.
4776 (timode_remove_non_convertible_regs): Likewise.
4777 (remove_non_convertible_regs): Likewise.
4778 (remove_non_convertible_regs): Renamed to ...
4779 (dimode_remove_non_convertible_regs): This.
4780 (scalar_chain::~scalar_chain): Make it virtual.
4781 (scalar_chain::compute_convert_gain): Make it pure virtual.
4782 (scalar_chain::mark_dual_mode_def): Likewise.
4783 (scalar_chain::convert_insn): Likewise.
4784 (scalar_chain::convert_registers): Likewise.
4785 (scalar_chain::add_to_queue): Make it protected.
4786 (scalar_chain::emit_conversion_insns): Likewise.
4787 (scalar_chain::replace_with_subreg): Likewise.
4788 (scalar_chain::replace_with_subreg_in_insn): Likewise.
4789 (scalar_chain::convert_op): Likewise.
4790 (scalar_chain::convert_reg): Likewise.
4791 (scalar_chain::make_vector_copies): Likewise.
4792 (scalar_chain::convert_registers): New pure virtual function.
4793 (class dimode_scalar_chain): New class.
4794 (class timode_scalar_chain): Likewise.
4795 (scalar_chain::mark_dual_mode_def): Renamed to ...
4796 (dimode_scalar_chain::mark_dual_mode_def): This.
4797 (timode_scalar_chain::mark_dual_mode_def): New function.
4798 (timode_scalar_chain::convert_insn): Likewise.
4799 (dimode_scalar_chain::convert_registers): Likewise.
4800 (scalar_chain::compute_convert_gain): Renamed to ...
4801 (dimode_scalar_chain::compute_convert_gain): This.
4802 (scalar_chain::replace_with_subreg): Renamed to ...
4803 (dimode_scalar_chain::replace_with_subreg): This.
4804 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
4805 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
4806 (scalar_chain::make_vector_copies): Renamed to ...
4807 (dimode_scalar_chain::make_vector_copies): This.
4808 (scalar_chain::convert_reg): Renamed to ...
4809 (dimode_scalar_chain::convert_reg ): This.
4810 (scalar_chain::convert_op): Renamed to ...
4811 (dimode_scalar_chain::convert_op): This.
4812 (scalar_chain::convert_insn): Renamed to ...
4813 (dimode_scalar_chain::convert_insn): This.
4814 (scalar_chain::convert): Call convert_registers.
4815 (convert_scalars_to_vector): Change to scalar_chain pointer to
4816 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
4817 in 32-bit mode. Delete scalar_chain pointer. Call
4818 free_dominance_info in 64-bit mode.
4819 (pass_stv::gate): Remove TARGET_64BIT check.
4820 (ix86_option_override): Put the 64-bit STV pass before the CSE
4823 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
4825 * dwarf2out.h (struct dw_loc_descr_node): Remove the
4826 dw_loc_frame_offset field.
4827 * dwarf2out.c (new_loc_descr): Likewise.
4828 (resolve_args_picking_1): Turn the VISITED hash set into a
4829 FRAME_OFFSET hash map. Use it to associate a frame offset to
4830 visited nodes. Remove uses of the CHECKING_P macro.
4831 (resolve_args_picking): Update call to resolve_args_picking_1.
4833 2016-04-27 Martin Liska <mliska@suse.cz>
4835 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
4836 (free_loop_data): Release vuses of groups.
4838 2016-04-27 Bin Cheng <bin.cheng@arm.com>
4840 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
4841 instead of redundant use_id and boolean have_use_for.
4842 (struct iv_use): Change sub_id into group_id. Remove field next.
4843 Move fields: related_cands, n_map_members, cost_map and selected
4845 (struct iv_group): ... here. New structure.
4846 (struct iv_common_cand): Use structure declaration directly.
4847 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
4848 (MAX_CONSIDERED_USES): Rename macro to ...
4849 (MAX_CONSIDERED_GROUPS): ... here.
4850 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
4851 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
4852 (dump_uses): Rename to ...
4853 (dump_groups): ... here. Update all uses.
4854 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
4855 (find_induction_variables): Refactor format of dump information.
4856 (record_sub_use): Delete.
4857 (record_use): Update all uses.
4858 (record_group): New function.
4859 (record_group_use, find_interesting_uses_op): Call above functions.
4861 (find_interesting_uses_cond): Ditto.
4862 (group_compare_offset): New function.
4863 (split_all_small_groups): Rename to ...
4864 (split_small_address_groups_p): ... here. Update all uses.
4865 (split_address_groups): Update all uses.
4866 (find_interesting_uses): Refactor format of dump information.
4867 (add_candidate_1): Update all uses. Remove redundant check on iv,
4869 (add_candidate, record_common_cand): Remove redundant assert.
4870 (add_iv_candidate_for_biv): Update use.
4871 (add_iv_candidate_derived_from_uses): Update all uses.
4872 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
4873 (alloc_use_cost_map): Ditto.
4874 (set_use_iv_cost, get_use_iv_cost): Rename to ...
4875 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
4876 (determine_use_iv_cost_generic): Ditto.
4877 (determine_group_iv_cost_generic): Ditto.
4878 (determine_use_iv_cost_address): Ditto.
4879 (determine_group_iv_cost_address): Ditto.
4880 (determine_use_iv_cost_condition): Ditto.
4881 (determine_group_iv_cost_cond): Ditto.
4882 (determine_use_iv_cost): Ditto.
4883 (determine_group_iv_cost): Ditto.
4884 (set_autoinc_for_original_candidates): Update all uses.
4885 (find_iv_candidates): Update all uses. Refactor dump information.
4886 (determine_use_iv_costs): Ditto.
4887 (determine_iv_costs): Ditto.
4888 (iv_ca_cand_for_use): Rename to ...
4889 (iv_ca_cand_for_group): ... here. Update all uses.
4890 (iv_ca_add_use, iv_ca_add_group): Ditto.
4891 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
4892 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
4893 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
4894 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
4895 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
4896 (create_new_iv, adjust_iv_update_pos): Ditto.
4897 (rewrite_use_address): Delete.
4898 (rewrite_use_address_1): Rename to ...
4899 (rewrite_use_address): ... here.
4900 (rewrite_use_compare): Update all uses.
4901 (rewrite_use): Delete.
4902 (rewrite_uses): Rename to ...
4903 (rewrite_groups): ... here. Update all uses.
4904 (remove_unused_ivs, free_loop_data): Update all uses.
4905 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
4907 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4909 * rtlanal.c (nonzero_bits1): Convert preprocessor check
4910 for WORD_REGISTER_OPERATIONS to runtime check.
4912 2016-04-27 Richard Biener <rguenther@suse.de>
4915 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
4916 aggregate_value_p to determine if a function result is
4917 returned by reference.
4918 (ipa_pta_execute): Functions having their address taken are
4919 not automatically nonlocal.
4921 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4924 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
4925 * fold-const.c (operand_equal_p): If flag_checking and
4926 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
4927 and if it returns non-zero, assert iterative_hash_expr on both
4930 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4932 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
4934 2016-04-27 Nick Clifton <nickc@redhat.com>
4937 * varasm.c (merge_weak): Generate an error if an attempt is made
4938 to convert a non-weak static function into a weak, public function.
4940 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4942 * params.def (MAX_PARTITION_SIZE): New param.
4943 * doc/invoke.texi: Document lto-max-partition.
4945 2016-04-27 Richard Biener <rguenther@suse.de>
4948 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4949 function cummulating used_from_other_partition, externally_visible
4950 and force_output from aliases.
4951 (refered_from_nonlocal_var): Likewise.
4952 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4953 node flags properly.
4955 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4957 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
4958 (-Wmemset-elt-size): New item.
4960 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
4963 * stor-layout.h (internal_reference_types): Delete.
4964 * stor-layout.c (reference_types_internal): Likewise.
4965 (internal_reference_types): Likewise.
4966 (layout_type) <REFERENCE_TYPE>: Adjust.
4968 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4971 * tree.h (inchash::add_expr): Add FLAGS argument.
4972 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
4973 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
4974 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
4975 Formatting fix. Adjust recursive calls. For tcc_comparison,
4976 if swap_tree_comparison (code) is smaller than code, hash that
4977 and arguments in the other order. Hash CONVERT_EXPR the same
4978 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
4979 of ADDR_EXPR of decl as the decl itself. Add or remove
4980 OEP_ADDRESS_OF from recursive flags as needed. For
4981 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
4982 operands commutatively and only the third one normally.
4983 For internal CALL_EXPR hash in CALL_EXPR_IFN.
4985 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4987 * config/rtems.h (LIB_SPEC): Add -latomic.
4989 2016-04-27 Joel Sherrill <joel@rtems.org>
4991 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4992 xilink.ld and flags not relevant to RTEMS.
4994 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4996 * toplev.c (backend_init_target): Avoid calling init_reload when using
4999 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5001 * reorg.c (try_merge_delay_insns): Declare i and j inside the
5002 for loops rather than one for the whole function.
5004 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5006 * match.pd (X + CST CMP X): New transformation.
5008 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5010 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
5011 * fold-const.c (fold_binary_loc): Remove 2 transformations
5012 superseded by match.pd.
5013 * match.pd (x+x -> x*2): Generalize to integers.
5015 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
5017 * config/i386/i386.md (operation on memory peephole): Duplicate an
5018 existing peephole and adapt it to match lea rather than an operation
5021 PR rtl-optimization/57193
5022 * opts.c (default_options_table): Add OPT_frename_registers at -O2
5024 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5026 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5028 * tree-if-conv.c (any_pred_load_store): New static variable.
5029 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
5030 any_pred_load_store instead of and_mask_load_store.
5031 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
5032 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
5033 (combine_blocks, tree_if_conversion): Ditto.
5035 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5037 PR tree-optimization/70771
5038 PR tree-optimization/70775
5039 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
5040 virtual PHI nodes. Delete parameter.
5041 (if_convertible_loop_p_1): Delete argument to above function.
5042 (predicate_all_scalar_phis): Delete code handling single-argument
5044 (tree_if_conversion): Mark and update virtual SSA.
5046 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5049 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
5050 (x86_elf_aligned_common): Rename to ...
5051 (x86_elf_aligned_decl_common): ... this.
5052 Add decl arg. Switch to .lbss for largecomm object. Use
5053 LARGECOMM_SECTION_ASM_OP.
5054 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
5056 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5057 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5059 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5060 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5062 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5065 * config/i386/i386.c (SECTION_LARGE): Define.
5066 (x86_64_elf_select_section): Set it for large data/bss sections.
5067 Only clear SECTION_WRITE for .lrodata.
5068 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
5070 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
5071 * varasm.c (default_elf_asm_named_section): Grow flagchars.
5072 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
5074 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5075 * doc/tm.texi: Regenerate.
5077 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5080 * configure.ac (--enable-checking): Document extra flag, for
5081 non-release builds default to --enable-checking=yes,extra.
5082 If misc checking and extra checking, define CHECKING_P to 2 instead
5084 * common.opt (fchecking=): Add.
5085 * doc/invoke.texi (-fchecking=): Document.
5086 * doc/install.texi: Document --enable-checking changes.
5087 * configure: Regenerated.
5088 * config.in: Regenerated.
5090 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5092 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
5093 attribute instead of which_alternative.
5094 * config/i386/sse.md (*mov<mode>_internal): Ditto.
5095 Use EXT_REX_SSE_REG_P where appropriate.
5097 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5099 * config/i386/predicates.md (const0_operand): Do not match
5100 const_wide_int code.
5101 (const1_operand): Ditto.
5103 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5105 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
5106 for SSE constm1 operands and TARGET_AVX512VL.
5107 (*movti_internal): Ditto.
5108 (*mov<mode>_or): Use constm1_operand predicate.
5109 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
5110 for SSE vector_all_ones operands and TARGET_AVX512VL.
5111 * config/i386/predicates.md (constm1_operand): New predicate.
5112 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
5113 emission of constant -1 load.
5115 2016-04-25 Jason Merrill <jason@redhat.com>
5117 * gdbinit.in: Skip is-a.h.
5119 * attribs.c (register_scoped_attributes): Fix logic.
5120 * attribs.h: Declare register_scoped_attributes.
5122 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5124 * config/rs6000/rs6000-builtin.def: Correct pasto error for
5125 stxvd2x and stxvw4x built-in functions.
5127 2016-04-25 DJ Delorie <dj@redhat.com>
5129 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
5130 (ashrhi3): Likewise.
5131 (lshrhi3): Likewise.
5133 2016-04-25 Richard Biener <rguenther@suse.de>
5135 PR tree-optimization/70780
5136 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
5138 (compute_antic): Mark blocks with abnormal preds as visited as
5139 they have a final empty antic-in solution already.
5141 2016-04-25 Michael Collison <michael.collison@linaro.org>
5143 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
5145 2016-04-25 Michael Collison <michael.collison@linaro.org>
5147 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
5148 mode is VQI to improve mixed mode vectorization.
5149 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
5150 define_insn to match low half of signed vaddw.
5151 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
5152 define_insn to match high half of signed vaddw.
5153 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
5154 define_insn to match low half of unsigned vaddw.
5155 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
5156 define_insn to match high half of unsigned vaddw.
5157 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
5158 (arm_simd_check_vect_par_cnst_half_p): Likewise.
5159 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
5161 (arm_simd_check_vect_par_cnst_half_p): Likewise.
5162 * config/arm/predicates.md (vect_par_constant_high): Support
5163 big endian and simplify by calling
5164 arm_simd_check_vect_par_cnst_half
5165 (vect_par_constant_low): Likewise.
5167 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5169 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
5170 predicate for operand 2.
5172 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
5173 H.J. Lu <hongjiu.lu@intel.com>
5175 * config/i386/i386-protos.h (standard_sse_constant_p): Add
5176 machine_mode argument.
5177 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
5178 constm1_rtx operands. For VOIDmode constants, get mode from
5179 pred_mode. Check mode size if the mode is supported by ABI.
5180 (standard_sse_constant_opcode): Do not use standard_constant_p.
5181 Strictly check ABI support for all-ones operands.
5182 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
5183 immediates. Update calls to standard_sse_constant_p.
5184 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
5185 (ix86_rtx_costs): Ditto.
5186 * config/i386/i386.md (*movxi_internal_avx512f): Use
5187 nonimmediate_or_sse_const_operand instead of vector_move_operand.
5188 Use (v,BC) alternative instead of (v,C). Use register_operand
5189 checks instead of MEM_P.
5190 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
5191 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
5192 isa attribute. Use register_operand checks instead of MEM_P.
5193 (*movti_internal): Use nonimmediate_or_sse_const_operand for
5194 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
5195 alternative and corresponding sse2 isa attribute.
5196 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
5197 to standard_sse_constant_p.
5198 (FP constant splitters): Ditto.
5199 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
5201 * config/i386/predicates.md (constm1_operand): Remove.
5202 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
5203 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
5204 vector_all_ones_operand instead of constm1_operand.
5206 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5208 * print-rtl.c (print_rtx_insn_vec): New function.
5209 * print-rtl.h: New prototype.
5210 * store-motion.c (struct st_expr): Make avail_stores a vector.
5211 (st_expr_entry): Adjust.
5212 (free_st_expr_entry): Likewise.
5213 (print_store_motion_mems): Likewise.
5214 (find_moveable_store): Likewise.
5215 (compute_store_table): Likewise.
5216 (delete_store): Likewise.
5217 (build_store_vectors): Likewise.
5219 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5221 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
5223 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5225 * vec.h (vec_safe_contains): New function.
5226 (vec::contains): Likewise.
5227 (vec::begin): Likewise.
5228 (vec::end): Likewise.
5230 2016-04-23 Jakub Jelinek <jakub@redhat.com>
5233 * cfgexpand.c (expand_stack_vars): Fix typo.
5235 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5237 * system.h (list, map, set, vector): Include conditionally.
5238 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
5239 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
5240 * ipa-icf.c (INCLUDE_LIST): Define.
5241 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
5242 * config/sh/sh.c (INCLUDE_VECTOR): Define.
5243 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
5244 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
5245 * cp/logic.cc (INCLUDE_LIST): Define.
5246 * fortran/trans-common.c (INCLUDE_MAP): Define.
5248 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5250 * auto-profile.c: Remove <string.h> include.
5251 * ipa-icf-gimple.c: Remove <list> include.
5252 * diagnostic.c: Remove <new> include.
5253 * genmatch.c: Likewise.
5254 * pretty-print.c: Likewise.
5255 * toplev.c: Likewise
5256 * c/c-objc-common.c: Likewise.
5257 * cp/error.c: Likewise.
5258 * fortran/error.c: Likewise.
5260 2016-04-22 Richard Biener <rguenther@suse.de>
5262 * lto-streamer-in.c (input_ssa_names): Do not allocate
5263 GIMPLE_NOP for all SSA names.
5264 * lto-streamer-out.c (output_ssa_names): Do not output
5265 SSA names that should have been released.
5267 2016-04-22 Richard Biener <rguenther@suse.de>
5269 PR tree-optimization/70740
5270 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
5273 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
5276 * config/i386/predicates.md (call_insn_operand): Replace
5277 sibcall_memory_operand with memory_operand.
5279 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
5281 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
5282 has_single_use() tests.
5283 (register_edge_assert_for_1): Likewise.
5284 (find_assert_locations_1): Check the liveness bitmap instead of
5285 checking has_single_use().
5287 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
5290 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5291 Extract AVX-512BW constraint from AVX.
5293 2016-04-21 Richard Biener <rguenther@suse.de>
5295 PR tree-optimization/70725
5296 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
5297 for phi_convertible_by_degenerating_args.
5298 (predicate_all_scalar_phis): Handle single-argument PHIs.
5300 2016-04-21 Richard Biener <rguenther@suse.de>
5303 * fold-const.c (fold_comparison): Return properly typed
5306 2016-04-21 Bin Cheng <bin.cheng@arm.com>
5308 PR tree-optimization/70715
5309 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5310 after expanding BASE using expand_simple_operations.
5312 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5314 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5315 New transformations.
5317 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5319 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5321 2016-04-20 Jan Hubicka <jh@suse.cz>
5323 * ipa-inline.c (can_inline_edge_p): Pass caller info to
5324 ultiimate_alias_target.
5325 (update_callee_keys): Likewise.
5326 (lookup_recursive_calls): Likewise.
5327 (speculation_useful_p): Likewise.
5329 2016-04-20 Jan Hubicka <jh@suse.cz>
5332 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5333 (set_nothrow_flag_1): ... this; handle interposition correctly;
5334 recurse on aliases and thunks.
5335 (cgraph_node::set_nothrow_flag): New.
5336 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5337 functions compiled with non-call exceptions that binds to current
5339 (propagate_nothrow): Be safe WRT interposition.
5340 * cgraph.h (set_nothrow_flag): Update prototype.
5342 2016-04-18 Jan Hubicka <jh@suse.cz>
5344 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5345 max_loop_iterations_int.
5346 (tree_unswitch_outer_loop): Likewise.
5348 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5350 PR tree-optimization/69489
5351 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5352 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5353 Revise dump message.
5354 (if_convertible_bb_p): Remove check on edge count of basic block's
5357 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5359 PR tree-optimization/56625
5360 PR tree-optimization/69489
5361 * tree-data-ref.h (DR_INNERMOST): New macro.
5362 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5363 hashing struct innermost_loop_behavior.
5364 (ref_DR_map): Remove.
5365 (innermost_DR_map): New map.
5366 (baseref_DR_map): Revise comment.
5367 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5368 to innermost_DR_map accroding to its innermost loop behavior.
5369 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5370 to its innermost loop behavior.
5371 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5372 Add initialization for innermost_DR_map. Record memory reference
5373 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5374 have innermost loop behavior.
5375 (if_convertible_loop_p): Remove release for ref_DR_map. Release
5378 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5380 * config/i386/i386.md (*lea<mode>_general_1): Rename from
5381 *lea_general_1. Use explicit SWI12 mode interator.
5382 (*lea<mode>_general_2): Rename from *lea_general_2.
5383 Use explicit SWI12 mode interator.
5384 (*lea<mode>_general_3): Rename from *lea_general_3.
5385 Use explicit SWI12 mode interator.
5386 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5387 Use explicit SWI12 mode interator.
5388 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5389 Use explicit SWI48 mode interator.
5391 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5393 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5394 Short-cut unaligned load and store cases. Handle all integer
5396 (ix86_expand_vector_move_misalign): Short-cut unaligned load
5397 and store cases. Call ix86_avx256_split_vector_move_misalign
5398 directly without checking mode class.
5400 2016-04-20 Andrew Pinski <apinski@cavium.com>
5401 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5404 * config/aarch64/aarch64.md (sibcall): Force call
5405 address to be DImode for ILP32.
5406 (sibcall_value): Likewise.
5408 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5410 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5412 2016-04-20 Richard Biener <rguenther@suse.de>
5414 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5415 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5416 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5417 (maybe_push_res_to_seq): Adjust.
5418 * gimple-fold.c (maybe_build_generic_op): Likewise.
5420 2016-04-20 Marek Polacek <polacek@redhat.com>
5422 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5425 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5427 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5428 use kmovw to support AVX512F target.
5430 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5432 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5434 2016-04-20 Marek Polacek <polacek@redhat.com>
5436 PR tree-optimization/70725
5437 * tree-if-conv.c (is_false_predicate): New function.
5438 (predicate_mem_writes): Use it.
5440 2016-04-20 Richard Biener <rguenther@suse.de>
5442 PR tree-optimization/70726
5443 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5444 shift amounts from a pattern stmt operand.
5446 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5449 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5450 stack_restore_from_fpr pattern when restoring r15.
5451 (s390_optimize_prologue): Strip away the memory barrier in the
5452 parallel when trying to get rid of restore insns.
5453 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5454 definition for loading the stack pointer from an FPR. Compared to
5455 the normal move insn this pattern includes a full memory barrier.
5457 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5460 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5461 implicitly linear or lastprivate iterator on the outer context.
5463 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5465 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5467 * config/i386/i386.md (ssememalign): Removed.
5468 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5470 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5473 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5474 const short * to __builtin_ia32_loaddquhi512_mask.
5475 (_mm512_maskz_loadu_epi16): Likewise.
5476 (_mm512_mask_storeu_epi16): Pass short * to
5477 __builtin_ia32_storedquhi512_mask.
5478 (_mm512_mask_loadu_epi8): Pass const char * to
5479 __builtin_ia32_loaddquqi512_mask.
5480 (_mm512_maskz_loadu_epi8): Likewise.
5481 (_mm512_mask_storeu_epi8): Pass char * to
5482 __builtin_ia32_storedquqi512_mask.
5483 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5484 const double * to __builtin_ia32_loadupd512_mask.
5485 (_mm512_mask_loadu_pd): Likewise.
5486 (_mm512_maskz_loadu_pd): Likewise.
5487 (_mm512_storeu_pd): Pass double * to
5488 __builtin_ia32_storeupd512_mask.
5489 (_mm512_mask_storeu_pd): Likewise.
5490 (_mm512_loadu_ps): Pass const float * to
5491 __builtin_ia32_loadups512_mask.
5492 (_mm512_mask_loadu_ps): Likewise.
5493 (_mm512_maskz_loadu_ps): Likewise.
5494 (_mm512_storeu_ps): Pass float * to
5495 __builtin_ia32_storeups512_mask.
5496 (_mm512_mask_storeu_ps): Likewise.
5497 (_mm512_mask_loadu_epi64): Pass const long long * to
5498 __builtin_ia32_loaddqudi512_mask.
5499 (_mm512_maskz_loadu_epi64): Likewise.
5500 (_mm512_mask_storeu_epi64): Pass long long *
5501 to __builtin_ia32_storedqudi512_mask.
5502 (_mm512_loadu_si512): Pass const int * to
5503 __builtin_ia32_loaddqusi512_mask.
5504 (_mm512_mask_loadu_epi32): Likewise.
5505 (_mm512_maskz_loadu_epi32): Likewise.
5506 (_mm512_storeu_si512): Pass int * to
5507 __builtin_ia32_storedqusi512_mask.
5508 (_mm512_mask_storeu_epi32): Likewise.
5509 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5510 char * to __builtin_ia32_storedquqi256_mask.
5511 (_mm_mask_storeu_epi8): Likewise.
5512 (_mm256_mask_loadu_epi16): Pass const short * to
5513 __builtin_ia32_loaddquhi256_mask.
5514 (_mm256_maskz_loadu_epi16): Likewise.
5515 (_mm_mask_loadu_epi16): Pass const short * to
5516 __builtin_ia32_loaddquhi128_mask.
5517 (_mm_maskz_loadu_epi16): Likewise.
5518 (_mm256_mask_loadu_epi8): Pass const char * to
5519 __builtin_ia32_loaddquqi256_mask.
5520 (_mm256_maskz_loadu_epi8): Likewise.
5521 (_mm_mask_loadu_epi8): Pass const char * to
5522 __builtin_ia32_loaddquqi128_mask.
5523 (_mm_maskz_loadu_epi8): Likewise.
5524 (_mm256_mask_storeu_epi16): Pass short * to.
5525 __builtin_ia32_storedquhi256_mask.
5526 (_mm_mask_storeu_epi16): Pass short * to.
5527 __builtin_ia32_storedquhi128_mask.
5528 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5529 const double * to __builtin_ia32_loadupd256_mask.
5530 (_mm256_maskz_loadu_pd): Likewise.
5531 (_mm_mask_loadu_pd): Pass onst double * to
5532 __builtin_ia32_loadupd128_mask.
5533 (_mm_maskz_loadu_pd): Likewise.
5534 (_mm256_mask_storeu_pd): Pass double * to
5535 __builtin_ia32_storeupd256_mask.
5536 (_mm_mask_storeu_pd): Pass double * to
5537 __builtin_ia32_storeupd128_mask.
5538 (_mm256_mask_loadu_ps): Pass const float * to
5539 __builtin_ia32_loadups256_mask.
5540 (_mm256_maskz_loadu_ps): Likewise.
5541 (_mm_mask_loadu_ps): Pass const float * to
5542 __builtin_ia32_loadups128_mask.
5543 (_mm_maskz_loadu_ps): Likewise.
5544 (_mm256_mask_storeu_ps): Pass float * to
5545 __builtin_ia32_storeups256_mask.
5546 (_mm_mask_storeu_ps): ass float * to
5547 __builtin_ia32_storeups128_mask.
5548 (_mm256_mask_loadu_epi64): Pass const long long * to
5549 __builtin_ia32_loaddqudi256_mask.
5550 (_mm256_maskz_loadu_epi64): Likewise.
5551 (_mm_mask_loadu_epi64): Pass const long long * to
5552 __builtin_ia32_loaddqudi128_mask.
5553 (_mm_maskz_loadu_epi64): Likewise.
5554 (_mm256_mask_storeu_epi64): Pass long long * to
5555 __builtin_ia32_storedqudi256_mask.
5556 (_mm_mask_storeu_epi64): Pass long long * to
5557 __builtin_ia32_storedqudi128_mask.
5558 (_mm256_mask_loadu_epi32): Pass const int * to
5559 __builtin_ia32_loaddqusi256_mask.
5560 (_mm256_maskz_loadu_epi32): Likewise.
5561 (_mm_mask_loadu_epi32): Pass const int * to
5562 __builtin_ia32_loaddqusi128_mask.
5563 (_mm_maskz_loadu_epi32): Likewise.
5564 (_mm256_mask_storeu_epi32): Pass int * to
5565 __builtin_ia32_storedqusi256_mask.
5566 (_mm_mask_storeu_epi32): Pass int * to
5567 __builtin_ia32_storedqusi128_mask.
5568 * config/i386/i386-builtin-types.def (PCSHORT): New.
5570 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5571 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5572 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5573 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5574 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5575 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5576 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5577 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5578 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5579 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5580 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5581 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5582 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5583 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5584 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5585 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5586 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5587 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5588 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5589 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5590 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5591 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5592 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5593 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5594 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5595 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5596 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5597 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5598 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5599 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5600 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5601 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5602 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5603 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5604 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5605 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5606 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5607 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5608 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5609 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5610 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5611 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5612 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5613 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5614 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5615 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5616 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5617 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5618 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5620 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5621 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5623 (ix86_expand_vector_move_misalign): Likewise.
5624 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5625 to scalar function prototype for unaligned load/store builtins.
5626 (ix86_expand_special_args_builtin): Updated.
5627 * config/i386/sse.md (UNSPEC_LOADU): Removed.
5628 (UNSPEC_STOREU): Likewise.
5629 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5630 (VI_ULOADSTORE_F_AVX512VL): Likewise.
5631 (ssescalarsize): Handle V4TI, V2TI and V1TI.
5632 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5633 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5634 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5635 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5636 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5637 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5638 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5639 (<avx512>_storedqu<mode>_mask): Likewise.
5640 (*sse4_2_pcmpestr_unaligned): Likewise.
5641 (*sse4_2_pcmpistr_unaligned): Likewise.
5642 (*mov<mode>_internal): Renamed to ...
5643 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
5644 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5645 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5646 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5648 2016-04-19 Richard Biener <rguenther@suse.de>
5650 PR tree-optimization/70171
5651 * tree-ssa-phiprop.c: Include stor-layout.h.
5652 (phiprop_insert_phi): Handle the aggregate copy case.
5653 (propagate_with_phi): Likewise.
5655 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5657 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5658 instead of simplify_gen_subreg (... , 0).
5659 (ix86_delegitimize_address): Ditto.
5660 (ix86_split_divmod): Ditto.
5661 (ix86_split_copysign_const): Ditto.
5662 (ix86_split_copysign_var): Ditto.
5663 (ix86_expand_args_builtin): Ditto.
5664 (ix86_expand_round_builtin): Ditto.
5665 (ix86_expand_special_args_builtin): Ditto.
5666 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5667 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5668 (udivmodqi4): Ditto.
5669 (absneg splitters): Ditto.
5670 (*jcc_bt<mode>_1): Ditto.
5672 2016-04-19 Richard Biener <rguenther@suse.de>
5674 PR tree-optimization/70724
5675 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5676 restoring out from ...
5677 (free_scc_vn): ... here.
5678 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5679 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5681 (pass_fre::execute): Restore SSA info.
5683 2016-04-19 Richard Biener <rguenther@suse.de>
5685 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5686 * gimple-walk.c (walk_gimple_op): Initialize it.
5687 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5688 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5689 remapping SSA names of defs.
5690 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5693 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5696 * lra-constraints.c (equiv_substition_p): New.
5697 (process_alt_operands): Use it.
5698 (swap_operands): Swap it.
5699 (curr_insn_transform): Update it.
5701 2016-04-18 Michael Matz <matz@suse.de>
5703 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5704 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5705 * tree-core.h (tree_type_common.align): Use bit-field.
5706 (tree_type_common.spare): New.
5707 (tree_decl_common.off_align): Make smaller.
5708 (tree_decl_common.align): Use bit-field.
5710 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5711 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5712 (scan_sharing_clauses): Ditto.
5713 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5714 (omp_finish_file): Ditto.
5715 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5716 (layout_decl): Ditto.
5717 (relayout_decl): Ditto.
5718 (finalize_record_size): Use SET_TYPE_ALIGN.
5719 (finalize_type_size): Ditto.
5720 (finish_builtin_struct): Ditto.
5721 (layout_type): Ditto.
5722 (initialize_sizetypes): Ditto.
5723 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5724 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5725 (lookup_field_for_decl): Use SET_DECL_ALIGN.
5726 (get_chain_field): Ditto.
5727 (get_trampoline_type): Ditto.
5728 (get_nl_goto_field): Ditto.
5729 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5731 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5732 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5733 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5734 (build_qualified_type): Use SET_TYPE_ALIGN.
5735 (build_aligned_type, build_range_type_1): Ditto.
5736 (build_atomic_base): Ditto.
5737 (build_common_tree_nodes): Ditto.
5738 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5739 (expand_one_stack_var_at): Ditto.
5740 * coverage.c (build_var): Use SET_DECL_ALIGN.
5741 * except.c (init_eh): Ditto.
5742 * function.c (assign_parm_setup_block): Ditto.
5743 * symtab.c (increase_alignment_1): Ditto.
5744 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5745 * tree-vect-stmts.c (ensure_base_align): Ditto.
5746 * varasm.c (align_variable): Ditto.
5747 (assemble_variable): Ditto.
5748 (build_constant_desc): Ditto.
5749 (output_constant_def_contents): Ditto.
5751 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
5752 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
5753 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
5754 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
5755 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
5757 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
5760 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5761 replace %vmovsd with "%vmovq".
5762 (vec_concatv2df): Likewise.
5764 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
5766 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
5767 (*vec_extractv2si_0): Ditto.
5768 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
5769 (zero_extended_scalar_load_operand splitters): Ditto.
5770 (vec_extract splitters): Ditto.
5771 (*vec_extractv4si_0_zext): Ditto.
5772 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
5774 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
5775 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
5776 (*sse4_1_extractps): Use lowpart_subreg.
5777 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
5779 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5781 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
5783 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
5784 Mention Solaris 11 packaging changes.
5785 Update gas and gld requirements.
5786 Remove reference to pre-Solaris 10 bug.
5787 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
5789 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
5792 2016-04-17 Jan Hubicka <jh@suse.cz>
5794 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
5795 max_loop_iterations_int.
5797 2016-04-18 Richard Biener <rguenther@suse.de>
5799 PR tree-optimization/43434
5800 * tree-ssa-structalias.c (struct vls_data): New.
5801 (visit_loadstore): Handle all pointer-based accesses.
5802 (compute_dependence_clique): Compute a bitmap of restrict tags
5803 assigned bases and pass it to visit_loadstore.
5805 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
5808 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
5809 armv8.1-a and armv8.1-a+crc.
5811 2016-04-18 Richard Biener <rguenther@suse.de>
5813 PR tree-optimization/70701
5814 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
5815 references after translating through a memcpy.
5817 2016-04-18 Richard Biener <rguenther@suse.de>
5819 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
5820 (compute_antic): ... here. For partial antic use regular
5821 postorder and scrap iteration.
5822 (compute_partial_antic_aux): Remove unused return value.
5823 (init_pre): Do not allocate postorder.
5824 (fini_pre): Do not free postorder.
5826 2016-04-18 Richard Biener <rguenther@suse.de>
5829 * expmed.c (extract_bit_field_1): Remove broken case
5830 using a wider MODE_INT mode.
5832 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
5834 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
5835 unless compiling with at least GCC-4.8.
5837 2016-04-17 Jan Hubicka <jh@suse.cz>
5840 * graphite.c (graphite_finalize): Update call to
5841 tree_estimate_probability.
5842 * predict.h (tree_estimate_probability): Update prototype.
5844 2016-04-17 Jan Hubicka <jh@suse.cz>
5846 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
5847 (tree_estimate_probability): Likewise.
5848 (pass_profile::execute): Update.
5849 (report_predictor_hitrates): New function.
5850 * profile.c (compute_branch_probabilities): Use it.
5851 * predict.h (report_predictor_hitrates): Declare.
5853 2016-04-17 Jan Hubicka <jh@suse.cz>
5856 * cgraph.h (cgraph_node::set_const_flag,
5857 cgraph_node::set_pure_flag): Update prototype to return bool;
5859 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
5860 of interposable symbol are interposable, too.
5861 (cgraph_set_const_flag_1): Rename to ...
5862 (set_const_flag_1): ... this one; change to self recursive function
5863 instead of call_for_symbol_thunks_and_aliases. Handle correctly
5864 clearnig the flag in all variants and also virtual thunks of const
5865 functions are pure; track if any change was done.
5866 (cgraph_node::set_const_flag): Update.
5867 (struct set_pure_flag_info): New struct.
5868 (cgraph_set_pure_flag_1): Rename to ...
5869 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
5870 rather than pointer encoded flags; track if any changes was done;
5871 handle correctly clearning flag and setting flag of aliases already
5873 (cgraph_node::set_pure_flag): Update.
5874 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
5876 2016-04-17 Tom de Vries <tom@codesourcery.com>
5879 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
5882 2016-04-17 Tom de Vries <tom@codesourcery.com>
5884 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
5885 '{}<> ' as escape-for-record.
5887 2016-04-17 Tom de Vries <tom@codesourcery.com>
5889 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
5892 2016-04-17 Tom de Vries <tom@codesourcery.com>
5895 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
5896 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
5897 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
5898 * passes.c (finish_optimization_passes): Only call
5899 finish_graph_dump_file if dfi->graph_dump_initialized.
5900 (execute_function_dump, pass_init_dump_file): Use
5901 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
5903 2016-04-17 Tom de Vries <tom@codesourcery.com>
5905 PR tree-optimization/70256
5906 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
5907 (debug_varmap): New function.
5909 2016-04-17 Tom de Vries <tom@codesourcery.com>
5912 * passes.c (pass_manager::register_pass): Propagate pflags.
5914 2016-04-17 Tom de Vries <tom@codesourcery.com>
5917 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
5918 * passes.c (pass_manager::pass_manager): Declare and init p_start in
5919 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
5920 check if it's equal to p_start.
5921 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
5923 2016-04-15 Jan Hubicka <jh@suse.cz>
5926 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
5927 function does not bind to current def.
5928 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
5929 handle conservatively calls to functions that does not need to bind
5931 (check_call): Update call of worse_state.
5932 (ignore_edge_for_nothrow): Update.
5933 (ignore_edge_for_pure_const): Likewise.
5934 (propagate_pure_const): Update calls to worse_state.
5935 (skip_function_for_local_pure_const): Reformat comments.
5937 2016-04-15 Jan Hubicka <jh@suse.cz>
5940 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
5941 (cgraph_node::function_symbol): Likewise.
5942 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5943 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
5944 (symtab_node::ultimate_alias_target): Add REF parameter.
5945 (symtab_node::binds_to_current_def_p): Declare.
5946 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
5947 (cgraph_node::function_symbol): Likewise.
5948 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5949 (cgraph_node::get_availability): Likewise.
5950 (cgraph_edge::binds_to_current_def_p): New inline function.
5951 (varpool_node::get_availability): Add REF parameter.
5952 (varpool_node::ultimate_alias_target): Likewise.
5953 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
5954 (symtab_node::binds_to_current_def_p): Likewise.
5955 * varpool.c (varpool_node::get_availability): Likewise.
5957 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5960 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
5961 Fix mode size check.
5963 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5965 * BASE-VER: Set to 7.0.0.
5967 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
5969 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
5971 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5973 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
5974 architecture revisions.
5976 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
5978 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
5979 * config/i386/i386.c (ix86_using_red_zone): No longer static.
5980 * config/i386/i386.md (stack decrement to push peepholes): Guard
5981 with !x86_using_red_zone ().
5983 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5986 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
5987 to dump_generic_node.
5988 (NIY): Pass also flags to do_niy.
5990 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
5992 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
5993 (simd_clone_vector_of_formal_parm_types)
5994 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
5995 (simd_clone_mangle, simd_clone_create)
5996 (simd_clone_adjust_return_type, create_tmp_simd_array)
5997 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
5998 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
5999 (ipa_simd_modify_function_body, simd_clone_linear_addend)
6000 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
6001 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
6002 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
6003 * omp-simd-clone.c: ... this new file.
6004 (simd_clone_vector_of_formal_parm_types): Make it static.
6005 * Makefile.in (OBJS): Add omp-simd-clone.o.
6007 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6010 * config/i386/sse.md: Use proper memory operand modifiers.
6013 2016-04-15 Richard Biener <rguenther@suse.de>
6014 Alan Modra <amodra@gmail.com>
6016 PR tree-optimization/70130
6017 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
6018 when alignment stays not the same and no not use the realign
6021 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6024 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6025 direct move handlers for KFmode. Change TFmode handlers test from
6026 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
6028 2016-04-14 Jakub Jelinek <jakub@redhat.com>
6031 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
6032 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
6033 (inlined_polymorphic_ctor_dtor_block_p): Use it.
6034 * tree-ssa-live.c (remove_unused_scope_block_p): When
6035 in_ctor_dtor_block, avoid discarding not just BLOCKs with
6036 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
6037 block_ultimate_origin is FUNCTION_DECL.
6038 (remove_unused_locals): If current_function_decl is
6039 polymorphic_ctor_dtor_p, pass initial true to
6040 remove_unused_scope_block_p' is_ctor_dtor_block.
6042 2016-04-14 Martin Sebor <msebor@redhat.com>
6047 * doc/extend.texi (Variable Length): Revert.
6049 2016-04-14 Marek Polacek <polacek@redhat.com>
6050 Jan Hubicka <hubicka@ucw.cz>
6053 * tree.c (verify_type): Disable the canonical type of main variant
6056 2016-04-14 Jason Merrill <jason@redhat.com>
6058 * cfgexpand.c, expr.c: Revert previous change.
6060 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
6063 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6064 when building a mem ref for the incoming reduction variable.
6066 2016-04-14 Richard Biener <rguenther@suse.de>
6068 PR tree-optimization/70614
6069 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
6070 loop if the evolution dropped to chrec_dont_know.
6071 (interpret_condition_phi): Likewise.
6073 2016-04-14 Richard Biener <rguenther@suse.de>
6075 PR tree-optimization/70623
6076 * tree-ssa-pre.c (changed_blocks): Make global ...
6077 (compute_antic): ... local here. Move and fix worklist
6078 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
6079 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
6080 worklist handling, dump when ANTIC_IN changed.
6081 (compute_partial_antic_aux): Remove worklist handling.
6082 (init_pre): Do not compute post dominators. Add a comment about
6083 the CFG order chosen.
6084 (fini_pre): Do not free post dominators.
6086 2016-04-13 Martin Sebor <msebor@redhat.com>
6091 * doc/extend.texi (Variable Length): Document C++ specifics.
6093 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6096 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
6097 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
6098 eh edges have been purged.
6101 * tree-sra.c (create_access_replacement,
6102 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
6104 * tree-pretty-print.c (dump_fancy_name): New function.
6105 (dump_decl_name, dump_generic_node): Use it.
6107 2016-04-13 Jason Merrill <jason@redhat.com>
6109 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
6110 * expr.c (expand_expr_real_1): Likewise.
6112 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
6114 * config/i386/i386.md (kunpckhi): Swap operands.
6115 (kunpcksi): Likewise.
6116 (kunpckdi): Likewise.
6117 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
6118 (vec_pack_trunc_<mode>): Likewise.
6120 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6123 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
6126 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
6127 gimplification turns some element into non-constant.
6130 * rtl.h (convert_memory_address_addr_space_1): New prototype.
6131 * explow.c (convert_memory_address_addr_space_1): No longer static,
6132 add NO_EMIT argument and don't call convert_modes if true, pass
6133 it down recursively, remove break after return.
6134 (convert_memory_address_addr_space): Adjust caller.
6135 * simplify-rtx.c (simplify_unary_operation_1): Call
6136 convert_memory_address_addr_space_1 instead of convert_memory_address,
6137 if it returns NULL, don't simplify.
6139 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
6142 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
6144 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6146 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6147 Bump the upper SIMDLEN limits, so that if the return type or
6148 characteristic type if the return type is void can be passed in
6149 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
6152 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6155 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
6156 Do not use "=" constraint on an input constraint.
6157 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
6158 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
6159 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
6160 generates (neg (abs ...)) instead of (abs ...).
6162 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6164 PR rtl-optimization/70596
6165 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
6166 just invalidate LRA data and reset them. Adjust dump wording.
6168 2016-04-12 Martin Liska <mliska@suse.cz>
6171 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6173 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6175 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6176 max_loop_iterations_int.
6177 (tree_unswitch_outer_loop): Likewise.
6178 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6179 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6181 2016-04-12 Tom de Vries <tom@codesourcery.com>
6183 PR tree-optimization/68756
6184 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
6185 instead of new_name.
6187 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6189 PR tree-optimization/70602
6190 * tree-sra.c (generate_subtree_copies): Don't write anything into
6191 constant pool decls.
6193 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
6194 regardless whether there are depend clauses or not.
6196 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6199 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
6200 target attribute and pragma from changing the -mfloat128
6201 and -mfloat128-hardware options.
6203 * doc/extend.texi (Additional Floating Types): Document PowerPC
6204 __float128 restrictions.
6206 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6209 * config/aarch64/driver-aarch64.c
6210 (aarch64_get_extension_string_for_isa_flags): New.
6211 (arch_extension): Rename to...
6212 (aarch64_arch_extension): ...This.
6213 (ext_to_feat_string): Rename to...
6214 (aarch64_extensions): ...This.
6215 (aarch64_core_data): Keep track of architecture extension flags.
6216 (cpu_data): Rename to...
6217 (aarch64_cpu_data): ...This.
6218 (aarch64_arch_driver_info): Keep track of architecture extension
6220 (get_arch_name_from_id): Rename to...
6221 (get_arch_from_id): ...This, change return type.
6222 (host_detect_local_cpu): Update and reformat for renames, handle
6223 extensions through common infrastructure.
6225 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6228 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
6229 track of a canonical flag name.
6230 (all_extensions): Likewise.
6231 (arch_to_arch_name): Also track extension flags enabled by the arch.
6232 (all_architectures): Likewise.
6233 (aarch64_parse_extension): Move to here.
6234 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
6236 (aarch64_rewrite_selected_cpu): Update for above change.
6237 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
6238 are handled, such that the single explicit value enabled by an
6239 extension is kept seperate from the implicit values it also enables.
6240 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
6242 (aarch64_parse_extension): New.
6243 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
6244 here to config/aarch64/aarch64-protos.h.
6245 (aarch64_parse_extension): Move from here to
6246 common/config/aarch64/aarch64-common.c.
6247 (aarch64_option_print): Update.
6248 (aarch64_declare_function_name): Likewise.
6249 (aarch64_start_file): Likewise.
6250 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
6251 the canonical flag for extensions.
6252 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
6255 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6257 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
6260 2016-04-09 Tom de Vries <tom@codesourcery.com>
6262 PR tree-optimization/68953
6263 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
6264 first to last subscript.
6266 2016-04-09 Jakub Jelinek <jakub@redhat.com>
6268 PR tree-optimization/70586
6269 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
6272 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
6276 PR tree-optimization/70373
6280 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
6281 clauses for acc parallel reductions as necessary. Error on those
6283 * omp-low.c (scan_sharing_clauses): Don't install variables which
6284 are used in acc parallel reductions.
6285 (lower_rec_input_clauses): Remove dead code.
6286 (lower_oacc_reductions): Add support for reference reductions.
6287 (lower_reduction_clauses): Remove dead code.
6288 (lower_omp_target): Don't remap variables appearing in acc parallel
6290 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6292 2016-04-08 Jakub Jelinek <jakub@redhat.com>
6295 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
6296 with multiple SSA_NAME defs, force the outputs other than first
6297 to be live before calling live_track_process_def on each output.
6299 PR rtl-optimization/70574
6300 * fwprop.c (forward_propagate_and_simplify): Don't add
6301 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
6302 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
6303 paradoxical subregs within *loc.
6305 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
6307 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6308 -ftree-parallelize-loops={0,1}.
6309 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6310 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6311 * config/ia64/hpux.h (LIB_SPEC): Likewise.
6312 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6313 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6315 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
6318 * asan.c (instrument_derefs): If we get unknown location, extract it
6320 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6322 2016-04-08 Tom de Vries <tom@codesourcery.com>
6324 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6325 implicit firstprivate clause.
6327 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6330 * config/arm/thumb2.md (tst + branch-> lsls + branch
6331 peephole below *orsi_not_shiftsi_si): Require that condition
6332 register is dead after the peephole.
6333 (second peephole after the above): Likewise.
6335 2016-04-08 Alan Modra <amodra@gmail.com>
6338 * builtins.c (fold_builtin_classify): For IBM extended precision,
6339 look at just the high-order double to test for NaN.
6340 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
6341 test just the high double for Inf but both doubles for subnormal
6344 2016-04-07 Jakub Jelinek <jakub@redhat.com>
6346 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6347 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6348 node->simdclone->mask_mode != VOIDmode masks.
6349 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
6350 earlier, use it instead of node->simdclone.
6351 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6352 Set clonei->mask_mode.
6354 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6357 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6358 Pass it through to cp_parser_already_scoped_statement.
6359 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
6360 it through to cp_parser_statement.
6361 (cp_parser_statement): Pass IF_P through to
6362 cp_parser_iteration_statement.
6363 (cp_parser_pragma): Adjust call to
6364 cp_parser_iteration_statement.
6366 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6369 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6370 resolve a future -Wparentheses warning.
6371 * omp-low.c (scan_sharing_clauses): Likewise.
6372 * tree-parloops.c (eliminate_local_variables): Likewise.
6374 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6376 PR rtl-optimization/70398
6377 * lra-constraints.c (process_address_1): Check zero scale and code
6378 for reloading with zero scale.
6380 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6382 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6383 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6385 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6387 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6388 Add support for AVX512F clones, include them by default for
6389 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
6390 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6394 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6395 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6396 firstprivate clauses.
6397 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6398 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6399 (lower_omp_target): Set TREE_NO_WARNING for
6400 non-addressable possibly uninitialized vars which are copied into
6401 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6403 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6405 * config/pa/predicates.md (integer_store_memory_operand): Accept
6406 REG+D operands with a large offset when reload_in_progress is true.
6407 (floating_point_store_memory_operand): Likewise.
6409 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6412 * match.pd (nested int casts): Limit to GIMPLE.
6414 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6417 * ipa-devirt.c (maybe_record_node): Fix comment; use
6418 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6420 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6422 PR rtl-optimization/70542
6423 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6424 if there are any uses other than insn or debug insns.
6426 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6427 Jakub Jelinek <jakub@redhat.com>
6429 PR tree-optimization/70509
6430 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6431 Shift HOST_WIDE_INT_1U instead of 1.
6433 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6435 PR tree-optimization/70509
6436 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6437 of the vector base type for index.
6439 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6442 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6444 2016-04-05 Richard Biener <rguenther@suse.de>
6446 PR tree-optimization/70526
6447 * tree-sra.c (build_ref_for_offset): Use prev_base to
6448 extract the alias pointer type.
6450 2016-04-05 Richard Biener <rguenther@suse.de>
6452 * dse.c (struct store_info): Remove alias_set member.
6453 (struct read_info_type): Likewise.
6454 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6455 spill_deleted, clear_alias_set_lookup): Remove.
6456 (get_group_info): Remove dead base == NULL_RTX case.
6457 (dse_step0): Remove initialization of removed variables.
6458 (delete_dead_store_insn): Reomve alias set dumping.
6459 (free_read_records): Remove alias_set handling.
6460 (canon_address): Remove alias_set_out parameter.
6461 (record_store): Remove spill_alias_set, it's always zero.
6462 (check_mem_read_rtx): Likewise.
6463 (dse_step2): Rename from ...
6464 (dse_step2_nospill): ... this. Adjust.
6465 (scan_stores): Rename from ...
6466 (scan_stores_nospill): ... this.
6467 (scan_reads): Rename from ...
6468 (scan_reads_nospill): ... this.
6469 (scan_stores_spill, scan_reads_spill): Remove.
6470 (dse_step3_scan): Remove for_spills argument which is always false.
6471 (dse_step3): Likewise.
6472 (dse_step5): Rename from ...
6473 (dse_step5_nospill): ... this. Remove alias_set handling.
6474 (rest_of_handle_dse): Adjust.
6476 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6479 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6480 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6481 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6482 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6484 2016-04-05 Richard Biener <rguenther@suse.de>
6487 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6488 non-register type temporaries into SSA.
6490 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6493 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6494 calls when sanitizing.
6495 (possible_polymorphic_call_target_p): Fix formatting.
6497 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6498 Jakub Jelinek <jakub@redhat.com>
6501 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6502 to ensure a call statement is compatible with a built-in's
6504 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6507 2016-04-04 Richard Biener <rguenther@suse.de>
6509 PR rtl-optimization/70484
6510 * rtl.h (canon_output_dependence): Declare.
6511 * alias.c (canon_output_dependence): New function.
6512 * dse.c (record_store): Use canon_output_dependence rather
6513 than canon_true_dependence.
6515 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6518 * cgraph.h (symtab_node::copy_visibility_from): New function.
6519 * symtab.c (symtab_node::copy_visibility_from): New function.
6520 * ipa-visibility.c (optimize_weakref): New function.
6521 (function_and_variable_visibility): Use it.
6523 2016-04-04 Martin Liska <mliska@suse.cz>
6526 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6527 value that is really in range handled by SBR instruction.
6528 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6529 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6530 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6532 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6536 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6537 set, but not for SP_REG operands.
6539 2016-04-02 Martin Sebor <msebor@redhat.com>
6542 * fold-const.c (maybe_nonzero_address): New function.
6543 (fold_comparison): Call it. Fold equality and relational
6544 expressions involving null pointers.
6545 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6547 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6549 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6550 the "Y" constraint (scalar FP 0.0 immediate).
6552 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6553 Add the "const_double" to the list of operand constraints.
6555 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6557 PR rtl-optimization/70467
6558 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6559 If low word of the last operand is 0, just emit addition/subtraction
6562 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6565 * config/s390/s390.c (s390_expand_insv): Check for everything
6566 constant instead of just VOIDmode stuff.
6568 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6571 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6573 2016-04-01 Nathan Sidwell <nathan@acm.org>
6575 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6577 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6579 PR rtl-optimization/70461
6580 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6583 2016-03-31 Martin Liska <mliska@suse.cz>
6586 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6587 a tree value or an immediate integer value to a buffer
6588 that is eventually copied to a BRIG section.
6589 (emit_immediate_operand): Call the function here.
6590 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6591 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6592 of class' fields that are removed.
6593 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6594 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6595 m_brig_repr_size fields.
6597 2016-03-31 Martin Liska <mliska@suse.cz>
6600 * hsa-gen.c (hsa_function_representation::update_dominance): New
6602 (convert_addr_to_flat_segment): Likewise.
6603 (gen_hsa_memory_set): New alignment argument.
6604 (gen_hsa_ctor_assignment): Likewise.
6605 (gen_hsa_insns_for_single_assignment): Provide alignment
6606 to gen_hsa_ctor_assignment.
6607 (gen_hsa_insns_for_direct_call): Add new argument.
6608 (expand_lhs_of_string_op): New function.
6609 (expand_string_operation_builtin): Likewise.
6610 (expand_memory_copy): New function.
6611 (expand_memory_set): New function.
6612 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6613 (convert_switch_statements): Change signature.
6614 (generate_hsa): Use a return value of the function.
6615 (pass_gen_hsail::execute): Do not call
6616 convert_switch_statements here.
6617 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6618 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6619 (hsa_function_representation::update_dominance): New function.
6621 2016-03-31 Martin Liska <mliska@suse.cz>
6624 * hsa-brig.c (emit_directive_variable): Emit alignment
6625 according to hsa_symbol::m_align.
6626 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6627 (dump_hsa_symbol): Dump alignment of HSA symbols.
6628 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6629 (gen_hsa_addr_with_align): New function.
6630 (hsa_bitmemref_alignment): Use newly added function.
6631 (gen_hsa_insns_for_load): Likewise.
6632 (gen_hsa_insns_for_store): Likewise.
6633 (gen_hsa_memory_copy): New argument added.
6634 (gen_hsa_insns_for_single_assignment): Respect
6635 alignment for assignments processed via gen_hsa_memory_copy.
6636 (gen_hsa_insns_for_direct_call): Likewise.
6637 (gen_hsa_insns_for_return): Likewise.
6638 (gen_function_def_parameters): Set default alignment.
6639 * hsa.c (hsa_object_alignment): New function.
6640 (hsa_byte_alignment): Pasted function.
6641 * hsa.h (hsa_symbol::m_align): New field.
6643 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6645 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6646 scratch field for goto case.
6648 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6650 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6652 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6655 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6656 (scalar_chain::convert_insn): Call convert_op for reg
6657 moves to handle undefined registers.
6659 2016-03-31 Nathan Sidwell <nathan@acm.org>
6662 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6663 Assert we don't want to move backwards.
6665 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6668 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6670 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6672 PR rtl-optimization/70460
6673 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6674 with operand from REG_LABEL_OPERAND, instead substitute
6675 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6676 Don't do anything for REG_NON_LOCAL_GOTO jumps.
6678 2016-03-31 Martin Liska <mliska@suse.cz>
6680 * passes.c (execute_one_pass): Do not call
6681 todo_after for a discarded function.
6683 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6685 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6686 (no_cost, infinite_cost): Initialize the new field.
6687 (get_computation_cost_at): Record setup cost.
6688 (determine_use_iv_cost_address): Skip cost computation for sub
6689 uses if we can estimate it without losing accuracy.
6691 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6693 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6695 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6696 max_loop_iterations_int.
6697 (tree_unswitch_outer_loop): Likewise.
6698 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6699 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6701 2016-03-30 Richard Biener <rguenther@suse.de>
6704 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6706 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6709 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6710 in gen_blendm expander.
6712 2016-03-30 Nick Clifton <nickc@redhat.com>
6715 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6716 case where we are already provided with an SImode SUBREG.
6718 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6721 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6722 conflict between DRAP register and __builtin_eh_return.
6724 2016-03-30 Michael Matz <matz@suse.de>
6725 Richard Biener <rguenther@suse.de>
6728 * ipa-polymorphic-call.c (struct type_change_info): Change
6729 speculative to an unsigned allowing to limit the work we do.
6730 (csftc_abort_walking_p): New inline function..
6731 (check_stmt_for_type_change): Limit the number of may-defs
6732 skipped for speculative devirtualization to
6733 max-speculative-devirt-maydefs.
6734 * params.def (max-speculative-devirt-maydefs): New param.
6735 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6737 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6740 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6743 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6745 PR tree-optimization/59124
6746 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
6747 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
6749 2016-03-29 Jeff Law <law@redhat.com>
6751 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6753 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6755 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6758 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
6760 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
6761 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
6762 gcrt0.o if linking dynamically.
6764 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6767 * ipa-devirt.c (methods_equal_p): New function.
6768 (compare_virtual_tables): Use it.
6769 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
6770 * cgraphclones.c (clone_function_name_1): Use
6771 symbol_table::symbol_suffix_separator.
6772 * coverage.c (build_var): Likewise.
6773 * symtab.c (symbol_table::symbol_suffix_separator): New.
6775 2016-03-29 Jakub Jelinek <jakub@redhat.com>
6777 PR rtl-optimization/70429
6778 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
6779 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
6780 mode != result_mode.
6783 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
6785 PR tree-optimization/70405
6786 * ssa-iterators.h (num_imm_uses): Add missing braces.
6788 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
6790 PR rtl-optimization/68695
6791 * ira-color.c (allocno_copy_cost_saving): New.
6792 (improve_allocation): Use it.
6794 2016-03-29 Richard Henderson <rth@redhat.com>
6797 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
6799 2016-03-29 Richard Biener <rguenther@suse.de>
6802 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
6803 use alignment returned by get_pointer_alignment_1 if it is
6804 bigger than BITS_PER_UNIT.
6805 * builtins.c (get_pointer_alignment_1): Do not return true
6806 for alignment extracted from SSA info.
6808 2016-03-28 James Bowman <james.bowman@ftdichip.com>
6810 * config/ft32/ft32.opt (mnodiv): New.
6811 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
6812 * doc/invoke.texi (FT32 Options -mnodiv): New.
6814 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
6817 * config/i386/i386.md (define_split, andn): Fix modes.
6819 2016-03-26 Richard Biener <rguenther@suse.de>
6820 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6823 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
6825 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
6826 as 2nd argument to cl_optimization_restore().
6828 2016-03-25 Richard Henderson <rth@redhat.com>
6831 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
6832 * config/aarch64/aarch64-protos.h: Declare it.
6833 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
6835 2016-03-25 Alan Modra <amodra@gmail.com>
6838 * config/rs6000/constraints.md (j): Simplify.
6839 * config/rs6000/predicates.md (easy_fp_constant): Exclude
6841 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
6842 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
6843 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
6844 in all constraint alternatives.
6845 (movtd_64bit_nodm): Delete "j" constraint alternative.
6847 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6849 * tree-ssa-propagate.c: Enhance docs for
6850 SSA_PROP_NOT_INTERESTING.
6852 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6854 * doc/extend.texi: Fix typo in documentation to pure attribute.
6856 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
6859 * config/pa/pa.md (bswapdi2): Use a scratch register.
6861 2016-03-24 Richard Henderson <rth@redhat.com>
6864 * fold-const.c (extract_muldiv_1): Correct test for multiplication
6867 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
6869 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
6870 using ix86_expand_binary_operator instead of gen_andsi3.
6872 2016-03-24 Richard Biener <rguenther@suse.de>
6874 PR tree-optimization/70396
6875 * tree-vect-stmts.c (vectorizable_comparison): Use
6876 get_vectype_for_scalar_type.
6878 2016-03-24 Richard Biener <rguenther@suse.de>
6881 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
6882 with register bases.
6884 2016-03-24 Richard Biener <rguenther@suse.de>
6886 PR tree-optimization/70372
6887 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
6888 build_all_ones_cst to also handle vector types correctly.
6890 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6893 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
6896 2016-03-23 Marek Polacek <polacek@redhat.com>
6899 * doc/invoke.texi: Document -Wignored-attributes.
6901 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6903 PR tree-optimization/69042
6904 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
6905 parameter from 30 to 40.
6907 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6909 PR tree-optimization/69042
6910 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
6911 for use with constant offset stripped in base.
6913 2016-03-23 Richard Biener <rguenther@suse.de>
6916 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
6917 mode compatibility check.
6918 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6920 2016-03-23 Jeff Law <law@redhat.com>
6922 PR tree-optimization/64058
6923 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
6925 (struct ssa_conflicts): Move up earlier in the file.
6926 (conflicts_, var_map_): New static variables.
6927 (initialize_conflict_count): New function to initialize the
6928 CONFLICT_COUNT field for each conflict pair.
6929 (compare_pairs): Lazily initialize the conflict count and use it
6930 as the first tie-breaker.
6931 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
6932 and wipe conflicts_ and map_ around the call to qsort. Remove
6933 special case for 2 coalesce pairs.
6934 * bitmap.c (bitmap_count_unique_bits): New function.
6935 (bitmap_count_bits_in_word): New function, extracted from
6937 (bitmap_count_bits): Use bitmap_count_bits_in_word.
6938 * bitmap.h (bitmap_count_unique_bits): Declare it.
6940 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
6943 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
6944 transparent alias chain for decl assembler name.
6945 * config/sol2.c (solaris_assemble_visibility): Likewise.
6947 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6949 * config/arm/arm1020e.md (1020call_op): Reduce reservation
6951 (v10_fdivs): Likewise.
6952 (v10_fdivd): Likewise.
6954 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6957 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
6958 to not call fclose twice on file.
6960 2016-03-23 Jakub Jelinek <jakub@redhat.com>
6962 PR tree-optimization/70354
6963 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6964 oprnd0 is wider than oprnd1 and there is a cast from the wider
6965 type to oprnd1, mask it with the mask of the narrower type.
6968 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
6969 Optimize TARGET_STV splitters, if high or low word of last argument
6972 2016-03-22 Jeff Law <law@redhat.com>
6975 tree-ssa-threadbackward.c
6976 (fsm_find_control_statement_thread_paths): Correctly distinguish
6977 between old style jump threads vs FSM jump threads.
6979 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
6982 * config/i386/i386.c (scalar_chain::convert_op): Support
6983 uninitialized register usage case.
6985 2016-03-22 Richard Biener <rguenther@suse.de>
6988 * genmatch.c (gen_transform): Adjust last parameter to a three-state
6990 (capture::gen_transform): ... to change behavior when substituting
6991 a condition into cond or not-cond expr context.
6992 (dt_simplify::gen_1): Adjust.
6993 * gimple-match-head.c: Include gimplify.h for unshare_expr.
6994 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
6995 last change and instead change to
6996 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
6997 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6999 2016-03-22 Anthony Green <green@moxielogic.com>
7001 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
7002 issue for moxiebox targets.
7003 (CC1PLUS_SPEC): Ditto.
7005 2016-03-22 Richard Biener <rguenther@suse.de>
7008 * fold-const.c (extract_muldiv_1): Properly perform multiplication
7011 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7013 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7015 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7018 * config/i386/i386.c (def_builtin): Handle
7019 OPTION_MASK_ISA_AVX512VL to be and-ed with other
7021 (const struct builtin_description bdesc_special_args[]):
7022 Remove duplicate ISA bits.
7024 2016-03-22 Jakub Jelinek <jakub@redhat.com>
7027 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
7028 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
7029 in a way that works also for AVX512BW.
7032 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
7033 instead of source if operands[1] is xmm16 and above and
7034 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
7035 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
7038 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
7039 on assign if (*from_p) is a comparison, set it to
7040 TREE_NO_WARNING (*from_p).
7042 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7045 * lra.c (restore_scratches): Ignore deleted insns.
7047 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
7048 Jakub Jelinek <jakub@redhat.com>
7050 PR tree-optimization/70317
7051 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7054 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
7057 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7058 of ix86_expand_move.
7060 (movti): Use general_operand for operand 1 predicate.
7062 2016-03-21 Martin Liska <mliska@suse.cz>
7064 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7066 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7068 2016-03-21 Martin Liska <mliska@suse.cz>
7071 * ipa-icf.c (sem_function::parse): Skip static
7072 constructors and destructors.
7074 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7077 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
7078 function-like macro, peek following token(s) if it is followed
7079 by CPP_OPEN_PAREN token with optional padding in between, and
7080 if not, don't treat it like a macro.
7082 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
7083 Alexander Monakov <amonakov@ispras.ru>
7085 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7086 for the stabs debug format.
7088 2016-03-21 Richard Biener <rguenther@suse.de>
7090 PR tree-optimization/70310
7091 * tree-vect-generic.c (expand_vector_condition): Fold the built
7094 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
7097 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
7098 Block third alternative for AVX-512VL target,
7100 2016-03-21 Martin Liska <mliska@suse.cz>
7103 * hsa-brig.c (emit_function_directives): Mark unemitted
7104 global variables for emission.
7105 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
7106 (get_symbol_for_decl): Likewise.
7107 * hsa.h (struct hsa_symbol): New flag.
7109 2016-03-21 Richard Biener <rguenther@suse.de>
7111 PR tree-optimization/70288
7112 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
7113 we do not estimate unsimplified all-constant conditionals or
7114 switches as optimized away.
7116 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
7118 PR rtl-optimization/69102
7119 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
7120 when we have a readonly dependency context.
7122 2016-03-18 Jeff Law <law@redhat.com>
7124 PR rtl-optimization/70263
7125 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
7126 (update_equiv_regs): When trying to move a store to after the insn
7127 that sets the source of the store, make sure the store occurs after
7128 the insn that sets the source of the store. When successful note
7129 the REG_EQUIV note created in the dump file.
7131 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
7132 Bernd Schmidt <bschmidt@redhat.com>
7134 * doc/extend.texi: Document more potential problems with basic asms.
7136 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
7138 PR rtl-optimization/70278
7139 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
7142 2016-03-18 Jason Merrill <jason@redhat.com>
7144 * calls.c (load_register_parameters): Fix zero size sibcall logic.
7146 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
7148 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
7149 values to 128b regs.
7151 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
7153 PR tree-optimization/70252
7154 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
7155 boolean vector has a proper number of elements.
7156 (supportable_narrowing_operation): Likewise.
7158 2016-03-18 Tom de Vries <tom@codesourcery.com>
7161 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
7163 2016-03-18 Jakub Jelinek <jakub@redhat.com>
7165 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
7166 instead of replace_rtx for DEBUG_INSNs.
7168 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7170 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
7171 load type reservations.
7173 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
7176 * config/pa/constraints.md: Revert 2015-02-13 change. Use
7177 define_constraint for "Q" and "T" constraints.
7179 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
7181 Tweak the pipeline model for Exynos M1
7183 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
7186 2016-03-17 David Malcolm <dmalcolm@redhat.com>
7189 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
7190 where one or both locations aren't within a line_map.
7192 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
7195 * opts.c (finish_options): Don't set flag_pie to the default if
7196 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
7199 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
7201 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
7202 true as ALL_REGS argument to replace_rtx.
7204 2016-03-17 Richard Biener <rguenther@suse.de>
7207 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
7210 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7213 * rtl.h (replace_rtx): Add ALL_REGS argument.
7214 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
7215 equality and assert mode is the same, instead of just rtx pointer
7217 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
7218 true as ALL_REGS argument to replace_rtx.
7220 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
7222 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
7223 for boolean vector with vector mode only.
7224 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7226 2016-03-17 Nick Clifton <nickc@redhat.com>
7229 * config/rx/rx.c (rx_print_integer): Print negative constants in
7232 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7235 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
7237 2016-03-16 Richard Henderson <rth@redhat.com>
7238 Richard Biener <rguenth@suse.de>
7243 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
7244 first operand as is_gimple_condexpr.
7249 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
7250 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
7251 Do not gimplify the result.
7252 (do_unop): Adjust call to tree_vec_extract.
7253 (do_binop): Likewise.
7254 (do_compare): Likewise.
7255 (do_plus_minus): Likewise.
7256 (do_negate): Likewise.
7257 (expand_vector_condition): Likewise.
7258 (do_cond): Likewise.
7260 2016-03-16 Richard Henderson <rth@redhat.com>
7263 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
7264 (aarch64_classify_address): Use it.
7265 (aarch64_legitimize_address): Force all subexpressions of PLUS
7266 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
7268 2016-03-16 Jakub Jelinek <jakub@redhat.com>
7269 Richard Biener <rguenth@suse.de>
7272 * rtlanal.c (replace_rtx): For REG, if from is a REG,
7273 return to even if only REGNO is equal, and assert
7276 2016-03-11 Jeff Law <law@redhat.com>
7278 PR rtl-optimization/70224
7279 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
7281 2016-03-16 Richard Henderson <rth@redhat.com>
7284 * function.h (struct function): Add has_forced_label_in_static.
7285 * gimplify.c (force_labels_r): Set it.
7286 * lto-streamer-in.c (input_struct_function_base): Read it.
7287 * lto-streamer-out.c (output_struct_function_base): Write it.
7288 * tree-inline.c (has_label_address_in_static_1): Remove.
7289 (copy_forbidden): Remove fndecl parameter; test
7290 has_forced_label_in_static.
7291 (inline_forbidden_p): Update call to copy_forbidden.
7292 (tree_versionable_function_p): Likewise.
7293 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
7294 (chkp_versioning): Likewise.
7295 * tree-inline.h (copy_forbidden): Update decl.
7297 2016-03-16 Marek Polacek <polacek@redhat.com>
7300 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
7301 function being thunked if the result type doesn't have fixed size.
7302 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
7303 doesn't have fixed size.
7305 2016-03-16 Bin Cheng <bin.cheng@arm.com>
7307 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7308 reporting malformed loop nest.
7310 2016-03-16 Tom de Vries <tom@codesourcery.com>
7313 * ipa-devirt.c (possible_polymorphic_call_targets): Move
7314 nodes.length () == 1 test to before first nodes[0] access.
7316 2016-03-16 Tom de Vries <tom@codesourcery.com>
7318 PR tree-optimization/68715
7319 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7322 2016-03-16 Tom de Vries <tom@codesourcery.com>
7324 PR tree-optimization/68809
7325 * graphite-scop-detection.c (same_close_phi_node): Test if result types
7328 2016-03-16 Carlos O'Donell <carlos@redhat.com>
7329 Sandra Loosemore <sandra@codesourcery.com>
7331 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7332 on leaf attribute. Mention ELF interposition problems.
7334 2016-03-16 Alan Modra <amodra@gmail.com>
7336 PR rtl-optimization/69195
7337 PR rtl-optimization/47992
7338 * ira.c (indirect_jump_optimize): Ignore artificial defs.
7341 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
7344 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7346 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7348 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7350 2016-03-15 Jakub Jelinek <jakub@redhat.com>
7352 PR rtl-optimization/70222
7353 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7354 optimization if mode is different from result_mode, queue up masking
7355 of the result in outer_op. Formatting fix.
7358 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7361 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7363 PR rtl-optimization/69032
7364 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7365 looping backwards over basic block insns.
7367 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7370 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7371 to non-speculative when propagating trap bits.
7373 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7375 PR rtl-optimization/63384
7376 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7379 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7382 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7383 factored out from ...
7384 (sched_analyze_insn): ... here.
7385 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7386 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7387 get_implicit_reg_pending_clobbers in it.
7388 (setup_id_reg_sets): Use setup_id_implicit_regs.
7389 (deps_init_id): Ditto.
7391 2016-03-15 Tom de Vries <tom@codesourcery.com>
7394 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7396 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7397 execute_function_dump.
7398 (execute_one_pass): Don't dump function if it will be dumped after ipa
7401 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7403 * genrecog.c (match_pattern_2): If pred is NULL don't call
7404 safe_predicate_mode on it.
7406 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7409 * lra-constraints.c (delete_move_and_clobber): Change assertion
7410 to also allow dregno == 0.
7412 2016-03-14 Richard Henderson <rth@redhat.com>
7415 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7416 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7417 (reassociate_bb): Use optimize_vec_cond_expr; avoid
7418 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7421 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7424 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7426 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7428 * lra-constraints.c (split_reg): For hard regs, try to find the
7429 biggest single-register mode used in the function.
7431 2016-03-14 Richard Biener <rguenther@suse.de>
7433 PR tree-optimization/56365
7434 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7435 constants to compare against.
7437 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7440 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7441 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7442 (define_split for the GPR case): Use int_reg_operand instead of
7443 gpc_reg_operand for the output.
7445 2016-03-14 Tom de Vries <tom@codesourcery.com>
7447 PR tree-optimization/70045
7448 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7449 create_empty_if_region_on_edge argument.
7451 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7453 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7454 (STACK_CHECK_PROTECT): Likewise.
7455 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7456 (STACK_CHECK_PROTECT): Likewise.
7457 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7458 (STACK_CHECK_PROTECT): Likewise.
7459 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7460 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7461 (STACK_CHECK_PROTECT): Likewise.
7463 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7465 PR rtl-optimization/69307
7466 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7467 registers in modes that span more than one register.
7469 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7472 * lra-constraints.c (delete_move_and_clobber): New.
7473 (remove_inheritance_pseudos): Use it.
7475 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7478 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7479 the libcall is LCT_THROW.
7480 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7481 for the checking routine.
7483 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7486 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7487 optimization if we have direct move.
7488 (roundu32<mode>2_fprs): Likewise.
7490 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7493 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7495 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7496 Arguments swapped. All callers changed. Take reg_renumber into
7497 account, and Calculate and compare register ranges for hard regs.
7499 2016-03-11 Jeff Law <law@redhat.com>
7501 PR tree-optimization/70190
7502 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7503 Handle cases where we can not extract the taken edge, even though we
7504 found a constant value.
7506 PR tree-optimization/64058
7507 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7508 (num_coalesce_pairs): Move up earlier in file.
7509 (find_coalesce_pair): Initialize the INDEX field for each pair
7511 (compare_pairs): No longer sort on the elements in each pair.
7512 Instead break ties with the index of the coalesce pair.
7514 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7517 * config/aarch64/aarch64-protos.h
7518 (aarch64_save_restore_target_globals): New prototype.
7519 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7520 Call the above when popping pragma.
7521 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7523 (aarch64_set_current_function): Rewrite using the above.
7525 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7527 PR tree-optimization/70177
7528 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7529 (extract_ops_from_tree): ... this. In the 2 argument
7530 overload remove _1 suffix.
7531 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7532 (extract_ops_from_tree): ... this.
7533 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7535 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7536 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7537 extract_ops_from_tree instead of 2 operand one.
7539 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7541 PR tree-optimization/70013
7542 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7543 for constant-pool entries.
7545 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7547 PR rtl-optimization/70174
7548 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7549 followed by gen_lowpart on force_reg instead of just gen_lowpart.
7551 PR tree-optimization/70169
7552 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7553 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
7556 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7557 Jakub Jelinek <jakub@redhat.com>
7560 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7561 of uninitialized values.
7563 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7565 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7567 ("*trunctddd2"): New pattern definition.
7568 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7571 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7573 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7574 definitions for BFP and DFP rounding modes.
7575 ("fixuns_truncdddi2", "fixuns_trunctddi2")
7576 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7577 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7578 ("fix_trunctf<mode>2"): Use the new constants instead of magic
7581 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7583 * config/s390/constraints.md: Adjust comment.
7584 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
7585 s390_decompose_addrstyle_without_index.
7586 * config/s390/predicates.md (shift_count_or_setmem_operand):
7587 Rename to setmem_operand.
7588 * config/s390/s390-protos.h
7589 (s390_decompose_shift_count): Rename to
7590 s390_decompose_addrstyle_without_index.
7591 * config/s390/s390.c (s390_decompose_shift_count)
7592 (s390_mem_constraint, print_shift_count_operand)
7593 (print_operand_address, print_operand): Rename
7594 s390_decompose_shift_count to
7595 s390_decompose_addrstyle_without_index and rename
7596 print_shift_count_operand to print_addrstyle_operand troughout the
7598 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7599 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7600 Rename shift_count_or_setmem_operand to setmem_operand.
7601 * config/s390/vx-builtins.md ("vec_insert<mode>")
7602 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7605 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7608 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7609 Handle overlapping retval and newval.
7611 2016-03-10 Nick Clifton <nickc@redhat.com>
7614 * config/aarch64/aarch64.c
7615 (aarch64_override_options_after_change_1): When forcing
7616 flag_omit_frame_pointer to be true, use a special value that can
7617 be detected if this function is called again, thus preventing
7618 flag_omit_leaf_frame_pointer from being forced to be false.
7620 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7622 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7623 Set x_flag_omit_leaf_frame_pointer when handling
7624 -momit-leaf-frame-pointer.
7626 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7629 * cgraph.c (cgraph_node::dump): Dump split_part and
7630 indirect_call_target.
7631 * cgraph.h (cgraph_node): Add indirect_call_target flag.
7632 * ipa.c (has_addr_references_p): Cleanup.
7633 (is_indirect_call_target_p): New.
7634 (walk_polymorphic_call_targets): Do not mark virtuals that may be
7635 called indirectly as local.
7636 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7638 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7641 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7642 on cxa_pure_virtual.
7644 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7647 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7649 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7652 * tree.c (need_assembler_name_p): Only record main variant type names.
7654 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7657 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7658 Always define to 0 or 1.
7659 (TARGET_FIX_ERR_A53_843419): New macro.
7660 * config/aarch64/aarch64-elf-raw.h
7661 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7662 * config/aarch64/aarch64-linux.h: Likewise.
7663 * config/aarch64/aarch64.c
7664 (aarch64_override_options_after_change_1): Do not default
7665 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7667 (aarch64_attributes): Handle fix-cortex-a53-843419.
7668 (aarch64_can_inline_p): Likewise.
7669 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7671 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7672 Jakub Jelinek <jakub@redhat.com>
7674 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7675 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7676 DECL_COMMONS if flag_unconstrained_commons is set.
7677 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7678 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7679 (funconstrained-commons): Document.
7681 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7683 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7684 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7686 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7688 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7689 has a proper number of elements.
7691 2016-03-10 Alan Modra <amodra@gmail.com>
7693 PR rtl-optimization/69195
7694 PR rtl-optimization/47992
7695 * ira.c (recorded_label_ref): Delete.
7696 (update_equiv_regs): Return void.
7697 (indirect_jump_optimize): New function.
7698 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7699 before regstat_compute_ri. Don't rebuild_jump_labels here.
7700 Delete update_regstat.
7702 2016-03-10 Richard Biener <rguenther@suse.de>
7704 PR tree-optimization/70128
7705 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7706 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7708 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7710 PR tree-optimization/70152
7711 * tree-sra.c (replace_removed_params_ssa_names): Copy over
7712 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7715 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7716 instead of gen_sse2_loadlpd.
7717 * config/i386/sse.md (*vec_concatv2df): Rename to...
7718 (vec_concatv2df): ... this.
7720 PR tree-optimization/70127
7721 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7723 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7727 * diagnostic-show-locus.c (compatible_locations_p): New function.
7728 (layout::layout): Sanitize ranges using compatible_locations_p.
7730 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7734 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7735 location_range param with three const expanded_locations * and a
7737 (layout::layout): Replace call to
7738 rich_location::lazily_expand_location with get_expanded_location.
7739 Extract the range and perform location expansion here, passing
7740 the results to the layout_range ctor.
7741 * diagnostic.c (source_range::debug): Delete.
7742 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7743 of rich_location::get_expanded_location.
7744 * gcc-rich-location.c (get_range_for_expr): Delete.
7745 (gcc_rich_location::add_expr): Reimplement to avoid the
7746 rich_location::add_range overload that took a location_range,
7747 passing a location_t instead.
7749 2016-03-09 Richard Biener <rguenther@suse.de>
7750 Jakub Jelinek <jakub@redhat.com>
7752 PR tree-optimization/70138
7753 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7754 Also skip vect_double_reduction_def.
7756 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7759 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7760 if the operand is "m".
7762 2016-03-09 Nathan Sidwell <nathan@acm.org>
7764 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
7766 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7768 * config/i386/i386.c (processor_target_table): Fix cost table
7769 intialization order for znver1.
7771 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7773 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
7774 - becuase -> because.
7775 * ipa-reference.c (ignore_module_statics): Likewise.
7776 * cgraph.c (cgraph_node::get_body): Likewise.
7777 * ipa-inline.c (early_inliner): Likewise.
7778 * ipa-devirt.c (types_same_for_odr): Likewise.
7779 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
7780 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
7782 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7784 * tree-ssa-math-opts.c: Fix typo in comment.
7786 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7789 * config/i386/i386.c (scalar_chain::make_vector_copies,
7790 scalar_chain::convert_reg): Call end_sequence in between
7791 get_insns and emit_conversion_insns rather than after both
7794 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
7797 * config/i386/i386.h (machine_function): Add
7798 pc_thunk_call_expanded flag.
7799 (ix86_pc_thunk_call_expanded): New define.
7800 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
7801 (*set_got): Rename insn pattern from set_got.
7802 (*set_got_labelled): Rename inst pattern from set_got_labelled.
7803 * config/i386/i386.c (ix86_compute_frame_layout): Use
7804 ix86_pc_thunk_call_expanded to prevent red-zone.
7806 2016-03-07 Martin Jambor <mjambor@suse.cz>
7808 * hsa.h (hsa_get_ctor_statements): Declare.
7809 (hsa_get_dtor_statements): Likewise.
7810 (hsa_get_kernel_dispatch_type): Likewise.
7811 * hsa.c (hsa_get_ctor_statements): New function.
7812 (hsa_get_dtor_statements): Likewise.
7813 (hsa_get_kernel_dispatch_type): Likewise.
7814 * hsa-brig.c (hsa_cdtor_statements): Removed.
7815 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
7816 hsa_get_dtor_statements.
7817 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
7818 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
7820 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
7822 * config/arm/arm-cores.def (cortex-r8): New.
7823 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
7824 * config/arm/arm-tune.md: Likewise.
7825 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
7827 2016-03-07 Martin Sebor <msebor@redhat.com>
7829 PR rtl-optimization/19705
7830 * doc/invoke.texi (Options That Control Optimization): Clarify
7831 -fno-branch-count-reg.
7833 2016-02-26 Richard Biener <rguenther@suse.de>
7834 Jeff Law <law@redhat.com>
7836 PR tree-optimization/69740
7837 * cfghooks.c (remove_edge): Request loop fixups if we delete
7838 an edge that might turn an irreducible loop into a natural
7840 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
7841 Move after definition of loops_state_clear.
7843 2016-03-07 Bin Cheng <bin.cheng@arm.com>
7845 PR rtl-optimization/69052
7846 * rtlanal.c (commutative_operand_precedence): Set higher precedence
7849 2016-03-07 Tom de Vries <tom@codesourcery.com>
7851 PR tree-optimization/70116
7852 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
7853 is_tm_ending stmts and ubsan/asan internal functions.
7854 (find_duplicate): Use it. Don't test is_tm_ending here.
7856 2016-03-07 Richard Biener <rguenther@suse.de>
7858 PR tree-optimization/70115
7859 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
7860 (propagate_constants_for_unrolling): Use replace_uses_by.
7862 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
7865 * omp-low.c (struct oacc_loop): Add ifns.
7866 (new_oacc_loop_raw): Initialize it.
7867 (finish_oacc_loop): Clear mask & flags if no ifns.
7868 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
7869 (oacc_loop_xform_loop): Add ifns arg & adjust.
7870 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
7872 2016-03-07 Richard Henderson <rth@redhat.com>
7875 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
7876 (insert_value_copy_on_edge): Likewise.
7878 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7880 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
7882 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7885 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
7887 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7889 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
7891 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7893 Fix sseimul type attribute.
7894 * config/i386/znver1.md
7895 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
7896 znver1_sseimul_avx256_load) : Fix the type attribute.
7897 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
7898 pipe usage and latency.
7900 2016-03-05 Jakub Jelinek <jakub@redhat.com>
7903 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
7904 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
7907 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7910 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
7912 PR rtl-optimization/69941
7913 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
7914 the reg share its mode.
7916 2016-03-04 Jeff Law <law@redhat.com>
7918 PR tree-optimization/69196
7919 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7920 If the both SSA_NAMEs are anonymous, then consider them unassociated
7921 and include the PHI in the statement count.
7923 2016-03-05 Tom de Vries <tom@codesourcery.com>
7925 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
7926 construct in oacc routine. Check for oacc region in oacc routine.
7928 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7931 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
7932 2016-02-22 changes, instead don't recurse if RECUR is already true.
7933 Don't change *dynamic_check if RECUR. Adjust recursive caller
7934 to pass true to the new argument.
7935 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
7938 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
7939 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
7941 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
7943 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7945 PR rtl-optimization/57676
7946 * lra-assigns.c (lra_assign): Guard test for maximum iterations
7949 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
7951 * tree-vect-patterns.c (search_type_for_mask): Handle
7952 comparison of booleans.
7954 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7956 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
7960 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
7961 all other ops that have dw_val_class_die_ref operands,
7962 and DW_OP_GNU_entry_value.
7964 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7966 PR rtl-optimization/69904
7967 * config/arm/arm.c (arm_cannot_copy_insn_p):
7968 Return true for load-exclusive instructions.
7970 2016-03-03 Jakub Jelinek <jakub@redhat.com>
7973 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
7974 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
7975 the pattern no matter if it is used just by non-pattern, pattern
7977 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
7978 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7979 oprnd1 def_stmt is in pattern, don't look through it.
7981 2016-03-03 Marek Polacek <polacek@redhat.com>
7984 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
7986 2016-03-03 Martin Liska <mliska@suse.cz>
7988 PR tree-optimization/70043
7989 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
7990 previous statement if we see a debug statement.
7992 2016-03-03 Richard Biener <rguenther@suse.de>
7994 PR tree-optimization/55936
7995 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
7996 parameter and guard unsafe equivalence use.
7997 (vrp_evaluate_conditional_warnv_with_ops): Always use
7998 safe equivalences but not via the quadratic compare_names
8001 2016-03-03 Michael Collison <michael.collison@linaro.org>
8004 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
8005 for operand 1 to s_register_operand. Change predicate for operand
8006 2 to arm_not_immediate_operand.
8008 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
8010 * doc/tm.texi: Regenerated.
8012 2016-03-02 Richard Henderson <rth@redhat.com>
8015 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8016 simplification when all args are positive non-fixed registers.
8018 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8020 * target.def (lra_p): Specify that new ports should use LRA.
8022 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8025 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
8026 gimplify_type_sizes the type they refer to.
8027 (omp_notice_variable): Handle reference vars to VLAs.
8028 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
8029 reference to VLA decls in the second pass instead of first pass.
8031 2016-03-02 Tom de Vries <tom@codesourcery.com>
8033 PR tree-optimization/68659
8034 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
8035 new_expr == NULL_TREE.
8036 (get_new_name): Handle ADDR_EXPR.
8038 2016-03-02 Bin Cheng <bin.cheng@arm.com>
8040 PR rtl-optimization/69052
8041 * loop-invariant.c (canonicalize_address): New function.
8042 (inv_can_prop_to_addr_use): Check validity of address expression
8043 which is canonicalized by above function.
8045 2016-03-02 Alan Modra <amodra@gmail.com>
8048 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8051 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8054 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
8055 (*movhi_internal): Put mask moves from and to memory separately
8056 from moves from/to GPRs.
8058 2016-03-02 Richard Biener <rguenther@suse.de>
8060 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8061 GENERIC expressions in GIMPLE.
8063 2016-03-02 Richard Biener <rguenther@suse.de>
8065 * config/i386/i386.c (type_natural_mode): Fix typo.
8067 2016-03-02 Nick Clifton <nickc@redhat.com>
8069 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8071 2016-03-02 Richard Biener <rguenther@suse.de>
8072 Uros Bizjak <ubizjak@gmail.com>
8075 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8077 2016-03-02 Richard Biener <rguenther@suse.de>
8080 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8082 2016-03-02 Marek Polacek <polacek@redhat.com>
8085 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8086 "is promoted to" warning.
8088 2016-03-01 DJ Delorie <dj@redhat.com>
8090 * config.gcc: Deprecate mep-*.
8092 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
8095 * lra-constraints.c (regno_val_use_in): New.
8096 (match_reload): Use it instead of regno_use_in.
8098 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8100 PR rtl-optimization/70007
8101 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
8102 references present in REG_EQUAL notes attached to non-SET patterns.
8104 2016-03-01 Jeff Law <law@redhat.com>
8106 PR tree-optimization/69196
8107 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8108 Appropriately clamp the number of statements to copy when the
8109 thread path does not traverse a loop backedge.
8111 PR tree-optimization/69196
8112 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8113 Do count some PHIs in the thread path against the insn count. Decrease
8114 final statement count by one as the control statement in the last
8115 block will get removed. Remove special cased code for handling PHIs
8118 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
8121 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
8122 asm dialect alternatives to explicit GOTPCREL calls.
8124 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8127 * ira.c (do_reload): Issue warning for generic stack checking here...
8128 * reload1.c (reload): ...instead of here and streamline it.
8130 2016-03-01 Nick Clifton <nickc@redhat.com>
8132 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
8134 2016-03-01 Richard Biener <rguenther@suse.de>
8136 PR tree-optimization/69983
8137 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
8138 types and fall back to operand_equal_p.
8140 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8143 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8145 * config/s390/constraints.md ("jm8"): New constraint.
8146 * config/s390/predicates.md ("const_int_8bitset_operand"): New
8148 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
8150 ("*setmem_long<setmem_and>"): New pattern.
8151 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
8153 ("*setmem_long_31z<setmem_and>"): New pattern.
8154 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
8155 New substitution rules with the required attributes.
8158 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8161 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8163 * gensupport.c (process_substs_on_one_elem): Split loop to
8164 complete mark_operands_used_in_match_dup on all expressions in the
8166 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8167 and remove function.
8169 2016-03-01 Richard Biener <rguenther@suse.de>
8172 * fold-const.c (fold_indirect_ref_1): Fix range checking for
8173 vector BIT_FIELD_REF extract.
8175 2016-03-01 Richard Biener <rguenther@suse.de>
8177 PR tree-optimization/69994
8178 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
8180 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
8182 PR tree-optimization/69956
8183 * tree-vect-stmts.c (supportable_widening_operation): Support
8184 multi-step conversion of boolean vectors.
8185 (supportable_narrowing_operation): Likewise.
8187 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8189 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
8192 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8194 * config/s390/subst.md (DSI_VI): New mode iterator.
8195 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
8196 * config/s390/vector.md ("vec_set<mode>"): Move expander before
8197 the insn definition.
8198 ("*vec_set<mode>"): Change predicate and add alternative to
8199 support only either register or const_int operands as element
8201 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
8203 ("vec_extract<mode>"): New expander.
8204 ("*vec_extract<mode>"): New insn definition supporting reg and
8205 const_int element selectors.
8206 ("*vec_extract<mode>_plus"): New insn definition supporting
8207 reg+const_int element selectors.
8208 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
8209 following expander+insn definition.
8210 ("<vec_shifts_name><mode>3"): New expander.
8211 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
8213 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8215 * config/s390/s390.md ("*tabort_1"): Change predicate to
8216 nonmemory_operand. Add a second alternative to cover
8217 register as well as const int operands.
8218 ("*tabort_1_plus"): New pattern definition.
8220 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8222 * config/s390/s390.md ("*ashrdi3_cc_31")
8223 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
8224 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
8225 Merge insn definitions into ...
8226 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8227 New pattern definition.
8228 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
8229 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
8230 ("*ashr<mode>3_and"): Merge insn definitions into ...
8231 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8232 New pattern definition.
8233 * config/s390/subst.md ("addr_style_op_cc_subst")
8234 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
8235 substitutions patterns plus attributes.
8236 Add ashiftrt to SUBST iterator.
8238 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8240 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
8241 op2 to nonmemory_operand.
8242 ("*<shift>di3_31", "*<shift>di3_31_and"):
8243 Merge into single pattern definition ...
8244 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
8245 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
8246 pattern definition ...
8247 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
8248 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
8251 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8253 * config/s390/predicates.md (const_int_6bitset_operand): New
8255 * config/s390/s390.md: Include subst.md.
8256 ("rotl<mode>3"): New expander.
8257 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
8259 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
8260 * config/s390/subst.md: New file.
8262 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8264 * config/s390/s390.md ("op_type", "atype", "length" attributes):
8265 Remove RRR type. It doesn't really exist.
8266 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
8268 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
8269 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
8270 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
8271 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
8272 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
8273 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
8274 `enabled' attribute.
8276 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8278 * gensupport.c (process_substs_on_one_elem): Split loop to
8279 complete mark_operands_used_in_match_dup on all expressions in the
8281 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8282 and remove function.
8284 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8287 * config/sparc/sparc.c (NWORDS_UP): Rename to...
8288 (CEIL_NWORDS): ...this. Use CEIL macro.
8289 (compute_fp_layout): Adjust to above renaming.
8290 (function_arg_union_value): Likewise.
8291 (sparc_arg_partial_bytes): Likewise.
8292 (sparc_function_arg_advance): Likewise.
8294 2016-02-29 Jeff Law <law@redhat.com>
8296 PR tree-optimization/70005
8297 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
8298 where an object with a boolean range is compared against a value
8301 PR tree-optimization/69999
8302 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
8303 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
8306 2016-02-29 Richard Biener <rguenther@suse.de>
8308 PR tree-optimization/69994
8309 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8310 (get_unary_op): Look through nop conversions.
8311 (ops_equal_values_p): New function, look for equality diregarding
8313 (eliminate_plus_minus_pair): Use ops_equal_values_p
8314 (repropagate_negates): Do not use get_unary_op here.
8316 2016-02-29 Martin Liska <mliska@suse.cz>
8318 * system.h: Poison ENABLE_CHECKING macro.
8320 2016-02-29 Martin Liska <mliska@suse.cz>
8322 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8323 is presented in dump flags.
8324 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8325 (hsa_regalloc): Likewise.
8327 2016-02-19 Richard Biener <rguenther@suse.de>
8329 PR tree-optimization/69980
8330 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8331 permutation of those we need to keep.
8333 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8336 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8337 (NWORDS_UP): ...this
8338 (init_cumulative_args): Minor tweaks.
8339 (sparc_promote_function_mode): Likewise.
8340 (scan_record_type): Delete.
8341 (traverse_record_type): New function template.
8342 (classify_data_t): New structure type.
8343 (classify_registers): New inline function.
8344 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8345 exhausted. Instantiate traverse_record_type on classify_registers and
8346 deal with the case of a structure passed in slot #15 with no FP field
8348 (assign_data_t): New structure type.
8349 (compute_int_layout): New static function.
8350 (compute_fp_layout): Likewise.
8351 (count_registers): New inline function.
8352 (assign_int_registers): New static function.
8353 (assign_fp_registers): Likewise.
8354 (assign_registers): New inline function.
8355 (function_arg_record_value_1): Delete.
8356 (function_arg_record_value_2): Likewise.
8357 (function_arg_record_value_3): Likewise.
8358 (function_arg_record_value): Adjust to above changes. Instantiate
8359 traverse_record_type on count_registers to first count the number of
8360 registers to be used and then on assign_registers to assign them.
8361 (function_arg_union_value): Adjust to above renaming.
8362 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
8363 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
8364 case of a structure passed in slot #15
8365 (sparc_function_arg_advance): Likewise.
8366 (function_arg_padding): Minor tweak.
8368 2016-02-29 Richard Biener <rguenther@suse.de>
8370 PR tree-optimization/69720
8371 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8372 the adjustment_def path for possibly vectorized defs.
8373 (vect_create_epilog_for_reduction): Handle vectorized initial
8376 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8378 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8380 2016-02-27 Jeff Law <law@redhat.com>
8383 2016-02-26 Richard Biener <rguenther@suse.de>
8384 Jeff Law <law@redhat.com>
8386 PR tree-optimization/69740
8387 * cfghooks.c (remove_edge): Request loop fixups if we delete
8388 an edge that might turn an irreducible loop into a natural
8391 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8393 PR rtl-optimization/69896
8394 * tree-vect-generic.c (get_compute_type): Avoid single element
8397 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8399 Rename the AArch64 tuning option and related functions to enable the
8400 Newton series for the reciprocal square root to reflect its
8401 approximative characteristic.
8403 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8404 function to "aarch64_emit_approx_rsqrt".
8405 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8406 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8407 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8408 (xgene1_tunings): Likewise.
8409 (use_rsqrt_p): Likewise.
8410 (aarch64_emit_swrsqrt): Use new function name.
8411 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8412 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8413 text explaining this option.
8414 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8416 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8419 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8420 complain about -mallow-movmisalign without -mvsx if
8421 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8423 2016-02-26 Joel Sherrill <joel@rtems.org>
8425 * config.gcc: Add x86_64-*-rtems*.
8426 * config/i386/rtems-64.h: New file.
8428 2016-02-26 Joel Sherrill <joel@rtems.org>
8430 * config.gcc: Add aarch64-*-rtems*.
8431 * config/aarch64/rtems.h: New file.
8433 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8436 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8437 shift amount using %h. Add comment.
8439 2016-02-26 Richard Biener <rguenther@suse.de>
8440 Jeff Law <law@redhat.com>
8442 PR tree-optimization/69740
8443 * cfghooks.c (remove_edge): Request loop fixups if we delete
8444 an edge that might turn an irreducible loop into a natural
8447 2016-02-26 Martin Jambor <mjambor@suse.cz>
8450 * tree-sra.c (sra_modify_assign): Do not remove loads of
8451 uninitialized aggregates to SSA_NAMEs.
8453 2016-02-26 Richard Henderson <rth@redhat.com>
8456 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8457 pseudo in case the target rtx matches the source of the left
8460 2016-02-26 Martin Jambor <mjambor@suse.cz>
8463 * hsa.h (hsa_type_packed_p): Declare.
8464 * hsa.c (hsa_type_packed_p): New function.
8465 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8467 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8468 * hsa-brig.c (emit_basic_insn): Likewise.
8470 2016-02-26 Martin Jambor <mjambor@suse.cz>
8473 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8475 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8477 2016-02-26 Martin Jambor <mjambor@suse.cz>
8479 * hsa.h (is_a_helper): New overload for hsa_op_immed for
8480 hsa_op_with_type operands.
8481 (hsa_unsigned_type_for_type): Declare.
8482 * hsa.c (hsa_unsigned_type_for_type): New function.
8483 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8484 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8485 the finalizer. Do not emit extra move.
8487 2016-02-26 Martin Jambor <mjambor@suse.cz>
8489 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8490 atomic operations in private segment.
8492 2016-02-26 Martin Jambor <mjambor@suse.cz>
8494 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8495 statements to wi->info. Also disallow omp simd constructs.
8496 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8497 for not gridifying. Dump special string for omp_for.
8499 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8502 * config/aarch64/aarch64.c (aarch64_set_current_function):
8503 Save/restore target globals when switching to
8504 target_option_default_node.
8506 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8509 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8510 Return 0 if !SHIFT_COUNT_TRUNCATED.
8512 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8513 Eric Botcazou <ebotcazou@adacore.com>
8515 PR rtl-optimization/69891
8516 * dse.c (scan_insn): If we can't figure out memset arguments
8517 or they are non-constant, call clear_rhs_from_active_local_stores.
8519 2016-02-26 Martin Liska <mliska@suse.cz>
8521 * doc/extend.texi: Mention clog10, clog10f an clog10l
8522 in Builtins section.
8524 2016-02-26 Martin Liska <mliska@suse.cz>
8526 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8528 (resolve_args_picking_1): Likewise.
8529 * dwarf2out.h (struct GTY): Likewise.
8531 2016-02-26 Martin Liska <mliska@suse.cz>
8533 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8535 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8537 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8538 Martin Liska <mliska@suse.cz>
8540 * doc/install.texi: Mention --enable-valgrind-annotations.
8542 2016-02-26 Richard Biener <rguenther@suse.de>
8544 PR tree-optimization/69551
8545 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8546 looking through aliases adjust DECL_PT_UID to refer to the
8547 ultimate alias target.
8549 2016-02-25 Martin Liska <mliska@suse.cz>
8552 * alloc-pool.c (after_memory_report): New variable.
8553 * alloc-pool.h (base_pool_allocator ::release): Do not use
8554 the infrastructure if after_memory_report.
8555 * toplev.c (toplev::main): Mark after memory report.
8557 2016-02-25 Richard Biener <rguenther@suse.de>
8559 PR tree-optimization/48795
8560 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8562 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8565 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
8566 offloading is enabled and -fopenacc or -fopenmp is specified.
8567 (CRTOFFLOADEND): Likewise.
8568 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8569 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8570 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8571 (offload_objects_file_name): New static var.
8572 (tool_cleanup): Remove offload_objects_file_name file.
8573 (find_offloadbeginend): Replace with ...
8574 (find_crtoffloadtable): ... this.
8575 (run_gcc): Remove offload_argc and offload_argv.
8576 Get offload_objects_file_name from -foffload-objects=... option.
8577 Read names of object files with offload from this file, pass them to
8578 compile_images_for_offload_targets. Don't call find_offloadbeginend and
8579 don't pass offloadbegin and offloadend to the linker. Don't pass
8580 offload non-LTO files to the linker, because now they're not claimed.
8582 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8585 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8586 on builtin_unreachable.
8588 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8590 PR rtl-optimization/69896
8591 * regcprop.c: Include cfgrtl.h.
8592 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8593 than remembered mode, either delete it (if noop_move_p), or
8594 treat like copy_p but not noop_p instruction.
8596 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8599 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8600 - allow NULL decl for Fortran DW_TAG_common_block variables.
8602 2016-02-24 Jason Merrill <jason@redhat.com>
8604 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8606 2016-02-24 Richard Biener <rguenther@suse.de>
8607 Jakub Jelinek <jakub@redhat.com>
8610 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8611 conditionally executed ops to well-defined overflow behavior.
8613 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8616 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8619 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8621 PR rtl-optimization/69886
8622 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8623 argument. Use it when checking validity of set instructions.
8624 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8625 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8627 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8628 * store-motion.c (find_moveable_store): Update
8629 can_assign_to_reg_without_clobbers_p callsite.
8631 2016-02-24 Richard Biener <rguenther@suse.de>
8634 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8636 (record_nonwrapping_iv): Do not fall back to the low/high bound
8637 for non-constant IV bases if the stmt is not always executed.
8639 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8641 * config/arm/arm-cores.def (cortex-a32): New entry.
8642 * config/arm/arm-tables.opt: Regenerate.
8643 * config/arm/arm-tune.md: Regenerate.
8644 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8645 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8646 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8647 for -mcpu and -mtune.
8649 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8652 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8653 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8654 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8655 (atomic_loaddi_1): Delete.
8656 (atomic_loaddi): Rewrite expander using the above changes.
8658 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8661 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8664 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8665 Richard Biener <rguenth@suse.de>
8668 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8669 set_mem_attributes if tem is SSA_NAME which got expanded
8672 2016-02-24 Richard Biener <rguenther@suse.de>
8674 PR tree-optimization/69907
8675 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8676 end of permutations for BB vectorization.
8678 2016-02-24 Christian Bruel <christian.bruel@st.com>
8680 * config/arm/arm-c.c (arm_option_override): Initialize
8681 target_option_current_node.
8682 * config/arm/arm.c (arm_pragma_target_parse): Replace
8683 build_target_option_node call by target_option_current_node.
8684 Set target_option_current_node.
8687 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8690 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8691 define_insn_and_split to define_insn.
8692 (zero_extendqi<mode>2_dot2): Same.
8693 (extendqi<mode>2_dot): Same.
8694 (extendqi<mode>2_dot2): Same.
8696 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8698 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8699 and add bypass for AES{D,E} and AESMC pairs.
8700 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8703 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8705 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8706 series for reciprocal square root in Exynos M1.
8708 2016-02-23 Martin Sebor <msebor@redhat.com>
8711 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8712 __builtin_alloca_with_align.
8714 2016-02-23 Richard Henderson <rth@redhat.com>
8716 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8717 (ix86_register_pragmas): Remove __seg_tls.
8718 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8719 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8720 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8721 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8722 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8723 * doc/extend.texi (__seg_tls): Remove item.
8725 2016-02-23 Richard Biener <rguenther@suse.de>
8727 * alloc-pool.h (struct allocation_object): Make id member
8728 conditional on CHECKING_P again.
8729 (get_instance): Adjust.
8730 (base_pool_allocator): Likewise.
8732 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8734 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8735 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8737 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8739 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8741 2016-02-23 Richard Biener <rguenther@suse.de>
8743 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8744 * bitmap.h (struct bitmap_usage): Likewise.
8745 (bitmap_move): Declare.
8746 * bitmap.c (register_overhead): Take size_t argument.
8747 (bitmap_move): New function.
8748 * df-problems.c (df_rd_transfer_function): Use bitmap_move
8749 to properly account overhead.
8750 * tree.c (free_node): Use tree_size.
8752 2016-02-23 Jakub Jelinek <jakub@redhat.com>
8755 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8756 when inverting comparison.
8759 * common.opt (Wunreachable-code): Add Warning flag.
8761 2016-02-23 Mark Wielaard <mjw@redhat.com>
8762 Jakub Jelinek <jakub@redhat.com>
8765 * cgraphunit.c (check_global_declaration): Check main_input_filename
8766 and DECL_SOURCE_FILE are not NULL.
8768 2016-02-23 Martin Jambor <mjambor@suse.cz>
8770 PR tree-optimization/69666
8771 * tree-sra.c (sra_modify_assign): Do not attempt to create
8772 default_def replacements for unscalarizable regions.
8774 2016-02-20 Mark Wielaard <mjw@redhat.com>
8777 * cgraphunit.c (check_global_declaration): Check level of
8778 warn_unused_const_variable and main_input_filename.
8779 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
8780 (-Wunused-variable): For C implies -Wunused-const-variable=1.
8781 (-Wunused-const-variable): Explain levels 1 and 2.
8783 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8786 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
8787 identical arguments. Formatting and spelling fixes.
8790 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
8795 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
8796 and m68k-devices.def.
8797 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
8798 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
8800 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
8802 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
8803 and HImode registers.
8805 2016-02-22 Richard Biener <rguenther@suse.de>
8807 PR tree-optimization/69882
8808 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
8809 preserve permutations present because of gaps.
8810 (vect_supported_load_permutation_p): Always continue checking
8811 permutations after vect_attempt_slp_rearrange_stmts.
8813 2016-02-22 Bin Cheng <bin.cheng@arm.com>
8815 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
8816 min_profitable_estimate, rather than min_profitable_iters.
8818 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8821 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
8822 SImode for last match_operand.
8824 2016-02-22 Martin Liska <mliska@suse.cz>
8826 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
8827 return bitsize - 1 as the return value.
8829 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
8833 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
8834 Handle negative shift counts.
8835 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
8836 force_reg on the shift constant.
8837 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
8838 (lshrsi3_d): Handle negative shift counts.
8840 2016-02-22 Richard Biener <rguenther@suse.de>
8841 Tom de Vries <tom@codesourcery.com>
8843 * graph.c: Include dumpfile.h.
8844 (print_graph_cfg): Split into three overloads.
8845 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
8847 2016-02-22 Tom de Vries <tom@codesourcery.com>
8849 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
8852 2016-02-22 Richard Biener <rguenther@suse.de>
8855 * ipa-inline-transform.c (inline_call): When not updating
8856 overall summaries adjust self size by the growth estimate.
8857 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
8858 hash-set, do not update overall summaries here. Renamed from ...
8859 (inline_to_all_callers): ... this which is now wrapping the
8860 above and performing delayed overall summary update.
8861 (early_inline_small_functions): Delay updating of the overall
8864 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
8866 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
8869 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8872 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
8873 :%* in %:gt() argument.
8874 (greater_than_spec_func): Adjust for expecting only numbers,
8875 if there are more than two numbers, compare the last two.
8877 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
8879 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
8880 -Wnarrowing with -std.
8882 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8885 * expr.c (store_field): Don't use bit-field path if exp is
8886 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
8887 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
8888 and the assignment can be performed by bitwise copy. Formatting
8892 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
8893 call copy_reg_eh_region_note_forward on before and/or after sequences
8894 and remove note from insn if it no longer can throw.
8897 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
8900 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8902 * config/s390/vector.md: Add missing commutative operand markers
8903 to the patterns which qualify for one.
8904 * config/s390/vx-builtins.md: Likewise.
8906 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8908 * config/s390/vector.md (VI, VI_QHS): Add single element vector
8909 types to mode iterators.
8910 (vec_double): ... and mode attribute.
8911 * config/s390/vx-builtins.md (non_vec_int): Likewise.
8913 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8915 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
8916 Change the predicate of op2 from nonimmediate to general and let
8917 reload fix it if necessary.
8919 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8921 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
8923 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8925 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
8928 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8930 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
8931 * config/s390/s390.c (s390_expand_vec_movstr): New function.
8932 * config/s390/s390.md ("movstr<P:mode>"): Call
8933 s390_expand_vec_movstr.
8935 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8937 * config/s390/s390.md: Add missing output modifier for operand 1
8938 to print it as address properly.
8940 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8942 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
8943 * config/s390/2964.md: New file.
8944 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
8945 of insn grouping attributes depending on the CPU level.
8946 (s390_get_unit_mask): New function.
8947 (s390_sched_score): Remove the OOO from the scheduling macros.
8948 Add loop to calculate a score for the instruction mix.
8949 (s390_sched_reorder): Likewise plus improve debug output.
8950 (s390_sched_variable_issue): Rename macros as above. Calculate
8951 the unit distances after actually scheduling an insn. Improve
8953 (s390_sched_init): Clear last_scheduled_unit_distance array.
8954 * config/s390/s390.md: Include 2964.md.
8956 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8959 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
8960 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
8961 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
8962 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
8963 *avx512f_<code>v8div16qi2_mask_1): New insns.
8965 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8968 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
8971 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
8972 earlyclobber from target. Use wF constraint for fused memory
8974 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
8976 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8977 Martin Liska <mliska@suse.cz>
8980 * cfgexpand.c (asan_sanitize_stack_p): New function.
8981 (partition_stack_vars): Use the function.
8982 (expand_stack_vars): Likewise.
8983 (defer_stack_allocation): Likewise.
8984 (expand_used_vars): Likewise.
8986 2016-02-18 Richard Biener <rguenther@suse.de>
8989 * fold-const.c (operand_equal_p): Properly compare offsets for
8990 IMAGPART_EXPR and ARRAY_REF.
8992 2016-02-18 Nick Clifton <nickc@redhat.com>
8996 * config/arm/arm.c (arm_option_override_internal): Disable
8997 interworking if the target does not support thumb instructions.
8998 (arm_reload_in_hi): Handle the case where a register to register
8999 move needs reloading because there is no simple pattern to handle
9001 (arm_reload_out_hi): Likewise.
9003 2016-02-18 Richard Biener <rguenther@suse.de>
9006 * match.pd: Don't use fold_binary or fold_unary for folding
9009 2016-02-17 Jakub Jelinek <jakub@redhat.com>
9012 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
9013 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
9014 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
9015 warn on gimple_no_warning_p statements.
9017 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
9019 * doc/extend.texi (C++ Attributes): Correct description of
9020 warn_unused type attribute.
9022 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9024 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9025 correct instruction.
9027 2016-02-17 Richard Biener <rguenther@suse.de>
9029 PR rtl-optimization/69609
9030 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
9031 (find_traces_1_round): When ending a trace update cached priority
9033 (bb_to_key): Use cached priority when available.
9034 (copy_bb): Initialize cached priority.
9035 (reorder_basic_blocks_software_trace_cache): Likewise.
9037 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9040 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9042 (aarch64_comparison_operator): Break overly long line into two.
9043 (aarch64_comparison_operation): Likewise.
9044 * config/aarch64/aarch64.md (cstorecc4): Use
9045 aarch64_comparison_operator_mode instead of
9046 aarch64_comparison_operator.
9047 (cstore<mode>4): Likewise.
9048 (aarch64_cstore<mode>): Likewise.
9049 (*cstoresi_insn_uxtw): Likewise.
9050 (cstore<mode>_neg): Likewise.
9051 (*cstoresi_neg_uxtw): Likewise.
9053 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9056 * config/arm/predicates.md (arm_comparison_operator_mode):
9058 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
9059 instead of arm_comparison_operator.
9060 (*mov_negscc): Likewise.
9061 (*mov_notscc): Likewise.
9062 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
9063 (*thumb2_mov_negscc): Likewise.
9064 (*thumb2_mov_negscc_strict_it): Likewise.
9065 (*thumb2_mov_notscc): Likewise.
9066 (*thumb2_mov_notscc_strict_it): Likewise.
9068 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
9070 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9073 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
9075 * config/visium/visium.c (machine_libfunc_index): New enum.
9076 (machine_libfuncs): New structure.
9077 (visium_libfuncs): New static variable.
9078 (TARGET_INIT_LIBFUNCS): Define to...
9079 (visium_init_libfuncs): ...this. New function.
9080 (expand_block_move_4): Use the appropriate libfunc.
9081 (expand_block_move_2): Likewise.
9082 (expand_block_move_1): Likewise.
9083 (expand_block_set_4): Likewise.
9084 (expand_block_set_2): Likewise.
9085 (expand_block_set_1): Likewise.
9086 (visium_trampoline_init): Likewise.
9088 2016-02-17 Nick Clifton <nickc@redhat.com>
9090 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
9091 TI's devices.csv file as of March 2016.
9093 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
9096 * opts-global.c (handle_common_deferred_options): Introduce and
9097 initialize two global variables to remember command-line options
9098 specifying a stack-limiting register.
9099 * opts.h: Add extern declarations of the two new global variables.
9100 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
9101 variable based on the values of the two new global variables.
9103 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9106 * common.opt (Wnonnull-compare): New warning.
9107 * doc/invoke.texi (-Wnonnull): Remove text about comparison
9108 of arguments against NULL.
9109 (-Wnonnull-compare): Document.
9110 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
9111 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
9112 * passes.def (pass_warn_nonnull_compare): Add.
9113 * gimple-ssa-nonnull-compare.c: New file.
9115 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9117 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
9118 AARCH64_EXTRA_TUNE_RECIP_SQRT.
9120 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9122 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
9123 reciprocal sqrt for -mlow-precision-recip-sqrt.
9125 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9126 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9128 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
9129 always use lane loads to construct non-constant vectors.
9131 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9133 * config/aarch64/aarch64.md
9134 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
9135 constraints for operand 3.
9136 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
9138 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9139 Richard Biener <rguenther@suse.de>
9141 PR tree-optimization/69820
9142 * tree-vect-patterns.c (type_conversion_p): Return false if
9143 *orig_type is unsigned single precision or boolean.
9144 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
9147 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9149 PR rtl-optimization/69764
9150 PR rtl-optimization/69771
9151 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
9152 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
9154 2016-02-16 Richard Biener <rguenther@suse.de>
9156 PR tree-optimization/69776
9157 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
9159 (indirect_refs_may_alias_p): Likewise.
9160 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
9161 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
9162 according to tbaa_p.
9163 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
9164 (optimize_stmt): For redundant store discovery do not allow tbaa.
9166 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
9168 PR tree-optimization/69714
9169 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
9170 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
9172 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
9174 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
9175 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
9176 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
9177 * config/arc/arc.c (arc_init): Check FPU options.
9178 (get_arc_condition_code): Handle new CC_FPU* modes.
9179 (arc_select_cc_mode): Likewise.
9180 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
9181 register pair only. Allow access for ARCv2 accumulator.
9182 (gen_compare_reg): Whenever we have FPU support use FPU compare
9184 (arc_reorg): Don't generate brcc insns when FPU compare
9185 instructions are involved.
9186 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
9187 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
9188 floating point emulation.
9189 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
9190 (REVERSE_CONDITION): Add new CC_FPU* modes.
9191 (TARGET_FP_SP_BASE): Define.
9192 (TARGET_FP_DP_BASE): Likewise.
9193 (TARGET_FP_SP_FUSED): Likewise.
9194 (TARGET_FP_DP_FUSED): Likewise.
9195 (TARGET_FP_SP_CONV): Likewise.
9196 (TARGET_FP_DP_CONV): Likewise.
9197 (TARGET_FP_SP_SQRT): Likewise.
9198 (TARGET_FP_DP_SQRT): Likewise.
9199 (TARGET_FP_DP_AX): Likewise.
9200 * config/arc/arc.md (ARCV2_ACC): New constant.
9201 (type): New fpu type attribute.
9202 (SDF): Conditional iterator.
9203 (cstore<mode>, cbranch<mode>): Change expand condition.
9204 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
9205 handles FPU/FPX cases as well.
9206 * config/arc/arc.opt (mfpu): New option.
9207 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
9209 (adddf3, muldf3, subdf3): Removed.
9210 * config/arc/predicates.md (proper_comparison_operator): Recognize
9212 * config/arc/fpu.md: New file.
9213 * doc/invoke.texi (ARC Options): Document mfpu option.
9215 2016-02-16 Richard Biener <rguenther@suse.de>
9217 PR rtl-optimization/69291
9218 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
9219 noce_operand_ok check.
9221 2016-02-16 Tom de Vries <tom@codesourcery.com>
9224 * omp-low.c (simd_clone_create): Remove call to
9225 symtab->call_cgraph_insertion_hooks.
9227 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9229 PR tree-optimization/69802
9230 * tree-ssa-reassoc.c (update_range_test): If op is
9231 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
9232 op == 1 test of precision 1 integral op, otherwise handle
9233 that case as op itself. Fix up formatting.
9234 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
9237 2016-02-16 Richard Biener <rguenther@suse.de>
9239 PR tree-optimization/69586
9240 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
9241 types for conversion sources.
9243 2016-02-16 Richard Biener <rguenther@suse.de>
9246 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
9247 mask OEP_ADDRESS_OF.
9249 2016-02-16 Alan Modra <amodra@gmail.com>
9252 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
9253 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
9254 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
9256 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
9257 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
9258 (p8_fmrgow_<mode>): Likewise.
9259 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
9261 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
9262 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
9263 to use movdi_internal64. Remove op0_di.
9264 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
9266 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
9268 Add support for the FCCMP insn types
9270 * config/aarch64/aarch64.md (fccmp): Change insn type.
9272 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
9273 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
9274 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
9275 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
9276 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
9277 * config/arm/types.md (fccmps): Add new insn type.
9280 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
9282 * alias.c (get_alias_set): Fix a typo in comment.
9284 2016-02-15 Richard Biener <rguenther@suse.de>
9286 PR tree-optimization/69595
9287 * match.pd: Complete range test simplification to true.
9289 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
9291 PR rtl-optimization/69648
9292 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9293 pic_offset_table_rtx.
9295 PR rtl-optimization/69752
9296 * ira.c (update_equiv_regs): When looking for more than a single SET,
9297 also take other side effects into account.
9299 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9301 * config/s390/s390.c (s390_function_profiler): Add a new sequence
9302 for z900+ CPUs in 31-bit mode.
9304 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9306 * common/config/s390/s390-common.c (s390_supports_split_stack):
9308 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9309 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9310 * config/s390/s390.c (struct machine_function): New field
9311 split_stack_varargs_pointer.
9312 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9313 in s390_emit_prologue.
9314 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9316 (morestack_ref): New global.
9317 (SPLIT_STACK_AVAILABLE): New macro.
9318 (s390_expand_split_stack_prologue): New function.
9319 (s390_live_on_entry): New function.
9320 (s390_va_start): Use split-stack vararg pointer if appropriate.
9321 (s390_asm_file_end): Emit the split-stack note sections.
9322 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9323 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9324 (UNSPECV_SPLIT_STACK_CALL): New unspec.
9325 (UNSPECV_SPLIT_STACK_DATA): New unspec.
9326 (split_stack_prologue): New expand.
9327 (split_stack_space_check): New expand.
9328 (split_stack_data): New insn.
9329 (split_stack_call): New expand.
9330 (split_stack_call_*): New insn.
9331 (split_stack_cond_call): New expand.
9332 (split_stack_cond_call_*): New insn.
9334 2016-02-15 Richard Biener <rguenther@suse.de>
9336 PR tree-optimization/69783
9337 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9338 Add trivially correct cases.
9340 2016-02-15 Tom de Vries <tom@codesourcery.com>
9343 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9345 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9347 2016-02-15 Richard Biener <rguenther@suse.de>
9349 PR tree-optimization/69776
9350 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9351 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9352 indicate whether we can use TBAA to disambiguate against stores.
9353 Use alias-set zero if not.
9354 (visit_reference_op_store): Do not use TBAA when looking up
9356 * tree-ssa-pre.c (compute_avail): Use TBAA here.
9357 (eliminate_dom_walker::before_dom_children): But not when looking
9358 up redundant stores.
9360 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
9362 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9364 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9366 * config/i386/znver1.md
9367 (znver1_pop, znver1_pop_mem,
9368 znver1_load_imov_double_store,
9369 znver1_load_imov_direct_store,
9370 znver1_load_imov_direct_load,
9371 znver1_load_imov_double_load): Add new.
9372 (znver1_insn, znver1_insn_load): Add icmov type.
9374 znver1_sseavx_fma_load,
9376 znver1_avx256_fma_load): Fix pipe usage.
9378 2016-02-14 Alan Modra <amodra@gmail.com>
9381 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9382 with an invalid hard reg, reload just the reg not the entire
9383 pre/post-inc/dec address expression.
9385 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9388 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9389 fixed R1_REG scratch reg.
9390 (sibcall_value_pcrel_fdpic): Likewise.
9392 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9396 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9398 2016-02-12 Walter Lee <walt@tilera.com>
9400 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9401 * config/tilegx/t-tilegx: Likewise.
9403 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9406 * diagnostic-show-locus.c (struct line_span): New struct.
9407 (layout::get_first_line): Delete.
9408 (layout::get_last_line): Delete.
9409 (layout::get_num_line_spans): New member function.
9410 (layout::get_line_span): Likewise.
9411 (layout::print_heading_for_line_span_index_p): Likewise.
9412 (layout::get_expanded_location): Likewise.
9413 (layout::calculate_line_spans): Likewise.
9414 (layout::m_first_line): Delete.
9415 (layout::m_last_line): Delete.
9416 (layout::m_line_spans): New field.
9417 (layout::layout): Update comment. Replace m_first_line and
9418 m_last_line with m_line_spans, replacing their initialization
9419 with a call to calculate_line_spans.
9420 (diagnostic_show_locus): When printing source lines and
9421 annotations, rather than looping over a single span
9422 of lines, instead loop over each line_span within
9423 the layout, with an inner loop over the lines within them.
9424 Call the context's start_span callback when changing line spans.
9425 * diagnostic.c (diagnostic_initialize): Initialize start_span.
9426 (diagnostic_build_prefix): Break out the building of the location
9427 part of the string into...
9428 (diagnostic_get_location_text): ...this new function, rewriting
9429 it from nested ternary expressions to a sequence of "if"
9431 (default_diagnostic_start_span_fn): New function.
9432 * diagnostic.h (diagnostic_start_span_fn): New typedef.
9433 (diagnostic_context::start_span): New field.
9434 (default_diagnostic_start_span_fn): New prototype.
9436 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9439 * gcc.c (driver::finalize): Fix cleanup of "specs".
9441 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9445 * gcc.c (driver::driver): Initialize m_option_suggestions.
9446 (driver::~driver): Clean up m_option_suggestions.
9447 (suggest_option): Convert to...
9448 (driver::suggest_option): ...this, and split out into
9449 driver::build_option_suggestions and find_closest_string.
9450 (driver::build_option_suggestions): New function, from
9451 first half of suggest_option. Special-case
9452 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9453 the sanitizer_opts array. For options of enum types, add the
9454 various enum values to the candidate strings.
9455 (driver::handle_unrecognized_options): Remove "const".
9456 * gcc.h (driver::handle_unrecognized_options): Likewise.
9457 (driver::build_option_suggestions): New decl.
9458 (driver::suggest_option): New decl.
9459 (driver::m_option_suggestions): New field.
9460 * opts-common.c (add_misspelling_candidates): New function.
9461 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9462 and make non-static.
9463 * opts.h (sanitizer_opts): New array decl.
9464 (add_misspelling_candidates): New function decl.
9465 * spellcheck.c (find_closest_string): New function.
9466 * spellcheck.h (find_closest_string): New function decl.
9468 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9470 PR rtl-optimization/69764
9471 PR rtl-optimization/69771
9472 * optabs.c (expand_binop_directly): For shift_optab_p, force
9473 convert_modes with VOIDmode if xop1 has VOIDmode.
9475 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9478 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9479 to correctly determine instrumentation thunks.
9481 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9484 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9485 type by reference, force lhs on the call.
9488 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9489 Compute retval and retbnd early in all cases if split_part_return_p
9490 and return_bb is not EXIT. Remove all clobber stmts and reset
9491 all debug stmts that refer to SSA_NAMEs defined in split part,
9492 except if it is retval, in that case replace the old retval with the
9493 lhs of the call to the split part.
9495 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9498 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9501 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9502 whose result is used in PHI.
9503 (maybe_optimize_range_tests): Likewise.
9504 (final_range_test_p): Likweise.
9506 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9509 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9510 whose result is used in PHI.
9511 (maybe_optimize_range_tests): Likewise.
9512 (final_range_test_p): Likweise.
9514 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9516 * cgraph.c: Spelling fixes - behaviour -> behavior and
9517 neighbour -> neighbor.
9518 * target.def: Likewise.
9519 * sel-sched.c: Likewise.
9520 * config/mips/mips.c: Likewise.
9521 * config/arc/arc.md: Likewise.
9522 * config/arm/cortex-a57.md: Likewise.
9523 * config/arm/arm.c: Likewise.
9524 * config/arm/neon.md: Likewise.
9525 * config/arm/arm-c.c: Likewise.
9526 * config/vms/vms-c.c: Likewise.
9527 * config/s390/s390.c: Likewise.
9528 * config/i386/znver1.md: Likewise.
9529 * config/i386/i386.c: Likewise.
9530 * config/ia64/hpux-unix2003.h: Likewise.
9531 * config/msp430/msp430.md: Likewise.
9532 * config/rx/rx.c: Likewise.
9533 * config/rx/rx.md: Likewise.
9534 * config/aarch64/aarch64-simd.md: Likewise.
9535 * config/aarch64/aarch64.c: Likewise.
9536 * config/nvptx/nvptx.c: Likewise.
9537 * config/bfin/bfin.c: Likewise.
9538 * config/cris/cris.opt: Likewise.
9539 * config/rs6000/rs6000.c: Likewise.
9540 * target.h: Likewise.
9541 * spellcheck.c: Likewise.
9542 * ira-build.c: Likewise.
9543 * tree-inline.c: Likewise.
9544 * builtins.c: Likewise.
9545 * lra-constraints.c: Likewise.
9546 * explow.c: Likewise.
9547 * hwint.h: Likewise.
9548 * targhooks.c: Likewise.
9549 * tree-vect-data-refs.c: Likewise.
9551 * doc/tm.texi: Likewise.
9552 * doc/extend.texi: Likewise.
9553 * doc/install.texi: Likewise.
9554 * doc/md.texi: Likewise.
9555 * tree-ssa-tail-merge.c: Likewise.
9556 * sched-int.h: Likewise.
9557 * match.pd: Likewise.
9558 * sched-ebb.c: Likewise.
9559 * target.def (omit_struct_return_reg): Likewise.
9560 * gimple-ssa-isolate-paths.c: Likewise.
9561 (find_implicit_erroneous_behaviour): Renamed to...
9562 (find_implicit_erroneous_behavior): ... this.
9563 (find_explicit_erroneous_behaviour): Renamed to...
9564 (find_explicit_erroneous_behavior): ... this.
9565 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9567 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9569 PR rtl-optimization/64682
9570 PR rtl-optimization/69567
9571 PR rtl-optimization/69737
9572 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9573 in I2 as well, just lose it.
9575 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9577 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9579 (aarch64_last_printed_tune_string): Likewise.
9580 (aarch64_declare_function_name): Only output .arch assembler
9581 directive if it will be different from the previously output
9582 directive. Same for .tune comment but only if -dA is set.
9583 (aarch64_start_file): New function.
9584 (TARGET_ASM_FILE_START): Define.
9586 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9589 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9591 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9594 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9595 -Wmaybe-uninitialized warning.
9597 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9600 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9602 2016-02-11 Richard Biener <rguenther@suse.de>
9604 PR rtl-optimization/69291
9605 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9606 subexpressions affected by changing the result.
9608 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9611 * lra-constraints.c (curr_insn_transform): Find in/out operands
9612 for secondary memory moves. Update dups.
9614 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9616 PR tree-optimization/69652
9617 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9618 to nested loop, did source re-formatting, skip debug statements,
9619 add check on statement with volatile operand, remove dead scalar
9622 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9623 Patrick Palka <ppalka@gcc.gnu.org>
9627 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9628 calls if the return type is TREE_ADDRESSABLE.
9629 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9630 * ipa-split.c (split_function): Fix doubled "we" in comment.
9631 Use void return type for the split part even if
9632 !split_point->split_part_set_retval.
9634 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9636 PR tree-optimization/68021
9637 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9638 when computing the value of biv cand by itself.
9640 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9642 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9643 (cortexa57_tunings): Likewise.
9644 (cortexa72_tunings): Likewise.
9645 (arch_macro_fusion_pair_p): Add support for AES fusion.
9646 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9647 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9648 Allow virtual registers before reload so early scheduling works.
9649 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9650 correct latency and pipeline.
9651 (cortex_a57_crypto_complex): Likewise.
9652 (cortex_a57_crypto_xor): Likewise.
9653 (define_bypass): Add AES bypass.
9655 2016-02-10 Richard Biener <rguenther@suse.de>
9657 PR tree-optimization/69726
9658 * passes.def: Add DCE pass before late uninit.
9659 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9660 really fixup if-conversions job.
9662 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9664 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9665 (arm_cortex_a57_tune): Likewise.
9666 (aarch_macro_fusion_pair_p): Add support for AES fusion.
9667 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9669 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9671 * timevar.def (TV_PHASE_DBGINFO): Delete.
9672 (TV_PHASE_CHECK_DBGINFO): Likewise.
9673 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9675 2016-02-10 Richard Biener <rguenther@suse.de>
9677 PR tree-optimization/69719
9678 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9679 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9681 2016-02-09 Andrew Pinski <apinski@cavium.com>
9684 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9685 get_vcond_mask_icode returns false.
9687 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9690 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9691 an ADDIS that adds a pointer to a large constant that sets the
9692 upper16 bits with a load operation.
9694 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9697 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9699 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9701 (vzipq_s16): Likewise.
9702 (vzipq_s32): Likewise.
9703 (vzipq_f32): Likewise.
9704 (vzipq_u8): Likewise.
9705 (vzipq_u16): Likewise.
9706 (vzipq_u32): Likewise.
9707 (vzipq_p8): Likewise.
9708 (vzipq_p16): Likewise.
9710 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9713 * config/arm/arm.c (neon_endian_lane_map): New function.
9714 (neon_vector_pair_endian_lane_map): New function.
9715 (arm_evpc_neon_vuzp): Allow for big endian lane order.
9716 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9718 (vuzpq_s16): Likewise.
9719 (vuzpq_s32): Likewise.
9720 (vuzpq_f32): Likewise.
9721 (vuzpq_u8): Likewise.
9722 (vuzpq_u16): Likewise.
9723 (vuzpq_u32): Likewise.
9724 (vuzpq_p8): Likewise.
9725 (vuzpq_p16): Likewise.
9727 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9730 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9733 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9735 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9736 truncate const_int operand 1 to QImode.
9738 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9740 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9741 corresponding to an abnormal edge.
9743 2016-02-09 Tom de Vries <tom@codesourcery.com>
9745 PR tree-optimization/69599
9746 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9748 (find_func_aliases_for_builtin_call, find_func_clobbers)
9749 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
9752 2016-02-09 Richard Biener <rguenther@suse.de>
9754 PR tree-optimization/69715
9755 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9756 LHS on calls as non-rewritable.
9758 2016-02-09 Tom de Vries <tom@codesourcery.com>
9761 * lto-wrapper.c (append_diag_options): New function.
9762 (compile_offload_image): Call append_diag_options.
9764 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
9767 * doc/extend.texi (Flag Output Operands): Correct sectioning.
9768 Minor copy-edit to fix verb tenses.
9770 2016-02-08 Jakub Jelinek <jakub@redhat.com>
9772 PR tree-optimization/69209
9773 * ipa-split.c (split_function): If split part is not
9774 returning retval, retval has gimple type but is not
9775 gimple value, force it into a SSA_NAME first.
9777 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
9779 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
9782 2016-02-08 Jason Merrill <jason@redhat.com>
9785 * convert.c (convert_to_integer_1): Check dofold on truncation
9787 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
9788 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
9789 Rename from *_nofold.
9790 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
9791 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
9793 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
9796 * tree.c (build_common_tree_nodes): Remove short_double argument.
9797 All callers changed.
9798 * tree.h (build_common_tree_nodes): Adjust declaration.
9799 * doc/invoke.texi (-fshort-double): Remove documentation.
9800 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9801 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
9802 * lto-wrapper.c (merge_and_complain, append_compiler_options)
9803 (append_linker_options): Don't handle OPT_fshort_double.
9805 PR rtl-optimization/68730
9806 * lra-remat.c (insn_to_cand_activation): New static variable.
9807 (lra_remat): Allocate and free it.
9808 (create_cand): New arg activation. Initialize a field in
9809 insn_to_cand_activation if it is nonnull.
9810 (create_cands): Pass the activation insn to create_cand when making
9811 a candidate involving an output reload. Reorganize code a little.
9812 (do_remat): Keep track of active status of candidates in a separate
9815 2016-02-08 Richard Biener <rguenther@suse.de>
9817 PR tree-optimization/69719
9818 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9819 Properly use absolute of the difference of the two offsets to
9820 compare or adjust the segment length.
9822 2016-02-08 Richard Biener <rguenther@suse.de>
9823 Jeff Law <law@redhat.com>
9826 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
9827 types for anonymous SSA names.
9829 2016-02-08 Richard Biener <rguenther@suse.de>
9831 PR rtl-optimization/69274
9832 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
9834 2016-02-08 Jeff Law <law@redhat.com>
9836 PR tree-optimization/65917
9837 * tree-ssa-dom.c (record_temporary_equivalences): Record both
9838 equivalences from if (x == y) style conditionals.
9839 (loop_depth_of_name): Remove.
9840 (record_equality): Remove loop depth check.
9841 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
9842 (const_and_copies::record_const_or_copy_raw): New member function.
9843 * tree-ssa-scopedtables.c
9844 (const_and_copies::record_const_or_copy_raw): New, factored out of
9845 (const_and_copies::record_const_or_copy): Call new member function.
9847 2016-02-05 Jeff Law <law@redhat.com>
9849 PR tree-optimization/68541
9850 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
9851 (count_stmts_in_block): New function.
9852 (poor_ifcvt_candidate_code): Likewise.
9853 (is_feasible_trace): Add some heuristics to determine when path
9854 splitting is profitable.
9855 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
9856 is a diamond with a single exit.
9858 2016-02-05 Martin Sebor <msebor@redhat.com>
9861 * doc/invoke.texi: Update -Wplacement-new to take an optional
9864 2016-02-06 Richard Henderson <rth@redhat.com>
9867 * tree.c (tree_nop_conversion_p): Do not strip casts into or
9868 out of non-standard address spaces.
9870 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9872 PR rtl-optimization/69691
9873 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
9875 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
9877 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
9878 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
9879 (*ieee128_mfvsrd_64bit): Likewise.
9880 (*ieee128_mfvsrd_32bit): Likewise.
9882 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
9886 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9888 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
9889 instrumented_version.
9891 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
9893 * doc/invoke.texi (Optimize Options): In table of --param options
9894 rename second occurrence of tracer-min-branch-ratio to
9895 tracer-min-branch-probability, rename
9896 tracer-min-branch-ratio-feedback to
9897 tracer-min-branch-probability-feedback and clarify description,
9898 rename sched-spec-state-edge-prob-cutoff to
9899 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
9900 to selsched-insns-to-rename, rename lto-minpartition to
9901 lto-min-partition, delete reorder-blocks-duplicate and
9902 reorder-blocks-duplicate-feedback.
9904 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9906 * config/s390/s390.c (s390_register_info_set_ranges): Remove
9909 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9911 * doc/extend.texi: S/390: Correct some typos.
9913 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9915 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
9917 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9920 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
9921 (s390_register_info_gprtofpr): Use new macros above.
9922 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
9924 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
9925 its name. Adjust restore and save gpr ranges.
9926 (s390_register_info_set_ranges): New function.
9927 (s390_register_info): Use new macros above. Call
9928 s390_register_info_set_ranges.
9929 (s390_optimize_register_info): Likewise.
9930 (s390_hard_regno_rename_ok): Use new macros.
9931 (s390_hard_regno_scratch_ok): Likewise.
9932 (s390_emit_epilogue): Likewise.
9933 (s390_can_use_return_insn): Likewise.
9934 (s390_optimize_prologue): Likewise.
9935 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
9937 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9940 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
9942 (ix86_option_override_internal): Disable TARGET_STV even for
9943 -m{incoming,preferred}-stack-boundary=3.
9945 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9947 * config.gcc: Mark deprecated rtems targets as obsolete.
9949 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
9951 PR rtl-optimization/64682
9952 PR rtl-optimization/69567
9953 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
9954 before I2 only if the register is both used and set in I2.
9956 2016-02-04 DJ Delorie <dj@redhat.com>
9958 * config/msp430/msp430.c (msp430_start_function): Add function type.
9960 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9963 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
9965 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
9967 PR rtl-optimization/69577
9969 2015-10-29 Richard Henderson <rth@redhat.com>
9973 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9974 sse check to the exact conditions of PR 67609.
9976 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9979 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
9980 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
9981 not allowed into the traditional Altivec registers.
9982 (movtd_64bit_nodm): Likewise.
9983 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9985 2016-02-04 David Malcolm <dmalcolm@redhat.com>
9987 * config/aarch64/cortex-a57-fma-steering.c
9988 (aarch64_register_fma_steering): Remove "static" from arguments
9991 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
9994 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
9997 2016-02-04 Mike Frysinger <vapier@gentoo.org>
9999 * doc/invoke.texi: Delete -mno-fma4.
10001 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
10003 PR rtl-optimization/69577
10004 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
10005 (find_subregs_of_mode): Update accordingly. Iterate over partial
10008 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
10010 * config/arm/arm-protos.h (neon_reinterpret): Remove.
10011 * config/arm/arm.c (neon_reinterpret): Remove.
10012 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
10013 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
10014 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
10015 vreinterpretti): Remove.
10016 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
10017 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
10018 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
10019 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
10020 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
10021 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
10022 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
10023 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
10024 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
10025 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
10026 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
10027 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
10028 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
10029 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
10030 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
10031 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
10032 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
10033 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
10034 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
10035 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
10036 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
10037 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
10038 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
10039 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
10040 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
10041 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
10042 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
10043 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
10044 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
10045 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
10046 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
10047 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
10048 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
10049 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
10050 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
10051 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
10052 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
10053 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
10054 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
10055 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
10056 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
10057 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
10058 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
10059 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
10060 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
10061 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
10062 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
10063 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
10064 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
10065 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
10066 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
10067 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
10068 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
10069 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
10070 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
10071 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
10072 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
10073 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
10074 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
10075 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
10076 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
10077 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
10078 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
10079 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
10080 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
10081 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
10082 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
10083 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
10084 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
10085 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
10086 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
10087 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
10088 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
10089 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
10090 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
10091 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
10092 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
10093 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
10094 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
10095 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
10096 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
10097 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
10098 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
10099 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
10100 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
10101 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
10102 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
10103 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
10104 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
10105 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
10106 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
10107 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
10108 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
10109 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
10110 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
10111 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
10112 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
10113 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
10114 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
10115 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
10116 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
10117 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
10118 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
10120 2016-02-04 Martin Liska <mliska@suse.cz>
10123 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
10124 that are gimple_store_p.
10125 (maybe_instrument_call): Likewise.
10127 2016-02-04 Bin Cheng <bin.cheng@arm.com>
10129 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
10130 register scaling out of memory reference and comment why.
10132 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10136 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
10137 folding the source of a SET.
10139 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10143 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
10144 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
10146 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
10150 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
10153 2016-02-04 Christian Bruel <christian.bruel@st.com>
10155 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
10156 * config/arm/arm.c (arm_set_current_function): Likewise.
10158 2016-02-04 Jakub Jelinek <jakub@redhat.com>
10159 Ilya Enkovich <enkovich.gnu@gmail.com>
10160 H.J. Lu <hongjiu.lu@intel.com>
10163 * config/i386/i386.c (convert_scalars_to_vector): Remove
10164 stack alignment fixes.
10165 (ix86_option_override_internal): Disable TARGET_STV if stack
10166 might not be aligned enough.
10167 (ix86_minimum_alignment): Assert that TARGET_STV is false.
10169 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
10171 * config/i386/x86-tune.def: Disable default prefetching
10174 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10175 Vladimir Makarov <vmakarov@redhat.com>
10178 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
10179 in validating fused toc addresses.
10181 2016-02-03 Jakub Jelinek <jakub@redhat.com>
10184 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
10185 range->m_caret fields if range->m_show_caret_p is false.
10188 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10189 Force oldval into register if it does not satisfy reg_or_short_operand
10190 predicate. Fix up formatting.
10192 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
10193 Alexandre Oliva <aoliva@redhat.com>
10196 * lra-constraints.c (simplify_operand_subreg): Check additionally
10197 address validity after potential reloading.
10198 (process_address_1): Check insns validity. In case of failure do
10201 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
10204 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
10207 2016-02-02 Jakub Jelinek <jakub@redhat.com>
10209 * wide-int.cc (canonize_uhwi): New function.
10210 (wi::divmod_internal): Use it.
10212 2016-02-02 James Norris <jnorris@codesourcery.com
10214 * gimplify.c (omp_notice_variable): Add usage check.
10216 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
10218 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
10219 like LE, GE, LT, GT when emitting relational operator.
10221 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10223 * ira-costs.c (find_costs_and_classes): Add extra argument.
10224 * target.def (ira_change_pseudo_allocno_class): Add parameter.
10225 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
10226 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
10227 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
10228 Add best_class parameter, and return it if not ALL_REGS.
10229 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
10231 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
10232 Update target hook.
10234 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10236 * config/aarch64/aarch64.c
10237 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
10238 (aarch64_ira_change_pseudo_allocno_class): New function.
10240 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
10243 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
10245 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10247 * config/avr/avr.c (avr_option_override): Set
10248 PARAM_ALLOW_STORE_DATA_RACES to 1.
10250 2016-02-02 Richard Biener <rguenther@suse.de>
10252 PR tree-optimization/69595
10253 * match.pd: Add range test simplifications to true/false.
10255 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
10257 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
10258 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
10261 2016-02-02 Richard Biener <rguenther@suse.de>
10263 PR tree-optimization/69606
10264 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
10265 info on the result before moving a stmt.
10267 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
10269 PR middle-end/68542
10270 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
10271 branch with vector comparison.
10272 * config/i386/sse.md (VI48_AVX): New mode iterator.
10273 (define_expand "cbranch<mode>4): Add support for conditional branch
10274 with vector comparison.
10275 * tree-vect-loop.c (optimize_mask_stores): New function.
10276 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
10277 has_mask_store field of vect_info.
10278 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
10279 vectorized loops having masked stores after vec_info destroy.
10280 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
10281 correspondent macros.
10282 (optimize_mask_stores): Add prototype.
10284 2016-02-02 Alan Modra <amodra@gmail.com>
10287 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
10290 2016-02-02 Alan Modra <amodra@gmail.com>
10293 * config/rs6000/rs6000.c (need_toc_init): New var, set it
10294 whenever toc_label_name used.
10295 (rs6000_file_start): Don't set up toc section here,
10296 (rs6000_output_function_epilogue): do so here instead,
10297 (rs6000_xcoff_file_start): and here.
10298 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
10299 (load_toc_aix_di): Likewise.
10301 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10303 PR rtl-optimization/69592
10304 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
10305 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
10306 (num_sign_bit_copies_binary_arith_p): New inline function.
10307 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10309 2016-02-01 Jeff Law <law@redhat.com>
10311 PR tree-optimization/69580
10312 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10313 * tree-ssa-threadbackward.c
10314 (fsm_find_control_statement_thread_paths): Do not try to walk
10315 through large PHI nodes.
10317 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10319 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10320 when count is incremented above limit, don't analyze further
10323 * omp-low.c (oacc_parse_default_dims): Avoid
10324 -Wsign-compare warning, make sure value fits into int
10325 rather than just unsigned int.
10327 2016-02-01 Bin Cheng <bin.cheng@arm.com>
10329 PR tree-optimization/67921
10330 * fold-const.c (split_tree): New parameters. Convert pointer
10331 type variable part to proper type before negating.
10332 (fold_binary_loc): Pass new arguments to split_tree.
10334 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
10336 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10337 (nvptx_goacc_validate_dims): Extend to handle global defaults.
10338 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10339 * doc/tm.texti: Rebuilt.
10340 * doc/invoke.texi (fopenacc-dim): Document.
10341 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10342 (append_compiler_options): Likewise.
10343 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10344 (oacc_parse_default_dims): New.
10345 (oacc_validate_dims): Add USED arg. Select non-unity default when
10347 (oacc_loop_fixed_partitions): Return mask of used partitions.
10348 (oacc_loop_auto_partitions): Emit dump info.
10349 (oacc_loop_partition): Return mask of used partitions.
10350 (execute_oacc_device_lower): Parse default dimension arg. Adjust
10351 loop partitioning and validation calls.
10353 2016-02-01 Richard Biener <rguenther@suse.de>
10355 PR middle-end/69556
10356 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10358 2016-02-01 Richard Biener <rguenther@suse.de>
10360 PR tree-optimization/69574
10361 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10362 of asserting return chrec_dont_know.
10364 2016-02-01 Martin Liska <mliska@suse.cz>
10366 * mem-stats-traits.h: Add copyright header.
10367 * mem-stats.h: Likewise.
10369 2016-02-01 Richard Biener <rguenther@suse.de>
10371 PR tree-optimization/69579
10372 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10373 Do not propagate through abnormal PHI results.
10375 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10377 * postreload.c (reload_cse_simplify): Remove dead code.
10379 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10381 PR rtl-optimization/69570
10382 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10383 if there is more than one set, not if there is a single set.
10385 2016-02-01 Richard Henderson <rth@redhat.com>
10388 * combine.c (make_compound_operation): When looking through a
10389 subreg, make sure to re-extend to the width of the outer mode.
10391 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10393 PR tree-optimization/69546
10394 * wide-int.cc (wi::divmod_internal): For unsigned division
10395 where both operands fit into uhwi, if o1 is 1 and o0 has
10396 msb set, if divident_prec is larger than bits per hwi,
10397 clear another quotient word and return 2 instead of 1.
10398 Similarly for remainder with msb in HWI set, if dividend_prec
10399 is larger than bits per hwi.
10401 2016-01-29 Martin Jambor <mjambor@suse.cz>
10403 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10404 Use short lowercase names.
10405 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
10406 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10407 acq_rel one. Protect warning agains segfaults if
10408 get_memory_order_name returns NULL.
10409 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10410 with release semantics. Do not warn if get_memory_order already did.
10411 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10412 semantics. Fix check for relaxed or acquire semantics. Do not warn
10413 if get_memory_order already did.
10415 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10417 * doc/install.texi: Document that isl-0.16 is supported.
10419 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10422 * config/i386/constraints.md (Bm): Describe as special memory
10424 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10425 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10426 * genpreds.c (struct constraint_data): Add is_special_memory.
10427 (have_special_memory_constraints, special_memory_start): New
10429 (special_memory_end): Ditto.
10430 (add_constraint): Add new arg is_special_memory. Add code to
10431 process its true value. Update have_special_memory_constraints.
10432 (process_define_constraint): Pass the new arg.
10433 (process_define_register_constraint): Ditto.
10434 (choose_enum_order): Process special memory.
10435 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10436 function insn_extra_special_memory_constraint.
10437 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10438 * gensupport.c (process_rtx): Process
10439 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10440 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10441 * ira-lives.c (single_reg_class): Use
10442 insn_extra_special_memory_constraint.
10443 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10444 * lra-constraints.c (process_alt_operands): Ditto.
10445 (curr_insn_transform): Use insn_extra_special_memory_constraint.
10446 * recog.c (asm_operand_ok, preprocess_constraints): Process
10448 * reload.c (find_reloads): Ditto.
10449 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10450 * stmt.c (parse_input_constraint): Use
10451 insn_extra_special_memory_constraint.
10453 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10456 * lra-splill.c (lra_final_code_change): Revert r229087 by
10457 removing all sub-registers.
10459 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10462 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10464 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10467 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10468 SSE1, copy target into the temporary reg first before recursing
10471 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10473 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10476 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10478 * ginclude/stdarg.h: Test __cplusplus instead of
10479 __GXX_EXPERIMENTAL_CXX0X__.
10481 2016-01-29 Richard Biener <rguenther@suse.de>
10483 PR tree-optimization/69547
10484 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10485 Do not mark clobbers necessary.
10486 (mark_all_reaching_defs_necessary_1): Likewise.
10488 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10490 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10491 declaration name with %qs and print it in both error messages.
10492 Also fix indentation.
10494 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10497 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10498 trailing blank line from error message.
10500 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10503 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10506 2016-01-29 Richard Biener <rguenther@suse.de>
10508 PR middle-end/69537
10509 * match.pd: Allow all integral types when simplifying a
10510 widening or sign-changing conversion.
10512 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10514 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10515 back to setting codegen_error to fail codegen.
10517 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10520 * config/i386/constraints.md (C): Only accept constant zero operand.
10521 (BC): New constraint.
10522 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10523 instead of C constraint.
10524 * doc/md.texi (Machine Constraints): Update description
10527 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10530 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10532 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10534 PR middle-end/69542
10535 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10538 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10540 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10541 branches if using guessed profile.
10543 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10545 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10547 2016-01-28 Richard Henderson <rth@redhat.com>
10550 * config/aarch64/aarch64-modes.def (CC_Cmode): New
10551 * config/aarch64/aarch64-protos.h: Update.
10552 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10553 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10554 (aarch64_get_condition_code_1): Handle CC_Cmode.
10555 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10556 (*add<mode>3_compareC_cconly_imm): New.
10557 (*add<mode>3_compareC_cconly): New.
10558 (*add<mode>3_compareC_imm): New.
10559 (add<mode>3_compareC): New.
10560 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10561 to be first. Use aarch64_carry_operation.
10562 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10563 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10564 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10565 (subti3): Use subdi3_compare1.
10566 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10567 (sub<mode>3_compare1): New.
10568 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10569 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10570 (*subsi3_carryin_uxtw): Likewise.
10571 (*ngc<mode>, *ngcsi_uxtw): Likewise.
10572 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10573 * config/aarch64/iterators.md (DWI): New.
10574 * config/aarch64/predicates.md (aarch64_carry_operation): New.
10575 (aarch64_borrow_operation): New.
10577 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10579 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10580 message when isl does not return a valid schedule.
10582 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10584 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10585 Remove comments from class declarations: they are already in the code
10588 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10590 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10592 (ternary_op_to_tree): Same.
10593 (unary_op_to_tree): Same.
10594 (nary_op_to_tree): Same.
10595 (gcc_expression_from_isl_expr_op): Same.
10596 (gcc_expression_from_isl_expression): Same.
10597 (graphite_create_new_loop): Same.
10598 (graphite_create_new_loop_guard): Same.
10599 (build_iv_mapping): Same.
10600 (graphite_create_new_guard): Same.
10601 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10602 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10604 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10606 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10607 instead of setting codegen_error to fail codegen.
10609 2016-01-28 Jason Merrill <jason@redhat.com>
10611 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10613 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10615 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10616 Remove CONST_INT_P check in CCMP cost calculation.
10618 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10620 * config/aarch64/aarch64.c (generic_vector_cost):
10621 Set vec_permute_cost.
10622 (cortexa57_vector_cost): Likewise.
10623 (exynosm1_vector_cost): Likewise.
10624 (xgene1_vector_cost): Likewise.
10625 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10626 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10627 Add vec_permute_cost entry.
10629 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10631 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10633 (add<mode>3_compare0): Likewise.
10634 (addsi3_compare0_uxtw): Likewise.
10635 (add<mode>3nr_compare0): Likewise.
10636 (compare_neg<mode>): Likewise.
10637 (<optab><mode>3): Likewise.
10639 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10641 * tree-vect-stmts.c (vectorizable_comparison): Add
10642 NULL check for vectype.
10644 2016-01-28 Richard Biener <rguenther@suse.de>
10646 PR tree-optimization/69466
10647 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10648 Account for PHIs we couldn't duplicate.
10650 2016-01-28 Martin Liska <mliska@suse.cz>
10653 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10654 instead of ENABLE_VALGRIND_CHECKING.
10656 2016-01-27 Richard Henderson <rth@redhat.com>
10659 * lra-remat.c (subreg_regs): New.
10660 (dump_candidates_and_remat_bb_data): Dump it.
10661 (operand_to_remat): Reject if operand in subreg_regs.
10662 (set_bb_regs): Collect subreg_regs.
10663 (lra_remat): Init and free subreg_regs. Compute
10664 calculate_local_reg_remat_bb_data before create_cands.
10666 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10669 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10670 change stack_alignment_needed for __tls_get_addr call.
10672 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10674 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10676 2016-01-27 Jeff Law <law@redhat.com>
10678 PR tree-optimization/68398
10679 PR tree-optimization/69196
10680 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10681 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10682 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10683 Only count PHIs in the last block in the path. The others will
10684 const/copy propagate away. Add heuristic to allow more irreducible
10685 subloops to be created when it is likely profitable to do so.
10687 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10688 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
10689 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
10691 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10694 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10695 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10696 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10697 * tree-streamer-in.c: Include asan.h.
10698 (streamer_get_builtin_tree): For builtins in sanitizer
10699 range call initialize_sanitizer_builtins and retry.
10701 2016-01-27 Ian Lance Taylor <iant@google.com>
10703 * common.opt (fkeep-gc-roots-live): New undocumented option.
10704 * tree-ssa-loop-ivopts.c (add_candidate_1): If
10705 -fkeep-gc-roots-live, skip pointers.
10706 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10709 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10712 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10713 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10715 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10718 * configure.ac: NetBSD provides SSP in its C library.
10719 * configure: Updated.
10721 2016-01-27 Richard Biener <rguenther@suse.de>
10723 PR tree-optimization/69166
10724 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10725 reduction code for commutativity / associativity.
10727 2016-01-27 Martin Jambor <mjambor@suse.cz>
10729 PR tree-optimization/69355
10730 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10731 total_scalarization fails.
10733 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10735 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10738 2016-01-27 Christian Bruel <christian.bruel@st.com>
10741 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10742 Move arm_reset_previous_fndecl and set_target_option_current_node in
10743 the conditional part. Call save_restore_target_globals.
10744 * config/arm/arm.c (arm_set_current_function):
10745 Refactor to better support #pragma target and attribute mix.
10746 Call save_restore_target_globals.
10747 * config/arm/arm-protos.h (save_restore_target_globals): New function.
10749 2016-01-27 Martin Liska <mliska@suse.cz>
10751 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10752 reference for an HSA kernel and its host function.
10754 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10756 PR tree-optimization/69399
10757 * wide-int.h (wi::lrshift): For larger precisions, only
10758 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
10760 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
10762 * config/arc/predicates.md (proper_comparison_operator): Reject
10763 constant-constant comparison.
10765 2016-01-26 Tom de Vries <tom@codesourcery.com>
10767 PR tree-optimization/69110
10768 * tree-data-ref.c (initialize_data_dependence_relation): Handle
10769 DR_NUM_DIMENSIONS == 0.
10771 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10772 Sebastian Pop <s.pop@samsung.com>
10774 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
10775 isl_ast_op_cond and isl_ast_op_select.
10776 (gcc_expression_from_isl_expr_op): Same.
10778 2016-01-26 Jason Merrill <jason@redhat.com>
10781 * tree.c (recompute_constructor_flags): Split out from
10783 (verify_constructor_flags): New.
10784 * tree.h: Declare them.
10786 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
10788 PR rtl-optimization/69217
10789 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
10790 are no TYPE_FIELDS set for the record type.
10792 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10795 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
10796 toc_label_name unconditionally.
10797 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
10798 SYMBOL_REF string. Use toc_label_name instead of constructing
10800 (rs6000_elf_declare_function_name): Use toc_label_name instead of
10801 constructing LCTOC1.
10803 2016-01-26 Martin Sebor <msebor@redhat.com>
10806 * doc/extend.texi (Common Type Attributes): Move text that talks about
10807 attribute packed from attribute aligned to the section discussing
10808 the former attribute for clarity.
10810 2016-01-26 Richard Henderson <rth@redhat.com>
10812 PR middle-end/60908
10813 * trans-mem.c (tm_region_init): Mark entry block as visited.
10815 2016-01-26 David Malcolm <dmalcolm@redhat.com>
10818 * diagnostic-show-locus.c (layout::print_source_line): Replace
10819 call to pp_newline with call to layout::print_newline.
10820 (layout::print_annotation_line): Likewise.
10821 (layout::move_to_column): Likewise.
10822 (layout::print_any_fixits): After printing any fixits, print a
10823 trailing newline, if necessary.
10824 (layout::print_newline): New method, resetting any colorization
10826 (diagnostic_show_locus): Move the pp_newline to before the
10827 early bailout. Remove dummy block enclosing the layout instance.
10828 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
10829 of pp_newline_and_flush with pp_flush.
10830 (diagnostic_append_note): Delete use of pp_newline.
10831 (diagnostic_append_note_at_rich_loc): Delete.
10832 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
10833 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
10834 when newline characters are added to the buffer.
10836 2016-01-26 Michael Matz <matz@suse.de>
10838 * configure.ac (ac_cv_std_swap_in_utility): New test.
10839 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
10840 * configure: Regenerate.
10841 * config.in: Regenerate.
10843 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
10845 * config/arc/arc.md (cstoresi4): Force operand into register.
10846 (arcset<code>): Fix predicate.
10847 (arcsetltu): Likewise.
10848 (arcsetgeu): Likewise.
10849 (arcsethi): Likewise.
10850 (arcsetls): Likewise.
10852 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10854 PR tree-optimization/69483
10855 * gimple-fold.c (canonicalize_constructor_val): Return NULL
10856 if base has error_mark_node type.
10858 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
10861 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
10862 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
10864 (vget_lane_f16): Handle big-endian.
10865 (vgetq_lane_f16): Likewise.
10866 (vset_lane_f16): Likewise.
10867 (vsetq_lane_f16): Likewise.
10868 * config/arm/iterators.md (VQXMOV): Add V8HF.
10869 (VDQ): Add V4HF and V8HF.
10870 (V_reg): Handle V4HF and V8HF.
10871 (Is_float_mode): Likewise.
10872 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
10873 neon_vdup_nv8hf): New patterns.
10874 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
10875 Use VD_LANE iterator.
10876 (neon_vld1_dup<mode>): Use VQ2 iterator.
10878 2016-01-26 Nathan Sidwell <nathan@acm.org>
10880 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
10881 (set_oacc_fn_attrib): Add IS_KERNEL arg.
10882 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
10883 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
10884 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
10885 (oacc_validate_dims): Add LEVEL arg, don't return level.
10886 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
10887 oacc_validate_dims.
10888 (execute_oacc_device_lower): Adjust, add more dump output.
10889 * tree-ssa-loop.c (gate_oacc_kernels): Use
10890 oacc_fn_attrib_kernels_p.
10891 * tree-parloops.c (create_parallel_loop): Adjust
10892 set_oacc_fn_attrib call.
10894 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10897 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
10898 (append_compiler_options): Handle -fcilkplus.
10899 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
10901 2016-01-26 Nick Clifton <nickc@redhat.com>
10904 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
10905 been marked as DECL_ONE_ONLY but we do not the means to make it
10906 so, then do not allow it to bind locally.
10908 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10911 * opts.h (parse_sanitizer_options): New prototype.
10912 * opts.c (sanitizer_opts): New array.
10913 (parse_sanitizer_options): New function.
10914 (common_handle_option): Use parse_sanitizer_options.
10916 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
10919 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
10920 alignment adjustment to ...
10921 (ix86_update_stack_boundary): Here. Don't over-align stack for
10923 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
10924 if __tls_get_addr is called.
10926 2016-01-26 Christian Bruel <christian.bruel@st.com>
10928 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
10930 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
10932 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
10934 2016-01-26 Richard Biener <rguenther@suse.de>
10936 PR middle-end/69467
10937 * match.pd: Guard X * CST CMP 0 pattern with single_use.
10939 2016-01-26 Richard Biener <rguenther@suse.de>
10941 PR tree-optimization/69452
10942 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
10943 (move_computations_dom_walker::before_dom_children): Rename
10945 (move_computations_worker): This.
10946 (move_computations): Perform an RPO rather than a DOM walk.
10948 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10951 * combine.c (combine_instructions): For REG_EQUAL note with
10952 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
10953 to the underlying register.
10954 * doc/rtl.texi (REG_EQUAL): Document the behavior of
10955 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
10957 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
10960 * config/aarch64/aarch64-builtins.c
10961 (aarch64_init_simd_builtin_types): Do not set structural
10962 equality to __Poly{8,16,64,128}_t types.
10964 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
10966 PR tree-optimization/69400
10967 * wide-int.cc (wi_pack): Take the precision as argument and
10968 perform canonicalization here rather than in the callers.
10969 Use the main loop to handle all full-width HWIs. Add a
10970 zero HWI if in_len isn't a full result.
10971 (wi::divmod_internal): Update accordingly.
10972 (wi::mul_internal): Likewise. Simplify.
10974 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10975 Sebastian Pop <s.pop@samsung.com>
10977 * graphite-poly.c (apply_poly_transforms): Simplify.
10978 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
10979 (print_isl_map): Same.
10980 (print_isl_union_map): Same.
10981 (print_isl_schedule): New.
10982 (debug_isl_schedule): New.
10983 * graphite-dependences.c (scop_get_reads): Do not call
10984 isl_union_map_add_map that is undocumented isl functionality.
10985 (scop_get_must_writes): Same.
10986 (scop_get_may_writes): Same.
10987 (scop_get_original_schedule): Remove.
10988 (scop_get_dependences): Do not call isl_union_map_compute_flow that
10989 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
10990 (compute_deps): Remove.
10991 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
10992 (debug_schedule_ast): New.
10993 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
10994 set_separate_option.
10995 (graphite_regenerate_ast_isl): Add dump.
10996 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
10997 from scop->transformed_schedule.
10998 (graphite_regenerate_ast_isl): Add more dump.
10999 * graphite-optimize-isl.c (optimize_isl): Set
11000 scop->transformed_schedule. Check whether schedules are equal.
11001 (apply_poly_transforms): Move here.
11002 * graphite-poly.c (apply_poly_transforms): ... from here.
11003 (free_poly_bb): Static.
11004 (free_scop): Static.
11005 (pbb_number_of_iterations_at_time): Remove.
11006 (print_isl_ast): New.
11007 (debug_isl_ast): New.
11008 (debug_scop_pbb): New.
11009 * graphite-scop-detection.c (print_edge): Move.
11010 (print_sese): Move.
11011 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
11012 (build_scop_scattering): Remove.
11013 (create_pw_aff_from_tree): Assert instead of bailing out.
11014 (add_condition_to_pbb): Remove unused code, do not fail.
11015 (add_conditions_to_domain): Same.
11016 (add_conditions_to_constraints): Remove.
11017 (build_scop_context): New.
11018 (add_iter_domain_dimension): New.
11019 (build_iteration_domains): Initialize pbb->iterators.
11020 Call add_conditions_to_domain.
11023 (index_outermost_in_loop): New.
11024 (index_pbb_in_loop): New.
11025 (outermost_pbb_in): New.
11026 (add_in_sequence): New.
11027 (add_outer_projection): New.
11028 (outer_projection_mupa): New.
11029 (add_loop_schedule): New.
11030 (build_schedule_pbb): New.
11031 (build_schedule_loop): New.
11032 (embed_in_surrounding_loops): New.
11033 (build_schedule_loop_nest): New.
11034 (build_original_schedule): New.
11035 (build_poly_scop): Call build_original_schedule.
11036 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
11037 (free_poly_dr): Remove.
11038 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
11039 (free_poly_bb): Remove.
11040 (debug_loop_vec): Remove.
11041 (print_isl_ast): Declare.
11042 (debug_isl_ast): Declare.
11043 (scop_do_interchange): Remove.
11044 (scop_do_strip_mine): Remove.
11045 (scop_do_block): Remove.
11046 (flatten_all_loops): Remove.
11047 (optimize_isl): Remove.
11048 (pbb_number_of_iterations_at_time): Remove.
11049 (debug_scop_pbb): Declare.
11050 (print_schedule_ast): Declare.
11051 (debug_schedule_ast): Declare.
11052 (struct scop): Remove schedule. Add original_schedule,
11053 transformed_schedule.
11054 (free_gimple_poly_bb): Remove.
11055 (print_generated_program): Remove.
11056 (debug_generated_program): Remove.
11057 (unify_scattering_dimensions): Remove.
11058 * sese.c (print_edge): ... here.
11059 (print_sese): ... here.
11060 (debug_edge): ... here.
11061 (debug_sese): ... here.
11062 * sese.h (print_edge): Declare.
11063 (print_sese): Declare.
11064 (dump_edge): Declare.
11065 (dump_sese): Declare.
11067 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11068 Sebastian Pop <s.pop@samsung.com>
11070 * Makefile.in: Set ISLVER in site.exp.
11072 2016-01-25 Jakub Jelinek <jakub@redhat.com>
11074 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
11075 DECL_VALUE_EXPR of new_var even for the non-array case. Look
11076 through DECL_VALUE_EXPR for expansion.
11078 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11080 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11081 the frame info after reload completed.
11083 2016-01-25 Jeff Law <law@redhat.com>
11085 PR tree-optimization/69196
11086 PR tree-optimization/68398
11087 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
11088 tree-ssa-threadupdate.c.
11089 (determine_bb_domination_status): Prototype
11090 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
11091 (determine_bb_domination_status): No longer static.
11092 (valid_jump_thread_path): Remove code to detect characteristics
11093 of the jump thread path not associated with correctness.
11094 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
11095 Correct test for thread path length. Count PHIs for real operands as
11096 statements that need to be copied. Do not count ASSERT_EXPRs.
11097 Look at all the blocks in the thread path. Compute and selectively
11098 filter thread paths based on threading through the latch, threading
11099 a multiway branch or crossing a multiway branch.
11101 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11103 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
11104 decl with __attribute__ ((unused)) annotation.
11106 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
11109 * tree-vect-stmts.c (vectorizable_condition): Check vectype
11110 of operands is compatible with a statement vectype.
11112 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
11114 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
11115 improve wording for mixed storage order support.
11117 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
11119 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
11120 (vcvt_u64_f64): Likewise.
11121 (vcvta_s64_f64): Likewise.
11122 (vcvta_u64_f64): Likewise.
11123 (vcvtm_s64_f64): Likewise.
11124 (vcvtm_u64_f64): Likewise.
11125 (vcvtn_s64_f64): Likewise.
11126 (vcvtn_u64_f64): Likewise.
11127 (vcvtp_s64_f64): Likewise.
11128 (vcvtp_u64_f64): Likewise.
11130 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
11132 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
11133 (arc_init): Check validity mll64 option.
11134 (arc_save_restore): Use double load/store instruction.
11135 (arc_expand_movmem): Likewise.
11136 (arc_split_move): Don't split if we have double load/store
11137 instructions. Returns a boolean.
11138 (arc_process_double_reg_moves): Change function to return boolean
11139 instead of a sequence of instructions.
11140 (arc_dwarf_register_span): New function.
11141 * config/arc/arc-protos.h (arc_split_move): Change prototype.
11142 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
11143 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
11144 (*movdf_insn): Likewise.
11145 * config/arc/arc.opt (mll64): New option.
11146 * config/arc/predicates.md (even_register_operand): New predicate.
11147 * doc/invoke.texi (ARC Options): Add mll64 documentation.
11149 2016-01-25 Richard Biener <rguenther@suse.de>
11152 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
11153 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
11155 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
11157 2016-01-25 Richard Biener <rguenther@suse.de>
11159 PR tree-optimization/69376
11160 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
11162 (VN_INFO_ANTI_RANGE_P): New inline.
11163 (VN_INFO_RANGE_TYPE): Likewise.
11164 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
11165 SSA_NAME_ANTI_RANGE_P.
11166 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
11167 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11168 Properly query VN_INFO_RANGE_TYPE.
11170 2016-01-25 Nick Clifton <nickc@redhat.com>
11173 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
11175 2016-01-23 Tom de Vries <tom@codesourcery.com>
11177 PR tree-optimization/69426
11178 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
11181 2016-01-23 Jakub Jelinek <jakub@redhat.com>
11183 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
11184 "the the" with "the" in the comments.
11185 * ipa-devirt.c (build_type_inheritance_graph,
11186 update_type_inheritance_graph): Likewise.
11187 * tree.c (build_function_type_list_1): Likewise.
11188 * cfgloopmanip.c (scale_loop_profile): Likewise.
11189 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
11190 * gimple-ssa-split-paths.c
11191 (find_block_to_duplicate_for_splitting_paths): Likewise.
11192 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
11193 * expr.c (convert_move): Likewise.
11194 * var-tracking.c (vt_stack_adjustments): Likewise.
11195 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
11196 * tree-vrp.c (test_for_singularity): Likewise.
11198 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
11199 directly instead of building a temporary tree.
11202 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
11203 remove <algorithm> include.
11205 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11208 * config/i386/i386.c: Include dojump.h.
11209 (expand_small_movmem_or_setmem,
11210 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
11212 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
11213 if dynamic_check != -1.
11215 2016-01-21 Jeff Law <law@redhat.com>
11217 PR middle-end/69347
11218 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
11219 record_temporary_equivalences. Rewritten to avoid unnecessary calls
11220 into dominated_by_p.
11221 (cprop_into_successor_phis): Avoid unnecessary tests.
11223 2016-01-22 Richard Henderson <rth@redhat.com>
11226 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
11227 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
11229 2016-01-22 Michael Matz <matz@suse.de>
11231 * system.h (string, algorithm): Include only conditionally.
11232 (new): Include always under C++.
11233 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
11234 * final.c (toplevel): Ditto.
11235 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
11236 * genconditions.c (write_header): Make gencondmd.c define
11238 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
11240 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
11241 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
11243 2016-01-22 Christian Bruel <christian.bruel@st.com>
11246 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
11248 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11251 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
11252 define_insn_and_split. Ensure operands[1] and operands[0] do not
11253 get assigned the same register.
11255 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
11257 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
11259 2016-01-22 Christian Bruel <christian.bruel@st.com>
11261 * config/arm/arm-c.c (arm_pragma_target_parse):
11262 Remove warn_builtin_macro_redefined overwrite.
11264 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11266 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
11267 flag_non_call_exceptions compatibility.
11269 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11272 * dwarf2out.c (add_child_die_after): New function.
11273 (dwarf_qual_info_t): New type.
11274 (dwarf_qual_info): New variable.
11275 (qualified_die_p): New function.
11276 (modified_type_die): For -fdebug-types-section, ensure
11277 canonical order of qualifiers. Put qualified DIEs adjacent
11278 to the corresponding non-qualified type DIE and search there
11279 for existing qualified DIEs.
11281 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11283 * doc/extend.texi (scalar_storage_order type attribute): Document
11284 restriction on type punning and aliasing, and remove future tense.
11286 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
11289 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
11292 2016-01-21 Jeff Law <law@redhat.com>
11294 PR middle-end/69347
11295 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
11296 useless call to record_temporary_equivalences.
11297 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
11298 allocate 10 slots in the bb_path vector and let it grow as needed.
11299 (fsm_find_control_statement_thread_paths): Similarly for the next_path
11302 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11304 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11306 * configure: Regenerate.
11308 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
11310 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11311 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11313 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
11315 PR middle-end/66178
11316 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11317 drop EXPAND_INITIALIZER.
11318 * rtl.h (contains_symbolic_reference_p): Declare.
11319 * rtlanal.c (contains_symbolic_reference_p): New function.
11320 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11321 a subtraction into a NOT if symbolic constants are involved.
11323 2016-01-21 Anton Blanchard <anton@samba.org>
11324 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11327 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11329 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11332 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11334 * config/microblaze/microblaze.c
11335 (get_branch_target): New.
11336 (insert_wic_for_ilb_runout): New.
11338 (microblaze_machine_dependent_reorg): New.
11339 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11340 * config/microblaze/microblaze.md
11341 (UNSPEC_IPREFETCH): Define.
11342 (iprefetch): New pattern
11343 * config/microblaze/microblaze.opt
11344 (mxl-prefetch): New flag.
11346 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11348 * config/microblaze/microblaze.h
11349 (FIXED_REGISTERS): Update in macro.
11350 (CALL_USED_REGISTERS): Update in macro.
11352 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
11354 PR rtl-optimization/68920
11355 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11358 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
11360 PR rtl-optimization/68990
11361 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11362 pseudo instead of inheritance ones.
11364 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11365 Nick Clifton <nickc@redhat.com>
11369 * config/mips/mips.c (mips_compute_frame_info): Initialise
11370 args_size and hard_frame_pointer_offset fields of the frame
11371 structure before calling mips_global_pointer.
11373 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11375 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11377 * configure: Regenerate.
11379 2016-01-21 Richard Biener <rguenther@suse.de>
11381 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11383 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11385 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11386 to actually emit the .size directive.
11388 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11389 Jakub Jelinek <jakub@redhat.com>
11393 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11394 args array size by one to avoid buffer overflow.
11396 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11398 * config/s390/s390.md (pool_section_start): Use switch_to_section
11399 to select proper read-only data section instead of hardcoding
11401 (pool_section_end): Use switch_to_section to match the above.
11403 2016-01-21 Richard Biener <rguenther@suse.de>
11405 PR tree-optimization/69378
11406 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11407 (set_ssa_val_to): Use it for dominance checks taking into
11408 account not executable edges.
11410 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11413 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11414 for bitsize instead of GET_MODE_PRECISION (mode).
11416 2016-01-20 Martin Sebor <msebor@redhat.com>
11419 * extend.texi (__sync Builtins): Clarify the semantics of
11420 __sync_fetch_and_OP built-ins on pointers.
11421 (__atomic Builtins): Same.
11423 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11424 Sebastian Pop <s.pop@samsung.com>
11426 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11427 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11428 (is_valid_rename): Same.
11429 (translate_isl_ast_to_gimple::get_rename): Same.
11430 (translate_isl_ast_to_gimple::rename_all_uses): Same.
11431 (translate_isl_ast_to_gimple::rename_uses): Same.
11432 (get_new_name): Check for close_phi nodes.
11433 (copy_loop_phi_args): Use phi_node_kind.
11434 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11435 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11437 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11438 Sebastian Pop <s.pop@samsung.com>
11440 Revert commit r229783.
11441 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11442 Remove use of parameter_rename_map.
11443 (copy_def): Remove.
11444 (copy_internal_parameters): Remove.
11445 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11446 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11447 (free_sese_info): Do not free parameter_rename_map.
11448 (set_rename): Do not use parameter_rename_map.
11449 (rename_uses): Update call to set_rename.
11450 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11451 * sese.h (parameter_rename_map_t): Remove.
11452 (struct sese_info_t): Remove field parameter_rename_map.
11454 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11455 Sebastian Pop <s.pop@samsung.com>
11457 * graphite-isl-ast-to-gimple.c: Fix comment.
11458 * graphite-scop-detection.c (defined_in_loop_p): New.
11459 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11460 names defined in loop.
11462 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11463 Sebastian Pop <s.pop@samsung.com>
11465 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11466 Discard unstructured if-then-else regions.
11468 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11469 Sebastian Pop <s.pop@samsung.com>
11471 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11472 (cleanup_loop_iter_dom): Remove.
11473 (build_loop_iteration_domains): Remove.
11474 (build_scop_context): Remove.
11475 (build_scop_iteration_domain): Remove.
11476 (add_loop_constraints): New.
11477 (build_iteration_domains): New.
11478 (build_poly_scop): Call build_iteration_domains.
11480 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11481 Sebastian Pop <s.pop@samsung.com>
11483 * graphite-scop-detection.c
11484 (scop_detection::harmful_loop_in_region): Free dom and loops.
11485 (scop_detection::loop_body_is_valid_scop): Free bbs.
11487 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11488 Sebastian Pop <s.pop@samsung.com>
11490 * graphite-scop-detection.c (record_loop_in_sese): New.
11491 (gather_bbs::before_dom_children): Call record_loop_in_sese.
11492 (build_scops): Remove call to build_sese_loop_nests.
11493 * sese.c (sese_record_loop): Remove.
11494 (build_sese_loop_nests): Remove.
11495 (new_sese_info): Remove region->loops.
11496 (free_sese_info): Same.
11497 * sese.h (sese_contains_loop): Same.
11498 (build_sese_loop_nests): Remove.
11499 (sese_contains_loop): Remove.
11501 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11502 Sebastian Pop <s.pop@samsung.com>
11504 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11505 loop_is_valid_in_scop.
11506 (scop_detection::harmful_stmt_in_region): Renamed
11507 harmful_loop_in_region.
11508 Call loop_is_valid_in_scop.
11510 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11511 Sebastian Pop <s.pop@samsung.com>
11513 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11516 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11517 Sebastian Pop <s.pop@samsung.com>
11519 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11520 * graphite.h (struct poly_bb): Remove field is_reduction.
11521 (PBB_IS_REDUCTION): Remove.
11523 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11524 Sebastian Pop <s.pop@samsung.com>
11526 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11527 (add_pdr_constraints): Same.
11528 (scop_get_reads): Same.
11529 (scop_get_must_writes): Same.
11530 (scop_get_may_writes): Same.
11531 (scop_get_original_schedule): Same.
11532 (extend_schedule): Same.
11533 (apply_schedule_on_deps): Same.
11534 (carries_deps): Same.
11535 (compute_deps): Same.
11536 (scop_get_dependences): Same.
11537 * graphite-isl-ast-to-gimple.c
11538 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11539 * graphite-optimize-isl.c (get_schedule_for_band): Same.
11540 (get_schedule_for_band_list): Same.
11541 (get_schedule_map): Same.
11542 (apply_schedule_map_to_scop): Same.
11543 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11544 (build_loop_iteration_domains): Same.
11545 (add_condition_to_pbb): Same.
11546 (add_param_constraints): Same.
11547 (pdr_add_memory_accesses): Same.
11548 (pdr_add_data_dimensions): Same.
11550 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11552 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11555 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11557 * common.opt (feliminate-dwarf2-dups): Replace references to
11558 "DWARF 2" with just "DWARF".
11559 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11560 * doc/extend.texi: Likewise.
11561 * doc/cpp.texi: Likewise.
11562 * doc/invoke.texi: Likewise.
11563 (Option Summary): Add -gdwarf to list of Debugging Options.
11564 (Debugging Options): Document -gdwarf.
11565 * doc/contrib.texi: Spell "DWARF" like that.
11567 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11569 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11570 warning. Fix up formatting.
11572 PR middle-end/67653
11573 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11574 attempt to mark memory input operand addressable and
11575 call prepare_gimple_addressable in that case. Don't adjust
11576 input_location for diagnostics, use error_at instead.
11578 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11580 * config/rs6000/ppc-auxv.h: New file.
11581 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11582 (cpu_is): Likewise.
11583 (cpu_supports): Likewise.
11584 * config/rs6000/rs6000.c: include "ppc-auxv.h".
11585 (cpu_is_info): New variable.
11586 (cpu_supports_info): Likewise.
11587 (tcb_verification_symbol): Likewise.
11588 (cpu_builtin_p): Likewise.
11589 (cpu_expand_builtin): New function.
11590 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11591 (rs6000_init_builtins): Likewise.
11592 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11593 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11594 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11595 * configure: Regenerate.
11596 * config.in: Likewise.
11597 * doc/extend.texi (PowerPC Built-in Functions): Document
11598 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11600 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11603 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11605 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11608 2016-01-20 Richard Henderson <rth@redhat.com>
11614 * tree.c (tm_define_builtin): New.
11615 (find_tm_vector_type): New.
11616 (build_tm_vector_builtins): New.
11617 (build_common_builtin_nodes): Call it.
11619 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11621 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11622 (arm_fp_ok): Likewise.
11623 (arm_fp): Likewise.
11624 (arm_crypto): Likewise.
11626 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11627 Richard Biener <rguenther@suse.de>
11629 PR tree-optimization/69328
11630 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11631 vectors have same number of elements.
11632 (vectorizable_condition): Fix masked version recognition.
11634 2016-01-20 Richard Biener <rguenther@suse.de>
11636 PR tree-optimization/69345
11637 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11638 (VN_INFO_PTR_INFO): Likewise.
11639 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11640 info when it is equal between non-dominating SSA names.
11641 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11642 Make sure to look at original SSA infos.
11644 2016-01-20 Jeff Law <law@redhat.com>
11647 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11649 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11650 (pc_or_label_operand): New predicate.
11651 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11652 tests for small integers that are 2^n - 1.
11654 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11656 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11658 2016-01-19 Jeff Law <law@redhat.com>
11660 PR middle-end/69347
11661 * tree-ssa-threadbackwards.c
11662 (fsm_find_control_statement_thread_paths): Do not try to lookup
11663 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11665 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11667 * doc/lto.texi: Remove text that says only Gold has linker plugin
11670 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11672 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11673 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11674 the DIE accordingly.
11675 (modified_type_die): Add REVERSE parameter and pass it recursively,
11676 as well as to base_type_die. Adjust presence check accordingly.
11677 (base_type_for_mode): Adjust call to modified_type_die.
11678 (add_type_attribute): Add REVERSE parameter and pass it to
11680 (generic_parameter_die): Adjust call to add_type_attribute.
11681 (add_scalar_info): Likewise.
11682 (add_subscript_info): Likewise.
11683 (gen_array_type_die): Likewise.
11684 (gen_descr_array_type_die): Likewise.
11685 (gen_entry_point_die): Likewise.
11686 (gen_enumeration_type_die): Likewise.
11687 (gen_formal_parameter_die): Likewise.
11688 (gen_subprogram_die): Likewise.
11689 (gen_variable_die ): Likewise.
11690 (gen_const_die): Likewise.
11691 (gen_field_die): Likewise.
11692 (gen_pointer_type_die): Likewise.
11693 (gen_reference_type_die): Likewise.
11694 (gen_ptr_to_mbr_type_die): Likewise.
11695 (gen_inheritance_die): Likewise.
11696 (gen_subroutine_type_die): Likewise.
11697 (gen_typedef_die): Likewise.
11698 (force_type_die): Adjust call to modified_type_die.
11700 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11702 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11703 flow throughout the file. Fix broken link to Objective-C 2.0
11705 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11708 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11710 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11712 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11715 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11716 (maybe_record_node): Record cxa_pure_virtual as the only possible
11717 target if there are not ohter candidates.
11718 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11720 2016-01-19 Richard Biener <rguenther@suse.de>
11722 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11723 (get_memory_order): Likewise.
11725 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11727 * tree-vect-stmts.c (vectorizable_store): Check
11730 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11733 * gcc.c (driver::decode_argv): Add call to
11734 init_opts_obstack before init_options_struct.
11735 * opts.c (init_opts_obstack): Remove idempotency.
11736 (init_options_struct): Replace call to init_opts_obstack
11737 with a gcc_assert to verify that it has already been called.
11738 * toplev.c (toplev::main): Add call to init_opts_obstack before
11739 calls to init_options_struct.
11740 (toplev::finalize): Move cleanup of opts_obstack next to
11741 cleanup of save_decoded_options, clearing the latter, and
11742 save_decoded_options_count.
11744 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11747 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11748 attribute to unconditional. Remove %? from output template.
11750 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11751 Jiong Wang <jiong.wang@arm.com>
11753 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11754 generated from different expand order.
11756 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11758 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11759 Add support for CCMP costing.
11761 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11763 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
11764 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
11765 (fccmpe<mode>): Likewise.
11766 (fcmp): Rename to fcmp and globalize pattern.
11768 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
11769 (aarch64_gen_ccmp_next): Add FP support.
11771 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11773 * target.def (gen_ccmp_first): Update documentation.
11774 (gen_ccmp_next): Likewise.
11775 * doc/tm.texi (gen_ccmp_first): Update documentation.
11776 (gen_ccmp_next): Likewise.
11777 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
11778 expand_ccmp_expr_1. Improve comments.
11779 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
11780 (ccmp_ior<mode>): Remove pattern.
11781 (cmp<mode>): Remove expand.
11782 (cmp): Globalize pattern.
11783 (cstorecc4): Use cc_register.
11784 (mov<mode>cc): Remove ccmp_cc_register check.
11785 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
11786 Simplify after removal of CC_DNE/* modes.
11787 (aarch64_ccmp_mode_to_code): Remove.
11788 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
11789 In 'k' case use integer as condition.
11790 (aarch64_nzcv_codes): Remove inverted cases.
11791 (aarch64_code_to_ccmode): Remove.
11792 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
11793 comparison with CC register to be used in folowing CCMP/branch/CSEL.
11794 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
11795 pattern. Return the comparison with CC register. Invert conditions
11796 when bitcode is OR.
11797 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
11798 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
11800 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11802 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11803 instrumented_version.
11805 2016-01-19 Richard Biener <rguenther@suse.de>
11807 PR tree-optimization/69336
11808 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
11809 handled components with get_ref_base_and_extent.
11810 (equal_mem_array_ref_p): Adjust.
11812 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11815 * shrink-wrap.c: Include valtrack.h.
11816 (move_insn_for_shrink_wrap): Add DEBUG argument. If
11817 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
11818 in between insn and where it will be moved to. Call
11819 dead_debug_insert_temp.
11820 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
11821 first and dead_debug_local_finish at the end.
11822 For uses and defs bitmap, handle all regs in between REGNO and
11823 END_REGNO, not just the first one.
11825 2016-01-19 Richard Biener <rguenther@suse.de>
11827 PR tree-optimization/69352
11828 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
11829 (equal_mem_array_ref_p): Constrain size and max size properly.
11830 Compare the reverse flag.
11832 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
11834 * ira.c (ira): Update regstat data if we deleted insns.
11836 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11838 PR rtl-optimization/68955
11839 PR rtl-optimization/64557
11840 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
11841 here. Fix up formatting.
11842 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
11844 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11847 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
11848 assume that the node has body.
11849 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
11852 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11854 * lto-streamer-out.c (lto_output): Do not stream instrumentation
11857 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11859 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
11860 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
11862 2016-01-19 Martin Jambor <mjambor@suse.cz>
11863 Martin Liska <mliska@suse.cz>
11864 Michael Matz <matz@suse.de>
11866 * Makefile.in (OBJS): Add new source files.
11867 (GTFILES): Add hsa.c.
11868 * common.opt (disable_hsa): New variable.
11869 (-Whsa): New warning.
11870 * config.in (ENABLE_HSA): New.
11871 * configure.ac: Treat hsa differently from other accelerators.
11872 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
11873 $enable_offloading.
11874 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
11875 * doc/install.texi (Configuration): Document --with-hsa-runtime,
11876 --with-hsa-runtime-include, --with-hsa-runtime-lib and
11877 --with-hsa-kmt-lib.
11878 * doc/invoke.texi (-Whsa): Document.
11879 (hsa-gen-debug-stores): Likewise.
11880 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
11881 to invoke offload compiler for hsa acclerator.
11882 * opts.c (common_handle_option): Determine whether HSA offloading
11883 should be performed.
11884 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
11885 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
11886 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
11887 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
11888 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
11889 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
11890 GF_OMP_FOR_KIND_GRID_LOOP.
11891 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
11892 (pp_gimple_stmt_1): Likewise.
11893 * gimple-walk.c (walk_gimple_stmt): Likewise.
11894 * gimple.c (gimple_build_omp_grid_body): New function.
11895 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
11896 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
11897 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
11898 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
11899 GF_OMP_TEAMS_GRID_PHONY.
11900 (gimple_statement_omp_single_layout): Updated comments.
11901 (gimple_build_omp_grid_body): New function.
11902 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
11903 (gimple_omp_for_grid_phony): New function.
11904 (gimple_omp_for_set_grid_phony): Likewise.
11905 (gimple_omp_parallel_grid_phony): Likewise.
11906 (gimple_omp_parallel_set_grid_phony): Likewise.
11907 (gimple_omp_teams_grid_phony): Likewise.
11908 (gimple_omp_teams_set_grid_phony): Likewise.
11909 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
11910 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
11911 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
11912 (BUILT_IN_GOMP_TARGET): Updated type.
11913 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
11914 (adjust_for_condition): New function.
11915 (get_omp_for_step_from_incr): Likewise.
11916 (extract_omp_for_data): Moved parts to adjust_for_condition and
11917 get_omp_for_step_from_incr.
11918 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
11919 (fixup_child_record_type): Bail out if receiver_decl is NULL.
11920 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
11921 (scan_omp_parallel): Do not create child functions for phony
11923 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
11924 (scan_omp_1_op): Checking assert we are not remapping to
11925 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
11926 (parallel_needs_hsa_kernel_p): New function.
11927 (expand_parallel_call): Register apprpriate parallel child
11928 functions as HSA kernels.
11929 (grid_launch_attributes_trees): New type.
11930 (grid_attr_trees): New variable.
11931 (grid_create_kernel_launch_attr_types): New function.
11932 (grid_insert_store_range_dim): Likewise.
11933 (grid_get_kernel_launch_attributes): Likewise.
11934 (get_target_argument_identifier_1): Likewise.
11935 (get_target_argument_identifier): Likewise.
11936 (get_target_argument_value): Likewise.
11937 (push_target_argument_according_to_value): Likewise.
11938 (get_target_arguments): Likewise.
11939 (expand_omp_target): Call get_target_arguments instead of looking
11940 up for teams and thread limit.
11941 (grid_expand_omp_for_loop): New function.
11942 (grid_arg_decl_map): New type.
11943 (grid_remap_kernel_arg_accesses): New function.
11944 (grid_expand_target_kernel_body): New function.
11945 (expand_omp): Call it.
11946 (lower_omp_for): Do not emit phony constructs.
11947 (lower_omp_taskreg): Do not emit phony constructs but create for them
11948 a temporary variable receiver_decl.
11949 (lower_omp_taskreg): Do not emit phony constructs.
11950 (lower_omp_teams): Likewise.
11951 (lower_omp_grid_body): New function.
11952 (lower_omp_1): Call it.
11953 (grid_reg_assignment_to_local_var_p): New function.
11954 (grid_seq_only_contains_local_assignments): Likewise.
11955 (grid_find_single_omp_among_assignments_1): Likewise.
11956 (grid_find_single_omp_among_assignments): Likewise.
11957 (grid_find_ungridifiable_statement): Likewise.
11958 (grid_target_follows_gridifiable_pattern): Likewise.
11959 (grid_remap_prebody_decls): Likewise.
11960 (grid_copy_leading_local_assignments): Likewise.
11961 (grid_process_kernel_body_copy): Likewise.
11962 (grid_attempt_target_gridification): Likewise.
11963 (grid_gridify_all_targets_stmt): Likewise.
11964 (grid_gridify_all_targets): Likewise.
11965 (execute_lower_omp): Call grid_gridify_all_targets.
11966 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
11967 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
11968 (tree_omp_clause): Added union field dimension.
11969 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
11970 * tree.c (omp_clause_num_ops): Added number of arguments of
11971 OMP_CLAUSE__GRIDDIM_.
11972 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
11973 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
11974 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
11975 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
11976 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
11977 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
11978 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
11979 * tree-pass.h (make_pass_gen_hsail): Declare.
11980 (make_pass_ipa_hsa): Likewise.
11981 * ipa-hsa.c: New file.
11982 * lto-section-in.c (lto_section_name): Add hsa section name.
11983 * lto-streamer.h (lto_section_type): Add hsa section.
11984 * timevar.def (TV_IPA_HSA): New.
11985 * hsa-brig-format.h: New file.
11986 * hsa-brig.c: New file.
11987 * hsa-dump.c: Likewise.
11988 * hsa-gen.c: Likewise.
11991 * toplev.c (compile_file): Call hsa_output_brig.
11992 * hsa-regalloc.c: New file.
11994 2016-01-18 Jeff Law <law@redhat.com>
11996 PR tree-optimization/69320
11997 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
11998 ranged object, do nothing if the RHS constant is not [0..1].
11999 (optimize_stmt): Comparing a boolean ranged object against a
12000 constant outside [0..1] results in a compile-time constant.
12002 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12005 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
12007 * doc/invoke.texi (Invoking GCC): Add new section to menu.
12008 (Option Summary): Update to reflect new section and moved options.
12009 (C++ Dialect Options): Move -fstats to new section.
12010 (Debugging Options): Move all dump, statistics, and other GCC
12011 developer options to new section. Rewrite section introduction
12012 and re-order remaining options to put the more basic ones first.
12013 (Optimization Options): Move -fira-verbose and -flto-report* to
12015 (Developer Options): New section incorporating moved options.
12016 * doc/cppopts.texi (-dM): Update cross-reference.
12018 2016-01-18 Richard Henderson <rth@redhat.com>
12021 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
12022 operands to pseudo only if CSE is expected. Split long immediate
12023 operands only after reload, and for the stack pointer.
12024 (*add<GPI>3_pluslong): Remove.
12025 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
12026 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
12027 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
12028 (*add<GPI>3 peepholes): New.
12029 (*add<GPI>3 splitters): New.
12030 * config/aarch64/constraints.md (Upl): New.
12031 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
12033 2016-01-18 Richard Biener <rguenther@suse.de>
12035 PR tree-optimization/69297
12036 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12038 (vect_bb_vectorization_profitable_p): Clear visited flag again.
12040 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
12042 PR middle-end/68542
12043 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
12044 of mixind vector and scalar types.
12045 (fold_relational_const): Add handling of vector
12046 comparison with boolean result.
12047 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
12048 comparison of vector operands with boolean result for EQ/NE only.
12049 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
12050 (verify_gimple_cond): Likewise.
12051 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
12054 2016-01-18 Joseph Myers <joseph@codesourcery.com>
12056 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12059 2016-01-18 Richard Biener <rguenther@suse.de>
12061 PR middle-end/69308
12062 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12064 2016-01-18 Tom de Vries <tom@codesourcery.com>
12066 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12068 2016-01-18 Tom de Vries <tom@codesourcery.com>
12070 * omp-low.c (set_oacc_fn_attrib): Make extern.
12071 * omp-low.h (set_oacc_fn_attrib): Declare.
12072 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
12073 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
12074 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
12075 Add and handle function parameter oacc_kernels_p.
12076 (find_reduc_addr, get_omp_data_i_param): New function.
12077 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
12078 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
12079 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
12080 Calculate dominance info. Skip loops that are not in a kernels region
12081 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
12082 (pass_parallelize_loops::execute): Call parallelize_loops with
12083 oacc_kernels_p argument.
12084 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
12085 New member function.
12086 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
12087 * passes.def: Add argument to pass_parallelize_loops instantation.
12089 2016-01-18 Tom de Vries <tom@codesourcery.com>
12091 * tree-parloops.c (pass_parallelize_loops::execute): Allow
12092 pass_parallelize_loops to be run outside the loop pipeline.
12094 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12096 * tree-scalar-evolution.c (follow_copies_to_constant): New.
12097 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
12099 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12102 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
12103 using get_ref_base_and_extent.
12104 (equal_mem_array_ref_p): New.
12105 (hashable_expr_equal_p): Add call to previous.
12107 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12110 * tree-sra.c (disqualified_constants, constant_decl_p): New.
12111 (sra_initialize): Allocate disqualified_constants.
12112 (sra_deinitialize): Free disqualified_constants.
12113 (disqualify_candidate): Update disqualified_constants when appropriate.
12114 (create_access): Scan for constant-pool entries as we go along.
12115 (scalarizable_type_p): Add check against type_contains_placeholder_p.
12116 (maybe_add_sra_candidate): Allow constant-pool entries.
12117 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
12118 (initialize_constant_pool_replacements): New.
12119 (sra_modify_assign): Avoid mangling assignments created by previous,
12120 and don't generate writes into constant pool.
12121 (sra_modify_function_body): Call initialize_constant_pool_replacements.
12123 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
12125 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
12126 andnot instruction.
12127 (scalar_chain::convert_op): Likewise.
12128 * config/i386/i386.md (*andndi3_doubleword): New.
12130 2016-01-18 Richard Biener <rguenther@suse.de>
12132 PR tree-optimization/69170
12133 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
12134 building a vector from scalar results of a pattern stmt.
12136 2016-01-18 Jakub Jelinek <jakub@redhat.com>
12138 * haifa-sched.c (autopref_multipass_init): Work around
12139 -Wmaybe-uninitialized warning.
12141 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
12143 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
12144 against the constant 0.
12146 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12148 PR tree-optimization/68799
12149 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
12150 look up phi candidates in the statement-candidate map.
12151 (phi_add_costs): Likewise.
12152 (record_phi_increments): Likewise.
12153 (phi_incr_cost): Likewise.
12154 (ncd_with_phi): Likewise.
12155 (all_phi_incrs_profitable): Likewise.
12157 2016-01-17 Jakub Jelinek <jakub@redhat.com>
12159 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
12160 -Wmaybe-uninitialized warning.
12162 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
12164 * doc/invoke.texi (Invoking GCC): Add new section to menu.
12165 (Option Summary): Update to reflect new section and moved options.
12166 (C++ Dialect Options): Move -fvtable-verify and related options.
12167 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
12168 and profiling-related options.
12169 (Optimization Options): Move profile generation options and
12170 -fstack-protector and related options.
12171 (Instrumentation Options): New section incorporating moved options.
12172 (Code Generation Options): Move -finstrument-functions and
12173 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
12175 2016-01-16 Tom de Vries <tom@codesourcery.com>
12177 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
12179 2016-01-16 Tom de Vries <tom@codesourcery.com>
12181 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
12183 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
12185 * hash-table.h (hash_table::empty): Turn into an inline wrapper
12186 that checks whether the table is already empty. Rename the
12187 original implementation to...
12188 (hash_table::empty_slot): ...this new private function.
12190 2016-01-15 David Malcolm <dmalcolm@redhat.com>
12192 PR diagnostic/68899
12193 * diagnostic-show-locus.c (layout::print_source_line): Move x
12194 offset of line until after call to
12195 get_line_width_without_trailing_whitespace.
12197 2016-01-15 Jeff Law <law@redhat.com>
12199 PR tree-optimization/69270
12200 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
12201 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
12202 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
12203 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
12204 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12205 ssa_name_has_boolean_range and constant_boolean_node.
12207 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
12209 PR rtl-optimization/69030
12210 * lra-spills.c (remove_pseudos): Check nrefs and make the function
12212 (spill_pseudos): Delete debug insn for dead pseudo.
12213 (lra_spill): Initiate spill_hard_reg and slots memory separately.
12215 2016-01-15 Jiong Wang <jiong.wang@arm.com>
12217 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
12219 (TYPES_UNOPUS): Likewise.
12220 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
12221 builtin type, from UNOP to UNOPUS.
12222 (lbtruncuv4sf): Likewise.
12223 (lbtruncuv2df): Likewise.
12224 (lrounduv2sf): Likewise.
12225 (lrounduv4sf): Likewise.
12226 (lrounduv2df): Likewise.
12227 (lroundusf): Likewise.
12228 (lroundusf): Likewise.
12229 (lceiluv2sf): Likewise.
12230 (lceiluv4sf): Likewise.
12231 (lceiluv2df): Likewise.
12232 (lceilusf): Likewise.
12233 (lceiludf): Likewise.
12234 (lflooruv2sf): Likewise.
12235 (lflooruv4sf): Likewise.
12236 (lflooruv2df): Likewise.
12237 (lfloorusf): Likewise.
12238 (lfloorudf): Likewise.
12239 (lfrintnuv2sf): Likewise.
12240 (lfrintnuv4sf): Likewise.
12241 (lfrintnuv2df): Likewise.
12242 (lfrintnusf): Likewise.
12243 (lfrintnudf): Likewise.
12244 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
12246 (vcvtq_u32_f32): Likewise.
12247 (vcvtq_u64_f64): Likewise.
12248 (vcvta_u32_f32): Likewise.
12249 (vcvtaq_u32_f32): Likewise.
12250 (vcvtaq_u64_f64): Likewise.
12251 (vcvtm_u32_f32): Likewise.
12252 (vcvtmq_u32_f32): Likewise.
12253 (vcvtmq_u64_f64): Likewise.
12254 (vcvtn_u32_f32): Likwise.
12255 (vcvtnq_u32_f32): Likewise.
12256 (vcvtnq_u64_f64): Likewise.
12257 (vcvtp_u32_f32): Likewise.
12258 (vcvtpq_u32_f32): Likewise.
12259 (vcvtpq_u64_f64): Likewise.
12260 (vcvtmd_u64_f64): Likewise.
12261 (vcvtms_u32_f32): Likewise.
12262 (vcvtad_u64_f64): Likewise.
12263 (vcvtas_u32_f32): Likewise.
12264 (vcvtnd_u64_f64): Likewise.
12265 (vcvtns_u32_f32): Likewise.
12266 (vcvtpd_u64_f64): Likewise.
12267 (vcvtps_u32_f32): Likewise.
12269 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12271 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
12272 CSEL of zero_extended registers.
12274 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12276 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12277 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
12279 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12281 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
12282 false when argument string is not found in the attributes table
12285 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
12288 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
12289 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
12290 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
12291 precision estimate.
12293 2016-01-15 Richard Biener <rguenther@suse.de>
12295 PR tree-optimization/66856
12296 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
12297 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
12298 (vect_create_new_slp_node): Increment stmt reference count.
12299 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
12300 an SLP tree before swapping operands.
12301 (vect_build_slp_tree): Likewise.
12302 (destroy_bb_vec_info): Free stmt info after SLP instances.
12303 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
12304 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
12305 (STMT_VINFO_NUM_SLP_USES): New macro.
12307 2016-01-15 Richard Biener <rguenther@suse.de>
12310 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12311 (add_linkage_name): ... here.
12312 (gen_typedef_die): Use add_linkage_name_raw instead of
12313 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12316 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
12318 * gimplify.c (oacc_default_clause): Decode reference and pointer
12319 types for both kernels and parallel regions.
12321 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
12323 PR middle-end/69246
12324 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12326 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12328 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12329 (convert_scalars_to_vector): Likewise.
12331 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
12333 * doc/extend.texi (Type Traits): Fix grammar.
12335 2016-01-15 Martin Jambor <mjambor@suse.cz>
12337 * tree-inline.c (remap_decl): Use existing dclarations if
12338 remapping a type and prevent_decl_creation_for_types.
12339 (replace_locals_stmt): Do an initial remapping of non-VLA typed
12340 decls first. Do real remapping with
12341 prevent_decl_creation_for_types set.
12342 * tree-inline.h (copy_body_data): New field
12343 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12346 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12348 * config/s390/s390.opt (mmvcle): More verbose help text.
12350 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12352 * config/s390/s390.opt: Add period to -mzvector option text.
12354 2016-01-15 Richard Biener <rguenther@suse.de>
12356 PR tree-optimization/68961
12357 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12358 of invariants in stores again.
12360 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
12362 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12364 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12366 * config/i386/i386.c (ix86_expand_branch): Don't split
12367 DI mode xor instruction to SI mode.
12369 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12372 * ipa-icf.c (sem_function::merge): Virtual functions may become
12373 reachable even if they address is not taken and there are no
12376 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12378 * lto-streamer-out.c (subtract_estimated_size): New function.
12379 (get_symbol_initial_value): Use it.
12381 2016-01-15 Christian Bruel <christian.bruel@st.com>
12384 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12385 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12386 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12387 use add_builtin_function_ext_scope instead of add_builtin_function.
12388 (neon_set_p, neon_crypto_set_p): Remove.
12389 (arm_init_builtins): Always call arm_init_neon_builtins and
12390 arm_init_crypto_builtins.
12391 (arm_expand_builtin): Check that builtins are allowed for the arch.
12392 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12393 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12394 arm_init_neon_builtins call.
12396 2016-01-15 Richard Biener <rguenther@suse.de>
12398 PR tree-optimization/69117
12399 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12400 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12401 of the leader conservatively.
12402 (free_scc_vn): Restore original SSA name infos.
12404 2016-01-14 Jeff Law <law@redhat.com>
12406 PR tree-optimization/69270
12407 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12408 single bit of precision, verify it's also unsigned.
12409 (record_edge_info): Use constant_boolean_node rather than fold_convert
12410 to convert boolean_true/boolean_false to the right type.
12412 2016-01-14 Richard Henderson <rth@redhat.com>
12415 * loop-doloop.c (record_reg_sets): New.
12416 (doloop_optimize): Reject the transform if the sequence
12417 clobbers registers live at the end of the loop block.
12418 (doloop_optimize_loops): Enable df_live if needed.
12420 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12422 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12423 * config/rs6000/rs6000.c: Likewise.
12424 * config/rs6000/rs6000.h: Likewise.
12425 * config/rs6000/rs6000.md: Likewise.
12426 * doc/extend.texi: Likewsie.
12428 2016-01-14 Jeff Law <law@redhat.com>
12430 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12433 2016-01-14 Richard Henderson <rth@redhat.com>
12437 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12438 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12439 instead of builtin_decl_declared_p to test for declaration.
12441 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12443 * doc/loop.texi (Loop Analysis and Representation): Document
12444 loop_depth function.
12446 2016-01-14 Tom de Vries <tom@codesourcery.com>
12448 PR tree-optimization/68773
12449 * omp-low.c (expand_omp_target): Don't set force_output.
12450 * varpool.c (varpool_node::get_create): Same.
12451 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12452 offload_funcs with force_output.
12454 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12457 * lra-eliminations.c (move_plus_up): Don't change anything if either
12458 the outer or inner subreg mode is not MODE_INT.
12459 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12460 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12462 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12464 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12465 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12466 reduc_uplus_@var{m}): Remove.
12467 * expr.c (expand_expr_real_2): Remove expansion path for
12468 reduc_[us](min|max|plus) optabs.
12469 * optabs-tree.c (scalar_reduc_to_vector): Remove.
12470 * optabs-tree.h (scalar_reduc_to_vector): Remove.
12471 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12472 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12473 * tree-vect-loop.c (vectorizable_reduction): Remove test for
12474 reduc_[us](min|max|plus) optabs.
12476 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12478 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12479 (reduc_plus_scal_v2sf): New.
12480 (reduc_smax_v2sf): Rename to...
12481 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12482 (reduc_smin_v2sf): Rename to...
12483 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12485 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12487 * alias.c (compare_base_symbol_refs): New function.
12488 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12491 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12493 PR middle-end/68146
12494 PR tree-optimization/69155
12495 * tree-complex.c: Include cfganal.h.
12496 (phis_to_revisit): New variable.
12497 (extract_component): Add phiarg_p argument. Assert that returned
12498 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12499 (update_phi_components): Partly rewrite to use loop over real/imag
12500 components instead of code duplication. If extract_component returns
12501 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12502 create_tmp_reg into the PHI node instead, and mention the phi triplet
12503 in phis_to_revisit.
12504 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
12505 in phis_to_revisit at the end.
12507 2016-01-14 Richard Biener <rguenther@suse.de>
12509 PR tree-optimization/68060
12510 * tree-vect-loop.c (vect_is_simple_reduction): Check the
12511 outer loop reduction is only used in the inner loop before
12512 detecting a double reduction.
12514 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12517 * combine.c (expand_field_assignment): Punt if compute_mode is
12518 unsupported scalar mode.
12520 2016-01-14 Richard Biener <rguenther@suse.de>
12522 PR tree-optimization/66856
12523 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12524 SLP node only if it built successfully.
12525 (vect_analyze_slp_instance): Adjust.
12527 2016-01-14 Jeff Law <law@redhat.com>
12529 PR tree-optimization/69270
12530 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12531 (record_edge_info): Use it. Convert boolean_{true,false}_node
12532 to the type of op0.
12534 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12537 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12538 use block_ultimate_origin
12539 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12541 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12543 * doc/invoke.texi (Submodel Options): Rename section to
12544 "Machine-Dependent Options" to better reflect its content.
12545 Rewrite introductory text to remove archaic CPU names.
12548 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12550 * doc/invoke.texi (Code Gen Options): Move section up in file,
12551 before target-specific options. Update menu and option summary
12552 to reflect the new section ordering.
12554 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12556 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12557 (C++ Dialect Options): Add cross-reference to -std option.
12558 * doc/standards.texi (C++ Language): Document C++14 support.
12560 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12562 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12563 for pack/unpack functions for __ibm128.
12564 (PACK_IF): Likewise.
12565 (UNPACK_IF): Likewise.
12567 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12568 support for __ibm128 pack/unpack functions.
12569 (rs6000_invalid_builtin): Likewise.
12570 (rs6000_init_builtins): Likewise.
12571 (rs6000_opt_masks): Likewise.
12573 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12574 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12576 (RS6000_BTM_COMMON): Likewise.
12578 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12579 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12580 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12581 128-bit floating point. Add support for the double values to be
12582 in Altivec registers for TF/IF packing and unpacking, but restrict
12583 TD packing sub-fields to be FPR registers. Don't allow overlapped
12584 register support for packing. Allow pack inputs to be memory
12585 locations. Don't build generator functions for unpack<mode>_dm
12586 and unpack<mode>_nodm.
12587 (unpack<mode>_dm): Likewise.
12588 (unpack<mode>_nodm): Likewise.
12589 (pack<mode>): Likewise.
12591 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12592 built-in functions to pack/unpack explicit __ibm128 values.
12593 (__builtin_unpack_ibm128): Likewise.
12595 * doc/extend.texi (PowerPC Built-in Functions): Document
12596 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12598 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12601 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12602 Add new arg loc and pass it down as context.
12603 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12604 to the location to use for the warning.
12605 (check_function_arguments): New arg loc. All callers changed. Pass
12606 it to check_function_nonnull.
12607 * c-common.h (check_function_arguments): Adjust declaration.
12609 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12611 PR tree-optimization/69156
12612 * gimple.c (validate_type): Removed.
12613 (gimple_builtin_call_types_compatible_p): Use
12614 useless_type_conversion_p instead of validate_type.
12615 * value-prof.c (gimple_stringop_fixed_value): Fold
12616 icall_size to correct type.
12618 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12620 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12623 2016-01-13 Richard Henderson <rth@redhat.com>
12626 * target.def (builtin_tm_load, builtin_tm_store): Remove.
12627 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12628 (ix86_builtin_tm_store): Remove.
12629 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12630 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12631 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12632 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12633 * doc/tm.texi: Rebuild.
12635 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12636 (BUILT_IN_TM_MEMCPY_RTWN): New.
12637 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12638 fallback from vector to integer helpers.
12639 (build_tm_load): Handle vector types directly, instead of
12641 (build_tm_store): Likewise.
12642 (expand_assign_tm): Prepare for register types not handled by
12643 the above. Copy them to memory and use memcpy.
12644 * tree.c (tm_define_builtin): New.
12645 (find_tm_vector_type): New.
12646 (build_tm_vector_builtins): New.
12647 (build_common_builtin_nodes): Call it.
12649 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12651 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12652 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12654 2016-01-13 Tom de Vries <tom@codesourcery.com>
12656 PR tree-optimization/69169
12657 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12658 handled_struct_type param.
12659 (create_variable_info_for, intra_create_variable_infos): Call
12660 create_variable_info_for_1 with extra arg.
12662 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12664 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12665 and "armv8.1-a+crc" entries.
12667 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12670 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12671 Change first operand predicate from register_or_constm1_operand
12672 to register_operand.
12673 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12674 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12675 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12676 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12677 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12678 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12679 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12680 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12681 comparison with constm1_rtx from vec_prefetch_gen part.
12683 2016-01-13 Richard Biener <rguenther@suse.de>
12685 PR tree-optimization/69013
12686 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12687 Exchange assert for a test.
12689 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12692 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12694 2016-01-13 Richard Biener <rguenther@suse.de>
12696 PR tree-optimization/69242
12697 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12698 assert with a check.
12700 2016-01-13 Richard Biener <rguenther@suse.de>
12702 PR tree-optimization/69186
12703 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12704 Properly guard vect_update_misalignment_for_peel call.
12706 2016-01-12 Jeff Law <law@redhat.com>
12708 PR tree-optimization/pr67755
12709 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12710 "need_profile_correction".
12711 (thread_block_1): Initialize new field to false by default. If we
12712 have multiple thread paths through a common joiner to different
12713 final targets, then set new field to true.
12714 (compute_path_counts): Only do count adjustment when it's really
12717 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12719 * doc/invoke.texi (Spec Files): Move section down in file, past
12720 all command-line option descriptions.
12722 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12724 PR middle-end/54809
12725 * doc/gty.texi: Remove documentation of mark_hook.
12726 * gengtype.c (struct write_types_data): Remove code to support
12727 mark_hook attribute.
12728 (walk_type): Likewise.
12729 (write_func_for_structure): Likewise.
12731 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12733 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12734 Directory Options, and -specs= to Overall Options.
12735 (Overall Options): Adjust similarly. Reorder to group related
12736 options together. Make -specs= cross-reference the spec file details.
12737 (Directory Options): Adjust similarly.
12739 2016-01-12 Jeff Law <law@redhat.com>
12741 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12743 2016-01-12 Olivier Hainque <hainque@adacore.com>
12745 * gcc.c (spec_undefvar_allowed): New global.
12746 (process_command): Set to true when running for --version or --help,
12748 (getenv_spec_function): When the variable is not defined, use the
12749 variable name as the variable value if we're allowed not to issue
12752 2016-01-12 Bin Cheng <bin.cheng@arm.com>
12754 PR tree-optimization/68911
12755 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
12756 information computed for expression "init + nit * step".
12758 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12760 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
12761 about name of GCC executable. Remove deleted node from menu.
12762 (Directory Options) <-B>: Remove cross-reference to deleted node.
12763 (Target Options): Delete section.
12765 2016-01-12 Christian Bruel <christian.bruel@st.com>
12768 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
12769 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
12771 2016-01-12 Jakub Jelinek <jakub@redhat.com>
12774 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
12775 aligned_mem is properly set for AVX512-VL floating point masked
12779 * ifcvt.c (cond_exec_process_if_block): When removing the last
12780 insn from then_bb, remove also any possible barriers that follow it.
12782 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
12786 * config/i386/iamcu.h (SIZE_TYPE): New macro.
12787 (PTRDIFF_TYPE): Likewise.
12788 (WCHAR_TYPE): Likewise.
12789 (WCHAR_TYPE_SIZE): Likewise.
12790 (STDINT_LONG32): Likewise.
12792 2016-01-12 Richard Biener <rguenther@suse.de>
12794 PR tree-optimization/69053
12795 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
12796 convert initial value for cond reductions.
12798 2016-01-12 Richard Biener <rguenther@suse.de>
12800 PR tree-optimization/69007
12801 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
12802 widen_sum after dot_prod and sad.
12804 2016-01-12 Richard Biener <rguenther@suse.de>
12806 PR tree-optimization/69168
12807 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
12808 pattern stmt SLP type.
12809 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
12810 end up unused so cope with that case.
12812 2016-01-12 Richard Biener <rguenther@suse.de>
12814 PR tree-optimization/69157
12815 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
12816 stmts def type only during analyze phase.
12817 (vectorizable_call): Likewise.
12818 (vectorizable_simd_clone_call): Likewise.
12819 (vectorizable_conversion): Likewise.
12820 (vectorizable_assignment): Likewise.
12821 (vectorizable_shift): Likewise.
12822 (vectorizable_operation): Likewise.
12823 (vectorizable_store): Likewise.
12824 (vectorizable_load): Likewise.
12826 2016-01-12 Richard Biener <rguenther@suse.de>
12828 PR tree-optimization/69174
12829 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
12831 (vectorizable_load): Properly compute the number of loads needed
12832 for permuted strided SLP loads and do not spuriously assign
12833 to SLP_TREE_VEC_STMTS.
12835 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
12837 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
12838 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
12839 (MD_EXEC_PREFIX): Remove.
12840 (MD_STARTFILE_PREFIX) Removee.
12841 (FILE_NAME_ABSOLUTE_P): Remove.
12842 (CPP_SPEC): Do not read macros from sys/version.h.
12843 (LINK_COMMAND_SPEC): Remove.
12844 (LOCAL_INCLUDE_DIR): Remove.
12845 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
12846 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
12847 (POST_LINK_SPEC): Define to invoke stubify after linker
12848 (LIBSTDCXX): Remove define
12849 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
12850 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
12851 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
12852 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
12853 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
12854 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
12855 (i386_djgpp_asm_named_section): Add propotype of new procedure
12857 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
12858 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
12859 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
12860 in config/i386/djgpp.h).
12861 (STANDARD_STARTFILE_PREFIX_2): Define identical to
12862 STANDARD_STARTFILE_PREFIX_1.
12863 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
12864 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
12865 installation errors.
12866 (MAX_OFILE_ALIGNMENT): Define to 128.
12867 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
12869 * config/i386/djgpp.c: New file. Add implementation of
12870 i386_djgpp_asm_named_section.
12872 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
12874 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
12875 Add rule for building djgpp.o.
12877 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12879 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
12880 (rtx_is_swappable_p): Reductions are swappable.
12881 (insn_is_swappable_p): V2DF reductions are swappable.
12883 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
12885 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
12886 reloads for other unsupported memory operands.
12888 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12889 Jim Wilson <jim.wilson@linaro.org>
12892 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
12893 copy_to_mode_reg instead of force_reg.
12895 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12898 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
12899 TARGET_80387 is true.
12901 2016-01-11 Jakub Jelinek <jakub@redhat.com>
12904 * lra-eliminations.c (move_plus_up): Only move plus up
12905 if subreg of the constant can be simplified into constant
12906 and use the simplified subreg of the constant instead of
12907 the original constant.
12909 * fold-const.c (fold_convertible_p): Don't return true
12910 for conversion of VECTOR_TYPE to same sized integral type.
12911 (fold_convert_loc): Fix up formatting. Fold conversion of
12912 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
12913 instead of NOP_EXPR.
12915 PR tree-optimization/69214
12916 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
12917 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12920 PR tree-optimization/69207
12921 * tree-vect-slp.c (vect_get_constant_vectors): For
12922 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
12923 fold_convertible_p to vector_type's element type, and always
12924 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
12926 2016-01-11 Richard Biener <rguenther@suse.de>
12928 PR tree-optimization/69173
12929 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
12930 fixup the cycle if all stmts are in a pattern.
12932 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
12934 PR middle-end/68999
12935 * alias.c (base_alias_check): Move check for addresses with
12936 alignment ANDs before the call for compare_base_decls.
12937 (memrefs_conflict_p): Return -1 for different decls
12938 that went through alignment adjustments.
12940 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12942 PR rtl-optimization/68796
12943 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
12944 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
12945 and QImode comparisons against zero with CC_NZmode.
12946 * config/aarch64/iterators.md (short_mask): New mode_attr.
12948 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12950 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
12951 (<avx512>_store<mode>_mask): Likewise.
12953 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
12954 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12956 PR rtl-optimization/68841
12957 * ifcvt.c (struct noce_if_info): Add orig_x field.
12958 (bbs_ok_for_cmove_arith): Add to_rename parameter.
12959 Don't record conflicts on to_rename if it's present.
12960 Allow memory destinations in sets.
12961 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
12962 blocks, passing orig_x to the checks.
12963 (noce_process_if_block): Set if_info->orig_x appropriately.
12965 2016-01-11 Tom de Vries <tom@codesourcery.com>
12967 PR tree-optimization/69069
12968 * tree-parloops.c (create_parallel_loop): Add missing phi args.
12970 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
12972 PR rtl-optimization/68920
12973 * config/i386/i386.c (ix86_option_override_internal): Restrict number
12974 of conditional moves for RTL if-conversion to 1 for
12975 TARGET_ONE_IF_CONV_INSN.
12976 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
12977 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
12978 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
12979 parameter to restirct number of conditional moves for
12981 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
12982 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
12985 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
12988 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
12989 onepart vars. Fix typo in comment. Fix reversed condition in
12991 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
12994 * var-tracking.c (dump_onepart_variable_differences): New.
12995 (dataflow_set_different): If a detailed dump is requested,
12996 delay early returns and dump differences between onepart
12997 variables present before and after, and added variables.
12999 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
13002 * expr.c (expand_expr_real_1): For boolean vector constants
13003 with a scalar mode use const_scalar_mask_from_tree.
13004 (const_scalar_mask_from_tree): New.
13005 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
13006 assigned to a mask type to handle constants.
13008 2016-01-11 Martin Jambor <mjambor@suse.cz>
13011 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13012 useless parameters if we cannot change function signature.
13014 2016-01-11 Martin Jambor <mjambor@suse.cz>
13017 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13020 2016-01-11 Tom de Vries <tom@codesourcery.com>
13022 PR tree-optimization/69109
13023 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13026 2016-01-11 Tom de Vries <tom@codesourcery.com>
13028 PR tree-optimization/69108
13029 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
13030 res is not used in a phi.
13032 2016-01-11 Yury Gribov <y.gribov@samsung.com>
13035 * common.opt (frandom-seed): Fix parameter name.
13036 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13038 2016-01-11 Tom de Vries <tom@codesourcery.com>
13040 PR tree-optimization/69058
13041 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13044 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
13046 * config/arc/arc.opt (mdiv-rem): Add period to the end.
13047 (mcode-density): Likewise.
13049 2016-01-10 Tom de Vries <tom@codesourcery.com>
13051 PR tree-optimization/69062
13052 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
13053 (parallelize_loops): Don't paralelize loop that has phi with address
13056 2016-01-10 Tom de Vries <tom@codesourcery.com>
13058 PR tree-optimization/69039
13059 * tree-parloops.c (try_create_reduction_list): Only allow single exit
13062 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
13064 PR middle-end/68743
13065 * match.pd: Require target has function_c99_misc before doing
13066 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
13068 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
13070 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13072 * configure: Regenerate.
13074 2016-01-09 Jakub Jelinek <jakub@redhat.com>
13076 PR middle-end/50865
13077 PR tree-optimization/69097
13078 * fold-const.h (expr_not_equal_to): New prototype.
13079 * fold-const.c: Include stringpool.h and tree-ssanames.h.
13080 (expr_not_equal_to): New function.
13081 * match.pd (X % -Y is the same as X % Y): Don't optimize
13082 unless X is known not to be equal to minimum or Y is known
13083 not to be equal to -1.
13084 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
13085 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
13086 (simplify_stmt_using_ranges): Adjust caller.
13087 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
13088 substitute_and_fold.
13090 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
13092 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
13095 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13097 PR tree-optimization/69167
13098 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
13099 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
13101 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
13103 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13104 Richard Biener <rguenther@suse.de>
13106 PR tree-optimization/68707
13107 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
13108 instances that can be handled via vect_load_lanes.
13110 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
13112 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
13113 if we can't determine address equivalence.
13114 * alias.c (compare_base_decl): Update for changed return value of
13115 symtab_node::equal_address_to.
13117 2016-01-08 Jason Merrill <jason@redhat.com>
13121 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
13122 * expr.c (store_field): Not here.
13123 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
13124 call with TREE_ADDRESSABLE type.
13125 * tree-cfg.c (verify_gimple_call): Adjust.
13127 2016-01-08 Olivier Hainque <hainque@adacore.com>
13129 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
13132 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13134 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
13135 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
13136 (reduc_smin_v2sf): Rename to...
13137 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
13138 (reduc_splus_v2sf): Rename to...
13139 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
13141 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13143 PR tree-optimization/69162
13144 * gimplify.c (gimplify_va_arg_expr): Encode original type of
13145 valist argument in another argument.
13146 (gimplify_modify_expr): Adjust for the above change. Cleanup.
13147 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
13148 to determine the va_list type, build a MEM_REF instead of
13149 build_fold_indirect_ref.
13151 PR tree-optimization/69172
13152 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
13155 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
13157 PR tree-optimization/67781
13158 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
13159 and cmpnop in two steps: first the ones not accessed in original
13160 gimple expression in a endian independent way and then the ones not
13161 accessed in the final result in an endian-specific way.
13163 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13165 PR tree-optimization/69083
13166 * tree-vect-slp.c (vect_get_constant_vectors): For
13167 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
13168 element type. If op is fold_convertible_p to vector_type's element
13169 type, use NOP_EXPR instead of VCE.
13171 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
13173 PR rtl-optimization/67778
13174 PR rtl-optimization/68634
13175 PR rtl-optimization/68909
13176 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
13177 block from the stack until done with it. Remove a superfluous
13178 bitmap set. Remove a superfluous bitmap test.
13180 2016-01-07 Martin Sebor <msebor@redhat.com>
13183 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
13184 constraint on the type of arguments.
13186 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
13188 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
13189 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
13190 unaligned_access on the gcc_options set.
13191 * config/arm/arm.c (arm_option_override_internal): Use
13192 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
13194 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13197 * config/i386/i386.c (ix86_frame_pointer_required): Enable
13198 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
13200 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13203 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13206 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13207 depending on frame_pointer_needed before remaining integer and SSE
13208 registers are saved.
13210 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
13213 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
13215 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
13218 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
13219 Use the "xBm" constraint.
13220 (float<sseintvecmodelower><mode>2<mask_name><round_name):
13222 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
13223 (sse_cvtsi2ssq<round_name>): Likewise.
13224 (sse_cvtss2si<round_name>): Likewise.
13225 (sse_cvtss2siq<round_name>): Likewise.
13226 (sse2_cvtsi2sdq<round_name>): Likewise.
13227 (sse2_cvtsd2si<round_name>): Likewise.
13228 (sse2_cvtsd2siq<round_name>): Likewise.
13229 * config/i386/subst.md (round_nimm_scalar_predicate): New
13232 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
13234 PR middle-end/67639
13235 * varasm.c (make_decl_rtl): Mark invalid register vars as
13238 PR rtl-optimization/66206
13239 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
13240 All callers changed.
13242 2016-01-07 Jakub Jelinek <jakub@redhat.com>
13244 PR tree-optimization/69141
13245 * tree-ssa-pre.c: Include langhooks.h.
13246 (eliminate_dom_walker::before_dom_children): Use
13247 lang_hooks.decl_printable_name instead of
13248 cgraph_node::get ()->name ().
13250 PR middle-end/68960
13251 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
13252 it and DECL_ALIGN too.
13254 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
13256 * config/mips/mips-ftypes.def: Sort to lexicographical order.
13258 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13261 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13262 depending on frame_pointer_needed before remaining integer and SSE
13263 registers are saved.
13265 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13267 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
13268 mode iterator with VSX_M2.
13269 (*p9_vecstore_<mode>): Likewise.
13270 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
13271 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
13272 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
13273 (define_split for VSX_LE128 stores): Likewise.
13274 (define_peephole2 for TImode LE swaps): Likewise.
13275 (define_split for VSX_LE128 post-reload stores): Likewise.
13277 2016-01-06 Marek Polacek <polacek@redhat.com>
13280 * convert.c (convert_to_integer_1): Adjust call to
13281 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
13282 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
13283 EXPR instead of ARG.
13284 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
13286 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13289 * doc/extend.texi (RL78 Variable Attributes): New section.
13291 2016-01-05 Marek Polacek <polacek@redhat.com>
13294 * builtins.c (get_memmodel): Use expansion point location rather than
13295 the input location. Call warning_at rather than warning.
13296 (expand_builtin_atomic_compare_exchange): Likewise.
13297 (expand_builtin_atomic_load): Likewise.
13298 (expand_builtin_atomic_store): Likewise.
13299 (expand_builtin_atomic_clear): Likewise.
13301 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13304 * config/i386/i386.c (ix86_expand_vector_logical_operator):
13305 Replace nonimmediate_operand with vector_operand.
13306 * config/i386/predicates.md (vector_operand): New predicate.
13307 (general_vector_operand): Replace nonimmediate_operand with
13309 * config/i386/sse.md: Replace nonimmediate_operand with
13310 vector_operand and m constraint with Bm constraint on SSE
13311 patterns with 16-byte memory operand.
13312 * config/i386/subst.md (round_nimm_predicate): Replace
13313 nonimmediate_operand with vector_operand.
13314 (round_saeonly_nimm_predicate): Likewise.
13315 (round_saeonly_nimm_scalar_predicate): New.
13317 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13320 * config/i386/constraints.md (Bm): New constraint.
13321 * config/i386/predicates.md (vector_memory_operand): New
13323 * config/i386/sse.md: Replace xm with xBm in plusminus and
13324 any_logic patterns.
13326 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13329 * doc/extend.texi (V850 Function Attributes): New section.
13330 (V850 Variable Attributes): New section.
13332 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13335 * doc/extend.texi (MicroBlaze Function Attributes): Document
13336 interrupt_handler and fast_interrupt attributes.
13338 2016-01-05 Sergei Trofimovich <siarheit@google.com>
13341 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13342 for local symbolic operands.
13343 * config/ia64/predicates.md (local_symbolic_operand64): New
13346 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13348 PR rtl-optimization/68651
13349 * combine.c (combine_simplify_rtx): Canonicalize x + x into
13352 2016-01-05 Nathan Sidwell <nathan@acm.org>
13354 * alias.c (compare_base_decls): Use symtab_node::get.
13356 2016-01-05 Nick Clifton <nickc@redhat.com>
13359 * ira-costs.c (copy_cost): Initialise the t_icode field of the
13360 secondary_reload_info structure.
13363 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13364 decls if weak support is available.
13366 2016-01-04 Martin Sebor <msebor@redhat.com>
13368 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13370 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13372 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13373 OPTION_MASK_P9_DFORM.
13375 * config/rs6000/constraints.md (wo constraint): New constraint for
13378 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13380 (rs6000_init_hard_regno_mode_ok): Likewise.
13382 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13385 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13386 expanders not to have constraints. Add support for ISA 3.0 xxperm
13387 instruction. Add support for fusing xxlor with xxperm.
13388 (altivec_vperm_<mode>_internal): Likewise.
13389 (altivec_vperm_v8hiv16qi): Likewise.
13390 (altivec_vperm_<mode>v16q): Likewise.
13391 (altivec_vperm_<mode>_uns): Likewise.
13392 (vperm_v8hiv4si): Likewise.
13393 (vperm_v16qiv8hi): Likewise.
13395 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13397 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13399 Update copyright years.
13401 * gcc.c (process_command): Update copyright notice dates.
13402 * gcov-dump.c (print_version): Ditto.
13403 * gcov.c (print_version): Ditto.
13404 * gcov-tool.c (print_version): Ditto.
13405 * gengtype.c (create_file): Ditto.
13406 * doc/cpp.texi: Bump @copying's copyright year.
13407 * doc/cppinternals.texi: Ditto.
13408 * doc/gcc.texi: Ditto.
13409 * doc/gccint.texi: Ditto.
13410 * doc/gcov.texi: Ditto.
13411 * doc/install.texi: Ditto.
13412 * doc/invoke.texi: Ditto.
13414 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13416 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13417 modes larger than TImode as TImode if NEON is not enabled.
13419 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13422 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13423 mode for %f0-%f31 only if TARGET_FPU.
13425 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13428 * config/sparc/sparc.c (scan_record_type): Take into account subfields
13429 to compute the PACKED_P predicate.
13430 (function_arg_record_value): Minor tweaks.
13432 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13434 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13435 option for arm*-*-* targets.
13437 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13439 * doc/extend.texi (Common Function Attributes): Move docs for
13440 MSP430-specific attributes to....
13441 (MSP430 Function Attributes): ...here. Delete the redundant
13442 entries and copy-edit the remaining text.
13443 (MSP430 Variable Attributes): Use uniform format for index
13444 entries and add a cross-reference to the corresponding function
13447 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13449 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13451 (x86 Options): Likewise.
13453 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13457 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13458 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13459 to corresponding attribute.
13461 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13463 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13464 to correct alphabetization of table. Copy-edit and correct
13466 <stack_protect>: Likewise.
13467 <target_clones>: Likewise.
13469 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13470 Correct punctuation.
13471 (Code Gen Options) <-fno-plt>: Copy-edit.
13473 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13476 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13477 SI values. Explicitly convert SI to DI and vice-versa.
13479 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13481 PR tree-optimization/69070
13482 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13483 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13486 * ubsan.c (ubsan_instrument_float_cast): Call
13487 initialize_sanitizer_builtins.
13490 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13492 Copyright (C) 2016 Free Software Foundation, Inc.
13494 Copying and distribution of this file, with or without modification,
13495 are permitted in any medium without royalty provided the copyright
13496 notice and this notice are preserved.