rs6000.c (rs6000_emit_p9_fp_minmax): New function for ISA 3.0 min/max support.
[gcc.git] / gcc / ChangeLog
1 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2
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
9 available.
10 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
11 conditional moves where the comparison type is different from move
12 type.
13 (fp_minmax): New code iterator for smin/smax.
14 (minmax): New code attributes for min/max.
15 (SMINMAX): Likewise.
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.
29 (movdfcc): 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
42 longer used.
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.
49
50 2016-05-27 Alan Modra <amodra@gmail.com>
51
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.
55
56 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
57
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.
65 <attr "type">: 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.
87 <attr "type">: 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.
98
99 2016-05-26 Martin Liska <mliska@suse.cz>
100
101 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
102 function.
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.
112 (new_cost): Remove.
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.
143
144 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
145
146 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
147 that internal functions will clobber all caller-saved registers.
148
149 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
150
151 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
152 Return a better case_values_threshold when optimizing.
153
154 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
155
156 * config/aarch64/aarch64-simd.md (aarch64_combinez):
157 Add ? to integer variant.
158 (aarch64_combinez_be): Likewise.
159
160 2016-05-26 Jakub Jelinek <jakub@redhat.com>
161
162 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
163 instead of x constraint.
164 (vcvtps2ph256<mask_name>): Likewise.
165
166 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
167 alternative. Formatting fix.
168
169 * config/i386/sse.md
170 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
171 to ...
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.
177
178 2016-05-25 Jeff Law <law@redhat.com>
179
180 PR tree-optimization/71272
181 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
182 Update comments. Add test for empty path.
183
184 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
185
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.
193
194 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
195
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.
199
200 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
201
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.
207
208 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
209 H.J. Lu <hongjiu.lu@intel.com>
210
211 PR target/70738
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.
223
224 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
225
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
229 operations.
230
231 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
232
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.
253 * config/i386/sse.md
254 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
255 Rename to ...
256 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
257 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
258 to ...
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.
265
266 2016-05-25 Nick Clifton <nickc@redhat.com>
267
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.
274
275 2016-05-25 Richard Biener <rguenther@suse.de>
276
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.
281
282 2016-05-25 Martin Liska <mliska@suse.cz>
283
284 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
285
286 2016-05-25 Richard Biener <rguenther@suse.de>
287
288 PR tree-optimization/71264
289 * tree-vect-stmts.c (vect_init_vector): Properly deal with
290 vector type val.
291
292 2016-05-25 Martin Liska <mliska@suse.cz>
293
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.
297
298 2016-05-25 Richard Biener <rguenther@suse.de>
299
300 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
301 * tree-if-conv.c (pass_data_if_conversion): Use it.
302
303 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
304
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.
308
309 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
310
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.
316
317 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
318
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.
324
325 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
326
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
330 zeros.
331 (p9v_parity<mode>2): Likewise.
332 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
333 parity.
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
337 power9 built-ins.
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.
349 (VCTZH): Likewise.
350 (VCTZW): Likewise.
351 (VCTZD): Likewise.
352 (VPRTYBD): Add vector parity support.
353 (VPRTYBQ): Likewise.
354 (VPRTYBW): Likewise.
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
374 functions.
375
376 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
377
378 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
379 when there is stmt_to_insert.
380
381 2016-05-24 Martin Sebor <msebor@redhat.com>
382
383 PR c++/71147
384 * gcc/tree.h (complete_or_array_type_p): New inline function.
385
386 2016-05-24 Jakub Jelinek <jakub@redhat.com>
387
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.
391
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.
396
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
412 alternatives.
413
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.
420
421 2016-05-24 Jeff Law <law@redhat.com>
422
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.
427
428 2016-05-24 Marek Polacek <polacek@redhat.com>
429
430 PR c/71249
431 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
432 scope.
433
434 2016-05-24 Jakub Jelinek <jakub@redhat.com>
435
436 PR c++/71257
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.
442
443 2016-05-24 Richard Biener <rguenther@suse.de>
444
445 PR tree-optimization/71240
446 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
447 has integral type.
448
449 2016-05-24 Richard Biener <rguenther@suse.de>
450
451 PR tree-optimization/71230
452 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
453
454 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
455
456 * tree-vectorizer.h (vectorizable_comparison): Delete.
457 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
458 PURE_SLP_STMT check.
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
468 hybrid SLP.
469 (vectorizable_comparison): Make static. Remove redundant
470 PURE_SLP_STMT check.
471 (vect_transform_stmt): Assert that we always have an slp_node
472 if PURE_SLP_STMT.
473
474 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
475
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
480 against CONST0_RTX.
481
482 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
483
484 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
485 operands[2] against 1 with comparison against CONST1_RTX.
486 (ashrdi3): Likewise.
487 (lshrdi3): Likewise.
488 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
489 UINTVAL.
490 (ashrsi3): Likewise.
491 (lshrsi3): Likewise.
492 (rotrsi3): Likewise.
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
501 check with IN_RANGE.
502 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
503 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
504
505 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
506
507 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
508 with HOST_WIDE_INT_1.
509 (insv): Likewise.
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
514 HOST_WIDE_INT_1.
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
519 HOST_WIDE_INT_1.
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.
524
525 2016-05-24 Marek Polacek <polacek@redhat.com>
526
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.
534
535 2016-05-24 Richard Biener <rguenther@suse.de>
536
537 PR tree-optimization/71253
538 * cfganal.h (control_dependences): Make robust against edge
539 and BB removal.
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
552 get_edge_src.
553 (perform_tree_ssa_dce): Adjust.
554 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
555 get_edge_src.
556 (pass_loop_distribution::execute): Adjust. Do loop destroying
557 conditional on changed.
558
559 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
560
561 PR target/69857
562 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
563 return. Reindent transformation comment and mention the ARM state
564 behavior.
565
566 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
567
568 PR middle-end/71252
569 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
570 after build_and_add_sum creates new use stmt.
571
572 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
573
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
577 for load_lanes.
578
579 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
580
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
584 variable.
585
586 2016-05-24 Richard Biener <rguenther@suse.de>
587
588 PR middle-end/70434
589 PR c/69504
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.
594
595 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
596
597 PR middle-end/71170
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
603 to ops vector.
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.
609
610 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
611
612 PR target/71201
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.
619
620 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
621 Kelvin Nilsen <kelvin@gcc.gnu.org>
622
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
628 ISA 3.0.
629
630 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
631
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)
642 with TARGET_SSE2.
643 (*movdf_internal): Use IS_STACK_MODE macro.
644 (*movsf_internal): Ditto.
645
646 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
647
648 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
649 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
650
651 2016-05-23 Jeff Law <law@redhat.com>
652
653 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
654 extracted from ...
655 (fsm_find_control_statement_thread_paths): Call it.
656
657 2016-05-23 Martin Jambor <mjambor@suse.cz>
658
659 PR ipa/71234
660 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
661 from_global_constant if t is not NULL.
662
663 2016-05-23 Marek Polacek <polacek@redhat.com>
664
665 PR c/49859
666 * common.opt (Wswitch-unreachable): New option.
667 * doc/invoke.texi: Document -Wswitch-unreachable.
668 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
669 warning.
670
671 2016-05-23 Bin Cheng <bin.cheng@arm.com>
672
673 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
674 TMR_INDEX is non-NULL.
675
676 2016-05-23 Richard Biener <rguenther@suse.de>
677
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.
681
682 2016-05-23 Martin Jambor <mjambor@suse.cz>
683
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.
686
687 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
688
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
692 vector boundary.
693
694 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
695
696 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
697
698 2016-05-22 Jakub Jelinek <jakub@redhat.com>
699
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
703 of 64x2.
704
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.
708
709 * config/i386/sse.md (i128vldq): New mode iterator.
710 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
711 avx512dq and avx512vl alternatives.
712
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.
720
721 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
722
723 PR middle-end/40921
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.
727
728 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
729
730 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
731 to computed stack_usage.
732
733 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
734
735 PR target/71103
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.
738
739 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
740
741 * tree.c (array_at_struct_end_p): Look through MEM_REF.
742
743 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
744
745 PR middle-end/71179
746 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
747 VECTOR type.
748
749 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
750
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.
754
755 2016-05-20 Jeff Law <law@redhat.com>
756
757 * bitmap.c (bitmap_find_bit): Remove useless test.
758
759 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
760
761 * function.c (thread_prologue_and_epilogue_insns): Commit the
762 insertion of the epilogue.
763
764 2016-05-20 Martin Jambor <mjambor@suse.cz>
765
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.
771
772 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
773
774 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
775 for naked functions.
776 (thumb1_expand_prologue): Likewise.
777
778 2016-05-20 Nathan Sidwell <nathan@acm.org>
779
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.
783
784 2016-05-20 David Malcolm <dmalcolm@redhat.com>
785
786 * calls.c (can_implement_as_sibling_call_p): Mark param
787 reg_parm_stack_space with ATTRIBUTE_UNUSED.
788
789 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
790
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
794 constants.
795 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
796 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
797 and CASE_CONST_ANY.
798
799 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
800
801 * config/nvptx/nvptx.md (sincossf3): New pattern.
802
803 2016-05-20 David Malcolm <dmalcolm@redhat.com>
804
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.
828
829 2016-05-20 David Malcolm <dmalcolm@redhat.com>
830
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.
835
836 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
837
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.
843
844 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
845
846 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
847 and get_max_loop_iterations_int.
848
849 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
850
851 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
852 realistic upper bounds here.
853
854 2016-05-20 Jakub Jelinek <jakub@redhat.com>
855
856 PR c++/71210
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.
861
862 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
863
864 PR tree-optimization/71079
865 PR tree-optimization/71206
866 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
867
868 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
869
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.
876
877 2016-05-20 Richard Guenther <rguenther@suse.de>
878
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.
895
896 2016-05-20 Richard Biener <rguenther@suse.de>
897
898 PR tree-optimization/71185
899 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
900 register operations.
901
902 2016-05-20 Richard Biener <rguenther@suse.de>
903
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
911 loop versioning.
912
913 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
914
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.
924
925 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
926
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.
932
933 2016-05-19 Ryan Burn <contact@rnburn.com>
934
935 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
936 * gengtype.c (open_base_files): Add cilk.h to ifiles.
937
938 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
939
940 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
941 force pending loads from memory.
942
943 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
944
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
964 configuration.
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
968 functions.
969 (builtin_function_type): Remove fatal_error assertion that is no
970 longer valid.
971 (rs6000_common_init_builtins): Add support for no-operand built-in
972 functions.
973 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
974 definition.
975 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
976 definition.
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
980 functions.
981
982 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
983
984 * tree-vect-loop.c (vect_analyze_loop_2): Use also
985 max_loop_iterations_int.
986
987 2016-05-19 Marek Polacek <polacek@redhat.com>
988
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.
992
993 2016-05-19 Martin Liska <mliska@suse.cz>
994
995 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
996 auto_vec instead of vec.
997
998 2016-05-19 Martin Liska <mliska@suse.cz>
999
1000 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1001
1002 2016-05-19 Martin Liska <mliska@suse.cz>
1003
1004 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1005
1006 2016-05-19 Martin Liska <mliska@suse.cz>
1007
1008 * ipa-pure-const.c (set_function_state): Remove an existing
1009 funct_state.
1010 (remove_node_data): Do not free it as it's released
1011 in set_function_state.
1012
1013 2016-05-19 Martin Liska <mliska@suse.cz>
1014
1015 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1016 bitmap.
1017
1018 2016-05-19 Martin Liska <mliska@suse.cz>
1019
1020 * omp-simd-clone.c (simd_clone_adjust): Release vector.
1021
1022 2016-05-19 Martin Liska <mliska@suse.cz>
1023
1024 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1025 an auto_vec instead of re-creating it.
1026
1027 2016-05-19 Martin Liska <mliska@suse.cz>
1028
1029 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1030 auto_vec instead of vec.
1031
1032 2016-05-19 Martin Liska <mliska@suse.cz>
1033
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.
1038
1039 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1040
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.
1043
1044 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
1045
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.
1051
1052 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1053
1054 PR target/71056
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.
1058
1059 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
1060
1061 PR sanitizer/64354
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.
1065
1066 2016-05-19 Bin Cheng <bin.cheng@arm.com>
1067
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.
1071
1072 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1073
1074 * function.c (thread_prologue_and_epilogue_insn): Move the
1075 "goto epilogue_done" one block later.
1076
1077 2016-05-19 Richard Biener <rguenther@suse.de>
1078
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.
1082
1083 2016-05-18 David Malcolm <dmalcolm@redhat.com>
1084
1085 PR driver/69265
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.
1091
1092 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1093
1094 PR c++/71100
1095 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
1096 lhs if it has TREE_ADDRESSABLE type.
1097
1098 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
1099
1100 PR target/71145
1101 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
1102 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
1103
1104 2016-05-18 Martin Jambor <mjambor@suse.cz>
1105
1106 PR ipa/69708
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.
1111
1112 2016-05-18 Martin Jambor <mjambor@suse.cz>
1113
1114 PR ipa/69708
1115 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
1116 from TREE_READONLY parameters.
1117
1118 2016-05-18 Martin Jambor <mjambor@suse.cz>
1119
1120 PR ipa/69708
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
1125 appropriate.
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
1130 if present.
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
1140 appropriate.
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.
1145
1146 2016-05-18 Jiong Wang <jiong.wang@arm.com>
1147
1148 PR rtl-optimization/71150
1149 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
1150 check.
1151
1152 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1153
1154 PR target/70915
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
1166 1's set.
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
1175 operations.
1176 (rs6000_legitimize_reload_address): Likewise.
1177 (rs6000_output_move_128bit): Use output_vec_const_move to emit
1178 constants.
1179 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
1180 combine VSX_M and VSX_M2 into one iterator.
1181 (VSX_M2): Likewise.
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
1211 splat instructions.
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
1220 declaration.
1221 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
1222 constraints. Add trailing period to wL documentation.
1223
1224 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
1225
1226 PR middle-end/71020
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
1233 and return void.
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.
1241
1242 2016-05-18 Martin Jambor <mjambor@suse.cz>
1243
1244 PR ipa/70646
1245 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
1246 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
1247
1248 2016-05-18 Martin Jambor <mjambor@suse.cz>
1249
1250 PR ipa/70646
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
1261 them to conditions.
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.
1267
1268 2016-05-18 Richard Biener <rguenther@suse.de>
1269
1270 * tree-ssa-loop-im.c (determine_max_movement): Properly add
1271 condition cost to PHI cost instead of total_cost.
1272
1273 2016-05-18 Martin Liska <mliska@suse.cz>
1274
1275 PR fortran/70856
1276 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
1277 merged variables.
1278
1279 2016-05-18 Richard Biener <rguenther@suse.de>
1280
1281 * lto-streamer.h (LTO_major_version): Bump to 6.
1282
1283 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1284
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.
1288
1289 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1290
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.
1294
1295 2016-05-18 Bin Cheng <bin.cheng@arm.com>
1296
1297 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1298 expression pointer, not pointer to the pointer.
1299
1300 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1301
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.
1306
1307 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1308 constraint x instead of v in second alternative, add avx512bw
1309 alternative.
1310
1311 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1312 constraint x instead of v in second alternative, add avx512bw
1313 alternative.
1314
1315 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1316 constraint x instead of v in second alternative, add avx512bw
1317 alternative.
1318
1319 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1320 avx512bw alternative.
1321
1322 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1323
1324 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1325 array to 128 chars.
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.
1331
1332 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1333
1334 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1335 constraint fot SF mode.
1336
1337 2016-05-18 Petr Murzin <petr.murzin@intel.com>
1338 Kirill Yukhin <kirill.yukhin@intel.com>
1339
1340 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1341 modifiers.
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>"):
1348 Ditto.
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.
1353
1354 2016-05-18 Richard Biener <rguenther@suse.de>
1355
1356 PR tree-optimization/71168
1357 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1358 initialization earlier.
1359
1360 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
1361
1362 * config/aarch64/aarch64-simd.md
1363 (aarch64_reduc_plus_internal<mode>): Rename to...
1364 (reduc_plus_scal): ...This, and remove previous implementation.
1365
1366 2016-05-18 Richard Biener <rguenther@suse.de>
1367
1368 * passes.def: Put late dse and cd_dce in canonical order.
1369
1370 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
1371
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
1376 up call stmt id.
1377 (lto_output_node): Inline thunks don't need body in every
1378 partition.
1379 * lto-streamer-in.c: Do not fixup thunk clones.
1380 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1381 thunks.
1382 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1383 folding suceeds.
1384
1385 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1386
1387 PR middle-end/63586
1388 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1389 (reassociate_bb): Call transform_add_to_multiply.
1390
1391 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1392
1393 * config/aarch64/aarch64.c (all_extensions): Removed unused
1394 static variable.
1395
1396 2016-05-17 Nathan Sidwell <nathan@acm.org>
1397
1398 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1399 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1400
1401 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1402
1403 PR tree-optimization/54579
1404 PR middle-end/55299
1405 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1406
1407 2016-05-17 Marek Polacek <polacek@redhat.com>
1408
1409 PR ipa/71146
1410 * tree-inline.c (expand_call_inline): Call
1411 maybe_remove_unused_call_args.
1412
1413 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1414
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.
1418
1419 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1420
1421 * match.pd (X & C): New transformation.
1422
1423 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1424
1425 * match.pd (~X & Y): New transformation.
1426
1427 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1428
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.
1433
1434 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1435
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.
1451
1452 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1453
1454 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1455 Use builtin.
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.
1466
1467 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1468
1469 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1470 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1471
1472 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1473
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.
1483
1484 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1485
1486 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1487
1488 2016-05-17 Richard Biener <rguenther@suse.de>
1489
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.
1499
1500 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1501
1502 PR target/70809
1503 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1504
1505 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1506
1507 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1508
1509 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1510
1511 PR target/71114
1512 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1513 insertion point for instructions generated by validize_mem.
1514
1515 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1516
1517 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1518 in brackets.
1519
1520 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1521
1522 * config/aarch64/aarch64.c
1523 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1524 rather than a macro.
1525
1526 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1527
1528 * doc/invoke.texi (AArch64 Options): Various updates.
1529
1530 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1531
1532 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1533 into instrumentation thunks.
1534 * cif-code.def (CIF_CHKP): New.
1535
1536 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1537
1538 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1539
1540 2016-05-16 Martin Jambor <mjambor@suse.cz>
1541
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.
1544
1545 2016-05-16 Marek Polacek <polacek@redhat.com>
1546
1547 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1548 commentary.
1549
1550 2016-05-16 Martin Jambor <mjambor@suse.cz>
1551
1552 PR hsa/70857
1553 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1554 the outlined kernel function.
1555
1556 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1557
1558 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1559 (ISA_HAS_DLSA): Ditto.
1560
1561 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1562
1563 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1564
1565 2016-05-16 Nathan Sidwell <nathan@acm.org>
1566
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.
1572
1573 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1574
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.
1583
1584 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1585
1586 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1587
1588 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1589
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.
1600
1601 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1602
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.
1610
1611 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1612
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
1615 calls from thunk.
1616 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1617 gimple body.
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.
1621
1622 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1623
1624 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1625
1626 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1627
1628 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1629 for thunks.
1630
1631 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1632
1633 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1634 (inline_small_functions): Do not look for function symbol when
1635 resetting caches.
1636
1637 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1638
1639 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1640 of inline thunks
1641
1642 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1643 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1644 Jiong Wang <jiong.wang@arm.com>
1645
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
1650 declaration.
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
1661 condition.
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.
1667
1668 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1669
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):
1674 Remove.
1675
1676 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1677
1678 * configure.ac: Add ACX_NONCANONICAL_HOST.
1679 * configure: Regenerate.
1680 * Makefile.in: Set host_noncanonical.
1681
1682 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1683
1684 PR target/71097
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.
1691
1692 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1693
1694 PR rtl-optimization/67483
1695 * combine.c (make_compound_operation): Don't call extract_left_shift
1696 with negative shift amounts.
1697
1698 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1699
1700 PR bootstrap/71071
1701 * fold-const.c (fold_checksum_tree): Allow modification
1702 of TYPE_ALIAS_SET during folding.
1703
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.
1707
1708 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1709
1710 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1711 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1712 printf format.
1713
1714 2016-05-13 Nathan Sidwell <nathan@acm.org>
1715
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.
1723
1724 * config/nvptx/nvptx.c (write_fn_proto): Handle
1725 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1726
1727 2016-05-13 Martin Liska <mliska@suse.cz>
1728
1729 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1730 and PRIu64 in printf format.
1731
1732 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1733
1734 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1735 comment.
1736
1737 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1738
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.
1742
1743 2016-05-13 Richard Biener <rguenther@suse.de>
1744
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.
1749
1750 2016-05-13 Martin Liska <mliska@suse.cz>
1751
1752 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1753 Initialize a variable with default value.
1754
1755 2016-05-13 Martin Liska <mliska@suse.cz>
1756
1757 * doc/invoke.texi: Enhance explanation of error recovery
1758 of sanitizers.
1759
1760 2016-05-13 Martin Liska <mliska@suse.cz>
1761
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
1787 inv_expr.
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
1795 inv_expr.
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
1801 invariants.
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.
1813
1814 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
1815
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.
1820
1821 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1822
1823 PR target/53440
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.
1828
1829 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1830
1831 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
1832 to true.
1833
1834 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1835
1836 PR target/71080
1837 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
1838
1839 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
1840
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
1894 obsolete builtins.
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.
1898
1899 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
1900
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.
1904
1905 2016-05-12 Jiong Wang <jiong.wang@arm.com>
1906
1907 PR rtl-optimization/70904
1908 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
1909 reload for wide mode.
1910
1911 2016-05-12 Marek Polacek <polacek@redhat.com>
1912
1913 PR c/70756
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.
1921
1922 2016-05-12 Richard Biener <rguenther@suse.de>
1923
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
1927 hashes.
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
1930 phi-translation.
1931
1932 2016-05-12 Richard Biener <rguenther@suse.de>
1933
1934 PR tree-optimization/71062
1935 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1936 field.
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.
1944
1945 2016-05-12 Martin Liska <mliska@suse.cz>
1946
1947 * doc/invoke.texi: Explain connection between
1948 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
1949
1950 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
1951
1952 PR tree-optimization/71006
1953 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1954 consider COND_EXPR as a mask producer.
1955
1956 2016-05-12 Marek Polacek <polacek@redhat.com>
1957
1958 PR driver/71063
1959 * opts.c (common_handle_option): Detect missing argument for --help^.
1960
1961 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1962
1963 PR target/70830
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.
1969
1970 2016-05-12 Jakub Jelinek <jakub@redhat.com>
1971
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.
1982
1983 * config/i386/sse.md (sse2_loadld): Use v instead of x
1984 constraint in alternatives 0,1,4.
1985
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.
1989
1990 PR target/71019
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.
1997
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
2000 of vex prefix.
2001
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.
2015
2016 2016-05-12 Richard Biener <rguenther@suse.de>
2017
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
2021 type.
2022
2023 2016-05-12 Richard Biener <rguenther@suse.de>
2024
2025 PR tree-optimization/70986
2026 * cfganal.c: Include cfgloop.h.
2027 (dfs_find_deadend): Prefer to take edges exiting loops.
2028
2029 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2030
2031 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2032 compile and run time.
2033
2034 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
2035
2036 PR c/43651
2037 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2038
2039 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
2040
2041 * config/i386/i386.c (legitimize_pic_address): Use
2042 copy_to_suggested_reg instead of gen_movsi.
2043
2044 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2045
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
2050 d-form support.
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
2062 128-bit types.
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
2072 enabling LRA.
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
2085 -mdebug=addr.
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>
2104 was not selected.
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
2110 instructions.
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.
2124
2125 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
2126
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.
2139
2140 2016-05-11 Richard Biener <rguenther@suse.de>
2141
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
2145 off bits.
2146
2147 2016-05-11 Richard Biener <rguenther@suse.de>
2148
2149 PR debug/71057
2150 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
2151 (dwarf2out_finish): Move retry_incomplete_types call ...
2152 (dwarf2out_early_finish): ... here.
2153
2154 2016-05-11 Richard Biener <rguenther@suse.de>
2155
2156 PR middle-end/71002
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.
2166
2167 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
2168
2169 PR middle-end/70807
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
2173 redundant code.
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.
2180
2181 2016-05-11 Alan Modra <amodra@gmail.com>
2182
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.
2189
2190 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
2191
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.
2196
2197 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
2198
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.
2203
2204 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2205
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.
2216
2217 2016-05-10 James Norris <jnorris@codesourcery.com>
2218
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.
2224
2225 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
2226
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.
2230
2231 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2232
2233 PR target/70799
2234 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
2235 integer constants.
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.
2240
2241 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2242
2243 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
2244 unary operation, not a binary one.
2245
2246 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2247
2248 PR middle-end/70877
2249 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
2250 calls with type casted fndecl.
2251
2252 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2253
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.
2258
2259 2016-05-10 Jakub Jelinek <jakub@redhat.com>
2260
2261 PR target/70927
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
2265 accordingly.
2266
2267 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2268
2269 PR target/70963
2270 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
2271 code for a zero scale factor.
2272 (vsx_xvcvdpuxds_scale): Likewise.
2273
2274 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2275
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
2280 "show_ruler_p".
2281
2282 2016-05-10 Richard Biener <rguenther@suse.de>
2283
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.
2289
2290 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
2291
2292 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2293 Forward declare.
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
2297 non-inline.
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.
2309
2310 2016-05-10 Martin Liska <mliska@suse.cz>
2311
2312 * tree-inline.c (remap_dependence_clique): Do not remap
2313 debugging statements.
2314
2315 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2316
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.
2322
2323 2016-05-10 Richard Biener <rguenther@suse.de>
2324
2325 PR tree-optimization/70497
2326 PR tree-optimization/28367
2327 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2328 split out from ...
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
2334 correctly.
2335
2336 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2337
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.
2344
2345 2016-05-10 Alan Modra <amodra@gmail.com>
2346
2347 PR target/70947
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.
2352
2353 2016-05-09 Jakub Jelinek <jakub@redhat.com>
2354
2355 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2356 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2357 expanders.
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.
2361
2362 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2363
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.
2367
2368 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
2369
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
2377 for AND masking.
2378
2379 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2380
2381 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2382 bitpos.
2383
2384 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2385
2386 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2387 pointer dereference.
2388
2389 2016-05-09 Richard Biener <rguenther@suse.de>
2390
2391 PR tree-optimization/70985
2392 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2393 op0 isn't a gimple register.
2394
2395 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2396
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.
2422
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>
2428
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
2433 builtins.
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
2466 MSA.
2467 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2468 stores.
2469 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2470 MSA.
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
2495 FPRs.
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
2501 instruction.
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,
2658 move_v builtins.
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
2665 array.
2666 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2667 hook.
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
2731 specified.
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
2755 for "qword_mode".
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
2764 specified.
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
2793 section.
2794 * doc/invoke.texi (-mmsa): Document new option.
2795
2796 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2797
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
2802 on -fvtable-verify.
2803 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
2804 (ENDFILE_VTV_SPEC): Define.
2805
2806 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
2807
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.
2821
2822 2016-05-09 Bin Cheng <bin.cheng@arm.com>
2823
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.
2830
2831 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2832
2833 * config/arm/arm.md (probe_stack): Add modes to set source
2834 and destination.
2835
2836 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
2837
2838 * regrename.c (base_reg_class_for_rename): New static function.
2839 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
2840
2841 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
2842
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
2847 thunks.
2848 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
2849 inlinable.
2850 * tree-inline.c (expand_call_inline): Expand thunks inline.
2851
2852 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
2853
2854 PR target/70998
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.
2862
2863 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2864
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
2867 users.
2868
2869 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2870
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
2873 the file.
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.
2898
2899 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
2900
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.
2908
2909 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
2910
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.
2923
2924 2016-05-07 Tom de Vries <tom@codesourcery.com>
2925
2926 PR tree-optimization/70956
2927 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
2928 def.
2929
2930 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2931
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.
2936
2937 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2938
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.
2947
2948 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2949
2950 * genmddump.c (main): Convert argv from char ** to const char **.
2951
2952 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2953
2954 * coretypes.h (OVERRIDE): New macro.
2955 (FINAL): New macro.
2956
2957 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
2958
2959 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
2960 allow coalescing if the types are compatible.
2961
2962 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2963
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.
2981
2982 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2983
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.
2988 (main): 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.
3010
3011 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3012
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.
3018
3019 2016-05-06 Martin Liska <mliska@suse.cz>
3020
3021 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3022 instead of vec as the vector is local to the function.
3023
3024 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3025
3026 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3027 avx512bw alternative.
3028
3029 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3030 before the ashr<mode>3 pattern.
3031
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.
3035
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
3040 in prefix.
3041
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.
3045
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.
3051
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.
3056
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.
3060
3061 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3062 v constraint instead of x.
3063
3064 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
3065
3066 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3067 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3068 equality first.
3069
3070 2016-05-06 Richard Biener <rguenther@suse.de>
3071
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.
3075
3076 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
3077
3078 PR debug/70935
3079 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3080 loop latch destination.
3081
3082 2016-05-06 Martin Liska <mliska@suse.cz>
3083
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.
3088
3089 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3090
3091 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
3092 mspace): Remove deprecated options.
3093 * doc/invoke.texi (SH options): Remove -mspace.
3094
3095 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3096
3097 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
3098
3099 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3100
3101 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
3102 corresponding combine split pattern.
3103
3104 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3105
3106 PR target/58219
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
3110 alternatives.
3111 (movsi_ie): Allow for any FPU. Adjust length attribute for
3112 alternatives.
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.
3118
3119 2016-05-06 Richard Biener <rguenther@suse.de>
3120
3121 PR tree-optimization/70960
3122 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
3123
3124 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3125
3126 PR target/52933
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.
3129
3130 2016-05-06 Marek Polacek <polacek@redhat.com>
3131
3132 PR sanitizer/70875
3133 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
3134
3135 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3136
3137 PR target/54089
3138 * config/sh/sh.md (*rotcr): Add another variant.
3139
3140 2016-05-06 Richard Biener <rguenther@suse.de>
3141
3142 PR middle-end/70931
3143 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
3144
3145 2016-05-06 Richard Biener <rguenther@suse.de>
3146
3147 PR middle-end/70941
3148 * fold-const.c (split_tree): Always convert to the original type
3149 before negating.
3150
3151 2016-05-06 Richard Biener <rguenther@suse.de>
3152
3153 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
3154 (fwprop_addr): Likewise.
3155
3156 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3157
3158 PR target/70873
3159 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
3160 New prototype.
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.
3167
3168 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
3169
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.
3176
3177 2016-05-05 Jakub Jelinek <jakub@redhat.com>
3178
3179 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
3180 v constraint instead of x.
3181
3182 2016-05-05 Alan Modra <amodra@gmail.com>
3183
3184 PR target/68662
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):
3200 Likewise.
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):
3208 Don't define.
3209
3210 2016-05-05 Alan Modra <amodra@gmail.com>
3211
3212 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
3213
3214 2016-05-05 Alan Modra <amodra@gmail.com>
3215
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
3218 a save of lr.
3219
3220 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
3221
3222 PR target/70873
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):
3228 Ditto.
3229 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
3230 Ditto. Emit the pattern using RTX.
3231
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):
3236 Ditto.
3237 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
3238 sse_reg_operand as operand 0 predicate.
3239
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):
3244 Ditto.
3245
3246 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3247
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.
3262
3263 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3264
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.
3268
3269 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3270
3271 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
3272 branch to a return.
3273
3274 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3275
3276 PR c++/70906
3277 PR c++/70933
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.
3284
3285 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
3286
3287 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
3288 comment.
3289 (compute_samebase_partition_bases): Fix typo.
3290
3291 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3292
3293 * config/i386/sse.md (vec_interleave_highv8sf,
3294 vec_interleave_lowv8sf, vec_interleave_highv4df,
3295 vec_interleave_lowv4df): Remove constraints from expanders.
3296
3297 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3298
3299 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3300
3301 * tree-inline.c (expand_call_inline): Fix path dealing with
3302 making lhs of call statement undefined.
3303
3304 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3305
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
3314 with aliases.
3315 (pass_local_pure_const::execute): Update.
3316
3317 2016-05-04 Marek Polacek <polacek@redhat.com>
3318
3319 * doc/invoke.texi: Document -Wdangling-else.
3320
3321 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3322
3323 * config.gcc: Error out when conflicting multilib is detected. Do not
3324 loop over multilibs since no combination is legal.
3325
3326 2016-05-04 Alan Modra <amodra@gmail.com>
3327
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):
3331 Align .toc.
3332
3333 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
3334
3335 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3336 Clean up p5600 comments.
3337
3338 2016-05-04 Richard Biener <rguenther@suse.de>
3339
3340 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3341 constructor simplifications.
3342 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3343
3344 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
3345
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):
3350 Always enable.
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.
3354
3355 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
3356
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.
3360
3361 2016-05-04 Alan Modra <amodra@gmail.com>
3362
3363 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3364
3365 2016-05-04 Alan Modra <amodra@gmail.com>
3366
3367 PR target/70866
3368 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3369 when cr2,3,4 are all fixed regs.
3370
3371 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
3372
3373 PR rtl-optimization/57193
3374 * opts.c (default_options_table): Revert OPT_frename_registers change.
3375 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3376
3377 2016-05-03 Martin Sebor <msebor@redhat.com>
3378
3379 PR c++/66561
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.
3385
3386 PR c++/66561
3387 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3388 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3389 constants.
3390
3391 PR c++/66639
3392 * doc/extend.texi (Function Names as Strings): Update __func__,
3393 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3394 constants.
3395
3396 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3397 Richard Biener <rguenther@suse.de>
3398
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.
3403
3404 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3405
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.
3421
3422 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3423
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.
3433
3434 2016-05-03 Marek Polacek <polacek@redhat.com>
3435
3436 PR c/70859
3437 * input.c (expansion_point_location): New function.
3438 * input.h (expansion_point_location): Declare.
3439
3440 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3441
3442 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3443 occurence with frame_offset_ ones.
3444
3445 2016-05-03 Alan Modra <amodra@gmail.com>
3446
3447 PR rtl-optimization/70890
3448 * ira.c (combine_and_move_insns): When moving def_insn, remove
3449 equivs on use_insn.
3450
3451 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3452
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.
3457
3458 2016-05-03 Alan Modra <amodra@gmail.com>
3459
3460 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3461 for SAVE_MULTIPLE/STORE_MULTIPLE.
3462
3463 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3464
3465 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3466 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3467
3468 2016-05-03 Richard Biener <rguenther@suse.de>
3469
3470 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3471 default true.
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
3521 SSA form.
3522 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3523
3524 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3525 Uros Bizjak <ubizjak@gmail.com>
3526
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>.
3537
3538 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3539
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.
3544
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.
3548
3549 PR target/49244
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.
3572
3573 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3574
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.
3578
3579 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3580
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
3587 of fixed_reg_set.
3588 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3589
3590 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3591
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
3603 if needed.
3604 (tree_if_conversion): handle simd pragma marked loop using new
3605 local variable aggressive_if_conv. check any_complicated_phi.
3606
3607 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3608
3609 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3610 before using it.
3611
3612 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3613
3614 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3615 cbase.
3616
3617 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3618
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):
3625 Remove constraints.
3626
3627 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3628
3629 * machmode.h (mode_complex): Add support to give the complex mode
3630 for a given 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
3637 the given type.
3638 (blank_mode): Likewise.
3639 (make_complex_modes): Remember the complex mode created in the
3640 base type.
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.
3658
3659 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3660
3661 PR target/49244
3662 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3663 char/short arguments promoted to int because of promote_prototypes.
3664
3665 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3666
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.
3679
3680 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3681
3682 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3683 marker.
3684 (oacc_loop_process): Check mask for loop termination.
3685
3686 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3687
3688 * cif-code.def (CIF_THUNK): Add.
3689 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3690 accidental change.
3691
3692 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3693
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.
3706
3707 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3708
3709 PR rtl-optimization/70467
3710 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3711
3712 PR rtl-optimization/70467
3713 * ipa-pure-const.c (check_call): Handle internal calls even in
3714 ipa mode like in local mode.
3715
3716 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3717
3718 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3719
3720 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3721
3722 * match.pd (X u< X, X u> X): New transformations.
3723
3724 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3725
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.
3735
3736 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3737
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.
3743
3744 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3745
3746 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3747 register_operand.
3748 (umulsidi3): Likewise.
3749 (indirect_jump): Fix jump instruction assembly patterns.
3750
3751 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
3752
3753 PR target/70860
3754 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3755 (nvptx_function_value): Assert non-NULL cfun.
3756
3757 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
3758
3759 PR rtl-optimization/70886
3760 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3761
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.
3766
3767 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3768
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.
3779
3780 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3781
3782 * tree.c (cst_and_fits_in_hwi): Simplify.
3783
3784 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3785
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.
3790
3791 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3792
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::
3799 shifts.
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.
3812
3813 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3814
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.
3836
3837 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3838
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.
3843
3844 2016-05-02 Martin Liska <mliska@suse.cz>
3845
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.
3850
3851 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3852
3853 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
3854 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
3855 bmaskn instruction.
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
3866 constraints.
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.
3870
3871 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3872
3873 * config/sh/sh.md (*negnegt, *movtt): Remove.
3874
3875 2016-05-02 Marek Polacek <polacek@redhat.com>
3876 Tom de Vries <tom@codesourcery.com>
3877
3878 PR tree-optimization/70700
3879 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
3880 bigger than FIRST_REF_NODE.
3881
3882 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3883
3884 PR target/52898
3885 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
3886 TARGET_CMPEQDI_T.
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.
3894
3895 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
3896
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.
3903
3904 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3905
3906 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
3907 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
3908
3909 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
3910
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.
3914
3915 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3916
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.
3924
3925 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
3926
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.
3931
3932 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3933
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.
3945 (xorsi3): Delete.
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.
3949 (mov_nop): Delete.
3950
3951 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3952
3953 * config/sh/t-sh: Remove SH5 support.
3954 * config.gcc: Likewise.
3955 * configure: Likewise.
3956
3957 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3958
3959 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3960
3961 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3962
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,
3969 movdi): Likewise.
3970
3971 2016-04-30 Alan Modra <amodra@gmail.com>
3972
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
3979 saving.
3980 (fixed_regs_p): Delete.
3981
3982 2016-04-30 Alan Modra <amodra@gmail.com>
3983
3984 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
3985 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
3986 Update all uses.
3987
3988 2016-04-30 Alan Modra <amodra@gmail.com>
3989
3990 PR target/69645
3991 * config/rs6000/rs6000.c (fixed_reg_p): New function.
3992 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
3993 Update all uses.
3994
3995 2016-04-30 Alan Modra <amodra@gmail.com>
3996
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.
4000
4001 2016-04-30 Alan Modra <amodra@gmail.com>
4002
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.
4012
4013 2016-04-30 Alan Modra <amodra@gmail.com>
4014
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.
4020 Formatting fixes.
4021 (regstat_compute_ri): Adjust for above. Don't set
4022 REG_LIVE_LENGTH.
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.
4027
4028 2016-04-30 Alan Modra <amodra@gmail.com>
4029
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.
4034
4035 2016-04-30 Alan Modra <amodra@gmail.com>
4036
4037 * ira.c (combine_and_move_insns): Rather than scanning insns,
4038 use DF infrastucture to find use and def insns.
4039
4040 2016-04-30 Alan Modra <amodra@gmail.com>
4041
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.
4048
4049 2016-04-30 Alan Modra <amodra@gmail.com>
4050
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.
4055
4056 2016-04-30 Alan Modra <amodra@gmail.com>
4057
4058 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4059 split out from..
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..
4063 (ira): ..here.
4064
4065 2016-04-30 Alan Modra <amodra@gmail.com>
4066
4067 * ira.c (pdx_subregs): Delete.
4068 (struct equivalence): Add pdx_subregs field.
4069 (set_paradoxical_subreg): Remove pdx_subregs param. Update
4070 pdx_subregs access.
4071 (update_equiv_regs): Don't create or free pdx_subregs. Update
4072 pdx_subregs access.
4073
4074 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4075
4076 * config/rs6000/altivec.h: Change definitions of vec_xl and
4077 vec_xst.
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.
4090 (XL): New.
4091 (XST): 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
4101 and vec_xst.
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
4119 grammar.
4120
4121 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
4122
4123 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
4124 out into ...
4125 (simplify_control_stmt_condition_1): ... here. Recurse into
4126 BIT_AND_EXPRs and BIT_IOR_EXPRs.
4127
4128 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
4129
4130 PR target/69810
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.
4137
4138 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4139
4140 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
4141 (probe_stack): New expander.
4142 (probe_stack_<mode>): New insn pattern.
4143
4144 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4145
4146 * config/i386/i386.md
4147 (operations with memory inputs setting flags peephole2):
4148 Remove uneeded REG_P checks. Cleanup pattern generation.
4149
4150 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
4151
4152 * tree-vect-loop.c (vect_transform_loop): Fix
4153 nb_iterations_upper_bound computation for vectorized loop.
4154
4155 2016-04-29 Marek Polacek <polacek@redhat.com>
4156 Jakub Jelinek <jakub@redhat.com>
4157
4158 PR sanitizer/70342
4159 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4160 TARGET_EXPR_SLOT as a base.
4161
4162 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
4163
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.
4173
4174 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4175
4176 * config/i386/predicates.md (constm1_operand): Fix comparison.
4177
4178 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4179
4180 * testsuite/gcc.target/arc/ieee_eq.c: New test.
4181
4182 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
4183
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.
4195
4196 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
4197
4198 * config/s390/s390.c (s390_rtx_costs): Update documentation.
4199
4200 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4201
4202 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
4203 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
4204 Change lder to ldr.
4205 * config/s390/vector.md ("mov<mode>"): Likewise.
4206
4207 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
4208
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.
4221
4222 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4223
4224 PR target/60040
4225 * reload1.c (reload): Call finish_spills before
4226 restarting reload loop. Skip select_reload_regs
4227 if update_eliminables_and_spill returns true.
4228
4229 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4230
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
4237 predicate.
4238 (arc_short_operand): Likewise.
4239 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
4240
4241 2016-04-29 Richard Biener <rguenther@suse.de>
4242
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.
4250
4251 2016-04-29 Richard Biener <rguenther@suse.de>
4252
4253 * stor-layout.c (layout_type): Do not build a pointer-to-element
4254 type for arrays.
4255
4256 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4257
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
4262 predicates.
4263
4264 2016-04-29 Jakub Jelinek <jakub@redhat.com>
4265
4266 PR middle-end/70843
4267 * fold-const.c (operand_equal_p): Don't verify hash value equality
4268 if arg0 == arg1.
4269 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
4270 and OMP_CLAUSE.
4271
4272 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4273
4274 PR target/70858
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.
4280
4281 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4282
4283 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
4284 to info. Don't initialize separate fields to 0. Clean up
4285 formatting a bit.
4286
4287 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4288
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.
4293
4294 (probe_stack): Remove expander.
4295
4296 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4297 Andrew Burgess <andrew.burgess@embecosm.com>
4298
4299 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4300 operands as 32-bits.
4301
4302 2016-04-28 Jason Merrill <jason@redhat.com>
4303
4304 * gdbinit.in: Skip line-map.h.
4305
4306 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4307 Andrew Burgess <andrew.burgess@embecosm.com>
4308
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
4313 as 0.
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
4317 alternatives.
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.
4347
4348 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4349
4350 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4351 dst->popcount.
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.
4381
4382 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4383 Andrew Burgess <andrew.burgess@embecosm.com>
4384
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
4394 r/Uex alternative.
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.
4409
4410 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4411
4412 * config/rs6000/rs6000.c (machine_function): Rename
4413 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4414 (rs6000_stack_info): Adjust.
4415
4416 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4417 Andrew Burgess <andrew.burgess@embecosm.com>
4418
4419 * config/arc/constraints.md (Usd): Convert to define_constraint.
4420 (Us<): Likewise.
4421 (Us>): Likewise.
4422
4423 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4424
4425 PR target/70821
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.
4429
4430 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4431
4432 * tracer.c (bb_seen): Make static.
4433
4434 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4435
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=.
4443
4444 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4445
4446 PR target/70668
4447 * config/nds32/nds32.md (casesi): Don't access the operands array
4448 out of bounds.
4449
4450 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4451
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.
4455
4456 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4457
4458 * doc/extend.texi (Common Function Attributes) [optimize]:
4459 Discourage use of the optimize attribute.
4460
4461 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4462
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.
4471
4472 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4473
4474 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4475 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4476
4477 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4478
4479 PR testsuite/70595
4480 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4481 attributes): Document cilkplus_runtime.
4482
4483 2016-04-28 Martin Jambor <mjambor@suse.cz>
4484
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
4487 handled_components.
4488
4489 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4490
4491 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4492 for WORD_REGISTER_OPERATIONS to runtime check.
4493
4494 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4495
4496 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4497
4498 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4499
4500 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4501 big-endian compilation.
4502 * config/arc/arc.md (addf3): Likewise.
4503 (subdf3): Likewise.
4504 (muldf3): Likewise.
4505
4506 2016-04-28 Richard Biener <rguenther@suse.de>
4507
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).
4513
4514 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4515
4516 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4517 and explain why in a comment.
4518
4519 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4520
4521 * config/arc/arc.md (cpu_facility): Add fpx variant.
4522 (subdf3): Prohibit use reverse sub when assist operations option
4523 is enabled.
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.
4527
4528 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4529
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
4536 converted pattern.
4537
4538 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4539 Joern Rennecke <joern.rennecke@embecosm.com>
4540
4541 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4542 declaration.
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
4549 unspecs.
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):
4568 Define.
4569 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4570 Likewise.
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.
4575 (EH_USES): Define.
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.
4579 (R10_REG): Define.
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.
4588
4589 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4590
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.
4608
4609 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4610 Matthias Klose <doko@debian.org>
4611
4612 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4613
4614 2016-04-28 Richard Biener <rguenther@suse.de>
4615
4616 PR middle-end/70777
4617 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4618 canonicalization.
4619
4620 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4621
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.
4642
4643 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4644
4645 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4646 general_reg_operand instead of register_operand predicate.
4647
4648 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4649
4650 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4651
4652 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4653
4654 * match.pd (A - B > A, A + B < A): New transformations.
4655
4656 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4657
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.
4662
4663 2016-04-27 Jeff Law <law@redhat.com>
4664
4665 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4666
4667 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4668
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
4684 changes.
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
4703 expansions.
4704 (vector_altivec_store_<mode>): Likewise.
4705
4706 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4707
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.
4717
4718 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4719
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.
4723
4724 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4725
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
4738 const.
4739 (struct dataflow): Likewise for field "problem".
4740 (df_add_problem): Make param const.
4741
4742 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4743
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
4746 for TARGET_MMX.
4747
4748 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4749
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
4752 #define to...
4753 (enum df_problem_id): ...this new enum.
4754 (struct df_problem): Convert field "id" from "int" to
4755 enum df_problem_id.
4756
4757 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4758
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.
4762
4763 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4764
4765 * config/i386/i386.md
4766 (lea arith with mem operand + setcc peephole2): Set operator mode.
4767
4768 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
4769
4770 PR target/70155
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
4821 pass.
4822
4823 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
4824
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.
4832
4833 2016-04-27 Martin Liska <mliska@suse.cz>
4834
4835 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
4836 (free_loop_data): Release vuses of groups.
4837
4838 2016-04-27 Bin Cheng <bin.cheng@arm.com>
4839
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
4844 to ...
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.
4860 Update all uses.
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,
4868 base and step.
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.
4906
4907 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4908
4909 * rtlanal.c (nonzero_bits1): Convert preprocessor check
4910 for WORD_REGISTER_OPERATIONS to runtime check.
4911
4912 2016-04-27 Richard Biener <rguenther@suse.de>
4913
4914 PR ipa/70760
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.
4920
4921 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4922
4923 PR sanitizer/70683
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
4928 args is the same.
4929
4930 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4931
4932 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
4933
4934 2016-04-27 Nick Clifton <nickc@redhat.com>
4935
4936 PR middle-end/49889
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.
4939
4940 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4941
4942 * params.def (MAX_PARTITION_SIZE): New param.
4943 * doc/invoke.texi: Document lto-max-partition.
4944
4945 2016-04-27 Richard Biener <rguenther@suse.de>
4946
4947 PR ipa/70785
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.
4954
4955 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4956
4957 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
4958 (-Wmemset-elt-size): New item.
4959
4960 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
4961
4962 PR ada/70759
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.
4967
4968 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4969
4970 PR sanitizer/70683
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.
4984
4985 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4986
4987 * config/rtems.h (LIB_SPEC): Add -latomic.
4988
4989 2016-04-27 Joel Sherrill <joel@rtems.org>
4990
4991 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4992 xilink.ld and flags not relevant to RTEMS.
4993
4994 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4995
4996 * toplev.c (backend_init_target): Avoid calling init_reload when using
4997 LRA.
4998
4999 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5000
5001 * reorg.c (try_merge_delay_insns): Declare i and j inside the
5002 for loops rather than one for the whole function.
5003
5004 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5005
5006 * match.pd (X + CST CMP X): New transformation.
5007
5008 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5009
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.
5014
5015 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
5016
5017 * config/i386/i386.md (operation on memory peephole): Duplicate an
5018 existing peephole and adapt it to match lea rather than an operation
5019 that clobbers CC.
5020
5021 PR rtl-optimization/57193
5022 * opts.c (default_options_table): Add OPT_frename_registers at -O2
5023 and above.
5024 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5025
5026 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5027
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.
5034
5035 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5036
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
5043 PHIs.
5044 (tree_if_conversion): Mark and update virtual SSA.
5045
5046 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5047
5048 PR target/61821
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
5055 renaming.
5056 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5057 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5058 Pass new decl arg.
5059 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5060 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5061
5062 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5063
5064 PR target/59407
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
5069 data/bss sections.
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
5073 SECTION_MACH_DEP.
5074 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5075 * doc/tm.texi: Regenerate.
5076
5077 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5078
5079 PR bootstrap/70704
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
5083 of 1.
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.
5089
5090 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5091
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.
5096
5097 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5098
5099 * config/i386/predicates.md (const0_operand): Do not match
5100 const_wide_int code.
5101 (const1_operand): Ditto.
5102
5103 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5104
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.
5114
5115 2016-04-25 Jason Merrill <jason@redhat.com>
5116
5117 * gdbinit.in: Skip is-a.h.
5118
5119 * attribs.c (register_scoped_attributes): Fix logic.
5120 * attribs.h: Declare register_scoped_attributes.
5121
5122 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5123
5124 * config/rs6000/rs6000-builtin.def: Correct pasto error for
5125 stxvd2x and stxvw4x built-in functions.
5126
5127 2016-04-25 DJ Delorie <dj@redhat.com>
5128
5129 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
5130 (ashrhi3): Likewise.
5131 (lshrhi3): Likewise.
5132
5133 2016-04-25 Richard Biener <rguenther@suse.de>
5134
5135 PR tree-optimization/70780
5136 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
5137 wasn't visited yet.
5138 (compute_antic): Mark blocks with abnormal preds as visited as
5139 they have a final empty antic-in solution already.
5140
5141 2016-04-25 Michael Collison <michael.collison@linaro.org>
5142
5143 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
5144
5145 2016-04-25 Michael Collison <michael.collison@linaro.org>
5146
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
5160 for new function.
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.
5166
5167 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5168
5169 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
5170 predicate for operand 2.
5171
5172 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
5173 H.J. Lu <hongjiu.lu@intel.com>
5174
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.
5200 (C): Ditto.
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.
5205
5206 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5207
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.
5218
5219 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5220
5221 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
5222
5223 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5224
5225 * vec.h (vec_safe_contains): New function.
5226 (vec::contains): Likewise.
5227 (vec::begin): Likewise.
5228 (vec::end): Likewise.
5229
5230 2016-04-23 Jakub Jelinek <jakub@redhat.com>
5231
5232 PR sanitizer/70712
5233 * cfgexpand.c (expand_stack_vars): Fix typo.
5234
5235 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5236
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.
5247
5248 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5249
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.
5259
5260 2016-04-22 Richard Biener <rguenther@suse.de>
5261
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.
5266
5267 2016-04-22 Richard Biener <rguenther@suse.de>
5268
5269 PR tree-optimization/70740
5270 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
5271 VDEF.
5272
5273 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
5274
5275 PR target/70750
5276 * config/i386/predicates.md (call_insn_operand): Replace
5277 sibcall_memory_operand with memory_operand.
5278
5279 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
5280
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().
5286
5287 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
5288
5289 PR target/70728
5290 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5291 Extract AVX-512BW constraint from AVX.
5292
5293 2016-04-21 Richard Biener <rguenther@suse.de>
5294
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.
5299
5300 2016-04-21 Richard Biener <rguenther@suse.de>
5301
5302 PR middle-end/70747
5303 * fold-const.c (fold_comparison): Return properly typed
5304 constant boolean.
5305
5306 2016-04-21 Bin Cheng <bin.cheng@arm.com>
5307
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.
5311
5312 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5313
5314 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5315 New transformations.
5316
5317 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5318
5319 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5320
5321 2016-04-20 Jan Hubicka <jh@suse.cz>
5322
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.
5328
5329 2016-04-20 Jan Hubicka <jh@suse.cz>
5330
5331 PR ipa/70018
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
5338 def.
5339 (propagate_nothrow): Be safe WRT interposition.
5340 * cgraph.h (set_nothrow_flag): Update prototype.
5341
5342 2016-04-18 Jan Hubicka <jh@suse.cz>
5343
5344 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5345 max_loop_iterations_int.
5346 (tree_unswitch_outer_loop): Likewise.
5347
5348 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5349
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
5355 predecessors.
5356
5357 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5358
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
5376 innermost_DR_map.
5377
5378 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5379
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.
5390
5391 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5392
5393 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5394 Short-cut unaligned load and store cases. Handle all integer
5395 vector modes.
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.
5399
5400 2016-04-20 Andrew Pinski <apinski@cavium.com>
5401 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5402
5403 PR target/64971
5404 * config/aarch64/aarch64.md (sibcall): Force call
5405 address to be DImode for ILP32.
5406 (sibcall_value): Likewise.
5407
5408 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5409
5410 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5411
5412 2016-04-20 Richard Biener <rguenther@suse.de>
5413
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.
5419
5420 2016-04-20 Marek Polacek <polacek@redhat.com>
5421
5422 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5423 rather than true.
5424
5425 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5426
5427 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5428 use kmovw to support AVX512F target.
5429
5430 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5431
5432 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5433
5434 2016-04-20 Marek Polacek <polacek@redhat.com>
5435
5436 PR tree-optimization/70725
5437 * tree-if-conv.c (is_false_predicate): New function.
5438 (predicate_mem_writes): Use it.
5439
5440 2016-04-20 Richard Biener <rguenther@suse.de>
5441
5442 PR tree-optimization/70726
5443 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5444 shift amounts from a pattern stmt operand.
5445
5446 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5447
5448 PR target/70674
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.
5456
5457 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5458
5459 PR middle-end/70680
5460 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5461 implicitly linear or lastprivate iterator on the outer context.
5462
5463 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5464
5465 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5466 alignment check.
5467 * config/i386/i386.md (ssememalign): Removed.
5468 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5469
5470 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5471
5472 PR target/69201
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.
5569 (PINT64): Likewise.
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
5619 use UNSPEC_STOREU.
5620 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5621 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5622 load nor store.
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.
5647
5648 2016-04-19 Richard Biener <rguenther@suse.de>
5649
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.
5654
5655 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5656
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.
5671
5672 2016-04-19 Richard Biener <rguenther@suse.de>
5673
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
5680 tail merging.
5681 (pass_fre::execute): Restore SSA info.
5682
5683 2016-04-19 Richard Biener <rguenther@suse.de>
5684
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
5691 adjustment.
5692
5693 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5694
5695 PR middle-end/70689
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.
5700
5701 2016-04-18 Michael Matz <matz@suse.de>
5702
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.
5709
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
5730 SET_DECL_ALIGN.
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.
5750
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.
5756
5757 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
5758
5759 PR target/70708
5760 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5761 replace %vmovsd with "%vmovq".
5762 (vec_concatv2df): Likewise.
5763
5764 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
5765
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
5773 and lowpart_subreg.
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.
5778
5779 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5780
5781 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
5782 gld requirements.
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
5788 systems and bugs.
5789 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
5790 with cc.
5791
5792 2016-04-17 Jan Hubicka <jh@suse.cz>
5793
5794 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
5795 max_loop_iterations_int.
5796
5797 2016-04-18 Richard Biener <rguenther@suse.de>
5798
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.
5804
5805 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
5806
5807 PR target/70711
5808 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
5809 armv8.1-a and armv8.1-a+crc.
5810
5811 2016-04-18 Richard Biener <rguenther@suse.de>
5812
5813 PR tree-optimization/70701
5814 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
5815 references after translating through a memcpy.
5816
5817 2016-04-18 Richard Biener <rguenther@suse.de>
5818
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.
5825
5826 2016-04-18 Richard Biener <rguenther@suse.de>
5827
5828 PR middle-end/37870
5829 * expmed.c (extract_bit_field_1): Remove broken case
5830 using a wider MODE_INT mode.
5831
5832 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
5833
5834 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
5835 unless compiling with at least GCC-4.8.
5836
5837 2016-04-17 Jan Hubicka <jh@suse.cz>
5838
5839 PR bootstrap/70706
5840 * graphite.c (graphite_finalize): Update call to
5841 tree_estimate_probability.
5842 * predict.h (tree_estimate_probability): Update prototype.
5843
5844 2016-04-17 Jan Hubicka <jh@suse.cz>
5845
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.
5852
5853 2016-04-17 Jan Hubicka <jh@suse.cz>
5854
5855 PR ipa/70018
5856 * cgraph.h (cgraph_node::set_const_flag,
5857 cgraph_node::set_pure_flag): Update prototype to return bool;
5858 update comment.
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
5872 declared const.
5873 (cgraph_node::set_pure_flag): Update.
5874 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
5875
5876 2016-04-17 Tom de Vries <tom@codesourcery.com>
5877
5878 PR other/70433
5879 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
5880 backslash in label.
5881
5882 2016-04-17 Tom de Vries <tom@codesourcery.com>
5883
5884 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
5885 '{}<> ' as escape-for-record.
5886
5887 2016-04-17 Tom de Vries <tom@codesourcery.com>
5888
5889 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
5890 structure.
5891
5892 2016-04-17 Tom de Vries <tom@codesourcery.com>
5893
5894 PR other/70185
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.
5902
5903 2016-04-17 Tom de Vries <tom@codesourcery.com>
5904
5905 PR tree-optimization/70256
5906 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
5907 (debug_varmap): New function.
5908
5909 2016-04-17 Tom de Vries <tom@codesourcery.com>
5910
5911 PR other/70183
5912 * passes.c (pass_manager::register_pass): Propagate pflags.
5913
5914 2016-04-17 Tom de Vries <tom@codesourcery.com>
5915
5916 PR other/68875
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.
5922
5923 2016-04-15 Jan Hubicka <jh@suse.cz>
5924
5925 PR ipa/70018
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
5930 to current def.
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.
5936
5937 2016-04-15 Jan Hubicka <jh@suse.cz>
5938
5939 PR ipa/70018
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.
5956
5957 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5958
5959 PR target/70662
5960 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
5961 Fix mode size check.
5962
5963 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5964
5965 * BASE-VER: Set to 7.0.0.
5966
5967 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
5968
5969 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
5970
5971 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5972
5973 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
5974 architecture revisions.
5975
5976 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
5977
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 ().
5982
5983 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5984
5985 PR c++/70675
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.
5989
5990 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
5991
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.
6006
6007 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6008
6009 PR target/70662
6010 * config/i386/sse.md: Use proper memory operand modifiers.
6011
6012
6013 2016-04-15 Richard Biener <rguenther@suse.de>
6014 Alan Modra <amodra@gmail.com>
6015
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
6019 scheme then.
6020
6021 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6022
6023 PR target/70669
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.
6027
6028 2016-04-14 Jakub Jelinek <jakub@redhat.com>
6029
6030 PR c++/70594
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.
6041
6042 2016-04-14 Martin Sebor <msebor@redhat.com>
6043
6044 PR c++/69517
6045 PR c++/70019
6046 PR c++/70588
6047 * doc/extend.texi (Variable Length): Revert.
6048
6049 2016-04-14 Marek Polacek <polacek@redhat.com>
6050 Jan Hubicka <hubicka@ucw.cz>
6051
6052 PR c++/70029
6053 * tree.c (verify_type): Disable the canonical type of main variant
6054 check.
6055
6056 2016-04-14 Jason Merrill <jason@redhat.com>
6057
6058 * cfgexpand.c, expr.c: Revert previous change.
6059
6060 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
6061
6062 PR middle-end/70643
6063 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6064 when building a mem ref for the incoming reduction variable.
6065
6066 2016-04-14 Richard Biener <rguenther@suse.de>
6067
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.
6072
6073 2016-04-14 Richard Biener <rguenther@suse.de>
6074
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.
6085
6086 2016-04-13 Martin Sebor <msebor@redhat.com>
6087
6088 PR c++/69517
6089 PR c++/70019
6090 PR c++/70588
6091 * doc/extend.texi (Variable Length): Document C++ specifics.
6092
6093 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6094
6095 PR c++/70641
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.
6099
6100 PR c++/70594
6101 * tree-sra.c (create_access_replacement,
6102 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
6103 gets fancy name.
6104 * tree-pretty-print.c (dump_fancy_name): New function.
6105 (dump_decl_name, dump_generic_node): Use it.
6106
6107 2016-04-13 Jason Merrill <jason@redhat.com>
6108
6109 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
6110 * expr.c (expand_expr_real_1): Likewise.
6111
6112 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
6113
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.
6119
6120 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6121
6122 PR debug/70628
6123 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
6124
6125 PR middle-end/70633
6126 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
6127 gimplification turns some element into non-constant.
6128
6129 PR debug/70628
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.
6138
6139 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
6140
6141 PR target/70630
6142 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
6143
6144 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6145
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
6150 allowed.
6151
6152 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6153
6154 PR target/70640
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 ...).
6161
6162 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6163
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.
6167
6168 2016-04-12 Martin Liska <mliska@suse.cz>
6169
6170 Revert
6171 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6172
6173 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6174 estimates here.
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.
6180
6181 2016-04-12 Tom de Vries <tom@codesourcery.com>
6182
6183 PR tree-optimization/68756
6184 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
6185 instead of new_name.
6186
6187 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6188
6189 PR tree-optimization/70602
6190 * tree-sra.c (generate_subtree_copies): Don't write anything into
6191 constant pool decls.
6192
6193 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
6194 regardless whether there are depend clauses or not.
6195
6196 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6197
6198 PR target/70381
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.
6202
6203 * doc/extend.texi (Additional Floating Types): Document PowerPC
6204 __float128 restrictions.
6205
6206 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6207
6208 PR target/70133
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
6219 flags.
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.
6224
6225 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6226
6227 PR target/70133
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,
6235 rework.
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
6241 to here.
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
6253 flags.
6254
6255 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6256
6257 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
6258 AARCH64_FL_CRC.
6259
6260 2016-04-09 Tom de Vries <tom@codesourcery.com>
6261
6262 PR tree-optimization/68953
6263 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
6264 first to last subscript.
6265
6266 2016-04-09 Jakub Jelinek <jakub@redhat.com>
6267
6268 PR tree-optimization/70586
6269 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
6270 for any calls.
6271
6272 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
6273
6274 PR lto/70289
6275 PR ipa/70348
6276 PR tree-optimization/70373
6277 PR middle-end/70533
6278 PR middle-end/70534
6279 PR middle-end/70535
6280 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
6281 clauses for acc parallel reductions as necessary. Error on those
6282 that are private.
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
6289 reductions.
6290 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6291
6292 2016-04-08 Jakub Jelinek <jakub@redhat.com>
6293
6294 PR middle-end/70593
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.
6298
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.
6304
6305 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
6306
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.
6314
6315 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
6316
6317 PR sanitizer/70541
6318 * asan.c (instrument_derefs): If we get unknown location, extract it
6319 with EXPR_LOCATION.
6320 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6321
6322 2016-04-08 Tom de Vries <tom@codesourcery.com>
6323
6324 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6325 implicit firstprivate clause.
6326
6327 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6328
6329 PR target/70566
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.
6334
6335 2016-04-08 Alan Modra <amodra@gmail.com>
6336
6337 PR target/70117
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
6342 limit.
6343
6344 2016-04-07 Jakub Jelinek <jakub@redhat.com>
6345
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.
6353
6354 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6355
6356 PR c/70436
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.
6365
6366 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6367
6368 PR c/70436
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.
6373
6374 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6375
6376 PR rtl-optimization/70398
6377 * lra-constraints.c (process_address_1): Check zero scale and code
6378 for reloading with zero scale.
6379
6380 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6381
6382 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6383 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6384
6385 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6386
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
6391 up to 128.
6392
6393 PR middle-end/70550
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.
6402
6403 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6404
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.
6408
6409 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6410
6411 PR c++/70336
6412 * match.pd (nested int casts): Limit to GIMPLE.
6413
6414 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6415
6416 PR ipa/66223
6417 * ipa-devirt.c (maybe_record_node): Fix comment; use
6418 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6419
6420 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6421
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.
6425
6426 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6427 Jakub Jelinek <jakub@redhat.com>
6428
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.
6432
6433 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6434
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.
6438
6439 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6440
6441 PR target/70510
6442 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6443
6444 2016-04-05 Richard Biener <rguenther@suse.de>
6445
6446 PR tree-optimization/70526
6447 * tree-sra.c (build_ref_for_offset): Use prev_base to
6448 extract the alias pointer type.
6449
6450 2016-04-05 Richard Biener <rguenther@suse.de>
6451
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.
6475
6476 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6477
6478 PR target/70525
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.
6483
6484 2016-04-05 Richard Biener <rguenther@suse.de>
6485
6486 PR middle-end/70499
6487 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6488 non-register type temporaries into SSA.
6489
6490 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6491
6492 PR ipa/66223
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.
6496
6497 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6498 Jakub Jelinek <jakub@redhat.com>
6499
6500 PR middle-end/70457
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
6503 prototype.
6504 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6505 Likewise.
6506
6507 2016-04-04 Richard Biener <rguenther@suse.de>
6508
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.
6514
6515 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6516
6517 PR ipa/68881
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.
6522
6523 2016-04-04 Martin Liska <mliska@suse.cz>
6524
6525 PR hsa/70402
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.
6531
6532 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6533
6534 PR target/70416
6535 PR target/67391
6536 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6537 set, but not for SP_REG operands.
6538
6539 2016-04-02 Martin Sebor <msebor@redhat.com>
6540
6541 PR c++/67376
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.
6546
6547 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6548
6549 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6550 the "Y" constraint (scalar FP 0.0 immediate).
6551
6552 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6553 Add the "const_double" to the list of operand constraints.
6554
6555 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6556
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
6560 for the high word.
6561
6562 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6563
6564 PR target/70404
6565 * config/s390/s390.c (s390_expand_insv): Check for everything
6566 constant instead of just VOIDmode stuff.
6567
6568 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6569
6570 PR target/70496
6571 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6572
6573 2016-04-01 Nathan Sidwell <nathan@acm.org>
6574
6575 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6576
6577 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6578
6579 PR rtl-optimization/70461
6580 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6581 is necessary.
6582
6583 2016-03-31 Martin Liska <mliska@suse.cz>
6584
6585 PR hsa/70399
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.
6596
6597 2016-03-31 Martin Liska <mliska@suse.cz>
6598
6599 PR hsa/70391
6600 * hsa-gen.c (hsa_function_representation::update_dominance): New
6601 function.
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.
6620
6621 2016-03-31 Martin Liska <mliska@suse.cz>
6622
6623 PR hsa/70391
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.
6642
6643 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6644
6645 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6646 scratch field for goto case.
6647
6648 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6649
6650 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6651
6652 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6653
6654 PR target/70442
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.
6658
6659 2016-03-31 Nathan Sidwell <nathan@acm.org>
6660
6661 PR c++/70393
6662 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6663 Assert we don't want to move backwards.
6664
6665 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6666
6667 PR target/70453
6668 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6669
6670 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6671
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.
6677
6678 2016-03-31 Martin Liska <mliska@suse.cz>
6679
6680 * passes.c (execute_one_pass): Do not call
6681 todo_after for a discarded function.
6682
6683 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6684
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.
6690
6691 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6692
6693 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6694 estimates here.
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.
6700
6701 2016-03-30 Richard Biener <rguenther@suse.de>
6702
6703 PR middle-end/70450
6704 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6705
6706 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6707
6708 PR target/70421
6709 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6710 in gen_blendm expander.
6711
6712 2016-03-30 Nick Clifton <nickc@redhat.com>
6713
6714 PR target/62254
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.
6717
6718 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6719
6720 PR target/70439
6721 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6722 conflict between DRAP register and __builtin_eh_return.
6723
6724 2016-03-30 Michael Matz <matz@suse.de>
6725 Richard Biener <rguenther@suse.de>
6726
6727 PR ipa/12392
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.
6736
6737 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6738
6739 PR target/63890
6740 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6741 and TARGET_MACHO.
6742
6743 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6744
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).
6748
6749 2016-03-29 Jeff Law <law@redhat.com>
6750
6751 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6752
6753 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6754
6755 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6756 to HOST_WIDE_INT.
6757
6758 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
6759
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.
6763
6764 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6765
6766 PR ipa/70283
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.
6774
6775 2016-03-29 Jakub Jelinek <jakub@redhat.com>
6776
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.
6781
6782 PR c++/70353
6783 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
6784
6785 PR tree-optimization/70405
6786 * ssa-iterators.h (num_imm_uses): Add missing braces.
6787
6788 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
6789
6790 PR rtl-optimization/68695
6791 * ira-color.c (allocno_copy_cost_saving): New.
6792 (improve_allocation): Use it.
6793
6794 2016-03-29 Richard Henderson <rth@redhat.com>
6795
6796 PR middle-end/70355
6797 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
6798
6799 2016-03-29 Richard Biener <rguenther@suse.de>
6800
6801 PR middle-end/70424
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.
6807
6808 2016-03-28 James Bowman <james.bowman@ftdichip.com>
6809
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.
6813
6814 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
6815
6816 PR target/70406
6817 * config/i386/i386.md (define_split, andn): Fix modes.
6818
6819 2016-03-26 Richard Biener <rguenther@suse.de>
6820 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6821
6822 PR ipa/70366
6823 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
6824 instead of
6825 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
6826 as 2nd argument to cl_optimization_restore().
6827
6828 2016-03-25 Richard Henderson <rth@redhat.com>
6829
6830 PR target/70120
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.
6834
6835 2016-03-25 Alan Modra <amodra@gmail.com>
6836
6837 PR target/70052
6838 * config/rs6000/constraints.md (j): Simplify.
6839 * config/rs6000/predicates.md (easy_fp_constant): Exclude
6840 decimal float 0.D.
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.
6846
6847 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6848
6849 * tree-ssa-propagate.c: Enhance docs for
6850 SSA_PROP_NOT_INTERESTING.
6851
6852 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6853
6854 * doc/extend.texi: Fix typo in documentation to pure attribute.
6855
6856 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
6857
6858 PR target/70319
6859 * config/pa/pa.md (bswapdi2): Use a scratch register.
6860
6861 2016-03-24 Richard Henderson <rth@redhat.com>
6862
6863 PR middle-end/69845
6864 * fold-const.c (extract_muldiv_1): Correct test for multiplication
6865 overflow.
6866
6867 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
6868
6869 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
6870 using ix86_expand_binary_operator instead of gen_andsi3.
6871
6872 2016-03-24 Richard Biener <rguenther@suse.de>
6873
6874 PR tree-optimization/70396
6875 * tree-vect-stmts.c (vectorizable_comparison): Use
6876 get_vectype_for_scalar_type.
6877
6878 2016-03-24 Richard Biener <rguenther@suse.de>
6879
6880 PR middle-end/70370
6881 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
6882 with register bases.
6883
6884 2016-03-24 Richard Biener <rguenther@suse.de>
6885
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.
6889
6890 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6891
6892 PR target/70381
6893 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
6894 -mfloat128 here.
6895
6896 2016-03-23 Marek Polacek <polacek@redhat.com>
6897
6898 PR c++/69884
6899 * doc/invoke.texi: Document -Wignored-attributes.
6900
6901 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6902
6903 PR tree-optimization/69042
6904 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
6905 parameter from 30 to 40.
6906
6907 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6908
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.
6912
6913 2016-03-23 Richard Biener <rguenther@suse.de>
6914
6915 PR middle-end/70251
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.
6919
6920 2016-03-23 Jeff Law <law@redhat.com>
6921
6922 PR tree-optimization/64058
6923 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
6924 CONFLICT_COUNT.
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
6936 bitmap_count_bits.
6937 (bitmap_count_bits): Use bitmap_count_bits_in_word.
6938 * bitmap.h (bitmap_count_unique_bits): Declare it.
6939
6940 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
6941
6942 PR target/69917
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.
6946
6947 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6948
6949 * config/arm/arm1020e.md (1020call_op): Reduce reservation
6950 duration.
6951 (v10_fdivs): Likewise.
6952 (v10_fdivd): Likewise.
6953
6954 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6955
6956 PR driver/70132
6957 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
6958 to not call fclose twice on file.
6959
6960 2016-03-23 Jakub Jelinek <jakub@redhat.com>
6961
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.
6966
6967 PR target/70321
6968 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
6969 Optimize TARGET_STV splitters, if high or low word of last argument
6970 is 0 or -1.
6971
6972 2016-03-22 Jeff Law <law@redhat.com>
6973
6974 PR target/70232
6975 tree-ssa-threadbackward.c
6976 (fsm_find_control_statement_thread_paths): Correctly distinguish
6977 between old style jump threads vs FSM jump threads.
6978
6979 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
6980
6981 PR target/70302
6982 * config/i386/i386.c (scalar_chain::convert_op): Support
6983 uninitialized register usage case.
6984
6985 2016-03-22 Richard Biener <rguenther@suse.de>
6986
6987 PR middle-end/70251
6988 * genmatch.c (gen_transform): Adjust last parameter to a three-state
6989 int...
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.
6998
6999 2016-03-22 Anthony Green <green@moxielogic.com>
7000
7001 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
7002 issue for moxiebox targets.
7003 (CC1PLUS_SPEC): Ditto.
7004
7005 2016-03-22 Richard Biener <rguenther@suse.de>
7006
7007 PR middle-end/70333
7008 * fold-const.c (extract_muldiv_1): Properly perform multiplication
7009 in the wide type.
7010
7011 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7012
7013 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7014
7015 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7016
7017 PR target/70325
7018 * config/i386/i386.c (def_builtin): Handle
7019 OPTION_MASK_ISA_AVX512VL to be and-ed with other
7020 bits.
7021 (const struct builtin_description bdesc_special_args[]):
7022 Remove duplicate ISA bits.
7023
7024 2016-03-22 Jakub Jelinek <jakub@redhat.com>
7025
7026 PR target/70329
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.
7030
7031 PR target/70300
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.
7036
7037 PR c++/70295
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).
7041
7042 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7043
7044 PR middle-end/70326
7045 * lra.c (restore_scratches): Ignore deleted insns.
7046
7047 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
7048 Jakub Jelinek <jakub@redhat.com>
7049
7050 PR tree-optimization/70317
7051 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7052 to HONOR_NANS.
7053
7054 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
7055
7056 PR target/70327
7057 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7058 of ix86_expand_move.
7059 (movoi): Ditto.
7060 (movti): Use general_operand for operand 1 predicate.
7061
7062 2016-03-21 Martin Liska <mliska@suse.cz>
7063
7064 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7065 insns.
7066 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7067
7068 2016-03-21 Martin Liska <mliska@suse.cz>
7069
7070 PR ipa/70306
7071 * ipa-icf.c (sem_function::parse): Skip static
7072 constructors and destructors.
7073
7074 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7075
7076 PR target/70296
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.
7081
7082 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
7083 Alexander Monakov <amonakov@ispras.ru>
7084
7085 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7086 for the stabs debug format.
7087
7088 2016-03-21 Richard Biener <rguenther@suse.de>
7089
7090 PR tree-optimization/70310
7091 * tree-vect-generic.c (expand_vector_condition): Fold the built
7092 condition.
7093
7094 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
7095
7096 PR target/70293
7097 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
7098 Block third alternative for AVX-512VL target,
7099
7100 2016-03-21 Martin Liska <mliska@suse.cz>
7101
7102 PR hsa/70234
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.
7108
7109 2016-03-21 Richard Biener <rguenther@suse.de>
7110
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.
7115
7116 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
7117
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.
7121
7122 2016-03-18 Jeff Law <law@redhat.com>
7123
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.
7130
7131 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
7132 Bernd Schmidt <bschmidt@redhat.com>
7133
7134 * doc/extend.texi: Document more potential problems with basic asms.
7135
7136 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
7137
7138 PR rtl-optimization/70278
7139 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
7140 VOIDmode.
7141
7142 2016-03-18 Jason Merrill <jason@redhat.com>
7143
7144 * calls.c (load_register_parameters): Fix zero size sibcall logic.
7145
7146 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
7147
7148 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
7149 values to 128b regs.
7150
7151 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
7152
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.
7157
7158 2016-03-18 Tom de Vries <tom@codesourcery.com>
7159
7160 PR ipa/70269
7161 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
7162
7163 2016-03-18 Jakub Jelinek <jakub@redhat.com>
7164
7165 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
7166 instead of replace_rtx for DEBUG_INSNs.
7167
7168 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7169
7170 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
7171 load type reservations.
7172
7173 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
7174
7175 PR target/70188
7176 * config/pa/constraints.md: Revert 2015-02-13 change. Use
7177 define_constraint for "Q" and "T" constraints.
7178
7179 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
7180
7181 Tweak the pipeline model for Exynos M1
7182
7183 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
7184 model.
7185
7186 2016-03-17 David Malcolm <dmalcolm@redhat.com>
7187
7188 PR c/70264
7189 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
7190 where one or both locations aren't within a line_map.
7191
7192 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
7193
7194 PR driver/70192
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
7197 if it is -1.
7198
7199 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
7200
7201 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
7202 true as ALL_REGS argument to replace_rtx.
7203
7204 2016-03-17 Richard Biener <rguenther@suse.de>
7205
7206 PR debug/70271
7207 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
7208 last.
7209
7210 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7211
7212 PR target/70245
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
7216 equality.
7217 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
7218 true as ALL_REGS argument to replace_rtx.
7219
7220 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
7221
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.
7225
7226 2016-03-17 Nick Clifton <nickc@redhat.com>
7227
7228 PR target/70162
7229 * config/rx/rx.c (rx_print_integer): Print negative constants in
7230 decimal.
7231
7232 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7233
7234 PR target/70261
7235 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
7236
7237 2016-03-16 Richard Henderson <rth@redhat.com>
7238 Richard Biener <rguenth@suse.de>
7239
7240 PR middle-end/70240
7241 PR middle-end/68215
7242 PR tree-opt/68714
7243 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
7244 first operand as is_gimple_condexpr.
7245
7246 PR middle-end/70240
7247 PR middle-end/68215
7248 Revert r231575
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.
7259
7260 2016-03-16 Richard Henderson <rth@redhat.com>
7261
7262 PR target/70048
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.
7267
7268 2016-03-16 Jakub Jelinek <jakub@redhat.com>
7269 Richard Biener <rguenth@suse.de>
7270
7271 PR target/70245
7272 * rtlanal.c (replace_rtx): For REG, if from is a REG,
7273 return to even if only REGNO is equal, and assert
7274 mode is the same.
7275
7276 2016-03-11 Jeff Law <law@redhat.com>
7277
7278 PR rtl-optimization/70224
7279 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
7280
7281 2016-03-16 Richard Henderson <rth@redhat.com>
7282
7283 PR middle-end/70199
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.
7296
7297 2016-03-16 Marek Polacek <polacek@redhat.com>
7298
7299 PR c/70093
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.
7304
7305 2016-03-16 Bin Cheng <bin.cheng@arm.com>
7306
7307 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7308 reporting malformed loop nest.
7309
7310 2016-03-16 Tom de Vries <tom@codesourcery.com>
7311
7312 PR lto/70187
7313 * ipa-devirt.c (possible_polymorphic_call_targets): Move
7314 nodes.length () == 1 test to before first nodes[0] access.
7315
7316 2016-03-16 Tom de Vries <tom@codesourcery.com>
7317
7318 PR tree-optimization/68715
7319 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7320 single_pred_p test.
7321
7322 2016-03-16 Tom de Vries <tom@codesourcery.com>
7323
7324 PR tree-optimization/68809
7325 * graphite-scop-detection.c (same_close_phi_node): Test if result types
7326 are the same.
7327
7328 2016-03-16 Carlos O'Donell <carlos@redhat.com>
7329 Sandra Loosemore <sandra@codesourcery.com>
7330
7331 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7332 on leaf attribute. Mention ELF interposition problems.
7333
7334 2016-03-16 Alan Modra <amodra@gmail.com>
7335
7336 PR rtl-optimization/69195
7337 PR rtl-optimization/47992
7338 * ira.c (indirect_jump_optimize): Ignore artificial defs.
7339 Add comments.
7340
7341 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
7342
7343 PR bootstrap/69513
7344 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7345
7346 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7347
7348 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7349
7350 2016-03-15 Jakub Jelinek <jakub@redhat.com>
7351
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.
7356
7357 PR middle-end/70239
7358 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7359 of safe_grow.
7360
7361 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7362
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.
7366
7367 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7368
7369 PR target/66660
7370 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7371 to non-speculative when propagating trap bits.
7372
7373 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7374
7375 PR rtl-optimization/63384
7376 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7377 DEBUG_INSN_P insns.
7378
7379 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7380
7381 PR target/64411
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.
7390
7391 2016-03-15 Tom de Vries <tom@codesourcery.com>
7392
7393 PR ipa/70161
7394 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7395 dump_file_name.
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
7399 transform.
7400
7401 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7402
7403 * genrecog.c (match_pattern_2): If pred is NULL don't call
7404 safe_predicate_mode on it.
7405
7406 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7407
7408 PR middle-end/70219
7409 * lra-constraints.c (delete_move_and_clobber): Change assertion
7410 to also allow dregno == 0.
7411
7412 2016-03-14 Richard Henderson <rth@redhat.com>
7413
7414 PR tree-opt/68714
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
7419 on vectors.
7420
7421 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7422
7423 PR target/70083
7424 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7425 regs.
7426 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7427 VOIDmode.
7428 * lra-constraints.c (split_reg): For hard regs, try to find the
7429 biggest single-register mode used in the function.
7430
7431 2016-03-14 Richard Biener <rguenther@suse.de>
7432
7433 PR tree-optimization/56365
7434 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7435 constants to compare against.
7436
7437 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7438
7439 PR target/70098
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.
7444
7445 2016-03-14 Tom de Vries <tom@codesourcery.com>
7446
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.
7450
7451 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7452
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.
7462
7463 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7464
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.
7468
7469 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7470
7471 PR target/69614
7472 * lra-constraints.c (delete_move_and_clobber): New.
7473 (remove_inheritance_pseudos): Use it.
7474
7475 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7476
7477 PR ada/70017
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.
7482
7483 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7484
7485 PR target/70131
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.
7489
7490 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7491
7492 PR target/70123
7493 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7494 be rematerialized.
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.
7498
7499 2016-03-11 Jeff Law <law@redhat.com>
7500
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.
7505
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
7510 discovered.
7511 (compare_pairs): No longer sort on the elements in each pair.
7512 Instead break ties with the index of the coalesce pair.
7513
7514 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7515
7516 PR target/70002
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):
7522 New function.
7523 (aarch64_set_current_function): Rewrite using the above.
7524
7525 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7526
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):
7534 Adjust callers.
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.
7538
7539 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7540
7541 PR tree-optimization/70013
7542 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7543 for constant-pool entries.
7544
7545 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7546
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.
7550
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
7554 for unknown codes.
7555
7556 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7557 Jakub Jelinek <jakub@redhat.com>
7558
7559 PR target/70160
7560 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7561 of uninitialized values.
7562
7563 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7564
7565 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7566 define_expand.
7567 ("*trunctddd2"): New pattern definition.
7568 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7569 TD->DD truncation.
7570
7571 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7572
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
7579 numbers.
7580
7581 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7582
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
7597 file.
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
7603 nonmemory_operand.
7604
7605 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7606
7607 PR target/70168
7608 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7609 Handle overlapping retval and newval.
7610
7611 2016-03-10 Nick Clifton <nickc@redhat.com>
7612
7613 PR target/7044
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.
7619
7620 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7621
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.
7625
7626 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7627
7628 PR lto/69589
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.
7637
7638 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7639
7640 PR ipa/69630
7641 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7642 on cxa_pure_virtual.
7643
7644 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7645
7646 PR lto/69589
7647 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7648
7649 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7650
7651 PR lto/69589
7652 * tree.c (need_assembler_name_p): Only record main variant type names.
7653
7654 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7655
7656 PR target/70113.
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
7666 843419 is on.
7667 (aarch64_attributes): Handle fix-cortex-a53-843419.
7668 (aarch64_can_inline_p): Likewise.
7669 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7670
7671 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7672 Jakub Jelinek <jakub@redhat.com>
7673
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.
7680
7681 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7682
7683 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7684 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7685
7686 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7687
7688 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7689 has a proper number of elements.
7690
7691 2016-03-10 Alan Modra <amodra@gmail.com>
7692
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.
7701
7702 2016-03-10 Richard Biener <rguenther@suse.de>
7703
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.
7707
7708 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7709
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.
7713
7714 PR target/70086
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.
7719
7720 PR tree-optimization/70127
7721 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7722
7723 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7724
7725 PR c/68473
7726 PR c++/70105
7727 * diagnostic-show-locus.c (compatible_locations_p): New function.
7728 (layout::layout): Sanitize ranges using compatible_locations_p.
7729
7730 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7731
7732 PR c/68473
7733 PR c++/70105
7734 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7735 location_range param with three const expanded_locations * and a
7736 bool.
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.
7748
7749 2016-03-09 Richard Biener <rguenther@suse.de>
7750 Jakub Jelinek <jakub@redhat.com>
7751
7752 PR tree-optimization/70138
7753 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7754 Also skip vect_double_reduction_def.
7755
7756 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7757
7758 PR target/70049
7759 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7760 if the operand is "m".
7761
7762 2016-03-09 Nathan Sidwell <nathan@acm.org>
7763
7764 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
7765
7766 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7767
7768 * config/i386/i386.c (processor_target_table): Fix cost table
7769 intialization order for znver1.
7770
7771 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7772
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.
7781
7782 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7783
7784 * tree-ssa-math-opts.c: Fix typo in comment.
7785
7786 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7787
7788 PR target/70110
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
7792 calls.
7793
7794 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
7795
7796 PR target/70064
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.
7805
7806 2016-03-07 Martin Jambor <mjambor@suse.cz>
7807
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.
7819
7820 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
7821
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.
7826
7827 2016-03-07 Martin Sebor <msebor@redhat.com>
7828
7829 PR rtl-optimization/19705
7830 * doc/invoke.texi (Options That Control Optimization): Clarify
7831 -fno-branch-count-reg.
7832
7833 2016-02-26 Richard Biener <rguenther@suse.de>
7834 Jeff Law <law@redhat.com>
7835
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
7839 loop.
7840 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
7841 Move after definition of loops_state_clear.
7842
7843 2016-03-07 Bin Cheng <bin.cheng@arm.com>
7844
7845 PR rtl-optimization/69052
7846 * rtlanal.c (commutative_operand_precedence): Set higher precedence
7847 to CONST_WIDE_INT.
7848
7849 2016-03-07 Tom de Vries <tom@codesourcery.com>
7850
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.
7855
7856 2016-03-07 Richard Biener <rguenther@suse.de>
7857
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.
7861
7862 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
7863
7864 PR middle-end/69916
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.
7871
7872 2016-03-07 Richard Henderson <rth@redhat.com>
7873
7874 PR rtl-opt/70061
7875 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
7876 (insert_value_copy_on_edge): Likewise.
7877
7878 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7879
7880 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
7881
7882 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7883
7884 PR target/62281
7885 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
7886
7887 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7888
7889 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
7890
7891 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7892
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.
7899
7900 2016-03-05 Jakub Jelinek <jakub@redhat.com>
7901
7902 PR c++/70084
7903 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
7904 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
7905 to the right type.
7906
7907 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7908
7909 PR c/69973
7910 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
7911
7912 PR rtl-optimization/69941
7913 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
7914 the reg share its mode.
7915
7916 2016-03-04 Jeff Law <law@redhat.com>
7917
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.
7922
7923 2016-03-05 Tom de Vries <tom@codesourcery.com>
7924
7925 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
7926 construct in oacc routine. Check for oacc region in oacc routine.
7927
7928 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7929
7930 PR target/70062
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.
7936
7937 PR target/70059
7938 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
7939 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
7940 fixes.
7941 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
7942
7943 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7944
7945 PR rtl-optimization/57676
7946 * lra-assigns.c (lra_assign): Guard test for maximum iterations
7947 with flag_checking.
7948
7949 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
7950
7951 * tree-vect-patterns.c (search_type_for_mask): Handle
7952 comparison of booleans.
7953
7954 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7955
7956 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
7957 Fix @xref usage.
7958
7959 PR debug/69947
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.
7963
7964 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7965
7966 PR rtl-optimization/69904
7967 * config/arm/arm.c (arm_cannot_copy_insn_p):
7968 Return true for load-exclusive instructions.
7969
7970 2016-03-03 Jakub Jelinek <jakub@redhat.com>
7971
7972 PR target/70021
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
7976 or mix thereof.
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.
7980
7981 2016-03-03 Marek Polacek <polacek@redhat.com>
7982
7983 PR middle-end/70050
7984 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
7985
7986 2016-03-03 Martin Liska <mliska@suse.cz>
7987
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.
7991
7992 2016-03-03 Richard Biener <rguenther@suse.de>
7993
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
7999 helper.
8000
8001 2016-03-03 Michael Collison <michael.collison@linaro.org>
8002
8003 PR target/70014
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.
8007
8008 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
8009
8010 * doc/tm.texi: Regenerated.
8011
8012 2016-03-02 Richard Henderson <rth@redhat.com>
8013
8014 PR rtl-opt/67145
8015 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8016 simplification when all args are positive non-fixed registers.
8017
8018 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8019
8020 * target.def (lra_p): Specify that new ports should use LRA.
8021
8022 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8023
8024 PR libgomp/69555
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.
8030
8031 2016-03-02 Tom de Vries <tom@codesourcery.com>
8032
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.
8037
8038 2016-03-02 Bin Cheng <bin.cheng@arm.com>
8039
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.
8044
8045 2016-03-02 Alan Modra <amodra@gmail.com>
8046
8047 PR ipa/69990
8048 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8049 larger alignment.
8050
8051 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8052
8053 PR target/70028
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.
8057
8058 2016-03-02 Richard Biener <rguenther@suse.de>
8059
8060 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8061 GENERIC expressions in GIMPLE.
8062
8063 2016-03-02 Richard Biener <rguenther@suse.de>
8064
8065 * config/i386/i386.c (type_natural_mode): Fix typo.
8066
8067 2016-03-02 Nick Clifton <nickc@redhat.com>
8068
8069 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8070
8071 2016-03-02 Richard Biener <rguenther@suse.de>
8072 Uros Bizjak <ubizjak@gmail.com>
8073
8074 PR target/67278
8075 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8076
8077 2016-03-02 Richard Biener <rguenther@suse.de>
8078
8079 PR middle-end/67278
8080 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8081
8082 2016-03-02 Marek Polacek <polacek@redhat.com>
8083
8084 PR c/67854
8085 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8086 "is promoted to" warning.
8087
8088 2016-03-01 DJ Delorie <dj@redhat.com>
8089
8090 * config.gcc: Deprecate mep-*.
8091
8092 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
8093
8094 PR middle-end/70025
8095 * lra-constraints.c (regno_val_use_in): New.
8096 (match_reload): Use it instead of regno_use_in.
8097
8098 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8099
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.
8103
8104 2016-03-01 Jeff Law <law@redhat.com>
8105
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.
8110
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
8116 in the last block.
8117
8118 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
8119
8120 PR target/70027
8121 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
8122 asm dialect alternatives to explicit GOTPCREL calls.
8123
8124 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8125
8126 PR ada/70017
8127 * ira.c (do_reload): Issue warning for generic stack checking here...
8128 * reload1.c (reload): ...instead of here and streamline it.
8129
8130 2016-03-01 Nick Clifton <nickc@redhat.com>
8131
8132 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
8133
8134 2016-03-01 Richard Biener <rguenther@suse.de>
8135
8136 PR tree-optimization/69983
8137 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
8138 types and fall back to operand_equal_p.
8139
8140 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8141
8142 Revert
8143 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8144
8145 * config/s390/constraints.md ("jm8"): New constraint.
8146 * config/s390/predicates.md ("const_int_8bitset_operand"): New
8147 predicate.
8148 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
8149 into ...
8150 ("*setmem_long<setmem_and>"): New pattern.
8151 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
8152 into ...
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.
8156
8157
8158 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8159
8160 Revert
8161 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8162
8163 * gensupport.c (process_substs_on_one_elem): Split loop to
8164 complete mark_operands_used_in_match_dup on all expressions in the
8165 vector first.
8166 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8167 and remove function.
8168
8169 2016-03-01 Richard Biener <rguenther@suse.de>
8170
8171 PR middle-end/70022
8172 * fold-const.c (fold_indirect_ref_1): Fix range checking for
8173 vector BIT_FIELD_REF extract.
8174
8175 2016-03-01 Richard Biener <rguenther@suse.de>
8176
8177 PR tree-optimization/69994
8178 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
8179
8180 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
8181
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.
8186
8187 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8188
8189 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
8190 anymore.
8191
8192 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8193
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
8200 selector.
8201 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
8202 operands.
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.
8212
8213 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8214
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.
8219
8220 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8221
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.
8237
8238 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8239
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
8249 iterator.
8250
8251 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8252
8253 * config/s390/predicates.md (const_int_6bitset_operand): New
8254 predicate.
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
8258 ...
8259 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
8260 * config/s390/subst.md: New file.
8261
8262 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8263
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
8267 attributes.
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.
8275
8276 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8277
8278 * gensupport.c (process_substs_on_one_elem): Split loop to
8279 complete mark_operands_used_in_match_dup on all expressions in the
8280 vector first.
8281 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8282 and remove function.
8283
8284 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8285
8286 PR target/69706
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.
8293
8294 2016-02-29 Jeff Law <law@redhat.com>
8295
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
8299 outside [0..1].
8300
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
8304 loop cleanups.
8305
8306 2016-02-29 Richard Biener <rguenther@suse.de>
8307
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
8312 nop conversions.
8313 (eliminate_plus_minus_pair): Use ops_equal_values_p
8314 (repropagate_negates): Do not use get_unary_op here.
8315
8316 2016-02-29 Martin Liska <mliska@suse.cz>
8317
8318 * system.h: Poison ENABLE_CHECKING macro.
8319
8320 2016-02-29 Martin Liska <mliska@suse.cz>
8321
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.
8326
8327 2016-02-19 Richard Biener <rguenther@suse.de>
8328
8329 PR tree-optimization/69980
8330 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8331 permutation of those we need to keep.
8332
8333 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8334
8335 PR target/69706
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
8347 in the first word.
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.
8367
8368 2016-02-29 Richard Biener <rguenther@suse.de>
8369
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
8374 defs properly.
8375
8376 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8377
8378 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8379
8380 2016-02-27 Jeff Law <law@redhat.com>
8381
8382 Revert
8383 2016-02-26 Richard Biener <rguenther@suse.de>
8384 Jeff Law <law@redhat.com>
8385
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
8389 loop.
8390
8391 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8392
8393 PR rtl-optimization/69896
8394 * tree-vect-generic.c (get_compute_type): Avoid single element
8395 vector types.
8396
8397 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8398
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.
8402
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.
8415
8416 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8417
8418 PR target/69969
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.
8422
8423 2016-02-26 Joel Sherrill <joel@rtems.org>
8424
8425 * config.gcc: Add x86_64-*-rtems*.
8426 * config/i386/rtems-64.h: New file.
8427
8428 2016-02-26 Joel Sherrill <joel@rtems.org>
8429
8430 * config.gcc: Add aarch64-*-rtems*.
8431 * config/aarch64/rtems.h: New file.
8432
8433 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8434
8435 PR target/69946
8436 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8437 shift amount using %h. Add comment.
8438
8439 2016-02-26 Richard Biener <rguenther@suse.de>
8440 Jeff Law <law@redhat.com>
8441
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
8445 loop.
8446
8447 2016-02-26 Martin Jambor <mjambor@suse.cz>
8448
8449 PR middle-end/69920
8450 * tree-sra.c (sra_modify_assign): Do not remove loads of
8451 uninitialized aggregates to SSA_NAMEs.
8452
8453 2016-02-26 Richard Henderson <rth@redhat.com>
8454
8455 PR target/69709
8456 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8457 pseudo in case the target rtx matches the source of the left
8458 shift.
8459
8460 2016-02-26 Martin Jambor <mjambor@suse.cz>
8461
8462 PR hsa/69568
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
8466 loads.
8467 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8468 * hsa-brig.c (emit_basic_insn): Likewise.
8469
8470 2016-02-26 Martin Jambor <mjambor@suse.cz>
8471
8472 pr hsa/69674
8473 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8474 pointers.
8475 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8476
8477 2016-02-26 Martin Jambor <mjambor@suse.cz>
8478
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.
8486
8487 2016-02-26 Martin Jambor <mjambor@suse.cz>
8488
8489 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8490 atomic operations in private segment.
8491
8492 2016-02-26 Martin Jambor <mjambor@suse.cz>
8493
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.
8498
8499 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8500
8501 PR target/69245
8502 * config/aarch64/aarch64.c (aarch64_set_current_function):
8503 Save/restore target globals when switching to
8504 target_option_default_node.
8505
8506 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8507
8508 PR target/69613
8509 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8510 Return 0 if !SHIFT_COUNT_TRUNCATED.
8511
8512 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8513 Eric Botcazou <ebotcazou@adacore.com>
8514
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.
8518
8519 2016-02-26 Martin Liska <mliska@suse.cz>
8520
8521 * doc/extend.texi: Mention clog10, clog10f an clog10l
8522 in Builtins section.
8523
8524 2016-02-26 Martin Liska <mliska@suse.cz>
8525
8526 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8527 CHECKING_P.
8528 (resolve_args_picking_1): Likewise.
8529 * dwarf2out.h (struct GTY): Likewise.
8530
8531 2016-02-26 Martin Liska <mliska@suse.cz>
8532
8533 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8534 with flag_checking.
8535 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8536
8537 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8538 Martin Liska <mliska@suse.cz>
8539
8540 * doc/install.texi: Mention --enable-valgrind-annotations.
8541
8542 2016-02-26 Richard Biener <rguenther@suse.de>
8543
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.
8548
8549 2016-02-25 Martin Liska <mliska@suse.cz>
8550
8551 PR middle-end/69919
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.
8556
8557 2016-02-25 Richard Biener <rguenther@suse.de>
8558
8559 PR tree-optimization/48795
8560 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8561
8562 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8563
8564 PR driver/68463
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.
8581
8582 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8583
8584 PR ipa/69630
8585 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8586 on builtin_unreachable.
8587
8588 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8589
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.
8595
8596 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8597
8598 PR debug/69705
8599 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8600 - allow NULL decl for Fortran DW_TAG_common_block variables.
8601
8602 2016-02-24 Jason Merrill <jason@redhat.com>
8603
8604 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8605
8606 2016-02-24 Richard Biener <rguenther@suse.de>
8607 Jakub Jelinek <jakub@redhat.com>
8608
8609 PR middle-end/69760
8610 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8611 conditionally executed ops to well-defined overflow behavior.
8612
8613 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8614
8615 PR middle-end/69915
8616 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8617 elements.
8618
8619 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8620
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
8626 callsite.
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.
8630
8631 2016-02-24 Richard Biener <rguenther@suse.de>
8632
8633 PR middle-end/68963
8634 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8635 bogus check.
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.
8638
8639 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8640
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.
8648
8649 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8650
8651 PR target/69875
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.
8657
8658 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8659
8660 PR c/69918
8661 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8662 2 to 3.
8663
8664 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8665 Richard Biener <rguenth@suse.de>
8666
8667 PR middle-end/69909
8668 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8669 set_mem_attributes if tem is SSA_NAME which got expanded
8670 as a MEM.
8671
8672 2016-02-24 Richard Biener <rguenther@suse.de>
8673
8674 PR tree-optimization/69907
8675 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8676 end of permutations for BB vectorization.
8677
8678 2016-02-24 Christian Bruel <christian.bruel@st.com>
8679
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.
8685 Fix comments.
8686
8687 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8688
8689 PR target/69810
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.
8695
8696 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8697
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}
8701 and AESMC pairs.
8702
8703 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8704
8705 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8706 series for reciprocal square root in Exynos M1.
8707
8708 2016-02-23 Martin Sebor <msebor@redhat.com>
8709
8710 PR c/69759
8711 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8712 __builtin_alloca_with_align.
8713
8714 2016-02-23 Richard Henderson <rth@redhat.com>
8715
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.
8724
8725 2016-02-23 Richard Biener <rguenther@suse.de>
8726
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.
8731
8732 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8733
8734 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8735 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8736 zero.
8737 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8738 flag_openacc.
8739 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8740
8741 2016-02-23 Richard Biener <rguenther@suse.de>
8742
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.
8751
8752 2016-02-23 Jakub Jelinek <jakub@redhat.com>
8753
8754 PR c++/69902
8755 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8756 when inverting comparison.
8757
8758 PR c/69900
8759 * common.opt (Wunreachable-code): Add Warning flag.
8760
8761 2016-02-23 Mark Wielaard <mjw@redhat.com>
8762 Jakub Jelinek <jakub@redhat.com>
8763
8764 PR c/69911
8765 * cgraphunit.c (check_global_declaration): Check main_input_filename
8766 and DECL_SOURCE_FILE are not NULL.
8767
8768 2016-02-23 Martin Jambor <mjambor@suse.cz>
8769
8770 PR tree-optimization/69666
8771 * tree-sra.c (sra_modify_assign): Do not attempt to create
8772 default_def replacements for unscalarizable regions.
8773
8774 2016-02-20 Mark Wielaard <mjw@redhat.com>
8775
8776 PR c/28901
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.
8782
8783 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8784
8785 PR target/69888
8786 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
8787 identical arguments. Formatting and spelling fixes.
8788
8789 PR target/69885
8790 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
8791 be specified.
8792
8793 PR target/69894
8794 PR target/69895
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.
8799
8800 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
8801
8802 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
8803 and HImode registers.
8804
8805 2016-02-22 Richard Biener <rguenther@suse.de>
8806
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.
8812
8813 2016-02-22 Bin Cheng <bin.cheng@arm.com>
8814
8815 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
8816 min_profitable_estimate, rather than min_profitable_iters.
8817
8818 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8819
8820 PR target/69885
8821 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
8822 SImode for last match_operand.
8823
8824 2016-02-22 Martin Liska <mliska@suse.cz>
8825
8826 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
8827 return bitsize - 1 as the return value.
8828
8829 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
8830
8831 PR target/69806
8832 PR target/54089
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.
8839
8840 2016-02-22 Richard Biener <rguenther@suse.de>
8841 Tom de Vries <tom@codesourcery.com>
8842
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.
8846
8847 2016-02-22 Tom de Vries <tom@codesourcery.com>
8848
8849 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
8850 dump-fn.
8851
8852 2016-02-22 Richard Biener <rguenther@suse.de>
8853
8854 PR ipa/37448
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
8862 summary.
8863
8864 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
8865
8866 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
8867 variable.
8868
8869 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8870
8871 PR driver/69805
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.
8876
8877 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
8878
8879 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
8880 -Wnarrowing with -std.
8881
8882 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8883
8884 PR c++/69851
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
8889 fix.
8890
8891 PR middle-end/69838
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.
8895
8896 PR target/69820
8897 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
8898 if TARGET_AVX512BW.
8899
8900 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8901
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.
8905
8906 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8907
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.
8912
8913 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8914
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.
8918
8919 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8920
8921 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
8922
8923 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8924
8925 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
8926 mode.
8927
8928 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8929
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.
8934
8935 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8936
8937 * config/s390/s390.md: Add missing output modifier for operand 1
8938 to print it as address properly.
8939
8940 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8941
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
8952 debug output.
8953 (s390_sched_init): Clear last_scheduled_unit_distance array.
8954 * config/s390/s390.md: Include 2964.md.
8955
8956 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8957
8958 PR target/69671
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.
8964
8965 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8966
8967 PR target/68404
8968 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
8969 2016-02-09 change.
8970
8971 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
8972 earlyclobber from target. Use wF constraint for fused memory
8973 address.
8974 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
8975
8976 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8977 Martin Liska <mliska@suse.cz>
8978
8979 PR sanitizer/69863
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.
8985
8986 2016-02-18 Richard Biener <rguenther@suse.de>
8987
8988 PR middle-end/69553
8989 * fold-const.c (operand_equal_p): Properly compare offsets for
8990 IMAGPART_EXPR and ARRAY_REF.
8991
8992 2016-02-18 Nick Clifton <nickc@redhat.com>
8993
8994 PR target/62254
8995 PR target/69610
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
9000 it.
9001 (arm_reload_out_hi): Likewise.
9002
9003 2016-02-18 Richard Biener <rguenther@suse.de>
9004
9005 PR middle-end/69854
9006 * match.pd: Don't use fold_binary or fold_unary for folding
9007 constants.
9008
9009 2016-02-17 Jakub Jelinek <jakub@redhat.com>
9010
9011 PR c++/69850
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.
9016
9017 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
9018
9019 * doc/extend.texi (C++ Attributes): Correct description of
9020 warn_unused type attribute.
9021
9022 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9023
9024 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9025 correct instruction.
9026
9027 2016-02-17 Richard Biener <rguenther@suse.de>
9028
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
9032 of successors.
9033 (bb_to_key): Use cached priority when available.
9034 (copy_bb): Initialize cached priority.
9035 (reorder_basic_blocks_software_trace_cache): Likewise.
9036
9037 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9038
9039 PR target/69161
9040 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9041 New predicate.
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.
9052
9053 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9054
9055 PR target/69161
9056 * config/arm/predicates.md (arm_comparison_operator_mode):
9057 New predicate.
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.
9067
9068 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
9069
9070 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9071 Add missing return.
9072
9073 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
9074
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.
9087
9088 2016-02-17 Nick Clifton <nickc@redhat.com>
9089
9090 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
9091 TI's devices.csv file as of March 2016.
9092
9093 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
9094
9095 PR Target/48344
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.
9102
9103 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9104
9105 PR c/69835
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.
9114
9115 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9116
9117 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
9118 AARCH64_EXTRA_TUNE_RECIP_SQRT.
9119
9120 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9121
9122 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
9123 reciprocal sqrt for -mlow-precision-recip-sqrt.
9124
9125 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9126 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9127
9128 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
9129 always use lane loads to construct non-constant vectors.
9130
9131 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9132
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.
9137
9138 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9139 Richard Biener <rguenther@suse.de>
9140
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):
9145 Formatting fix.
9146
9147 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9148
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.
9153
9154 2016-02-16 Richard Biener <rguenther@suse.de>
9155
9156 PR tree-optimization/69776
9157 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
9158 sets from caller.
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.
9165
9166 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
9167
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.
9171
9172 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
9173
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
9183 instructions.
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):
9208 Renamed.
9209 (adddf3, muldf3, subdf3): Removed.
9210 * config/arc/predicates.md (proper_comparison_operator): Recognize
9211 CC_FPU* modes.
9212 * config/arc/fpu.md: New file.
9213 * doc/invoke.texi (ARC Options): Document mfpu option.
9214
9215 2016-02-16 Richard Biener <rguenther@suse.de>
9216
9217 PR rtl-optimization/69291
9218 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
9219 noce_operand_ok check.
9220
9221 2016-02-16 Tom de Vries <tom@codesourcery.com>
9222
9223 PR lto/67709
9224 * omp-low.c (simd_clone_create): Remove call to
9225 symtab->call_cgraph_insertion_hooks.
9226
9227 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9228
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
9235 up formatting.
9236
9237 2016-02-16 Richard Biener <rguenther@suse.de>
9238
9239 PR tree-optimization/69586
9240 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
9241 types for conversion sources.
9242
9243 2016-02-16 Richard Biener <rguenther@suse.de>
9244
9245 PR middle-end/69801
9246 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
9247 mask OEP_ADDRESS_OF.
9248
9249 2016-02-16 Alan Modra <amodra@gmail.com>
9250
9251 PR target/68973
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.
9255 (p8_mtvsrwz): New.
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
9260 changes.
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.
9265
9266 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
9267
9268 Add support for the FCCMP insn types
9269
9270 * config/aarch64/aarch64.md (fccmp): Change insn type.
9271 (fccmpe): Likewise.
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.
9278 (fccmpd): Likewise.
9279
9280 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
9281
9282 * alias.c (get_alias_set): Fix a typo in comment.
9283
9284 2016-02-15 Richard Biener <rguenther@suse.de>
9285
9286 PR tree-optimization/69595
9287 * match.pd: Complete range test simplification to true.
9288
9289 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
9290
9291 PR rtl-optimization/69648
9292 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9293 pic_offset_table_rtx.
9294
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.
9298
9299 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9300
9301 * config/s390/s390.c (s390_function_profiler): Add a new sequence
9302 for z900+ CPUs in 31-bit mode.
9303
9304 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9305
9306 * common/config/s390/s390-common.c (s390_supports_split_stack):
9307 New function.
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
9315 vararg pointer.
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.
9333
9334 2016-02-15 Richard Biener <rguenther@suse.de>
9335
9336 PR tree-optimization/69783
9337 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9338 Add trivially correct cases.
9339
9340 2016-02-15 Tom de Vries <tom@codesourcery.com>
9341
9342 PR lto/69655
9343 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9344 do_force_output.
9345 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9346
9347 2016-02-15 Richard Biener <rguenther@suse.de>
9348
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
9355 redundant stores.
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.
9359
9360 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
9361
9362 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9363
9364 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9365
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.
9373 (znver1_sseavx_fma,
9374 znver1_sseavx_fma_load,
9375 znver1_avx256_fma,
9376 znver1_avx256_fma_load): Fix pipe usage.
9377
9378 2016-02-14 Alan Modra <amodra@gmail.com>
9379
9380 PR target/68973
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.
9384
9385 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9386
9387 PR target/67260
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.
9391
9392 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9393
9394 PR target/67636
9395 PR target/64345
9396 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9397
9398 2016-02-12 Walter Lee <walt@tilera.com>
9399
9400 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9401 * config/tilegx/t-tilegx: Likewise.
9402
9403 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9404
9405 PR other/69554
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"
9430 statements.
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.
9435
9436 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9437
9438 PR driver/69779
9439 * gcc.c (driver::finalize): Fix cleanup of "specs".
9440
9441 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9442
9443 PR driver/69265
9444 PR driver/69453
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.
9467
9468 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9469
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.
9474
9475 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9476
9477 PR target/69729
9478 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9479 to correctly determine instrumentation thunks.
9480
9481 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9482
9483 PR ipa/69241
9484 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9485 type by reference, force lhs on the call.
9486
9487 PR ipa/68672
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.
9494
9495 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9496
9497 revert:
9498 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9499
9500 PR middle-end/66726
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.
9505
9506 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9507
9508 PR middle-end/66726
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.
9513
9514 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9515
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.
9550 * expr.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.
9566
9567 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9568
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.
9574
9575 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9576
9577 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9578 New variable.
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.
9585
9586 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9587
9588 PR plugins/69758
9589 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9590
9591 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9592
9593 PR target/65313
9594 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9595 -Wmaybe-uninitialized warning.
9596
9597 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9598
9599 PR target/69713
9600 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9601
9602 2016-02-11 Richard Biener <rguenther@suse.de>
9603
9604 PR rtl-optimization/69291
9605 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9606 subexpressions affected by changing the result.
9607
9608 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9609
9610 PR target/69148
9611 * lra-constraints.c (curr_insn_transform): Find in/out operands
9612 for secondary memory moves. Update dups.
9613
9614 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9615
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
9620 statements.
9621
9622 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9623 Patrick Palka <ppalka@gcc.gnu.org>
9624
9625 PR ipa/69241
9626 PR c++/69649
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.
9633
9634 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9635
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.
9639
9640 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9641
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.
9654
9655 2016-02-10 Richard Biener <rguenther@suse.de>
9656
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.
9661
9662 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9663
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.
9668
9669 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9670
9671 * timevar.def (TV_PHASE_DBGINFO): Delete.
9672 (TV_PHASE_CHECK_DBGINFO): Likewise.
9673 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9674
9675 2016-02-10 Richard Biener <rguenther@suse.de>
9676
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.
9680
9681 2016-02-09 Andrew Pinski <apinski@cavium.com>
9682
9683 PR tree-opt/69282
9684 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9685 get_vcond_mask_icode returns false.
9686
9687 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9688
9689 PR target/68404
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.
9693
9694 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9695
9696 PR target/68532
9697 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9698 order.
9699 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9700 endian.
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.
9709
9710 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9711
9712 PR target/68532
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
9717 endian.
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.
9726
9727 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9728
9729 PR target/69634
9730 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9731 debug insns.
9732
9733 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9734
9735 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9736 truncate const_int operand 1 to QImode.
9737
9738 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9739
9740 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9741 corresponding to an abnormal edge.
9742
9743 2016-02-09 Tom de Vries <tom@codesourcery.com>
9744
9745 PR tree-optimization/69599
9746 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9747 function.
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
9750 partition.
9751
9752 2016-02-09 Richard Biener <rguenther@suse.de>
9753
9754 PR tree-optimization/69715
9755 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9756 LHS on calls as non-rewritable.
9757
9758 2016-02-09 Tom de Vries <tom@codesourcery.com>
9759
9760 PR lto/69707
9761 * lto-wrapper.c (append_diag_options): New function.
9762 (compile_offload_image): Call append_diag_options.
9763
9764 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
9765
9766 PR other/69722
9767 * doc/extend.texi (Flag Output Operands): Correct sectioning.
9768 Minor copy-edit to fix verb tenses.
9769
9770 2016-02-08 Jakub Jelinek <jakub@redhat.com>
9771
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.
9776
9777 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
9778
9779 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
9780 outdated section.
9781
9782 2016-02-08 Jason Merrill <jason@redhat.com>
9783
9784 PR c++/69631
9785 * convert.c (convert_to_integer_1): Check dofold on truncation
9786 distribution.
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.
9792
9793 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
9794
9795 PR target/60410
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.
9804
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
9813 bitmap.
9814
9815 2016-02-08 Richard Biener <rguenther@suse.de>
9816
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.
9821
9822 2016-02-08 Richard Biener <rguenther@suse.de>
9823 Jeff Law <law@redhat.com>
9824
9825 PR target/68273
9826 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
9827 types for anonymous SSA names.
9828
9829 2016-02-08 Richard Biener <rguenther@suse.de>
9830
9831 PR rtl-optimization/69274
9832 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
9833
9834 2016-02-08 Jeff Law <law@redhat.com>
9835
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.
9846
9847 2016-02-05 Jeff Law <law@redhat.com>
9848
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.
9857
9858 2016-02-05 Martin Sebor <msebor@redhat.com>
9859
9860 PR c++/69662
9861 * doc/invoke.texi: Update -Wplacement-new to take an optional
9862 argument.
9863
9864 2016-02-06 Richard Henderson <rth@redhat.com>
9865
9866 PR c/69643
9867 * tree.c (tree_nop_conversion_p): Do not strip casts into or
9868 out of non-standard address spaces.
9869
9870 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9871
9872 PR rtl-optimization/69691
9873 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
9874
9875 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
9876
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.
9881
9882 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
9883
9884 PR target/69369
9885 Revert r232560:
9886 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9887
9888 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
9889 instrumented_version.
9890
9891 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
9892
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.
9903
9904 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9905
9906 * config/s390/s390.c (s390_register_info_set_ranges): Remove
9907 superfluous loops.
9908
9909 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9910
9911 * doc/extend.texi: S/390: Correct some typos.
9912
9913 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9914
9915 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
9916
9917 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9918
9919 PR target/69625
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
9923 its name.
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.
9936
9937 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9938
9939 PR bootstrap/69677
9940 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
9941 alignment fixes.
9942 (ix86_option_override_internal): Disable TARGET_STV even for
9943 -m{incoming,preferred}-stack-boundary=3.
9944
9945 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9946
9947 * config.gcc: Mark deprecated rtems targets as obsolete.
9948
9949 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
9950
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.
9955
9956 2016-02-04 DJ Delorie <dj@redhat.com>
9957
9958 * config/msp430/msp430.c (msp430_start_function): Add function type.
9959
9960 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9961
9962 PR fortran/69368
9963 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
9964
9965 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
9966
9967 PR rtl-optimization/69577
9968 Revert:
9969 2015-10-29 Richard Henderson <rth@redhat.com>
9970
9971 PR target/68124
9972 PR rtl-opt/67609
9973 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9974 sse check to the exact conditions of PR 67609.
9975
9976 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9977
9978 PR target/69667
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.
9984
9985 2016-02-04 David Malcolm <dmalcolm@redhat.com>
9986
9987 * config/aarch64/cortex-a57-fma-steering.c
9988 (aarch64_register_fma_steering): Remove "static" from arguments
9989 to register_pass.
9990
9991 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
9992
9993 PR target/69619
9994 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
9995 twice when complex.
9996
9997 2016-02-04 Mike Frysinger <vapier@gentoo.org>
9998
9999 * doc/invoke.texi: Delete -mno-fma4.
10000
10001 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
10002
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
10006 definitions.
10007
10008 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
10009
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.
10119
10120 2016-02-04 Martin Liska <mliska@suse.cz>
10121
10122 PR sanitizer/69276
10123 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
10124 that are gimple_store_p.
10125 (maybe_instrument_call): Likewise.
10126
10127 2016-02-04 Bin Cheng <bin.cheng@arm.com>
10128
10129 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
10130 register scaling out of memory reference and comment why.
10131
10132 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10133
10134 PR target/65932
10135 PR target/67714
10136 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
10137 folding the source of a SET.
10138
10139 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10140
10141 PR target/65932
10142 PR target/67714
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.
10145
10146 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
10147
10148 PR target/65932
10149 PR target/67714
10150 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
10151 HImode.
10152
10153 2016-02-04 Christian Bruel <christian.bruel@st.com>
10154
10155 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
10156 * config/arm/arm.c (arm_set_current_function): Likewise.
10157
10158 2016-02-04 Jakub Jelinek <jakub@redhat.com>
10159 Ilya Enkovich <enkovich.gnu@gmail.com>
10160 H.J. Lu <hongjiu.lu@intel.com>
10161
10162 PR target/69454
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.
10168
10169 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
10170
10171 * config/i386/x86-tune.def: Disable default prefetching
10172 for -march=znver1.
10173
10174 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10175 Vladimir Makarov <vmakarov@redhat.com>
10176
10177 PR target/69461
10178 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
10179 in validating fused toc addresses.
10180
10181 2016-02-03 Jakub Jelinek <jakub@redhat.com>
10182
10183 PR c/69627
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.
10186
10187 PR target/69644
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.
10191
10192 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
10193 Alexandre Oliva <aoliva@redhat.com>
10194
10195 PR target/69461
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
10199 nothing.
10200
10201 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
10202
10203 PR target/69118
10204 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
10205 Fix target.
10206
10207 2016-02-02 Jakub Jelinek <jakub@redhat.com>
10208
10209 * wide-int.cc (canonize_uhwi): New function.
10210 (wi::divmod_internal): Use it.
10211
10212 2016-02-02 James Norris <jnorris@codesourcery.com
10213
10214 * gimplify.c (omp_notice_variable): Add usage check.
10215
10216 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
10217
10218 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
10219 like LE, GE, LT, GT when emitting relational operator.
10220
10221 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10222
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):
10230 Add parameter.
10231 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
10232 Update target hook.
10233
10234 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10235
10236 * config/aarch64/aarch64.c
10237 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
10238 (aarch64_ira_change_pseudo_allocno_class): New function.
10239
10240 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
10241
10242 PR target/67032
10243 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
10244
10245 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10246
10247 * config/avr/avr.c (avr_option_override): Set
10248 PARAM_ALLOW_STORE_DATA_RACES to 1.
10249
10250 2016-02-02 Richard Biener <rguenther@suse.de>
10251
10252 PR tree-optimization/69595
10253 * match.pd: Add range test simplifications to true/false.
10254
10255 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
10256
10257 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
10258 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
10259 instead.
10260
10261 2016-02-02 Richard Biener <rguenther@suse.de>
10262
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.
10266
10267 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
10268
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.
10283
10284 2016-02-02 Alan Modra <amodra@gmail.com>
10285
10286 PR target/69548
10287 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
10288 allow subregs.
10289
10290 2016-02-02 Alan Modra <amodra@gmail.com>
10291
10292 PR target/68662
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.
10300
10301 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10302
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.
10308
10309 2016-02-01 Jeff Law <law@redhat.com>
10310
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.
10316
10317 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10318
10319 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10320 when count is incremented above limit, don't analyze further
10321 insns afterwards.
10322
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.
10326
10327 2016-02-01 Bin Cheng <bin.cheng@arm.com>
10328
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.
10333
10334 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
10335
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
10346 possible.
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.
10352
10353 2016-02-01 Richard Biener <rguenther@suse.de>
10354
10355 PR middle-end/69556
10356 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10357
10358 2016-02-01 Richard Biener <rguenther@suse.de>
10359
10360 PR tree-optimization/69574
10361 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10362 of asserting return chrec_dont_know.
10363
10364 2016-02-01 Martin Liska <mliska@suse.cz>
10365
10366 * mem-stats-traits.h: Add copyright header.
10367 * mem-stats.h: Likewise.
10368
10369 2016-02-01 Richard Biener <rguenther@suse.de>
10370
10371 PR tree-optimization/69579
10372 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10373 Do not propagate through abnormal PHI results.
10374
10375 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10376
10377 * postreload.c (reload_cse_simplify): Remove dead code.
10378
10379 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10380
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.
10384
10385 2016-02-01 Richard Henderson <rth@redhat.com>
10386
10387 PR rtl-opt/69535
10388 * combine.c (make_compound_operation): When looking through a
10389 subreg, make sure to re-extend to the width of the outer mode.
10390
10391 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10392
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.
10400
10401 2016-01-29 Martin Jambor <mjambor@suse.cz>
10402
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.
10414
10415 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10416
10417 * doc/install.texi: Document that isl-0.16 is supported.
10418
10419 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10420
10421 PR target/69299
10422 * config/i386/constraints.md (Bm): Describe as special memory
10423 constraint.
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
10428 static vars.
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
10447 CT_SPECIAL_MEMORY.
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.
10452
10453 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10454
10455 PR target/69530
10456 * lra-splill.c (lra_final_code_change): Revert r229087 by
10457 removing all sub-registers.
10458
10459 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10460
10461 PR target/65604
10462 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10463
10464 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10465
10466 PR target/69551
10467 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10468 SSE1, copy target into the temporary reg first before recursing
10469 on it.
10470
10471 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10472
10473 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10474 with vm.
10475
10476 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10477
10478 * ginclude/stdarg.h: Test __cplusplus instead of
10479 __GXX_EXPERIMENTAL_CXX0X__.
10480
10481 2016-01-29 Richard Biener <rguenther@suse.de>
10482
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.
10487
10488 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10489
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.
10493
10494 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10495
10496 PR other/69006
10497 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10498 trailing blank line from error message.
10499
10500 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10501
10502 PR c++/69462
10503 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10504 for C++-11.
10505
10506 2016-01-29 Richard Biener <rguenther@suse.de>
10507
10508 PR middle-end/69537
10509 * match.pd: Allow all integral types when simplifying a
10510 widening or sign-changing conversion.
10511
10512 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10513
10514 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10515 back to setting codegen_error to fail codegen.
10516
10517 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10518
10519 PR target/69459
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
10525 of C constraint.
10526
10527 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10528
10529 PR target/68400
10530 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10531
10532 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10533
10534 PR middle-end/69542
10535 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10536 non-debug insns.
10537
10538 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10539
10540 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10541 branches if using guessed profile.
10542
10543 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10544
10545 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10546
10547 2016-01-28 Richard Henderson <rth@redhat.com>
10548
10549 PR target/69305
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.
10576
10577 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10578
10579 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10580 message when isl does not return a valid schedule.
10581
10582 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10583
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
10586 close by the defs.
10587
10588 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10589
10590 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10591 codegen_error_p.
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.
10603
10604 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10605
10606 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10607 instead of setting codegen_error to fail codegen.
10608
10609 2016-01-28 Jason Merrill <jason@redhat.com>
10610
10611 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10612
10613 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10614
10615 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10616 Remove CONST_INT_P check in CCMP cost calculation.
10617
10618 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10619
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.
10628
10629 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10630
10631 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10632 immediate as %1.
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.
10638
10639 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10640
10641 * tree-vect-stmts.c (vectorizable_comparison): Add
10642 NULL check for vectype.
10643
10644 2016-01-28 Richard Biener <rguenther@suse.de>
10645
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.
10649
10650 2016-01-28 Martin Liska <mliska@suse.cz>
10651
10652 PR pch/68758
10653 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10654 instead of ENABLE_VALGRIND_CHECKING.
10655
10656 2016-01-27 Richard Henderson <rth@redhat.com>
10657
10658 PR rtl-opt/69447
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.
10665
10666 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10667
10668 PR target/68986
10669 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10670 change stack_alignment_needed for __tls_get_addr call.
10671
10672 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10673
10674 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10675
10676 2016-01-27 Jeff Law <law@redhat.com>
10677
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.
10686
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.
10690
10691 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10692
10693 PR lto/69254
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.
10700
10701 2016-01-27 Ian Lance Taylor <iant@google.com>
10702
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
10707 NULL.
10708
10709 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10710
10711 PR target/69512
10712 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10713 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10714
10715 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10716
10717 PR target/68380
10718 * configure.ac: NetBSD provides SSP in its C library.
10719 * configure: Updated.
10720
10721 2016-01-27 Richard Biener <rguenther@suse.de>
10722
10723 PR tree-optimization/69166
10724 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10725 reduction code for commutativity / associativity.
10726
10727 2016-01-27 Martin Jambor <mjambor@suse.cz>
10728
10729 PR tree-optimization/69355
10730 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10731 total_scalarization fails.
10732
10733 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10734
10735 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10736 power9.
10737
10738 2016-01-27 Christian Bruel <christian.bruel@st.com>
10739
10740 PR target/69245
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.
10748
10749 2016-01-27 Martin Liska <mliska@suse.cz>
10750
10751 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10752 reference for an HSA kernel and its host function.
10753
10754 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10755
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.
10759
10760 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
10761
10762 * config/arc/predicates.md (proper_comparison_operator): Reject
10763 constant-constant comparison.
10764
10765 2016-01-26 Tom de Vries <tom@codesourcery.com>
10766
10767 PR tree-optimization/69110
10768 * tree-data-ref.c (initialize_data_dependence_relation): Handle
10769 DR_NUM_DIMENSIONS == 0.
10770
10771 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10772 Sebastian Pop <s.pop@samsung.com>
10773
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.
10777
10778 2016-01-26 Jason Merrill <jason@redhat.com>
10779
10780 PR c++/68782
10781 * tree.c (recompute_constructor_flags): Split out from
10782 build_constructor.
10783 (verify_constructor_flags): New.
10784 * tree.h: Declare them.
10785
10786 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
10787
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.
10791
10792 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10793
10794 PR target/68662
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
10799 LCTOC1.
10800 (rs6000_elf_declare_function_name): Use toc_label_name instead of
10801 constructing LCTOC1.
10802
10803 2016-01-26 Martin Sebor <msebor@redhat.com>
10804
10805 PR other/69477
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.
10809
10810 2016-01-26 Richard Henderson <rth@redhat.com>
10811
10812 PR middle-end/60908
10813 * trans-mem.c (tm_region_init): Mark entry block as visited.
10814
10815 2016-01-26 David Malcolm <dmalcolm@redhat.com>
10816
10817 PR other/69006
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
10825 before a newline.
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.
10835
10836 2016-01-26 Michael Matz <matz@suse.de>
10837
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.
10842
10843 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
10844
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.
10851
10852 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10853
10854 PR tree-optimization/69483
10855 * gimple-fold.c (canonicalize_constructor_val): Return NULL
10856 if base has error_mark_node type.
10857
10858 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
10859
10860 PR target/68620
10861 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
10862 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
10863 New helper macros.
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.
10877
10878 2016-01-26 Nathan Sidwell <nathan@acm.org>
10879
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.
10893
10894 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10895
10896 PR lto/69254
10897 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
10898 (append_compiler_options): Handle -fcilkplus.
10899 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
10900
10901 2016-01-26 Nick Clifton <nickc@redhat.com>
10902
10903 PR target/66655
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.
10907
10908 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10909
10910 PR lto/69254
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.
10915
10916 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
10917
10918 PR target/68986
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
10922 __tls_get_addr.
10923 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
10924 if __tls_get_addr is called.
10925
10926 2016-01-26 Christian Bruel <christian.bruel@st.com>
10927
10928 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
10929
10930 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
10931
10932 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
10933
10934 2016-01-26 Richard Biener <rguenther@suse.de>
10935
10936 PR middle-end/69467
10937 * match.pd: Guard X * CST CMP 0 pattern with single_use.
10938
10939 2016-01-26 Richard Biener <rguenther@suse.de>
10940
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
10944 to ...
10945 (move_computations_worker): This.
10946 (move_computations): Perform an RPO rather than a DOM walk.
10947
10948 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10949
10950 PR target/69442
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.
10956
10957 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
10958
10959 PR target/67896
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.
10963
10964 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
10965
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.
10973
10974 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10975 Sebastian Pop <s.pop@samsung.com>
10976
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.
11021 (nested_in): New.
11022 (loop_at): New.
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.
11066
11067 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11068 Sebastian Pop <s.pop@samsung.com>
11069
11070 * Makefile.in: Set ISLVER in site.exp.
11071
11072 2016-01-25 Jakub Jelinek <jakub@redhat.com>
11073
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.
11077
11078 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11079
11080 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11081 the frame info after reload completed.
11082
11083 2016-01-25 Jeff Law <law@redhat.com>
11084
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.
11100
11101 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11102
11103 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
11104 decl with __attribute__ ((unused)) annotation.
11105
11106 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
11107
11108 PR target/69421
11109 * tree-vect-stmts.c (vectorizable_condition): Check vectype
11110 of operands is compatible with a statement vectype.
11111
11112 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
11113
11114 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
11115 improve wording for mixed storage order support.
11116
11117 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
11118
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.
11129
11130 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
11131
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.
11148
11149 2016-01-25 Richard Biener <rguenther@suse.de>
11150
11151 PR lto/69393
11152 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
11153 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
11154 DECL_NAMELESS.
11155 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
11156
11157 2016-01-25 Richard Biener <rguenther@suse.de>
11158
11159 PR tree-optimization/69376
11160 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
11161 flag.
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.
11169
11170 2016-01-25 Nick Clifton <nickc@redhat.com>
11171
11172 PR target/66655
11173 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
11174
11175 2016-01-23 Tom de Vries <tom@codesourcery.com>
11176
11177 PR tree-optimization/69426
11178 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
11179 removed clobber.
11180
11181 2016-01-23 Jakub Jelinek <jakub@redhat.com>
11182
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.
11197
11198 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
11199 directly instead of building a temporary tree.
11200
11201 PR bootstrap/69434
11202 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
11203 remove <algorithm> include.
11204
11205 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11206
11207 PR target/69432
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
11211 fixes.
11212 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
11213 if dynamic_check != -1.
11214
11215 2016-01-21 Jeff Law <law@redhat.com>
11216
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.
11222
11223 2016-01-22 Richard Henderson <rth@redhat.com>
11224
11225 PR target/69416
11226 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
11227 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
11228
11229 2016-01-22 Michael Matz <matz@suse.de>
11230
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
11237 INCLUDE_STRING.
11238 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
11239
11240 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
11241 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
11242
11243 2016-01-22 Christian Bruel <christian.bruel@st.com>
11244
11245 PR target/68674
11246 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
11247
11248 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11249
11250 PR target/69403
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.
11254
11255 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
11256
11257 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
11258
11259 2016-01-22 Christian Bruel <christian.bruel@st.com>
11260
11261 * config/arm/arm-c.c (arm_pragma_target_parse):
11262 Remove warn_builtin_macro_redefined overwrite.
11263
11264 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11265
11266 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
11267 flag_non_call_exceptions compatibility.
11268
11269 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11270
11271 PR debug/66668
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.
11280
11281 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11282
11283 * doc/extend.texi (scalar_storage_order type attribute): Document
11284 restriction on type punning and aliasing, and remove future tense.
11285
11286 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
11287
11288 PR target/69252
11289 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
11290 first stage.
11291
11292 2016-01-21 Jeff Law <law@redhat.com>
11293
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
11300 vector.
11301
11302 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11303
11304 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11305 Detangle.
11306 * configure: Regenerate.
11307
11308 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
11309
11310 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11311 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11312
11313 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
11314
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.
11322
11323 2016-01-21 Anton Blanchard <anton@samba.org>
11324 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11325
11326 PR target/63354
11327 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11328 #define.
11329 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11330 function.
11331
11332 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11333
11334 * config/microblaze/microblaze.c
11335 (get_branch_target): New.
11336 (insert_wic_for_ilb_runout): New.
11337 (insert_wic): 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.
11345
11346 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11347
11348 * config/microblaze/microblaze.h
11349 (FIXED_REGISTERS): Update in macro.
11350 (CALL_USED_REGISTERS): Update in macro.
11351
11352 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
11353
11354 PR rtl-optimization/68920
11355 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11356 moves.
11357
11358 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
11359
11360 PR rtl-optimization/68990
11361 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11362 pseudo instead of inheritance ones.
11363
11364 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11365 Nick Clifton <nickc@redhat.com>
11366
11367 PR target/69129
11368 PR target/69012
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.
11372
11373 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11374
11375 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11376 label reference.
11377 * configure: Regenerate.
11378
11379 2016-01-21 Richard Biener <rguenther@suse.de>
11380
11381 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11382
11383 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11384
11385 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11386 to actually emit the .size directive.
11387
11388 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11389 Jakub Jelinek <jakub@redhat.com>
11390
11391 PR target/69187
11392 PR target/65624
11393 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11394 args array size by one to avoid buffer overflow.
11395
11396 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11397
11398 * config/s390/s390.md (pool_section_start): Use switch_to_section
11399 to select proper read-only data section instead of hardcoding
11400 .rodata.
11401 (pool_section_end): Use switch_to_section to match the above.
11402
11403 2016-01-21 Richard Biener <rguenther@suse.de>
11404
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.
11409
11410 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11411
11412 PR c++/69355
11413 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11414 for bitsize instead of GET_MODE_PRECISION (mode).
11415
11416 2016-01-20 Martin Sebor <msebor@redhat.com>
11417
11418 PR c/52291
11419 * extend.texi (__sync Builtins): Clarify the semantics of
11420 __sync_fetch_and_OP built-ins on pointers.
11421 (__atomic Builtins): Same.
11422
11423 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11424 Sebastian Pop <s.pop@samsung.com>
11425
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.
11436
11437 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11438 Sebastian Pop <s.pop@samsung.com>
11439
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.
11453
11454 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11455 Sebastian Pop <s.pop@samsung.com>
11456
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.
11461
11462 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11463 Sebastian Pop <s.pop@samsung.com>
11464
11465 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11466 Discard unstructured if-then-else regions.
11467
11468 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11469 Sebastian Pop <s.pop@samsung.com>
11470
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.
11479
11480 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11481 Sebastian Pop <s.pop@samsung.com>
11482
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.
11486
11487 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11488 Sebastian Pop <s.pop@samsung.com>
11489
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.
11500
11501 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11502 Sebastian Pop <s.pop@samsung.com>
11503
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.
11509
11510 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11511 Sebastian Pop <s.pop@samsung.com>
11512
11513 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11514 isl_ast_node_mark.
11515
11516 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11517 Sebastian Pop <s.pop@samsung.com>
11518
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.
11522
11523 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11524 Sebastian Pop <s.pop@samsung.com>
11525
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.
11549
11550 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11551
11552 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11553 requirements.
11554
11555 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11556
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.
11566
11567 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11568
11569 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11570 warning. Fix up formatting.
11571
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.
11577
11578 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11579
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.
11599
11600 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11601
11602 PR target/68609
11603 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11604 domain check.
11605 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11606 for V4SFmode.
11607
11608 2016-01-20 Richard Henderson <rth@redhat.com>
11609
11610 PR bootstrap/69343
11611 PR bootstrap/69339
11612 PR tree-opt/68964
11613 Revert:
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.
11618
11619 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11620
11621 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11622 (arm_fp_ok): Likewise.
11623 (arm_fp): Likewise.
11624 (arm_crypto): Likewise.
11625
11626 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11627 Richard Biener <rguenther@suse.de>
11628
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.
11633
11634 2016-01-20 Richard Biener <rguenther@suse.de>
11635
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.
11643
11644 2016-01-20 Jeff Law <law@redhat.com>
11645
11646 PR target/25114
11647 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11648 extracted from ...
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.
11653
11654 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11655
11656 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11657
11658 2016-01-19 Jeff Law <law@redhat.com>
11659
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.
11664
11665 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11666
11667 * doc/lto.texi: Remove text that says only Gold has linker plugin
11668 support.
11669
11670 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11671
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
11679 modified_type_die.
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.
11699
11700 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11701
11702 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11703 flow throughout the file. Fix broken link to Objective-C 2.0
11704 documentation.
11705 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11706 errors.
11707
11708 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11709
11710 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11711
11712 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11713
11714 PR ipa/66223
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.
11719
11720 2016-01-19 Richard Biener <rguenther@suse.de>
11721
11722 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11723 (get_memory_order): Likewise.
11724
11725 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11726
11727 * tree-vect-stmts.c (vectorizable_store): Check
11728 rhs vectype.
11729
11730 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11731
11732 PR jit/68446
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.
11743
11744 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11745
11746 PR target/69135
11747 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11748 attribute to unconditional. Remove %? from output template.
11749
11750 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11751 Jiong Wang <jiong.wang@arm.com>
11752
11753 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11754 generated from different expand order.
11755
11756 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11757
11758 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11759 Add support for CCMP costing.
11760
11761 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11762
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.
11767 (fcmpe): Likewise.
11768 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
11769 (aarch64_gen_ccmp_next): Add FP support.
11770
11771 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11772
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.
11799
11800 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11801
11802 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11803 instrumented_version.
11804
11805 2016-01-19 Richard Biener <rguenther@suse.de>
11806
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.
11811
11812 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11813
11814 PR debug/65779
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.
11824
11825 2016-01-19 Richard Biener <rguenther@suse.de>
11826
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.
11831
11832 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
11833
11834 * ira.c (ira): Update regstat data if we deleted insns.
11835
11836 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11837
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.
11843
11844 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11845
11846 PR lto/69133
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
11850 check.
11851
11852 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11853
11854 * lto-streamer-out.c (lto_output): Do not stream instrumentation
11855 thunks.
11856
11857 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11858
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.
11861
11862 2016-01-19 Martin Jambor <mjambor@suse.cz>
11863 Martin Liska <mliska@suse.cz>
11864 Michael Matz <matz@suse.de>
11865
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
11922 constructs.
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.
11989 * hsa.c: Likewise.
11990 * hsa.h: Likewise.
11991 * toplev.c (compile_file): Call hsa_output_brig.
11992 * hsa-regalloc.c: New file.
11993
11994 2016-01-18 Jeff Law <law@redhat.com>
11995
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.
12001
12002 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12003 test.
12004
12005 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
12006
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
12014 new section.
12015 (Developer Options): New section incorporating moved options.
12016 * doc/cppopts.texi (-dM): Update cross-reference.
12017
12018 2016-01-18 Richard Henderson <rth@redhat.com>
12019
12020 PR target/69176
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.
12032
12033 2016-01-18 Richard Biener <rguenther@suse.de>
12034
12035 PR tree-optimization/69297
12036 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12037 stmt at most once.
12038 (vect_bb_vectorization_profitable_p): Clear visited flag again.
12039
12040 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
12041
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
12052 valid type of VAL.
12053
12054 2016-01-18 Joseph Myers <joseph@codesourcery.com>
12055
12056 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12057 !TARGET_OCTEON.
12058
12059 2016-01-18 Richard Biener <rguenther@suse.de>
12060
12061 PR middle-end/69308
12062 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12063
12064 2016-01-18 Tom de Vries <tom@codesourcery.com>
12065
12066 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12067
12068 2016-01-18 Tom de Vries <tom@codesourcery.com>
12069
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.
12088
12089 2016-01-18 Tom de Vries <tom@codesourcery.com>
12090
12091 * tree-parloops.c (pass_parallelize_loops::execute): Allow
12092 pass_parallelize_loops to be run outside the loop pipeline.
12093
12094 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12095
12096 * tree-scalar-evolution.c (follow_copies_to_constant): New.
12097 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
12098
12099 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12100
12101 PR target/63679
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.
12106
12107 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12108
12109 PR target/63679
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.
12122
12123 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
12124
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.
12129
12130 2016-01-18 Richard Biener <rguenther@suse.de>
12131
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.
12135
12136 2016-01-18 Jakub Jelinek <jakub@redhat.com>
12137
12138 * haifa-sched.c (autopref_multipass_init): Work around
12139 -Wmaybe-uninitialized warning.
12140
12141 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
12142
12143 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
12144 against the constant 0.
12145
12146 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12147
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.
12156
12157 2016-01-17 Jakub Jelinek <jakub@redhat.com>
12158
12159 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
12160 -Wmaybe-uninitialized warning.
12161
12162 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
12163
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.
12174
12175 2016-01-16 Tom de Vries <tom@codesourcery.com>
12176
12177 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
12178
12179 2016-01-16 Tom de Vries <tom@codesourcery.com>
12180
12181 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
12182
12183 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
12184
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.
12189
12190 2016-01-15 David Malcolm <dmalcolm@redhat.com>
12191
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.
12196
12197 2016-01-15 Jeff Law <law@redhat.com>
12198
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.
12206
12207 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
12208
12209 PR rtl-optimization/69030
12210 * lra-spills.c (remove_pseudos): Check nrefs and make the function
12211 returning bool.
12212 (spill_pseudos): Delete debug insn for dead pseudo.
12213 (lra_spill): Initiate spill_hard_reg and slots memory separately.
12214
12215 2016-01-15 Jiong Wang <jiong.wang@arm.com>
12216
12217 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
12218 New.
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
12245 conversion.
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.
12268
12269 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12270
12271 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
12272 CSEL of zero_extended registers.
12273
12274 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12275
12276 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12277 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
12278
12279 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12280
12281 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
12282 false when argument string is not found in the attributes table
12283 at all.
12284
12285 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
12286
12287 PR target/68609
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.
12292
12293 2016-01-15 Richard Biener <rguenther@suse.de>
12294
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.
12306
12307 2016-01-15 Richard Biener <rguenther@suse.de>
12308
12309 PR debug/69137
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
12314 if necessary.
12315
12316 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
12317
12318 * gimplify.c (oacc_default_clause): Decode reference and pointer
12319 types for both kernels and parallel regions.
12320
12321 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
12322
12323 PR middle-end/69246
12324 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12325
12326 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12327
12328 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12329 (convert_scalars_to_vector): Likewise.
12330
12331 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
12332
12333 * doc/extend.texi (Type Traits): Fix grammar.
12334
12335 2016-01-15 Martin Jambor <mjambor@suse.cz>
12336
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
12344 padding.
12345
12346 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12347
12348 * config/s390/s390.opt (mmvcle): More verbose help text.
12349
12350 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12351
12352 * config/s390/s390.opt: Add period to -mzvector option text.
12353
12354 2016-01-15 Richard Biener <rguenther@suse.de>
12355
12356 PR tree-optimization/68961
12357 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12358 of invariants in stores again.
12359
12360 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
12361
12362 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12363
12364 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12365
12366 * config/i386/i386.c (ix86_expand_branch): Don't split
12367 DI mode xor instruction to SI mode.
12368
12369 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12370
12371 PR ipa/68148
12372 * ipa-icf.c (sem_function::merge): Virtual functions may become
12373 reachable even if they address is not taken and there are no
12374 idrect calls.
12375
12376 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12377
12378 * lto-streamer-out.c (subtract_estimated_size): New function.
12379 (get_symbol_initial_value): Use it.
12380
12381 2016-01-15 Christian Bruel <christian.bruel@st.com>
12382
12383 PR target/65837
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.
12395
12396 2016-01-15 Richard Biener <rguenther@suse.de>
12397
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.
12403
12404 2016-01-14 Jeff Law <law@redhat.com>
12405
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.
12411
12412 2016-01-14 Richard Henderson <rth@redhat.com>
12413
12414 PR rtl-opt/69014
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.
12419
12420 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12421
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.
12427
12428 2016-01-14 Jeff Law <law@redhat.com>
12429
12430 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12431 typo.
12432
12433 2016-01-14 Richard Henderson <rth@redhat.com>
12434
12435 PR c/69272
12436 PR tree-opt/68964
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.
12440
12441 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12442
12443 * doc/loop.texi (Loop Analysis and Representation): Document
12444 loop_depth function.
12445
12446 2016-01-14 Tom de Vries <tom@codesourcery.com>
12447
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.
12453
12454 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12455
12456 PR debug/69244
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.
12461
12462 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12463
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.
12475
12476 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12477
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.
12484
12485 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12486
12487 * alias.c (compare_base_symbol_refs): New function.
12488 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12489 it.
12490
12491 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12492
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.
12506
12507 2016-01-14 Richard Biener <rguenther@suse.de>
12508
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.
12513
12514 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12515
12516 PR target/68269
12517 * combine.c (expand_field_assignment): Punt if compute_mode is
12518 unsupported scalar mode.
12519
12520 2016-01-14 Richard Biener <rguenther@suse.de>
12521
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.
12526
12527 2016-01-14 Jeff Law <law@redhat.com>
12528
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.
12533
12534 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12535
12536 PR ipa/66487
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.
12540
12541 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12542
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.
12546 Update references.
12547
12548 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12549
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.
12553
12554 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12555
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.
12559
12560 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12561
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.
12566
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.
12572
12573 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12574 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12575 functions
12576 (RS6000_BTM_COMMON): Likewise.
12577
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.
12590
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.
12594
12595 * doc/extend.texi (PowerPC Built-in Functions): Document
12596 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12597
12598 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12599
12600 PR c/66208
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.
12608
12609 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12610
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.
12617
12618 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12619
12620 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12621 effects.
12622
12623 2016-01-13 Richard Henderson <rth@redhat.com>
12624
12625 PR tree-opt/68964
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.
12634
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
12640 via target hook.
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.
12648
12649 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12650
12651 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12652 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12653
12654 2016-01-13 Tom de Vries <tom@codesourcery.com>
12655
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.
12661
12662 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12663
12664 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12665 and "armv8.1-a+crc" entries.
12666
12667 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12668
12669 PR target/69228
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.
12682
12683 2016-01-13 Richard Biener <rguenther@suse.de>
12684
12685 PR tree-optimization/69013
12686 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12687 Exchange assert for a test.
12688
12689 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12690
12691 PR target/69247
12692 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12693
12694 2016-01-13 Richard Biener <rguenther@suse.de>
12695
12696 PR tree-optimization/69242
12697 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12698 assert with a check.
12699
12700 2016-01-13 Richard Biener <rguenther@suse.de>
12701
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.
12705
12706 2016-01-12 Jeff Law <law@redhat.com>
12707
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
12715 needed.
12716
12717 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12718
12719 * doc/invoke.texi (Spec Files): Move section down in file, past
12720 all command-line option descriptions.
12721
12722 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12723
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.
12730
12731 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12732
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.
12738
12739 2016-01-12 Jeff Law <law@redhat.com>
12740
12741 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12742
12743 2016-01-12 Olivier Hainque <hainque@adacore.com>
12744
12745 * gcc.c (spec_undefvar_allowed): New global.
12746 (process_command): Set to true when running for --version or --help,
12747 alone or together.
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
12750 a fatal error.
12751
12752 2016-01-12 Bin Cheng <bin.cheng@arm.com>
12753
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".
12757
12758 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12759
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.
12764
12765 2016-01-12 Christian Bruel <christian.bruel@st.com>
12766
12767 PR target/69180
12768 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
12769 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
12770
12771 2016-01-12 Jakub Jelinek <jakub@redhat.com>
12772
12773 PR target/69198
12774 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
12775 aligned_mem is properly set for AVX512-VL floating point masked
12776 stores.
12777
12778 PR target/69175
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.
12781
12782 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
12783
12784 PR target/68456
12785 PR target/69226
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.
12791
12792 2016-01-12 Richard Biener <rguenther@suse.de>
12793
12794 PR tree-optimization/69053
12795 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
12796 convert initial value for cond reductions.
12797
12798 2016-01-12 Richard Biener <rguenther@suse.de>
12799
12800 PR tree-optimization/69007
12801 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
12802 widen_sum after dot_prod and sad.
12803
12804 2016-01-12 Richard Biener <rguenther@suse.de>
12805
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.
12811
12812 2016-01-12 Richard Biener <rguenther@suse.de>
12813
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.
12825
12826 2016-01-12 Richard Biener <rguenther@suse.de>
12827
12828 PR tree-optimization/69174
12829 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
12830 space.
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.
12834
12835 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
12836
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
12856
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.
12868
12869 * config/i386/djgpp.c: New file. Add implementation of
12870 i386_djgpp_asm_named_section.
12871
12872 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
12873
12874 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
12875 Add rule for building djgpp.o.
12876
12877 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12878
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.
12882
12883 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
12884
12885 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
12886 reloads for other unsupported memory operands.
12887
12888 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12889 Jim Wilson <jim.wilson@linaro.org>
12890
12891 PR target/69194
12892 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
12893 copy_to_mode_reg instead of force_reg.
12894
12895 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12896
12897 PR target/69225
12898 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
12899 TARGET_80387 is true.
12900
12901 2016-01-11 Jakub Jelinek <jakub@redhat.com>
12902
12903 PR target/69071
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.
12908
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.
12914
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.
12918 Formatting fix.
12919
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.
12925
12926 2016-01-11 Richard Biener <rguenther@suse.de>
12927
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.
12931
12932 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
12933
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.
12939
12940 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12941
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.
12947
12948 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12949
12950 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
12951 (<avx512>_store<mode>_mask): Likewise.
12952
12953 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
12954 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12955
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.
12964
12965 2016-01-11 Tom de Vries <tom@codesourcery.com>
12966
12967 PR tree-optimization/69069
12968 * tree-parloops.c (create_parallel_loop): Add missing phi args.
12969
12970 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
12971
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
12980 RTL if-conversion.
12981 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
12982 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
12983 conditionl moves.
12984
12985 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
12986
12987 PR bootstrap/69123
12988 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
12989 onepart vars. Fix typo in comment. Fix reversed condition in
12990 unshare test.
12991 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
12992
12993 PR bootstrap/69123
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.
12998
12999 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
13000
13001 PR target/69010
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.
13007
13008 2016-01-11 Martin Jambor <mjambor@suse.cz>
13009
13010 PR ipa/69044
13011 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13012 useless parameters if we cannot change function signature.
13013
13014 2016-01-11 Martin Jambor <mjambor@suse.cz>
13015
13016 PR ipa/66616
13017 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13018 flag.
13019
13020 2016-01-11 Tom de Vries <tom@codesourcery.com>
13021
13022 PR tree-optimization/69109
13023 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13024 latch with phi.
13025
13026 2016-01-11 Tom de Vries <tom@codesourcery.com>
13027
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.
13031
13032 2016-01-11 Yury Gribov <y.gribov@samsung.com>
13033
13034 PR 67425
13035 * common.opt (frandom-seed): Fix parameter name.
13036 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13037
13038 2016-01-11 Tom de Vries <tom@codesourcery.com>
13039
13040 PR tree-optimization/69058
13041 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13042 not supported.
13043
13044 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
13045
13046 * config/arc/arc.opt (mdiv-rem): Add period to the end.
13047 (mcode-density): Likewise.
13048
13049 2016-01-10 Tom de Vries <tom@codesourcery.com>
13050
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
13054 arg.
13055
13056 2016-01-10 Tom de Vries <tom@codesourcery.com>
13057
13058 PR tree-optimization/69039
13059 * tree-parloops.c (try_create_reduction_list): Only allow single exit
13060 phi for reduction.
13061
13062 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
13063
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.
13067
13068 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
13069
13070 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13071 use GMPINC.
13072 * configure: Regenerate.
13073
13074 2016-01-09 Jakub Jelinek <jakub@redhat.com>
13075
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.
13089
13090 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
13091
13092 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
13093 w/o DECL_NAME.
13094
13095 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13096
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
13100 ops[0] comparison.
13101 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
13102
13103 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13104 Richard Biener <rguenther@suse.de>
13105
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.
13109
13110 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
13111
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.
13116
13117 2016-01-08 Jason Merrill <jason@redhat.com>
13118
13119 PR c++/68983
13120 PR c++/67557
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.
13126
13127 2016-01-08 Olivier Hainque <hainque@adacore.com>
13128
13129 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
13130 libc_internal.
13131
13132 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13133
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.
13140
13141 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13142
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.
13150
13151 PR tree-optimization/69172
13152 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
13153 gimple_build.
13154
13155 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
13156
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.
13162
13163 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13164
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.
13170
13171 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
13172
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.
13179
13180 2016-01-07 Martin Sebor <msebor@redhat.com>
13181
13182 PR c/68966
13183 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
13184 constraint on the type of arguments.
13185
13186 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
13187
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.
13193
13194 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13195
13196 PR target/69140
13197 * config/i386/i386.c (ix86_frame_pointer_required): Enable
13198 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
13199
13200 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13201
13202 Revert
13203 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13204
13205 PR target/69140
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.
13209
13210 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
13211
13212 PR 1078
13213 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
13214
13215 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
13216
13217 PR target/69171
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):
13221 Likewise.
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
13230 predicate.
13231
13232 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
13233
13234 PR middle-end/67639
13235 * varasm.c (make_decl_rtl): Mark invalid register vars as
13236 DECL_EXTERNAL.
13237
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.
13241
13242 2016-01-07 Jakub Jelinek <jakub@redhat.com>
13243
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 ().
13249
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.
13253
13254 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
13255
13256 * config/mips/mips-ftypes.def: Sort to lexicographical order.
13257
13258 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13259
13260 PR target/69140
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.
13264
13265 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13266
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.
13276
13277 2016-01-06 Marek Polacek <polacek@redhat.com>
13278
13279 PR sanitizer/69099
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.
13285
13286 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13287
13288 PR 1078
13289 * doc/extend.texi (RL78 Variable Attributes): New section.
13290
13291 2016-01-05 Marek Polacek <polacek@redhat.com>
13292
13293 PR c/69104
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.
13300
13301 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13302
13303 PR target/68991
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
13308 vector_operand.
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.
13316
13317 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13318
13319 PR target/68991
13320 * config/i386/constraints.md (Bm): New constraint.
13321 * config/i386/predicates.md (vector_memory_operand): New
13322 predicate.
13323 * config/i386/sse.md: Replace xm with xBm in plusminus and
13324 any_logic patterns.
13325
13326 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13327
13328 PR 1078
13329 * doc/extend.texi (V850 Function Attributes): New section.
13330 (V850 Variable Attributes): New section.
13331
13332 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13333
13334 PR 1078
13335 * doc/extend.texi (MicroBlaze Function Attributes): Document
13336 interrupt_handler and fast_interrupt attributes.
13337
13338 2016-01-05 Sergei Trofimovich <siarheit@google.com>
13339
13340 PR other/60465
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
13344 predicate.
13345
13346 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13347
13348 PR rtl-optimization/68651
13349 * combine.c (combine_simplify_rtx): Canonicalize x + x into
13350 x << 1.
13351
13352 2016-01-05 Nathan Sidwell <nathan@acm.org>
13353
13354 * alias.c (compare_base_decls): Use symtab_node::get.
13355
13356 2016-01-05 Nick Clifton <nickc@redhat.com>
13357
13358 PR target/68770
13359 * ira-costs.c (copy_cost): Initialise the t_icode field of the
13360 secondary_reload_info structure.
13361
13362 PR target/66655
13363 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13364 decls if weak support is available.
13365
13366 2016-01-04 Martin Sebor <msebor@redhat.com>
13367
13368 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13369
13370 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13371
13372 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13373 OPTION_MASK_P9_DFORM.
13374
13375 * config/rs6000/constraints.md (wo constraint): New constraint for
13376 ISA 3.0 (power9).
13377
13378 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13379 for wo constraint.
13380 (rs6000_init_hard_regno_mode_ok): Likewise.
13381
13382 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13383 wo constraint.
13384
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.
13394
13395 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13396
13397 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13398
13399 Update copyright years.
13400
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.
13413
13414 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13415
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.
13418
13419 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13420
13421 PR target/69100
13422 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13423 mode for %f0-%f31 only if TARGET_FPU.
13424
13425 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13426
13427 PR target/69072
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.
13431
13432 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13433
13434 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13435 option for arm*-*-* targets.
13436
13437 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13438
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
13445 attribute docs.
13446
13447 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13448
13449 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13450 -finite-math typo.
13451 (x86 Options): Likewise.
13452
13453 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13454
13455 PR 1078
13456
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.
13460
13461 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13462
13463 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13464 to correct alphabetization of table. Copy-edit and correct
13465 markup.
13466 <stack_protect>: Likewise.
13467 <target_clones>: Likewise.
13468 <simd>: Likewise.
13469 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13470 Correct punctuation.
13471 (Code Gen Options) <-fno-plt>: Copy-edit.
13472
13473 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13474
13475 PR target/68917
13476 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13477 SI values. Explicitly convert SI to DI and vice-versa.
13478
13479 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13480
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.
13484
13485 PR sanitizer/69055
13486 * ubsan.c (ubsan_instrument_float_cast): Call
13487 initialize_sanitizer_builtins.
13488
13489 PR target/69015
13490 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13491 \f
13492 Copyright (C) 2016 Free Software Foundation, Inc.
13493
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.