1 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3 * config/arm/arm.md (probe_stack): Add modes to set source
6 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
8 * regrename.c (base_reg_class_for_rename): New static function.
9 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
11 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
13 * cgraph.c (thunk_adjust): Export.
14 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
15 * cgraphunit.c (thunk_adjust): Export.
16 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
18 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
20 * tree-inline.c (expand_call_inline): Expand thunks inline.
22 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
25 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
26 (*sse2_vd_cvtss2sd): Ditto.
28 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
29 Generate *sse2_vd_cvtsd2ss pattern.
30 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
31 Generate *sse2_vd_cvtss2sd pattern.
33 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
35 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
36 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
39 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
41 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
42 * config/sh/sh.c: Define and declare variables on first use throughout
44 (current_function_interrupt): Change to bool type.
45 (frame_insn): Rename to emit_frame_insn and update users.
46 (push_regs): Use bool for 'interrupt_handler' argument.
47 (save_schedule_s): Remove.
48 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
49 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
50 targetm.asm_out.unaligned_op.di.
51 (gen_far_branch): Remove redundant forward declaration.
52 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
53 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
54 (sh_set_return_address, sh_function_ok_for_sibcall,
55 scavenge_reg): Update comments.
56 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
57 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
58 (sh_attr_renesas_p): Remove unnecessary parentheses.
59 (branch_dest): Simplify.
60 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
61 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
62 (CUMULATIVE_ARGS): Change macro to typedef.
63 (current_function_interrupt): Change to bool type.
64 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
65 Surround with __cplusplus ifdef.
66 (sh_compare_op0, sh_compare_op1): Remove.
67 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
69 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
71 * config/arm/arm.md: (arch): Add neon.
72 (arch_enabled): Return yes for arch neon when TARGET_NEON.
73 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
74 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
75 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
76 attributes for alt renumbering. Mark alt 3 as non-predicable.
77 (thumb2_movdf_vfp): Likewise.
79 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
81 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
82 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
83 (*andqi_1): Add preferred_for_speed attribute to disparage
84 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
86 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
87 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
89 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
90 Add preferred_for_size attribute to disparage alternative 0 and
91 preferred_for_speed attribute to disparage alternative 1 for
92 TARGET_PARTIAL_REG_STALL targets.
94 2016-05-07 Tom de Vries <tom@codesourcery.com>
96 PR tree-optimization/70956
97 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
100 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
102 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
103 * config/sh/sh.c (sh_cbranch_distance): Implement it.
104 * config/sh/sh.md (branch_zero): Remove define_attr.
105 (define_delay): Disable delay slot if branch distance is one insn.
107 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
109 * config/i386/i386.md (LEAMODE): New mode attribute.
110 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
111 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
112 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
114 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
115 (*lea<mode>_general_3): Ditto.
116 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
118 2016-05-06 Jakub Jelinek <jakub@redhat.com>
120 * genmddump.c (main): Convert argv from char ** to const char **.
122 2016-05-06 David Malcolm <dmalcolm@redhat.com>
124 * coretypes.h (OVERRIDE): New macro.
127 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
129 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
130 allow coalescing if the types are compatible.
132 2016-05-06 David Malcolm <dmalcolm@redhat.com>
134 * pass_manager.h (pass_manager::register_pass_name): New method.
135 (pass_manager::get_pass_by_name): New method.
136 (pass_manager::create_pass_tab): New method.
137 (pass_manager::m_name_to_pass_map): New field.
138 * passes.c (name_to_pass_map): Delete global in favor of field
139 "m_name_to_pass_map" of pass_manager.
140 (register_pass_name): Rename from a function to...
141 (pass_manager::register_pass_name): ...this method, updating
142 for renaming of global "name_to_pass_map" to field
143 "m_name_to_pass_map".
144 (create_pass_tab): Rename from a function to...
145 (pass_manager::create_pass_tab): ...this method, updating
146 for renaming of global "name_to_pass_map" to field.
147 (get_pass_by_name): Rename from a function to...
148 (pass_manager::get_pass_by_name): ...this method.
149 (enable_disable_pass): Convert use of get_pass_by_name to
150 a method call, locating the pass_manager singleton.
152 2016-05-06 David Malcolm <dmalcolm@redhat.com>
154 * genattr-common.c (main): Convert argv from char ** to const char **.
155 * genattr.c (main): Likewise.
156 * genattrtab.c (main): Likewise.
157 * genautomata.c (initiate_automaton_gen): Likewise.
159 * gencodes.c (main): Likewise.
160 * genconditions.c (main): Likewise.
161 * genconfig.c (main): Likewise.
162 * genconstants.c (main): Likewise.
163 * genemit.c (main): Likewise.
164 * genenums.c (main): Likewise.
165 * genextract.c (main): Likewise.
166 * genflags.c (main): Likewise.
167 * genmddeps.c (main): Likewise.
168 * genopinit.c (main): Likewise.
169 * genoutput.c (main): Likewise.
170 * genpeep.c (main): Likewise.
171 * genpreds.c (main): Likewise.
172 * genrecog.c (main): Likewise.
173 * gensupport.c (init_rtx_reader_args_cb): Likewise.
174 (init_rtx_reader_args): Likewise.
175 * gensupport.h (init_rtx_reader_args_cb): Likewise.
176 (init_rtx_reader_args): Likewise.
177 * gentarget-def.c (main): Likewise.
178 * read-md.c (read_md_files): Likewise.
179 * read-md.h (read_md_files): Likewise.
181 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
183 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
184 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
185 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
186 Remove unused predicate.
187 (register_and_not_fp_reg_operand): Ditto.
189 2016-05-06 Martin Liska <mliska@suse.cz>
191 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
192 instead of vec as the vector is local to the function.
194 2016-05-06 Jakub Jelinek <jakub@redhat.com>
196 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
197 avx512bw alternative.
199 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
200 before the ashr<mode>3 pattern.
202 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
203 v instead of x in vex or maybe_vex alternatives, use
204 maybe_evex instead of vex in prefix.
206 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
207 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
208 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
209 in vex or maybe_vex alternatives, use maybe_evex instead of vex
212 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
213 v instead of x in vex or maybe_vex alternatives, use
214 maybe_evex instead of vex in prefix.
216 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
217 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
218 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
219 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
220 alternatives, use maybe_evex instead of vex in prefix.
222 * config/i386/sse.md (vec_interleave_lowv4sf,
223 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
224 v instead of x in vex or maybe_vex alternatives, use
225 maybe_evex instead of vex in prefix.
227 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
228 v instead of x in vex or maybe_vex alternatives, use
229 maybe_evex instead of vex in prefix.
231 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
232 v constraint instead of x.
234 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
236 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
237 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
240 2016-05-06 Richard Biener <rguenther@suse.de>
242 PR tree-optimization/70948
243 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
244 Properly clobber all fields of va_list for __builtin_va_start.
246 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
249 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
250 loop latch destination.
252 2016-05-06 Martin Liska <mliska@suse.cz>
254 * tree-ssa-uninit.c: Apply manual changes
255 to the GNU coding style.
256 (prune_uninit_phi_opnds): Rename from
257 prune_uninit_phi_opnds_in_unrealizable_paths.
259 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
261 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
262 mspace): Remove deprecated options.
263 * doc/invoke.texi (SH options): Remove -mspace.
265 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
267 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
269 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
271 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
272 corresponding combine split pattern.
274 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
277 * config/sh/predicates.md (long_displacement_mem_operand): New.
278 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
279 Add movi20, movi20s alternatives. Adjust length attribute for
281 (movsi_ie): Allow for any FPU. Adjust length attribute for
283 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
284 attribute for alternatives.
285 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
286 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
287 length attribute for alternatives.
289 2016-05-06 Richard Biener <rguenther@suse.de>
291 PR tree-optimization/70960
292 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
294 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
297 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
298 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
300 2016-05-06 Marek Polacek <polacek@redhat.com>
303 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
305 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
308 * config/sh/sh.md (*rotcr): Add another variant.
310 2016-05-06 Richard Biener <rguenther@suse.de>
313 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
315 2016-05-06 Richard Biener <rguenther@suse.de>
318 * fold-const.c (split_tree): Always convert to the original type
321 2016-05-06 Richard Biener <rguenther@suse.de>
323 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
324 (fwprop_addr): Likewise.
326 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
329 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
331 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
332 * config/i386/i386.md (push mem splitter): Use find_constant_src in
333 the splitter condition.
334 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
335 the splitter condition.
336 (FP float_extend load splitter): Ditto.
338 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
340 * config/i386/i386.md (peehole2 patterns): Change true_regnum
341 to REGNO in all peephole2 patterns.
342 (post-reload splitters): Change true_regnum to REGNO in
343 post-reload splitters.
344 (zero_extend splitters): Use general_reg_operand and
345 nonimmediate_gr_operand predicates.
347 2016-05-05 Jakub Jelinek <jakub@redhat.com>
349 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
350 v constraint instead of x.
352 2016-05-05 Alan Modra <amodra@gmail.com>
355 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
356 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
357 TARGET_NO_FP_IN_TOC for -mrelocatable.
358 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
359 TARGET_RELOCATABLE test.
360 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
361 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
362 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
363 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
364 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
365 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
366 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
367 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
368 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
369 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
371 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
372 (rs6000_stack_info): Likewise.
373 (rs6000_elf_asm_out_constructor): Likewise.
374 (rs6000_elf_asm_out_destructor): Likewise.
375 (rs6000_elf_declare_function_name): Likewise.
376 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
377 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
380 2016-05-05 Alan Modra <amodra@gmail.com>
382 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
384 2016-05-05 Alan Modra <amodra@gmail.com>
386 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
387 out-of-line gpr restore for one or two regs if that would add
390 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
393 * config/i386/i386.md
394 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
395 Change to post-epilogue_completed late splitter. Use sse_reg_operand
396 as operand 0 predicate.
397 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
399 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
400 Ditto. Emit the pattern using RTX.
402 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
403 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
404 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
405 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
407 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
408 sse_reg_operand as operand 0 predicate.
410 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
411 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
412 instead of gen_rtx_REG.
413 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
416 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
418 * function.c (emit_use_return_register_into_block): Delete.
419 (gen_return_pattern): Delete.
420 (emit_return_into_block): Delete.
421 (active_insn_between): Delete.
422 (convert_jumps_to_returns): Delete.
423 (emit_return_for_exit): Delete.
424 (thread_prologue_and_epilogue_insns): Delete all code dealing with
425 simple_return for shrink-wrapped blocks.
426 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
427 end of blocks that need one.
428 (get_unconverted_simple_return): Delete.
429 (convert_to_simple_return): Delete.
430 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
431 (convert_to_simple_return): Ditto.
433 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
435 * cfgcleanup.c (bb_is_just_return): New function.
436 (try_optimize_cfg): Simplify jumps to return, branches to return,
437 and branches around return.
439 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
441 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
444 2016-05-04 Jakub Jelinek <jakub@redhat.com>
448 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
449 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
450 assert flags & OEP_HASH_CHECK, instead of asserting it
451 never happens. Handle TARGET_EXPR.
452 * fold-const.c (operand_equal_p): For hash verification,
453 or in OEP_HASH_CHECK into flags.
455 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
457 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
459 (compute_samebase_partition_bases): Fix typo.
461 2016-05-04 Jakub Jelinek <jakub@redhat.com>
463 * config/i386/sse.md (vec_interleave_highv8sf,
464 vec_interleave_lowv8sf, vec_interleave_highv4df,
465 vec_interleave_lowv4df): Remove constraints from expanders.
467 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
469 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
471 * tree-inline.c (expand_call_inline): Fix path dealing with
472 making lhs of call statement undefined.
474 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
476 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
477 Check availability on NODE, too.
478 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
479 (cgraph_node::call_for_symbol_and_aliases): Likewise.
480 (varpool_node::call_for_symbol_and_aliase): Likewise.
481 * ipa-pure-const.c (add_new_function): Analyze all bodies.
482 (propagate_pure_const): Propagate across interposable functions, too.
483 (skip_function_for_local_pure_const): Do not skip interposable bodies
485 (pass_local_pure_const::execute): Update.
487 2016-05-04 Marek Polacek <polacek@redhat.com>
489 * doc/invoke.texi: Document -Wdangling-else.
491 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
493 * config.gcc: Error out when conflicting multilib is detected. Do not
494 loop over multilibs since no combination is legal.
496 2016-05-04 Alan Modra <amodra@gmail.com>
498 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
499 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
500 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
503 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
505 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
506 Clean up p5600 comments.
508 2016-05-04 Richard Biener <rguenther@suse.de>
510 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
511 constructor simplifications.
512 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
514 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
516 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
517 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
518 result.set_rtx is null instead of aborting.
519 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
521 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
522 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
523 *mov<mode>_store_postinc): New patterns.
525 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
527 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
528 as commutative. Check both conversions are NOP.
529 ((A & B) OP (C & B)): Remove.
531 2016-05-04 Alan Modra <amodra@gmail.com>
533 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
535 2016-05-04 Alan Modra <amodra@gmail.com>
538 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
539 when cr2,3,4 are all fixed regs.
541 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
543 PR rtl-optimization/57193
544 * opts.c (default_options_table): Revert OPT_frename_registers change.
545 * doc/invoke.texi (-frename-registers, -O2): Likewise.
547 2016-05-03 Martin Sebor <msebor@redhat.com>
550 * builtins.c (fold_builtin_FILE): New function.
551 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
552 (fold_builtin_0): Call them.
553 * gimplify.c (gimplify_call_expr): Remove the handling of
554 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
557 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
558 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
562 * doc/extend.texi (Function Names as Strings): Update __func__,
563 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
566 2016-05-03 Jakub Jelinek <jakub@redhat.com>
567 Richard Biener <rguenther@suse.de>
569 PR tree-optimization/70916
570 * tree-if-conv.c: Include cfganal.h.
571 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
572 and remove_fake_exit_edges around the optimization pass.
574 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
576 * cgraph.c (symbol_table::create_edge): Set inline_failed.
577 (cgraph_edge::make_direct): Likewise.
578 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
579 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
580 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
581 (CIF_THUNK): New code.
582 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
583 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
584 (compute_inline_parameters): Set inline_failed for thunks.
585 (inline_analyze_function): Cleanup.
586 * ipa-inline.c (can_inline_edge_p): Do not deal with
587 call_stmt_cannot_inline_p.
588 (can_early_inline_edge_p): Likewise.
589 (early_inliner): Initialize inline_failed.
590 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
592 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
594 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
595 from nonimm_ssenomem_operand.
596 (nonimm_ssenomem_operand): New predicate.
597 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
598 as operand 0 predicate.
599 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
600 Disable unsupported alternatives using "enabled" attribute.
601 Use register_ssemem_operand as operand 0 predicate.
602 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
604 2016-05-03 Marek Polacek <polacek@redhat.com>
607 * input.c (expansion_point_location): New function.
608 * input.h (expansion_point_location): Declare.
610 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
612 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
613 occurence with frame_offset_ ones.
615 2016-05-03 Alan Modra <amodra@gmail.com>
617 PR rtl-optimization/70890
618 * ira.c (combine_and_move_insns): When moving def_insn, remove
621 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
623 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
624 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
625 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
626 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
628 2016-05-03 Alan Modra <amodra@gmail.com>
630 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
631 for SAVE_MULTIPLE/STORE_MULTIPLE.
633 2016-05-03 Jakub Jelinek <jakub@redhat.com>
635 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
636 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
638 2016-05-03 Richard Biener <rguenther@suse.de>
640 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
642 (gimplify_arg): Likewise.
643 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
644 re-writing the result to a decl if required.
645 (internal_get_tmp_var): Add allow_ssa parameter
646 and override into_ssa with it.
647 (get_formal_tmp_var): Adjust.
648 (get_initialized_tmp_var): Add allow_ssa parameter.
649 (gimplify_arg): Add allow_ssa parameter and avoid generating
650 SSA names for the result false.
651 (gimplify_call_expr): If the call may return twice do not
652 gimplify parameters into SSA.
653 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
654 (gimplify_modify_expr): Adjust assert. For noreturn calls
655 with a SSA name LHS adjust its def.
656 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
657 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
658 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
659 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
660 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
661 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
662 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
663 (optimize_target_teams): Do not allow SSA names for clause operands.
664 (gimplify_expr): Likewise for where we mark the result addressable.
665 * passes.def (pass_init_datastructures): Remove.
666 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
667 (rewrite_stmt): Likewise.
668 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
669 (replace_locals_op): Replace SSA names.
670 (copy_gimple_seq_and_replace_locals): Init src_cfun.
671 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
672 * cgraph.c (release_function_body): Free CFG annotations only
673 when we have a CFG. Simplify.
674 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
675 force_gimple_operand instead of get_initialized_tmp_var.
676 * tree-pass.h (make_pass_init_datastructures): Remove.
677 * tree-ssa.c (execute_init_datastructures): Remove.
678 (pass_data_init_datastructures): Likewise.
679 (class pass_init_datastructures): Likewise.
680 (make_pass_init_datastructures): Likewise.
681 * omp-low.c (create_omp_child_function): Init SSA data structures.
682 (grid_expand_target_grid_body): Likewise.
683 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
684 name before adding it to names_to_release.
685 (remove_bb): Always release SSA defs.
686 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
687 before dereferencing it.
688 * cgraphunit.c (init_lowered_empty_function): Always
689 int SSA data structures.
690 * tree-ssanames.c (release_defs): Remove assert that we are in
692 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
694 2016-05-03 Jakub Jelinek <jakub@redhat.com>
695 Uros Bizjak <ubizjak@gmail.com>
697 PR rtl-optimization/70467
698 * config/i386/predicates.md (x86_64_hilo_int_operand,
699 x86_64_hilo_general_operand): New predicates.
700 * config/i386/constraints.md (Wd): New constraint.
701 * config/i386/i386.md (mode attr di): Use Wd instead of e.
702 (general_hilo_operand): New mode attr.
703 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
704 instead of <general_operand>.
705 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
706 x86_64_hilo_general_operand instead of <general_operand>.
708 2016-05-03 Jakub Jelinek <jakub@redhat.com>
710 PR tree-optimization/70916
711 * tree-if-conv.c (constant_or_ssa_name): Removed.
712 (fold_build_cond_expr): Use is_gimple_val instead of
713 constant_or_ssa_name.
715 PR tree-optimization/70916
716 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
717 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
720 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
721 (optimize_atomic_bit_test_and): New function.
722 (pass_fold_builtins::execute): Use it.
723 * optabs.def (atomic_bit_test_and_set_optab,
724 atomic_bit_test_and_complement_optab,
725 atomic_bit_test_and_reset_optab): New optabs.
726 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
727 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
728 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
729 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
730 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
731 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
732 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
733 * doc/md.texi (atomic_bit_test_and_set@var{mode},
734 atomic_bit_test_and_complement@var{mode},
735 atomic_bit_test_and_reset@var{mode}): Document.
736 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
737 atomic_bit_test_and_complement<mode>,
738 atomic_bit_test_and_reset<mode>): New expanders.
739 (atomic_bit_test_and_set<mode>_1,
740 atomic_bit_test_and_complement<mode>_1,
741 atomic_bit_test_and_reset<mode>_1): New insns.
743 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
745 PR rtl-optimization/70687
746 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
747 instead of unsigned HOST_WIDE_INT.
749 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
751 PR rtl-optimization/44281
752 * hard-reg-set.h (struct target_hard_regs): New field
753 x_fixed_nonglobal_reg_set.
754 (fixed_nonglobal_reg_set): New macro.
755 * reginfo.c (init_reg_sets_1): Initialize it.
756 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
758 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
760 2016-05-03 Bin Cheng <bin.cheng@arm.com>
762 PR tree-optimization/56541
763 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
764 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
765 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
766 (any_complicated_phi): new static variable.
767 (aggressive_if_conv): delete.
768 (if_convertible_phi_p): support phis with more than two arguments.
769 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
771 (ifcvt_split_critical_edges): support phis with more than two
772 arguments by checking new parameter. only split critical edges
774 (tree_if_conversion): handle simd pragma marked loop using new
775 local variable aggressive_if_conv. check any_complicated_phi.
777 2016-05-03 Bin Cheng <bin.cheng@arm.com>
779 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
782 2016-05-03 Bin Cheng <bin.cheng@arm.com>
784 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
787 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
789 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
790 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
791 define_insn_and_split.
792 (mulsi3_i): New define_insn_and_split.
793 (mulsi3_call): Convert to define_insn.
794 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
797 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
799 * machmode.h (mode_complex): Add support to give the complex mode
801 (GET_MODE_COMPLEX_MODE): Likewise.
802 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
803 stored by build_complex_type and gfc_build_complex_type instead of
804 trying to figure out the appropriate mode based on the size. Raise
805 an assertion error, if the type was not set.
806 * genmodes.c (struct mode_data): Add field for the complex type of
808 (blank_mode): Likewise.
809 (make_complex_modes): Remember the complex mode created in the
811 (emit_mode_complex): Write out the mode_complex array to map a
812 type mode to the complex version.
813 (emit_insn_modes_c): Likewise.
814 * tree.c (build_complex_type): Set the complex type to use before
816 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
817 support for __float128 complex datatypes.
818 (rs6000_hard_regno_mode_ok): Likewise.
819 (rs6000_setup_reg_addr_masks): Likewise.
820 (rs6000_complex_function_value): Likewise.
821 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
822 __float128 and __ibm128 complex.
823 (FLOAT128_IBM_P): Likewise.
824 (ALTIVEC_ARG_MAX_RETURN): Likewise.
825 * doc/extend.texi (Additional Floating Types): Document that
826 -mfloat128 must be used to enable __float128. Document complex
827 __float128 and __ibm128 support.
829 2016-05-02 Jakub Jelinek <jakub@redhat.com>
832 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
833 char/short arguments promoted to int because of promote_prototypes.
835 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
837 * config/i386/predicates.md (register_ssemem_operand): New predicate.
838 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
839 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
840 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
841 alternatives using "enabled" attribute. Use register_ssemem_operand
842 as operand 1 predicate.
843 (*cmpi<unord>xf_i387): Split XFmode pattern from
844 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
845 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
846 *absneg<mode>2_i387. Disable unsupported alternatives using
848 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
850 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
852 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
854 (oacc_loop_process): Check mask for loop termination.
856 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
858 * cif-code.def (CIF_THUNK): Add.
859 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
862 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
864 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
865 (dump_inline_summary): Dump it.
866 (fp_expression_p): New predicate.
867 (estimate_function_body_sizes): Use it.
868 (inline_merge_summary): Merge fp_expressions.
869 (inline_read_section): Read fp_expressions.
870 (inline_write_summary): Write fp_expressions.
871 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
872 codegen boundary if either caller or callee is !fp_expressions.
873 * ipa-inline.h (inline_summary): Add fp_expressions.
874 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
875 to fp_expressions be sure the fp generation flags are updated.
877 2016-05-02 Jakub Jelinek <jakub@redhat.com>
879 PR rtl-optimization/70467
880 * cse.c (cse_insn): Handle no-op MEM moves after folding.
882 PR rtl-optimization/70467
883 * ipa-pure-const.c (check_call): Handle internal calls even in
884 ipa mode like in local mode.
886 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
888 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
890 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
892 * match.pd (X u< X, X u> X): New transformations.
894 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
896 * flag-types.h (enum warn_strict_overflow_code): Move ...
897 * coretypes.h: ... here.
898 * fold-const.h (fold_overflow_warning): Declare.
899 * fold-const.c (fold_overflow_warning): Make non-static.
900 (fold_comparison): Move the transformation of X +- C1 CMP C2
901 into X CMP C2 -+ C1 ...
902 * match.pd: ... here.
903 * gimple-fold.c (fold_stmt_1): Protect with
904 fold_defer_overflow_warnings.
906 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
908 * omp-low.c (struct oacc_loop): Add 'inner' field.
909 (new_oacc_loop_raw): Initialize it to zero.
910 (oacc_loop_fixed_partitions): Initialize it.
911 (oacc_loop_auto_partitions): Partition outermost loop to outermost
912 available partitioning.
914 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
916 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
918 (umulsidi3): Likewise.
919 (indirect_jump): Fix jump instruction assembly patterns.
921 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
924 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
925 (nvptx_function_value): Assert non-NULL cfun.
927 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
929 PR rtl-optimization/70886
930 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
932 * cselib.h (rtx_equal_for_cselib_1): Declare.
933 (rtx_equal_for_cselib_p: New inline function.
934 * cselib.c (rtx_equal_for_cselib_p): Delete.
935 (rtx_equal_for_cselib_1): Make public.
937 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
939 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
940 (register_mixssei387nonimm_operand): Remove predicate.
941 * config/i386/i386.md (*fop_<mode>_comm): Merge from
942 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
943 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
944 for TARGET_MIX_SSE_I387 alternatives.
945 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
946 Disable unsupported alternatives using "enabled" attribute. Use
947 nonimm_ssenomem_operand as operand 1 predicate. Also check
948 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
950 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
952 * tree.c (cst_and_fits_in_hwi): Simplify.
954 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
956 * tree.h (wi::to_wide): New function.
957 * expr.c (expand_expr_real_1): Use wi::to_wide.
958 * fold-const.c (int_const_binop_1): Likewise.
959 (extract_muldiv_1): Likewise.
961 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
963 * wide-int.h: Update offset_int and widest_int documentation.
964 (WI_SIGNED_SHIFT_RESULT): New macro.
965 (wi::binary_shift): Define signed_shift_result_type for
966 shifts on offset_int- and widest_int-like types.
967 (generic_wide_int): Support <<= and >>= if << and >> are supported.
968 * tree.h (int_bit_position): Use shift operators instead of wi::
970 * alias.c (adjust_offset_for_component_ref): Likewise.
971 * expr.c (get_inner_reference): Likewise.
972 * fold-const.c (fold_comparison): Likewise.
973 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
974 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
975 * tree-dfa.c (get_ref_base_and_extent): Likewise.
976 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
977 (stmt_kills_ref_p): Likewise.
978 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
979 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
980 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
981 (ao_ref_init_from_vn_reference): Likewise.
983 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
985 * wide-int.h: Update offset_int and widest_int documentation.
986 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
987 (wi::binary_traits): Allow ordered comparisons between offset_int and
988 offset_int, between widest_int and widest_int, and between either
989 of these types and basic C types.
990 (operator <, <=, >, >=): Define for the same combinations.
991 * tree.h (tree_int_cst_lt): Use comparison operators instead
993 (tree_int_cst_le): Likewise.
994 * gimple-fold.c (fold_array_ctor_reference): Likewise.
995 (fold_nonarray_ctor_reference): Likewise.
996 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
997 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
998 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
999 * tree-sra.c (completely_scalarize): Likewise.
1000 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
1001 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
1002 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
1003 (check_for_binary_op_overflow): Likewise.
1004 (search_for_addr_array): Likewise.
1005 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
1007 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
1009 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
1010 (arc_save_restore): Likewise.
1011 (arc_dwarf_register_span): Likewise.
1012 (arc_output_pic_addr_const): Initialize suffix variable.
1014 2016-05-02 Martin Liska <mliska@suse.cz>
1016 * symbol-summary.h (function_summary::function_summary):
1017 Remove checking assert for all cgraph nodes.
1018 (function_summary::get): Check summary_uid.
1019 (symtab_insertion): Check summary_uid.
1021 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
1023 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
1024 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
1026 (arc_dwarf_register_span): Remove enum keyword.
1027 (compact_memory_operand_p): New function.
1028 * config/arc/arc.h (reg_class): Add code density register classes.
1029 (REG_CLASS_NAMES): Likewise.
1030 (REG_CLASS_CONTENTS): Likewise.
1031 * config/arc/arc.md (*movqi_insn): Add code density instructions.
1032 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
1033 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
1034 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
1035 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
1037 (h, Rcd, Rsd, Rzd): New register constraints.
1038 (T): Use compact_memory_operand_p function.
1039 * config/arc/predicates.md (compact_load_memory_operand): Remove.
1041 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
1043 * config/sh/sh.md (*negnegt, *movtt): Remove.
1045 2016-05-02 Marek Polacek <polacek@redhat.com>
1046 Tom de Vries <tom@codesourcery.com>
1048 PR tree-optimization/70700
1049 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
1050 bigger than FIRST_REF_NODE.
1052 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
1055 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
1057 (prepare_cbranch_operands): Don't use scratch register. Assume that
1058 function is used when pseudos can be created.
1059 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
1060 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
1061 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
1062 define_expand. Allow it only when pseudos can be created.
1063 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
1065 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
1067 * config/i386/constraints.md (BC): Only allow -1 operands.
1068 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
1069 Add "enabled" attribute. Update XI mode attribute calculation.
1070 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
1071 (*movoi_internal_avx): Update XI mode attribute calculation.
1072 (*movti_internal): Ditto.
1074 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
1076 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
1077 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
1079 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
1081 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
1082 statement on instruction code. Remove trailing spaces.
1083 (altivec_expand_stv_builtin): Likewise.
1085 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
1087 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
1088 (TARGET_FPU_DOUBLE): Simplify.
1089 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
1090 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
1091 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
1092 with 'TARGET_FPU_DOUBLE'.
1093 * config/sh/sh.md: Likewise.
1095 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
1097 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
1098 SH_DIV_STR_FOR_SIZE): Remove.
1099 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
1100 SH_DIV_STR_FOR_SIZE): Remove.
1102 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
1104 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
1105 logical_reg_operand): Delete.
1106 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
1107 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
1108 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
1109 match_operand and match_test.
1110 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
1111 variables on their first use. Return bool values.
1112 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
1113 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
1114 arith_reg_operand for input operand. Remove empty constraints.
1116 (*xorsi3_compact): Rename to xorsi3.
1117 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
1118 (*zero_extend<mode>si2_disp_mem): Update comment.
1121 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
1123 * config/sh/t-sh: Remove SH5 support.
1124 * config.gcc: Likewise.
1125 * configure: Likewise.
1127 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1129 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
1131 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
1133 * config/sh/sh.c (register_sh_passes, sh_option_override,
1134 sh_print_operand, prepare_move_operands,
1135 sh_can_follow_jump): Remove TARGET_SH1 checks.
1136 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
1137 PROMOTE_MODE): Likewise.
1138 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
1141 2016-04-30 Alan Modra <amodra@gmail.com>
1143 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
1144 restoring when fixed_reg_p, but allow out-of-line or stmw save.
1145 Check for user regs later to avoid unnecessary looping over regs.
1146 Merge user reg check with non-saved reg check. Don't force
1147 inline VR restore when static chain used.
1148 (rs6000_frame_related): Omit eh_frame info for user regs when
1150 (fixed_regs_p): Delete.
1152 2016-04-30 Alan Modra <amodra@gmail.com>
1154 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
1155 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
1158 2016-04-30 Alan Modra <amodra@gmail.com>
1161 * config/rs6000/rs6000.c (fixed_reg_p): New function.
1162 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
1165 2016-04-30 Alan Modra <amodra@gmail.com>
1167 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
1168 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
1169 flag_pic test for Darwin.
1171 2016-04-30 Alan Modra <amodra@gmail.com>
1173 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
1174 throw_calls_crossed.
1175 (REG_FREQ_CALLS_CROSSED): Delete.
1176 (REG_N_THROWING_CALLS_CROSSED): Delete.
1177 * regstat.c (regstat_bb_compute_ri): Don't calculate
1178 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
1179 (dump_reg_info): Don't print call cross frequency.
1180 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
1181 and REG_N_THROWING_CALLS_CROSSED.
1183 2016-04-30 Alan Modra <amodra@gmail.com>
1185 * regs.h (struct reg_info_t): Delete live_length.
1186 (REG_LIVE_LENGTH): Delete macro.
1187 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
1188 local_live, local_processed and local_live_last_luid params.
1189 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
1191 (regstat_compute_ri): Adjust for above. Don't set
1193 (dump_reg_info): Don't print live length.
1194 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
1195 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
1196 Localize loop_depth var.
1198 2016-04-30 Alan Modra <amodra@gmail.com>
1200 * ira.c (enum valid_equiv): New.
1201 (validate_equiv_mem): Return enum.
1202 (update_equiv_mem): Create replacement in more cases.
1203 (add_store_equivs): Update validate_equiv_mem call.
1205 2016-04-30 Alan Modra <amodra@gmail.com>
1207 * ira.c (combine_and_move_insns): Rather than scanning insns,
1208 use DF infrastucture to find use and def insns.
1210 2016-04-30 Alan Modra <amodra@gmail.com>
1212 ira.c (combine_and_move_insns): Move invariant conditions..
1213 (ira.c): ..to here. Call combine_and_move_insns before
1214 add_store_equivs. Call grow_reg_equivs later. Allocate
1215 req_equiv later using max_reg_num() rather than global max_regno.
1216 (contains_replace_regs): Delete.
1217 (add_store_equivs): Remove contains_replace_regs test.
1219 2016-04-30 Alan Modra <amodra@gmail.com>
1221 * ira.c (struct equiv_mem_data): New.
1222 (equiv_mem, equiv_mem_modified): Delete static vars.
1223 (validate_equiv_mem_from_store): Use "data" param to communicate..
1224 (validate_equiv_mem): ..from here.
1226 2016-04-30 Alan Modra <amodra@gmail.com>
1228 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
1230 (update_reg_equivs): ..here. Move allocation and freeing of
1231 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
1232 end_alias_analysis to..
1235 2016-04-30 Alan Modra <amodra@gmail.com>
1237 * ira.c (pdx_subregs): Delete.
1238 (struct equivalence): Add pdx_subregs field.
1239 (set_paradoxical_subreg): Remove pdx_subregs param. Update
1241 (update_equiv_regs): Don't create or free pdx_subregs. Update
1244 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1246 * config/rs6000/altivec.h: Change definitions of vec_xl and
1248 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
1249 (LD_ELEMREV_V2DI): New.
1250 (LD_ELEMREV_V4SF): New.
1251 (LD_ELEMREV_V4SI): New.
1252 (LD_ELEMREV_V8HI): New.
1253 (LD_ELEMREV_V16QI): New.
1254 (ST_ELEMREV_V2DF): New.
1255 (ST_ELEMREV_V2DI): New.
1256 (ST_ELEMREV_V4SF): New.
1257 (ST_ELEMREV_V4SI): New.
1258 (ST_ELEMREV_V8HI): New.
1259 (ST_ELEMREV_V16QI): New.
1262 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1263 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
1264 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
1265 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
1266 (altivec_expand_builtin): Add handling for
1267 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
1268 (rs6000_invalid_builtin): Add error-checking for
1269 RS6000_BTM_P9_VECTOR.
1270 (altivec_init_builtins): Define builtins used to implement vec_xl
1272 (rs6000_builtin_mask_names): Define power9-vector.
1273 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
1274 (RS6000_BTM_P9_VECTOR): Define.
1275 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
1276 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
1277 (vsx_ld_elemrev_v2df): Likewise.
1278 (vsx_ld_elemrev_v4sf): Likewise.
1279 (vsx_ld_elemrev_v4si): Likewise.
1280 (vsx_ld_elemrev_v8hi): Likewise.
1281 (vsx_ld_elemrev_v16qi): Likewise.
1282 (vsx_st_elemrev_v2df): Likewise.
1283 (vsx_st_elemrev_v2di): Likewise.
1284 (vsx_st_elemrev_v4sf): Likewise.
1285 (vsx_st_elemrev_v4si): Likewise.
1286 (vsx_st_elemrev_v8hi): Likewise.
1287 (vsx_st_elemrev_v16qi): Likewise.
1288 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
1291 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
1293 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
1295 (simplify_control_stmt_condition_1): ... here. Recurse into
1296 BIT_AND_EXPRs and BIT_IOR_EXPRs.
1298 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
1301 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
1302 (zero_extendqi<mode>2_dot): Revert earlier conversion from
1303 define_insn_and_split to define_insn.
1304 (zero_extendqi<mode>2_dot2): Same.
1305 (extendqi<mode>2_dot): Same.
1306 (extendqi<mode>2_dot2): Same.
1308 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
1310 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
1311 (probe_stack): New expander.
1312 (probe_stack_<mode>): New insn pattern.
1314 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
1316 * config/i386/i386.md
1317 (operations with memory inputs setting flags peephole2):
1318 Remove uneeded REG_P checks. Cleanup pattern generation.
1320 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
1322 * tree-vect-loop.c (vect_transform_loop): Fix
1323 nb_iterations_upper_bound computation for vectorized loop.
1325 2016-04-29 Marek Polacek <polacek@redhat.com>
1326 Jakub Jelinek <jakub@redhat.com>
1329 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
1330 TARGET_EXPR_SLOT as a base.
1332 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
1334 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
1335 with 'rCm2' constraints to limit possible immediate size.
1336 (*load_zeroextendqisi_update): Likewise.
1337 (*load_signextendqisi_update): Likewise.
1338 (*loadhi_update): Likewise.
1339 (*load_zeroextendhisi_update): Likewise.
1340 (*load_signextendhisi_update): Likewise.
1341 (*loadsi_update): Likewise.
1342 (*loadsf_update): Likewise.
1344 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
1346 * config/i386/predicates.md (constm1_operand): Fix comparison.
1348 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
1350 * testsuite/gcc.target/arc/ieee_eq.c: New test.
1352 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
1354 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
1355 remaining SH5 related settings.
1356 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
1357 shmedia_prepare_call_address): Delete.
1358 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
1359 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
1360 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
1361 UNSUPPORTED_SH2A): Remove m5 checks.
1362 (sh_divide_strategy_e): Remove SH5 division strategies.
1363 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
1364 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
1366 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
1368 * config/s390/s390.c (s390_rtx_costs): Update documentation.
1370 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1372 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
1373 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
1375 * config/s390/vector.md ("mov<mode>"): Likewise.
1377 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
1379 * config/s390/constraints.md ("U", "W"): Invoke
1380 s390_mem_constraint with "ZR" and "ZT".
1381 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
1382 addresses when using LRA. Accept also short displacements for S
1383 and T constraints. Do not check for long displacement target for
1384 S and T constraints.
1385 (s390_mem_constraint): Remove handling of U and W constraints.
1386 * config/s390/s390.md (various patterns): Remove the short
1387 displacement constraints (Q and R) if a long displacement
1388 constraint is present. Add longdisp as required CPU capability.
1389 * config/s390/vector.md: Likewise.
1390 * config/s390/vx-builtins.md: Likewise.
1392 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1395 * reload1.c (reload): Call finish_spills before
1396 restarting reload loop. Skip select_reload_regs
1397 if update_eliminables_and_spill returns true.
1399 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
1401 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
1402 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
1403 (umulhisi3_imm): Update predicates and constraint letters.
1404 (umulhisi3_reg): Declare instruction as commutative.
1405 * config/arc/constraints.md (J12, J16): New constraints.
1406 * config/arc/predicates.md (short_unsigned_const_operand): New
1408 (arc_short_operand): Likewise.
1409 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
1411 2016-04-29 Richard Biener <rguenther@suse.de>
1413 PR tree-optimization/13962
1414 PR tree-optimization/65686
1415 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
1416 * tree-ssa-alias.c (ptrs_compare_unequal): New function
1417 using PTA to compare pointers.
1418 * match.pd: Add pattern for pointer equality compare simplification
1419 using ptrs_compare_unequal.
1421 2016-04-29 Richard Biener <rguenther@suse.de>
1423 * stor-layout.c (layout_type): Do not build a pointer-to-element
1426 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
1428 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
1429 Use SWI mode iterator. Use general_reg_operand predicate.
1430 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
1431 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
1434 2016-04-29 Jakub Jelinek <jakub@redhat.com>
1437 * fold-const.c (operand_equal_p): Don't verify hash value equality
1439 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
1442 2016-04-28 Jakub Jelinek <jakub@redhat.com>
1445 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
1446 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
1447 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
1448 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
1449 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
1451 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
1453 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
1454 to info. Don't initialize separate fields to 0. Clean up
1457 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
1459 * config/i386/i386.md (peephole2s for operations with memory inputs):
1460 Use SWI mode iterator.
1461 (peephole2s for operations with memory outputs): Ditto.
1462 Do not check for stack checking probe.
1464 (probe_stack): Remove expander.
1466 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
1467 Andrew Burgess <andrew.burgess@embecosm.com>
1469 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
1470 operands as 32-bits.
1472 2016-04-28 Jason Merrill <jason@redhat.com>
1474 * gdbinit.in: Skip line-map.h.
1476 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
1477 Andrew Burgess <andrew.burgess@embecosm.com>
1479 * config/arc/arc.c (arc_conditional_register_usage): Take
1480 TARGET_RRQ_CLASS into account.
1481 (arc_print_operand): Support printing 'p' and 's' operands.
1482 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
1484 (TARGET_RRQ_CLASS): Define.
1485 (IS_POWEROF2_OR_0_P): Define.
1486 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
1488 (*tst_movb): New define_insn.
1489 (*tst): Avoid recognition if it could prevent '*tst_movb'
1490 combination; replace c/CnL with c/Chs alternative.
1491 (*tst_bitfield_tst): New define_insn.
1492 (*tst_bitfield_asr): New define_insn.
1493 (*tst_bitfield): New define_insn.
1494 (andsi3_i): Add Rrq variant.
1495 (extzv): New define_expand.
1496 (insv): New define_expand.
1497 (*insv_i): New define_insn.
1498 (*movb): New define_insn.
1499 (*movb_signed): New define_insn.
1500 (*movb_high): New define_insn.
1501 (*movb_high_signed): New define_insn.
1502 (*movb_high_signed + 1): New define_split pattern.
1503 (*mrgb): New define_insn.
1504 (*mrgb + 1): New define_peephole2 pattern.
1505 (*mrgb + 2): New define_peephole2 pattern.
1506 * config/arc/arc.opt (mbitops): New option for nps400, uses
1507 TARGET_NPS_BITOPS_DEFAULT.
1508 * config/arc/constraints.md (q): Make register class conditional.
1509 (Rrq): New register constraint.
1510 (Chs): New constraint.
1511 (Clo): New constraint.
1512 (Chi): New constraint.
1513 (Cbf): New constraint.
1514 (Cbn): New constraint.
1515 (C18): New constraint.
1516 (Cbi): New constraint.
1518 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
1520 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
1522 (bitmap_intersection_of_preds): Ditto.
1523 (bitmap_union_of_succs): Ditto.
1524 (bitmap_union_of_preds): Ditto.
1525 * sbitmap.c (do_popcount): Delete.
1526 (BITMAP_DEBUGGING): Delete.
1527 (sbitmap_verify_popcount): Delete.
1528 (sbitmap_alloc): Don't initialize the popcount field.
1529 (sbitmap_alloc_with_popcount): Delete.
1530 (sbitmap_resize): Don't resize the popcount array.
1531 (sbitmap_vector_alloc): Don't initialize the popcount field.
1532 (bitmap_copy): Don't copy the popcount array.
1533 (bitmap_clear): Don't clear the popcount array.
1534 (bitmap_clear): Delete the popcount array handling.
1535 (bitmap_ior_and_compl): Delete the popcount assert.
1536 (bitmap_not): Ditto.
1537 (bitmap_and_compl): Ditto.
1538 (bitmap_and): Delete the popcount array handling.
1539 (bitmap_xor): Ditto.
1540 (bitmap_ior): Ditto.
1541 (bitmap_or_and): Delete the popcount assert.
1542 (bitmap_and_or): Ditto.
1543 (popcount_table): Delete.
1544 (sbitmap_elt_popcount): Delete.
1545 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
1546 (bitmap_set_bit): Delete the popcount assert.
1547 (bitmap_clear_bit): Ditto.
1548 (sbitmap_free): Don't free the popcount array.
1549 (sbitmap_alloc_with_popcount): Delete declaration.
1550 (sbitmap_popcount): Ditto.
1552 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
1553 Andrew Burgess <andrew.burgess@embecosm.com>
1555 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
1556 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
1557 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
1558 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
1559 * config/arc/arc.opt (mcmem): New option.
1560 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
1561 supply length for r/m alternative.
1562 (*extendqisi2_ac): Likewise.
1563 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
1565 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
1566 (movhi_insn): Likewise.
1567 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
1568 (*zero_extendqihi2_i): Add r/Ucm alternative.
1569 (*zero_extendqisi2_ac): Likewise.
1570 (*zero_extendhisi2_i): Likewise.
1571 * config/arc/constraints.md (Uex): New memory constraint.
1572 (Ucm): New define_constraint.
1573 * config/arc/predicates.md (long_immediate_loadstore_operand):
1574 Return 0 for MEM with cmem_address address.
1575 (cmem_address_0): New predicates.
1576 (cmem_address_1): Likewise.
1577 (cmem_address_2): Likewise.
1578 (cmem_address): Likewise.
1580 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
1582 * config/rs6000/rs6000.c (machine_function): Rename
1583 insn_chain_scanned_p to spe_insn_chain_scanned_p.
1584 (rs6000_stack_info): Adjust.
1586 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
1587 Andrew Burgess <andrew.burgess@embecosm.com>
1589 * config/arc/constraints.md (Usd): Convert to define_constraint.
1593 2016-04-28 Jakub Jelinek <jakub@redhat.com>
1596 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
1597 Add new peephole2 where the first insn is *mov<mode>_or instead of
1598 *mov<mode>_internal.
1600 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
1602 * tracer.c (bb_seen): Make static.
1604 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
1606 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
1607 support, setup defaults.
1608 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
1609 * config/arc/arc.c (arc_init): Add NPS400 support.
1610 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
1611 (TARGET_ARC700): NPS400 is also an ARC700.
1612 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
1614 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
1617 * config/nds32/nds32.md (casesi): Don't access the operands array
1620 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
1622 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
1623 (or $-1,reg peephole2): Ditto.
1624 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
1626 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
1628 * doc/extend.texi (Common Function Attributes) [optimize]:
1629 Discourage use of the optimize attribute.
1631 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
1633 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
1634 special case builtin.
1635 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1636 ALTIVEC_BUILTIN_VEC_ADDE.
1637 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1638 support for ALTIVEC_BUILTIN_VEC_ADDE.
1639 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1640 for __builtin_vec_adde.
1642 2016-04-28 Jakub Jelinek <jakub@redhat.com>
1644 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
1645 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
1647 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1650 * doc/sourcebuild.texi (Effective-Target Keywords, Other
1651 attributes): Document cilkplus_runtime.
1653 2016-04-28 Martin Jambor <mjambor@suse.cz>
1655 * tree-cfg.c (verify_expr): Verify that local declarations belong to
1656 this function. Call verify_expr on MEM_REFs and bases of other
1659 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1661 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
1662 for WORD_REGISTER_OPERATIONS to runtime check.
1664 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
1666 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
1668 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
1670 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
1671 big-endian compilation.
1672 * config/arc/arc.md (addf3): Likewise.
1676 2016-04-28 Richard Biener <rguenther@suse.de>
1678 PR tree-optimization/70840
1679 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
1680 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
1681 Mark x * pow(x,c) -> pow(x,c+1) commutative.
1682 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
1684 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1686 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
1687 and explain why in a comment.
1689 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
1691 * config/arc/arc.md (cpu_facility): Add fpx variant.
1692 (subdf3): Prohibit use reverse sub when assist operations option
1694 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
1695 instructions only when FPX is enabled.
1696 * testsuite/gcc.target/arc/trsub.c: New test.
1698 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
1700 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
1701 mult_operator when calculating "type" attribute.
1702 (*fop_<mode>_1_i387): Ditto.
1703 (*fop_xf_1_i387): Ditto.
1704 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
1705 Use std::swap to swap operands. Use RTL expressions to generate
1708 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
1709 Joern Rennecke <joern.rennecke@embecosm.com>
1711 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
1713 (emit_pic_move): Remove.
1714 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
1715 * config/arc/arc.c (emit_pic_move): Removed.
1716 (TARGET_HAVE_TLS): Define.
1717 (arc_conditional_register_usage): Test for arc_tp_regno.
1718 (arc_print_operand, arc_print_operand_address): Handle TLS
1720 (arc_needs_pcl_p): New function.
1721 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
1722 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
1723 (arc_raw_symbolic_reference_mentioned_p): Likewise.
1724 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
1725 (arc_legitimize_tls_address): Likewise.
1726 (DTPOFF_ZERO_SYM): Define.
1727 (arc_legitimize_pic_address): Make it static, handle TLS cases.
1728 (arc_output_pic_addr_const): Print TLS unspecs.
1729 (prepare_pic_move): New function, replaces emit_pic_move.
1730 (arc_legitimate_constant_p): Handle TLS unspecs.
1731 (arc_legitimate_address_p): Likewise.
1732 (arc_rewrite_small_data_p): Use assert for TLS constants.
1733 (prepare_move_operands): Use prepare_pic_move.
1734 (arc_legitimize_address): Legitimize tls addresses.
1735 (arc_epilogue_uses): Check for arc_tp_regno.
1736 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
1737 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
1739 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
1741 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
1742 %(arc_tls_extra_start_spec).
1743 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
1744 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
1746 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
1747 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
1748 (UNSPEC_TLS_OFF): Add.
1750 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
1751 (get_thread_pointersi): New patterns.
1752 * config/arc/arc.opt (mtp-regno): New option.
1753 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
1754 (move_dest_operand): Likewise.
1755 * configure: Regenerate.
1756 * configure.ac: Add arc*-*-* case to test for tls.
1757 * doc/invoke.texi (ARC options): Document mtp-regno.
1759 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
1761 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
1762 the new ARC HS SIMD instructions.
1763 (arc_preferred_simd_mode): New function.
1764 (arc_autovectorize_vector_sizes): Likewise.
1765 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
1766 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1767 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
1768 (arc_init_builtins): Add new SIMD builtin types.
1769 (arc_split_move): Handle 64 bit vector moves.
1770 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
1771 (TARGET_PLUS_QMACW): Define.
1772 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
1773 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
1774 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
1775 (VSUBADD4H): New builtins.
1776 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
1777 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
1779 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
1780 Matthias Klose <doko@debian.org>
1782 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
1784 2016-04-28 Richard Biener <rguenther@suse.de>
1787 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
1790 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
1792 * common/config/sh/sh-common.c: Remove SH5 support.
1793 * config/sh/constraints.md: Likewise.
1794 * config/sh/config/sh/elf.h: Likewise.
1795 * config/sh/linux.h: Likewise.
1796 * config/sh/netbsd-elf.h: Likewise.
1797 * config/sh/predicates.md: Likewise.
1798 * config/sh/sh-c.c: Likewise.
1799 * config/sh/sh-protos.h: Likewise.
1800 * config/sh/sh.c: Likewise.
1801 * config/sh/sh.h: Likewise.
1802 * config/sh/sh.md: Likewise.
1803 * config/sh/sh.opt: Likewise.
1804 * config/sh/sync.md: Likewise.
1805 * config/sh/sh64.h: Delete.
1806 * config/sh/shmedia.h: Likewise.
1807 * config/sh/shmedia.md: Likewise.
1808 * config/sh/sshmedia.h: Likewise.
1809 * config/sh/t-netbsd-sh5-64: Likewise.
1810 * config/sh/t-sh64: Likewise.
1811 * config/sh/ushmedia.h: Likewise.
1813 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
1815 * config/i386/i386.md (sign_extend to memory peephole2s): Use
1816 general_reg_operand instead of register_operand predicate.
1818 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1820 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
1822 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
1824 * match.pd (A - B > A, A + B < A): New transformations.
1826 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
1828 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
1829 which defaults to true. Emit an outer pair of parentheses only if
1830 EMIT_PARENS. When continuing a chain of && or || (or & or |),
1831 don't emit parentheses for the right-hand operand.
1833 2016-04-27 Jeff Law <law@redhat.com>
1835 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
1837 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1839 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
1840 (altivec_lvx_<mode>_internal): Document.
1841 (altivec_lvx_<mode>_2op): New define_insn.
1842 (altivec_lvx_<mode>_1op): Likewise.
1843 (altivec_lvx_<mode>_2op_si): Likewise.
1844 (altivec_lvx_<mode>_1op_si): Likewise.
1845 (altivec_stvx_<mode>): Remove.
1846 (altivec_stvx_<mode>_internal): Document.
1847 (altivec_stvx_<mode>_2op): New define_insn.
1848 (altivec_stvx_<mode>_1op): Likewise.
1849 (altivec_stvx_<mode>_2op_si): Likewise.
1850 (altivec_stvx_<mode>_1op_si): Likewise.
1851 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1852 Expand vec_ld and vec_st during parsing.
1853 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
1855 (altivec_expand_stvx_be): Likewise.
1856 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
1857 address-masking behavior in RTL.
1858 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
1859 address-masking behavior in RTL.
1860 (altivec_expand_builtin): Change builtin code arguments for calls
1861 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
1862 (insn_is_swappable_p): Avoid incorrect swap optimization in the
1863 presence of lvx/stvx patterns.
1864 (alignment_with_canonical_addr): New function.
1865 (alignment_mask): Likewise.
1866 (find_alignment_op): Likewise.
1867 (recombine_lvx_pattern): Likewise.
1868 (recombine_stvx_pattern): Likewise.
1869 (recombine_lvx_stvx_patterns): Likewise.
1870 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
1871 stvx patterns from expand.
1872 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
1874 (vector_altivec_store_<mode>): Likewise.
1876 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
1878 * config/aarch64/aarch64.md
1879 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
1880 remove the "fp" attributes.
1881 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
1882 add the "simd" attributes.
1883 (*movdf_aarch64): Likewise.
1884 (*movtf_aarch64): Remove the "fp" attributes.
1885 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
1886 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
1888 2016-04-27 David Malcolm <dmalcolm@redhat.com>
1890 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
1891 rtx to rtx_code_label *.
1892 * rtl.h (maybe_set_first_label_num): Likewise.
1894 2016-04-27 David Malcolm <dmalcolm@redhat.com>
1896 * df-core.c (df_add_problem): Make the problem param be const.
1897 (df_remove_problem): Make local "problem" be const.
1898 * df-problems.c (problem_RD): Make const.
1899 (problem_LR): Likewise.
1900 (problem_LIVE): Likewise.
1901 (problem_MIR): Likewise.
1902 (problem_CHAIN): Likewise.
1903 (problem_WORD_LR): Likewise.
1904 (problem_NOTE): Likewise.
1905 (problem_MD): Likewise.
1906 * df-scan.c (problem_SCAN): Likewise.
1907 * df.h (struct df_problem): Make field "dependent_problem" be
1909 (struct dataflow): Likewise for field "problem".
1910 (df_add_problem): Make param const.
1912 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
1914 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
1915 inter-unit moves to/from vector registers are enabled. Do not disable
1918 2016-04-27 David Malcolm <dmalcolm@redhat.com>
1920 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
1921 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
1923 (enum df_problem_id): ...this new enum.
1924 (struct df_problem): Convert field "id" from "int" to
1927 2016-04-27 David Malcolm <dmalcolm@redhat.com>
1929 * rtl.def: Update comment for "things in the instruction chain" to
1930 reflect the removal of the leading "i" field for INSN_UID in
1931 r210360. Fix bogus apostrophe.
1933 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
1935 * config/i386/i386.md
1936 (lea arith with mem operand + setcc peephole2): Set operator mode.
1938 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
1941 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
1942 (dimode_scalar_to_vector_candidate_p): This.
1943 (timode_scalar_to_vector_candidate_p): New function.
1944 (scalar_to_vector_candidate_p): Likewise.
1945 (timode_check_non_convertible_regs): Likewise.
1946 (timode_remove_non_convertible_regs): Likewise.
1947 (remove_non_convertible_regs): Likewise.
1948 (remove_non_convertible_regs): Renamed to ...
1949 (dimode_remove_non_convertible_regs): This.
1950 (scalar_chain::~scalar_chain): Make it virtual.
1951 (scalar_chain::compute_convert_gain): Make it pure virtual.
1952 (scalar_chain::mark_dual_mode_def): Likewise.
1953 (scalar_chain::convert_insn): Likewise.
1954 (scalar_chain::convert_registers): Likewise.
1955 (scalar_chain::add_to_queue): Make it protected.
1956 (scalar_chain::emit_conversion_insns): Likewise.
1957 (scalar_chain::replace_with_subreg): Likewise.
1958 (scalar_chain::replace_with_subreg_in_insn): Likewise.
1959 (scalar_chain::convert_op): Likewise.
1960 (scalar_chain::convert_reg): Likewise.
1961 (scalar_chain::make_vector_copies): Likewise.
1962 (scalar_chain::convert_registers): New pure virtual function.
1963 (class dimode_scalar_chain): New class.
1964 (class timode_scalar_chain): Likewise.
1965 (scalar_chain::mark_dual_mode_def): Renamed to ...
1966 (dimode_scalar_chain::mark_dual_mode_def): This.
1967 (timode_scalar_chain::mark_dual_mode_def): New function.
1968 (timode_scalar_chain::convert_insn): Likewise.
1969 (dimode_scalar_chain::convert_registers): Likewise.
1970 (scalar_chain::compute_convert_gain): Renamed to ...
1971 (dimode_scalar_chain::compute_convert_gain): This.
1972 (scalar_chain::replace_with_subreg): Renamed to ...
1973 (dimode_scalar_chain::replace_with_subreg): This.
1974 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
1975 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
1976 (scalar_chain::make_vector_copies): Renamed to ...
1977 (dimode_scalar_chain::make_vector_copies): This.
1978 (scalar_chain::convert_reg): Renamed to ...
1979 (dimode_scalar_chain::convert_reg ): This.
1980 (scalar_chain::convert_op): Renamed to ...
1981 (dimode_scalar_chain::convert_op): This.
1982 (scalar_chain::convert_insn): Renamed to ...
1983 (dimode_scalar_chain::convert_insn): This.
1984 (scalar_chain::convert): Call convert_registers.
1985 (convert_scalars_to_vector): Change to scalar_chain pointer to
1986 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
1987 in 32-bit mode. Delete scalar_chain pointer. Call
1988 free_dominance_info in 64-bit mode.
1989 (pass_stv::gate): Remove TARGET_64BIT check.
1990 (ix86_option_override): Put the 64-bit STV pass before the CSE
1993 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
1995 * dwarf2out.h (struct dw_loc_descr_node): Remove the
1996 dw_loc_frame_offset field.
1997 * dwarf2out.c (new_loc_descr): Likewise.
1998 (resolve_args_picking_1): Turn the VISITED hash set into a
1999 FRAME_OFFSET hash map. Use it to associate a frame offset to
2000 visited nodes. Remove uses of the CHECKING_P macro.
2001 (resolve_args_picking): Update call to resolve_args_picking_1.
2003 2016-04-27 Martin Liska <mliska@suse.cz>
2005 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
2006 (free_loop_data): Release vuses of groups.
2008 2016-04-27 Bin Cheng <bin.cheng@arm.com>
2010 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
2011 instead of redundant use_id and boolean have_use_for.
2012 (struct iv_use): Change sub_id into group_id. Remove field next.
2013 Move fields: related_cands, n_map_members, cost_map and selected
2015 (struct iv_group): ... here. New structure.
2016 (struct iv_common_cand): Use structure declaration directly.
2017 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
2018 (MAX_CONSIDERED_USES): Rename macro to ...
2019 (MAX_CONSIDERED_GROUPS): ... here.
2020 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
2021 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
2022 (dump_uses): Rename to ...
2023 (dump_groups): ... here. Update all uses.
2024 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
2025 (find_induction_variables): Refactor format of dump information.
2026 (record_sub_use): Delete.
2027 (record_use): Update all uses.
2028 (record_group): New function.
2029 (record_group_use, find_interesting_uses_op): Call above functions.
2031 (find_interesting_uses_cond): Ditto.
2032 (group_compare_offset): New function.
2033 (split_all_small_groups): Rename to ...
2034 (split_small_address_groups_p): ... here. Update all uses.
2035 (split_address_groups): Update all uses.
2036 (find_interesting_uses): Refactor format of dump information.
2037 (add_candidate_1): Update all uses. Remove redundant check on iv,
2039 (add_candidate, record_common_cand): Remove redundant assert.
2040 (add_iv_candidate_for_biv): Update use.
2041 (add_iv_candidate_derived_from_uses): Update all uses.
2042 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
2043 (alloc_use_cost_map): Ditto.
2044 (set_use_iv_cost, get_use_iv_cost): Rename to ...
2045 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
2046 (determine_use_iv_cost_generic): Ditto.
2047 (determine_group_iv_cost_generic): Ditto.
2048 (determine_use_iv_cost_address): Ditto.
2049 (determine_group_iv_cost_address): Ditto.
2050 (determine_use_iv_cost_condition): Ditto.
2051 (determine_group_iv_cost_cond): Ditto.
2052 (determine_use_iv_cost): Ditto.
2053 (determine_group_iv_cost): Ditto.
2054 (set_autoinc_for_original_candidates): Update all uses.
2055 (find_iv_candidates): Update all uses. Refactor dump information.
2056 (determine_use_iv_costs): Ditto.
2057 (determine_iv_costs): Ditto.
2058 (iv_ca_cand_for_use): Rename to ...
2059 (iv_ca_cand_for_group): ... here. Update all uses.
2060 (iv_ca_add_use, iv_ca_add_group): Ditto.
2061 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
2062 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
2063 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
2064 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
2065 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
2066 (create_new_iv, adjust_iv_update_pos): Ditto.
2067 (rewrite_use_address): Delete.
2068 (rewrite_use_address_1): Rename to ...
2069 (rewrite_use_address): ... here.
2070 (rewrite_use_compare): Update all uses.
2071 (rewrite_use): Delete.
2072 (rewrite_uses): Rename to ...
2073 (rewrite_groups): ... here. Update all uses.
2074 (remove_unused_ivs, free_loop_data): Update all uses.
2075 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
2077 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2079 * rtlanal.c (nonzero_bits1): Convert preprocessor check
2080 for WORD_REGISTER_OPERATIONS to runtime check.
2082 2016-04-27 Richard Biener <rguenther@suse.de>
2085 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
2086 aggregate_value_p to determine if a function result is
2087 returned by reference.
2088 (ipa_pta_execute): Functions having their address taken are
2089 not automatically nonlocal.
2091 2016-04-27 Jakub Jelinek <jakub@redhat.com>
2094 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
2095 * fold-const.c (operand_equal_p): If flag_checking and
2096 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
2097 and if it returns non-zero, assert iterative_hash_expr on both
2100 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
2102 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
2104 2016-04-27 Nick Clifton <nickc@redhat.com>
2107 * varasm.c (merge_weak): Generate an error if an attempt is made
2108 to convert a non-weak static function into a weak, public function.
2110 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2112 * params.def (MAX_PARTITION_SIZE): New param.
2113 * doc/invoke.texi: Document lto-max-partition.
2115 2016-04-27 Richard Biener <rguenther@suse.de>
2118 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
2119 function cummulating used_from_other_partition, externally_visible
2120 and force_output from aliases.
2121 (refered_from_nonlocal_var): Likewise.
2122 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
2123 node flags properly.
2125 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
2127 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
2128 (-Wmemset-elt-size): New item.
2130 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
2133 * stor-layout.h (internal_reference_types): Delete.
2134 * stor-layout.c (reference_types_internal): Likewise.
2135 (internal_reference_types): Likewise.
2136 (layout_type) <REFERENCE_TYPE>: Adjust.
2138 2016-04-27 Jakub Jelinek <jakub@redhat.com>
2141 * tree.h (inchash::add_expr): Add FLAGS argument.
2142 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
2143 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
2144 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
2145 Formatting fix. Adjust recursive calls. For tcc_comparison,
2146 if swap_tree_comparison (code) is smaller than code, hash that
2147 and arguments in the other order. Hash CONVERT_EXPR the same
2148 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
2149 of ADDR_EXPR of decl as the decl itself. Add or remove
2150 OEP_ADDRESS_OF from recursive flags as needed. For
2151 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
2152 operands commutatively and only the third one normally.
2153 For internal CALL_EXPR hash in CALL_EXPR_IFN.
2155 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
2157 * config/rtems.h (LIB_SPEC): Add -latomic.
2159 2016-04-27 Joel Sherrill <joel@rtems.org>
2161 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
2162 xilink.ld and flags not relevant to RTEMS.
2164 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
2166 * toplev.c (backend_init_target): Avoid calling init_reload when using
2169 2016-04-26 Jakub Jelinek <jakub@redhat.com>
2171 * reorg.c (try_merge_delay_insns): Declare i and j inside the
2172 for loops rather than one for the whole function.
2174 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
2176 * match.pd (X + CST CMP X): New transformation.
2178 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
2180 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
2181 * fold-const.c (fold_binary_loc): Remove 2 transformations
2182 superseded by match.pd.
2183 * match.pd (x+x -> x*2): Generalize to integers.
2185 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
2187 * config/i386/i386.md (operation on memory peephole): Duplicate an
2188 existing peephole and adapt it to match lea rather than an operation
2191 PR rtl-optimization/57193
2192 * opts.c (default_options_table): Add OPT_frename_registers at -O2
2194 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
2196 2016-04-26 Bin Cheng <bin.cheng@arm.com>
2198 * tree-if-conv.c (any_pred_load_store): New static variable.
2199 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
2200 any_pred_load_store instead of and_mask_load_store.
2201 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
2202 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
2203 (combine_blocks, tree_if_conversion): Ditto.
2205 2016-04-26 Bin Cheng <bin.cheng@arm.com>
2207 PR tree-optimization/70771
2208 PR tree-optimization/70775
2209 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
2210 virtual PHI nodes. Delete parameter.
2211 (if_convertible_loop_p_1): Delete argument to above function.
2212 (predicate_all_scalar_phis): Delete code handling single-argument
2214 (tree_if_conversion): Mark and update virtual SSA.
2216 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2219 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
2220 (x86_elf_aligned_common): Rename to ...
2221 (x86_elf_aligned_decl_common): ... this.
2222 Add decl arg. Switch to .lbss for largecomm object. Use
2223 LARGECOMM_SECTION_ASM_OP.
2224 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
2226 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
2227 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
2229 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2230 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
2232 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2235 * config/i386/i386.c (SECTION_LARGE): Define.
2236 (x86_64_elf_select_section): Set it for large data/bss sections.
2237 Only clear SECTION_WRITE for .lrodata.
2238 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
2240 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
2241 * varasm.c (default_elf_asm_named_section): Grow flagchars.
2242 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
2244 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
2245 * doc/tm.texi: Regenerate.
2247 2016-04-26 Jakub Jelinek <jakub@redhat.com>
2250 * configure.ac (--enable-checking): Document extra flag, for
2251 non-release builds default to --enable-checking=yes,extra.
2252 If misc checking and extra checking, define CHECKING_P to 2 instead
2254 * common.opt (fchecking=): Add.
2255 * doc/invoke.texi (-fchecking=): Document.
2256 * doc/install.texi: Document --enable-checking changes.
2257 * configure: Regenerated.
2258 * config.in: Regenerated.
2260 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
2262 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
2263 attribute instead of which_alternative.
2264 * config/i386/sse.md (*mov<mode>_internal): Ditto.
2265 Use EXT_REX_SSE_REG_P where appropriate.
2267 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
2269 * config/i386/predicates.md (const0_operand): Do not match
2270 const_wide_int code.
2271 (const1_operand): Ditto.
2273 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
2275 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
2276 for SSE constm1 operands and TARGET_AVX512VL.
2277 (*movti_internal): Ditto.
2278 (*mov<mode>_or): Use constm1_operand predicate.
2279 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
2280 for SSE vector_all_ones operands and TARGET_AVX512VL.
2281 * config/i386/predicates.md (constm1_operand): New predicate.
2282 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
2283 emission of constant -1 load.
2285 2016-04-25 Jason Merrill <jason@redhat.com>
2287 * gdbinit.in: Skip is-a.h.
2289 * attribs.c (register_scoped_attributes): Fix logic.
2290 * attribs.h: Declare register_scoped_attributes.
2292 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2294 * config/rs6000/rs6000-builtin.def: Correct pasto error for
2295 stxvd2x and stxvw4x built-in functions.
2297 2016-04-25 DJ Delorie <dj@redhat.com>
2299 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
2300 (ashrhi3): Likewise.
2301 (lshrhi3): Likewise.
2303 2016-04-25 Richard Biener <rguenther@suse.de>
2305 PR tree-optimization/70780
2306 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
2308 (compute_antic): Mark blocks with abnormal preds as visited as
2309 they have a final empty antic-in solution already.
2311 2016-04-25 Michael Collison <michael.collison@linaro.org>
2313 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
2315 2016-04-25 Michael Collison <michael.collison@linaro.org>
2317 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
2318 mode is VQI to improve mixed mode vectorization.
2319 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
2320 define_insn to match low half of signed vaddw.
2321 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
2322 define_insn to match high half of signed vaddw.
2323 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
2324 define_insn to match low half of unsigned vaddw.
2325 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
2326 define_insn to match high half of unsigned vaddw.
2327 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
2328 (arm_simd_check_vect_par_cnst_half_p): Likewise.
2329 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
2331 (arm_simd_check_vect_par_cnst_half_p): Likewise.
2332 * config/arm/predicates.md (vect_par_constant_high): Support
2333 big endian and simplify by calling
2334 arm_simd_check_vect_par_cnst_half
2335 (vect_par_constant_low): Likewise.
2337 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
2339 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
2340 predicate for operand 2.
2342 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
2343 H.J. Lu <hongjiu.lu@intel.com>
2345 * config/i386/i386-protos.h (standard_sse_constant_p): Add
2346 machine_mode argument.
2347 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
2348 constm1_rtx operands. For VOIDmode constants, get mode from
2349 pred_mode. Check mode size if the mode is supported by ABI.
2350 (standard_sse_constant_opcode): Do not use standard_constant_p.
2351 Strictly check ABI support for all-ones operands.
2352 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
2353 immediates. Update calls to standard_sse_constant_p.
2354 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
2355 (ix86_rtx_costs): Ditto.
2356 * config/i386/i386.md (*movxi_internal_avx512f): Use
2357 nonimmediate_or_sse_const_operand instead of vector_move_operand.
2358 Use (v,BC) alternative instead of (v,C). Use register_operand
2359 checks instead of MEM_P.
2360 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
2361 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
2362 isa attribute. Use register_operand checks instead of MEM_P.
2363 (*movti_internal): Use nonimmediate_or_sse_const_operand for
2364 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
2365 alternative and corresponding sse2 isa attribute.
2366 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
2367 to standard_sse_constant_p.
2368 (FP constant splitters): Ditto.
2369 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
2371 * config/i386/predicates.md (constm1_operand): Remove.
2372 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
2373 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
2374 vector_all_ones_operand instead of constm1_operand.
2376 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2378 * print-rtl.c (print_rtx_insn_vec): New function.
2379 * print-rtl.h: New prototype.
2380 * store-motion.c (struct st_expr): Make avail_stores a vector.
2381 (st_expr_entry): Adjust.
2382 (free_st_expr_entry): Likewise.
2383 (print_store_motion_mems): Likewise.
2384 (find_moveable_store): Likewise.
2385 (compute_store_table): Likewise.
2386 (delete_store): Likewise.
2387 (build_store_vectors): Likewise.
2389 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2391 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
2393 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2395 * vec.h (vec_safe_contains): New function.
2396 (vec::contains): Likewise.
2397 (vec::begin): Likewise.
2398 (vec::end): Likewise.
2400 2016-04-23 Jakub Jelinek <jakub@redhat.com>
2403 * cfgexpand.c (expand_stack_vars): Fix typo.
2405 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
2407 * system.h (list, map, set, vector): Include conditionally.
2408 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
2409 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
2410 * ipa-icf.c (INCLUDE_LIST): Define.
2411 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
2412 * config/sh/sh.c (INCLUDE_VECTOR): Define.
2413 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
2414 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
2415 * cp/logic.cc (INCLUDE_LIST): Define.
2416 * fortran/trans-common.c (INCLUDE_MAP): Define.
2418 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
2420 * auto-profile.c: Remove <string.h> include.
2421 * ipa-icf-gimple.c: Remove <list> include.
2422 * diagnostic.c: Remove <new> include.
2423 * genmatch.c: Likewise.
2424 * pretty-print.c: Likewise.
2425 * toplev.c: Likewise
2426 * c/c-objc-common.c: Likewise.
2427 * cp/error.c: Likewise.
2428 * fortran/error.c: Likewise.
2430 2016-04-22 Richard Biener <rguenther@suse.de>
2432 * lto-streamer-in.c (input_ssa_names): Do not allocate
2433 GIMPLE_NOP for all SSA names.
2434 * lto-streamer-out.c (output_ssa_names): Do not output
2435 SSA names that should have been released.
2437 2016-04-22 Richard Biener <rguenther@suse.de>
2439 PR tree-optimization/70740
2440 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
2443 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
2446 * config/i386/predicates.md (call_insn_operand): Replace
2447 sibcall_memory_operand with memory_operand.
2449 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
2451 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
2452 has_single_use() tests.
2453 (register_edge_assert_for_1): Likewise.
2454 (find_assert_locations_1): Check the liveness bitmap instead of
2455 checking has_single_use().
2457 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
2460 * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
2461 Extract AVX-512BW constraint from AVX.
2463 2016-04-21 Richard Biener <rguenther@suse.de>
2465 PR tree-optimization/70725
2466 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
2467 for phi_convertible_by_degenerating_args.
2468 (predicate_all_scalar_phis): Handle single-argument PHIs.
2470 2016-04-21 Richard Biener <rguenther@suse.de>
2473 * fold-const.c (fold_comparison): Return properly typed
2476 2016-04-21 Bin Cheng <bin.cheng@arm.com>
2478 PR tree-optimization/70715
2479 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2480 after expanding BASE using expand_simple_operations.
2482 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
2484 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
2485 New transformations.
2487 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
2489 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
2491 2016-04-20 Jan Hubicka <jh@suse.cz>
2493 * ipa-inline.c (can_inline_edge_p): Pass caller info to
2494 ultiimate_alias_target.
2495 (update_callee_keys): Likewise.
2496 (lookup_recursive_calls): Likewise.
2497 (speculation_useful_p): Likewise.
2499 2016-04-20 Jan Hubicka <jh@suse.cz>
2502 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
2503 (set_nothrow_flag_1): ... this; handle interposition correctly;
2504 recurse on aliases and thunks.
2505 (cgraph_node::set_nothrow_flag): New.
2506 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
2507 functions compiled with non-call exceptions that binds to current
2509 (propagate_nothrow): Be safe WRT interposition.
2510 * cgraph.h (set_nothrow_flag): Update prototype.
2512 2016-04-18 Jan Hubicka <jh@suse.cz>
2514 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
2515 max_loop_iterations_int.
2516 (tree_unswitch_outer_loop): Likewise.
2518 2016-04-20 Bin Cheng <bin.cheng@arm.com>
2520 PR tree-optimization/69489
2521 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
2522 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
2523 Revise dump message.
2524 (if_convertible_bb_p): Remove check on edge count of basic block's
2527 2016-04-20 Bin Cheng <bin.cheng@arm.com>
2529 PR tree-optimization/56625
2530 PR tree-optimization/69489
2531 * tree-data-ref.h (DR_INNERMOST): New macro.
2532 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
2533 hashing struct innermost_loop_behavior.
2534 (ref_DR_map): Remove.
2535 (innermost_DR_map): New map.
2536 (baseref_DR_map): Revise comment.
2537 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
2538 to innermost_DR_map accroding to its innermost loop behavior.
2539 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
2540 to its innermost loop behavior.
2541 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
2542 Add initialization for innermost_DR_map. Record memory reference
2543 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
2544 have innermost loop behavior.
2545 (if_convertible_loop_p): Remove release for ref_DR_map. Release
2548 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
2550 * config/i386/i386.md (*lea<mode>_general_1): Rename from
2551 *lea_general_1. Use explicit SWI12 mode interator.
2552 (*lea<mode>_general_2): Rename from *lea_general_2.
2553 Use explicit SWI12 mode interator.
2554 (*lea<mode>_general_3): Rename from *lea_general_3.
2555 Use explicit SWI12 mode interator.
2556 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
2557 Use explicit SWI12 mode interator.
2558 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
2559 Use explicit SWI48 mode interator.
2561 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
2563 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2564 Short-cut unaligned load and store cases. Handle all integer
2566 (ix86_expand_vector_move_misalign): Short-cut unaligned load
2567 and store cases. Call ix86_avx256_split_vector_move_misalign
2568 directly without checking mode class.
2570 2016-04-20 Andrew Pinski <apinski@cavium.com>
2571 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2574 * config/aarch64/aarch64.md (sibcall): Force call
2575 address to be DImode for ILP32.
2576 (sibcall_value): Likewise.
2578 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
2580 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
2582 2016-04-20 Richard Biener <rguenther@suse.de>
2584 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
2585 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
2586 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
2587 (maybe_push_res_to_seq): Adjust.
2588 * gimple-fold.c (maybe_build_generic_op): Likewise.
2590 2016-04-20 Marek Polacek <polacek@redhat.com>
2592 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
2595 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
2597 * config/i386/sse.md (vec_unpacks_lo_hi): Always
2598 use kmovw to support AVX512F target.
2600 2016-04-20 Bin Cheng <bin.cheng@arm.com>
2602 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
2604 2016-04-20 Marek Polacek <polacek@redhat.com>
2606 PR tree-optimization/70725
2607 * tree-if-conv.c (is_false_predicate): New function.
2608 (predicate_mem_writes): Use it.
2610 2016-04-20 Richard Biener <rguenther@suse.de>
2612 PR tree-optimization/70726
2613 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
2614 shift amounts from a pattern stmt operand.
2616 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2619 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
2620 stack_restore_from_fpr pattern when restoring r15.
2621 (s390_optimize_prologue): Strip away the memory barrier in the
2622 parallel when trying to get rid of restore insns.
2623 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
2624 definition for loading the stack pointer from an FPR. Compared to
2625 the normal move insn this pattern includes a full memory barrier.
2627 2016-04-19 Jakub Jelinek <jakub@redhat.com>
2630 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
2631 implicitly linear or lastprivate iterator on the outer context.
2633 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
2635 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
2637 * config/i386/i386.md (ssememalign): Removed.
2638 * config/i386/sse.md: Remove ssememalign attribute from patterns.
2640 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
2643 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
2644 const short * to __builtin_ia32_loaddquhi512_mask.
2645 (_mm512_maskz_loadu_epi16): Likewise.
2646 (_mm512_mask_storeu_epi16): Pass short * to
2647 __builtin_ia32_storedquhi512_mask.
2648 (_mm512_mask_loadu_epi8): Pass const char * to
2649 __builtin_ia32_loaddquqi512_mask.
2650 (_mm512_maskz_loadu_epi8): Likewise.
2651 (_mm512_mask_storeu_epi8): Pass char * to
2652 __builtin_ia32_storedquqi512_mask.
2653 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
2654 const double * to __builtin_ia32_loadupd512_mask.
2655 (_mm512_mask_loadu_pd): Likewise.
2656 (_mm512_maskz_loadu_pd): Likewise.
2657 (_mm512_storeu_pd): Pass double * to
2658 __builtin_ia32_storeupd512_mask.
2659 (_mm512_mask_storeu_pd): Likewise.
2660 (_mm512_loadu_ps): Pass const float * to
2661 __builtin_ia32_loadups512_mask.
2662 (_mm512_mask_loadu_ps): Likewise.
2663 (_mm512_maskz_loadu_ps): Likewise.
2664 (_mm512_storeu_ps): Pass float * to
2665 __builtin_ia32_storeups512_mask.
2666 (_mm512_mask_storeu_ps): Likewise.
2667 (_mm512_mask_loadu_epi64): Pass const long long * to
2668 __builtin_ia32_loaddqudi512_mask.
2669 (_mm512_maskz_loadu_epi64): Likewise.
2670 (_mm512_mask_storeu_epi64): Pass long long *
2671 to __builtin_ia32_storedqudi512_mask.
2672 (_mm512_loadu_si512): Pass const int * to
2673 __builtin_ia32_loaddqusi512_mask.
2674 (_mm512_mask_loadu_epi32): Likewise.
2675 (_mm512_maskz_loadu_epi32): Likewise.
2676 (_mm512_storeu_si512): Pass int * to
2677 __builtin_ia32_storedqusi512_mask.
2678 (_mm512_mask_storeu_epi32): Likewise.
2679 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
2680 char * to __builtin_ia32_storedquqi256_mask.
2681 (_mm_mask_storeu_epi8): Likewise.
2682 (_mm256_mask_loadu_epi16): Pass const short * to
2683 __builtin_ia32_loaddquhi256_mask.
2684 (_mm256_maskz_loadu_epi16): Likewise.
2685 (_mm_mask_loadu_epi16): Pass const short * to
2686 __builtin_ia32_loaddquhi128_mask.
2687 (_mm_maskz_loadu_epi16): Likewise.
2688 (_mm256_mask_loadu_epi8): Pass const char * to
2689 __builtin_ia32_loaddquqi256_mask.
2690 (_mm256_maskz_loadu_epi8): Likewise.
2691 (_mm_mask_loadu_epi8): Pass const char * to
2692 __builtin_ia32_loaddquqi128_mask.
2693 (_mm_maskz_loadu_epi8): Likewise.
2694 (_mm256_mask_storeu_epi16): Pass short * to.
2695 __builtin_ia32_storedquhi256_mask.
2696 (_mm_mask_storeu_epi16): Pass short * to.
2697 __builtin_ia32_storedquhi128_mask.
2698 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
2699 const double * to __builtin_ia32_loadupd256_mask.
2700 (_mm256_maskz_loadu_pd): Likewise.
2701 (_mm_mask_loadu_pd): Pass onst double * to
2702 __builtin_ia32_loadupd128_mask.
2703 (_mm_maskz_loadu_pd): Likewise.
2704 (_mm256_mask_storeu_pd): Pass double * to
2705 __builtin_ia32_storeupd256_mask.
2706 (_mm_mask_storeu_pd): Pass double * to
2707 __builtin_ia32_storeupd128_mask.
2708 (_mm256_mask_loadu_ps): Pass const float * to
2709 __builtin_ia32_loadups256_mask.
2710 (_mm256_maskz_loadu_ps): Likewise.
2711 (_mm_mask_loadu_ps): Pass const float * to
2712 __builtin_ia32_loadups128_mask.
2713 (_mm_maskz_loadu_ps): Likewise.
2714 (_mm256_mask_storeu_ps): Pass float * to
2715 __builtin_ia32_storeups256_mask.
2716 (_mm_mask_storeu_ps): ass float * to
2717 __builtin_ia32_storeups128_mask.
2718 (_mm256_mask_loadu_epi64): Pass const long long * to
2719 __builtin_ia32_loaddqudi256_mask.
2720 (_mm256_maskz_loadu_epi64): Likewise.
2721 (_mm_mask_loadu_epi64): Pass const long long * to
2722 __builtin_ia32_loaddqudi128_mask.
2723 (_mm_maskz_loadu_epi64): Likewise.
2724 (_mm256_mask_storeu_epi64): Pass long long * to
2725 __builtin_ia32_storedqudi256_mask.
2726 (_mm_mask_storeu_epi64): Pass long long * to
2727 __builtin_ia32_storedqudi128_mask.
2728 (_mm256_mask_loadu_epi32): Pass const int * to
2729 __builtin_ia32_loaddqusi256_mask.
2730 (_mm256_maskz_loadu_epi32): Likewise.
2731 (_mm_mask_loadu_epi32): Pass const int * to
2732 __builtin_ia32_loaddqusi128_mask.
2733 (_mm_maskz_loadu_epi32): Likewise.
2734 (_mm256_mask_storeu_epi32): Pass int * to
2735 __builtin_ia32_storedqusi256_mask.
2736 (_mm_mask_storeu_epi32): Pass int * to
2737 __builtin_ia32_storedqusi128_mask.
2738 * config/i386/i386-builtin-types.def (PCSHORT): New.
2740 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
2741 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
2742 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
2743 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
2744 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
2745 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
2746 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
2747 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
2748 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
2749 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
2750 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
2751 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
2752 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
2753 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
2754 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
2755 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
2756 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
2757 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
2758 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
2759 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
2760 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
2761 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
2762 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
2763 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
2764 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
2765 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
2766 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
2767 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
2768 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
2769 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
2770 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
2771 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
2772 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
2773 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
2774 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
2775 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
2776 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
2777 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
2778 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
2779 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
2780 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
2781 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
2782 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
2783 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
2784 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
2785 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
2786 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
2787 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
2788 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
2790 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
2791 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
2793 (ix86_expand_vector_move_misalign): Likewise.
2794 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
2795 to scalar function prototype for unaligned load/store builtins.
2796 (ix86_expand_special_args_builtin): Updated.
2797 * config/i386/sse.md (UNSPEC_LOADU): Removed.
2798 (UNSPEC_STOREU): Likewise.
2799 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
2800 (VI_ULOADSTORE_F_AVX512VL): Likewise.
2801 (ssescalarsize): Handle V4TI, V2TI and V1TI.
2802 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
2803 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
2804 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
2805 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
2806 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
2807 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
2808 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
2809 (<avx512>_storedqu<mode>_mask): Likewise.
2810 (*sse4_2_pcmpestr_unaligned): Likewise.
2811 (*sse4_2_pcmpistr_unaligned): Likewise.
2812 (*mov<mode>_internal): Renamed to ...
2813 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
2814 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
2815 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
2816 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
2818 2016-04-19 Richard Biener <rguenther@suse.de>
2820 PR tree-optimization/70171
2821 * tree-ssa-phiprop.c: Include stor-layout.h.
2822 (phiprop_insert_phi): Handle the aggregate copy case.
2823 (propagate_with_phi): Likewise.
2825 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
2827 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
2828 instead of simplify_gen_subreg (... , 0).
2829 (ix86_delegitimize_address): Ditto.
2830 (ix86_split_divmod): Ditto.
2831 (ix86_split_copysign_const): Ditto.
2832 (ix86_split_copysign_var): Ditto.
2833 (ix86_expand_args_builtin): Ditto.
2834 (ix86_expand_round_builtin): Ditto.
2835 (ix86_expand_special_args_builtin): Ditto.
2836 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
2837 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
2838 (udivmodqi4): Ditto.
2839 (absneg splitters): Ditto.
2840 (*jcc_bt<mode>_1): Ditto.
2842 2016-04-19 Richard Biener <rguenther@suse.de>
2844 PR tree-optimization/70724
2845 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
2846 restoring out from ...
2847 (free_scc_vn): ... here.
2848 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
2849 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
2851 (pass_fre::execute): Restore SSA info.
2853 2016-04-19 Richard Biener <rguenther@suse.de>
2855 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
2856 * gimple-walk.c (walk_gimple_op): Initialize it.
2857 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
2858 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
2859 remapping SSA names of defs.
2860 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
2863 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
2866 * lra-constraints.c (equiv_substition_p): New.
2867 (process_alt_operands): Use it.
2868 (swap_operands): Swap it.
2869 (curr_insn_transform): Update it.
2871 2016-04-18 Michael Matz <matz@suse.de>
2873 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
2874 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
2875 * tree-core.h (tree_type_common.align): Use bit-field.
2876 (tree_type_common.spare): New.
2877 (tree_decl_common.off_align): Make smaller.
2878 (tree_decl_common.align): Use bit-field.
2880 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
2881 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
2882 (scan_sharing_clauses): Ditto.
2883 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2884 (omp_finish_file): Ditto.
2885 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
2886 (layout_decl): Ditto.
2887 (relayout_decl): Ditto.
2888 (finalize_record_size): Use SET_TYPE_ALIGN.
2889 (finalize_type_size): Ditto.
2890 (finish_builtin_struct): Ditto.
2891 (layout_type): Ditto.
2892 (initialize_sizetypes): Ditto.
2893 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
2894 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
2895 (lookup_field_for_decl): Use SET_DECL_ALIGN.
2896 (get_chain_field): Ditto.
2897 (get_trampoline_type): Ditto.
2898 (get_nl_goto_field): Ditto.
2899 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
2901 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
2902 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
2903 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2904 (build_qualified_type): Use SET_TYPE_ALIGN.
2905 (build_aligned_type, build_range_type_1): Ditto.
2906 (build_atomic_base): Ditto.
2907 (build_common_tree_nodes): Ditto.
2908 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
2909 (expand_one_stack_var_at): Ditto.
2910 * coverage.c (build_var): Use SET_DECL_ALIGN.
2911 * except.c (init_eh): Ditto.
2912 * function.c (assign_parm_setup_block): Ditto.
2913 * symtab.c (increase_alignment_1): Ditto.
2914 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
2915 * tree-vect-stmts.c (ensure_base_align): Ditto.
2916 * varasm.c (align_variable): Ditto.
2917 (assemble_variable): Ditto.
2918 (build_constant_desc): Ditto.
2919 (output_constant_def_contents): Ditto.
2921 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
2922 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
2923 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
2924 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
2925 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
2927 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
2930 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
2931 replace %vmovsd with "%vmovq".
2932 (vec_concatv2df): Likewise.
2934 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
2936 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
2937 (*vec_extractv2si_0): Ditto.
2938 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
2939 (zero_extended_scalar_load_operand splitters): Ditto.
2940 (vec_extract splitters): Ditto.
2941 (*vec_extractv4si_0_zext): Ditto.
2942 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
2944 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
2945 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
2946 (*sse4_1_extractps): Use lowpart_subreg.
2947 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
2949 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2951 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
2953 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
2954 Mention Solaris 11 packaging changes.
2955 Update gas and gld requirements.
2956 Remove reference to pre-Solaris 10 bug.
2957 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
2959 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
2962 2016-04-17 Jan Hubicka <jh@suse.cz>
2964 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
2965 max_loop_iterations_int.
2967 2016-04-18 Richard Biener <rguenther@suse.de>
2969 PR tree-optimization/43434
2970 * tree-ssa-structalias.c (struct vls_data): New.
2971 (visit_loadstore): Handle all pointer-based accesses.
2972 (compute_dependence_clique): Compute a bitmap of restrict tags
2973 assigned bases and pass it to visit_loadstore.
2975 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
2978 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
2979 armv8.1-a and armv8.1-a+crc.
2981 2016-04-18 Richard Biener <rguenther@suse.de>
2983 PR tree-optimization/70701
2984 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
2985 references after translating through a memcpy.
2987 2016-04-18 Richard Biener <rguenther@suse.de>
2989 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
2990 (compute_antic): ... here. For partial antic use regular
2991 postorder and scrap iteration.
2992 (compute_partial_antic_aux): Remove unused return value.
2993 (init_pre): Do not allocate postorder.
2994 (fini_pre): Do not free postorder.
2996 2016-04-18 Richard Biener <rguenther@suse.de>
2999 * expmed.c (extract_bit_field_1): Remove broken case
3000 using a wider MODE_INT mode.
3002 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
3004 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
3005 unless compiling with at least GCC-4.8.
3007 2016-04-17 Jan Hubicka <jh@suse.cz>
3010 * graphite.c (graphite_finalize): Update call to
3011 tree_estimate_probability.
3012 * predict.h (tree_estimate_probability): Update prototype.
3014 2016-04-17 Jan Hubicka <jh@suse.cz>
3016 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
3017 (tree_estimate_probability): Likewise.
3018 (pass_profile::execute): Update.
3019 (report_predictor_hitrates): New function.
3020 * profile.c (compute_branch_probabilities): Use it.
3021 * predict.h (report_predictor_hitrates): Declare.
3023 2016-04-17 Jan Hubicka <jh@suse.cz>
3026 * cgraph.h (cgraph_node::set_const_flag,
3027 cgraph_node::set_pure_flag): Update prototype to return bool;
3029 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
3030 of interposable symbol are interposable, too.
3031 (cgraph_set_const_flag_1): Rename to ...
3032 (set_const_flag_1): ... this one; change to self recursive function
3033 instead of call_for_symbol_thunks_and_aliases. Handle correctly
3034 clearnig the flag in all variants and also virtual thunks of const
3035 functions are pure; track if any change was done.
3036 (cgraph_node::set_const_flag): Update.
3037 (struct set_pure_flag_info): New struct.
3038 (cgraph_set_pure_flag_1): Rename to ...
3039 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
3040 rather than pointer encoded flags; track if any changes was done;
3041 handle correctly clearning flag and setting flag of aliases already
3043 (cgraph_node::set_pure_flag): Update.
3044 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
3046 2016-04-17 Tom de Vries <tom@codesourcery.com>
3049 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
3052 2016-04-17 Tom de Vries <tom@codesourcery.com>
3054 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
3055 '{}<> ' as escape-for-record.
3057 2016-04-17 Tom de Vries <tom@codesourcery.com>
3059 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
3062 2016-04-17 Tom de Vries <tom@codesourcery.com>
3065 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
3066 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
3067 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
3068 * passes.c (finish_optimization_passes): Only call
3069 finish_graph_dump_file if dfi->graph_dump_initialized.
3070 (execute_function_dump, pass_init_dump_file): Use
3071 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
3073 2016-04-17 Tom de Vries <tom@codesourcery.com>
3075 PR tree-optimization/70256
3076 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
3077 (debug_varmap): New function.
3079 2016-04-17 Tom de Vries <tom@codesourcery.com>
3082 * passes.c (pass_manager::register_pass): Propagate pflags.
3084 2016-04-17 Tom de Vries <tom@codesourcery.com>
3087 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
3088 * passes.c (pass_manager::pass_manager): Declare and init p_start in
3089 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
3090 check if it's equal to p_start.
3091 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
3093 2016-04-15 Jan Hubicka <jh@suse.cz>
3096 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
3097 function does not bind to current def.
3098 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
3099 handle conservatively calls to functions that does not need to bind
3101 (check_call): Update call of worse_state.
3102 (ignore_edge_for_nothrow): Update.
3103 (ignore_edge_for_pure_const): Likewise.
3104 (propagate_pure_const): Update calls to worse_state.
3105 (skip_function_for_local_pure_const): Reformat comments.
3107 2016-04-15 Jan Hubicka <jh@suse.cz>
3110 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
3111 (cgraph_node::function_symbol): Likewise.
3112 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
3113 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
3114 (symtab_node::ultimate_alias_target): Add REF parameter.
3115 (symtab_node::binds_to_current_def_p): Declare.
3116 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
3117 (cgraph_node::function_symbol): Likewise.
3118 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
3119 (cgraph_node::get_availability): Likewise.
3120 (cgraph_edge::binds_to_current_def_p): New inline function.
3121 (varpool_node::get_availability): Add REF parameter.
3122 (varpool_node::ultimate_alias_target): Likewise.
3123 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
3124 (symtab_node::binds_to_current_def_p): Likewise.
3125 * varpool.c (varpool_node::get_availability): Likewise.
3127 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
3130 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
3131 Fix mode size check.
3133 2016-04-15 Jakub Jelinek <jakub@redhat.com>
3135 * BASE-VER: Set to 7.0.0.
3137 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
3139 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
3141 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3143 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
3144 architecture revisions.
3146 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
3148 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
3149 * config/i386/i386.c (ix86_using_red_zone): No longer static.
3150 * config/i386/i386.md (stack decrement to push peepholes): Guard
3151 with !x86_using_red_zone ().
3153 2016-04-15 Jakub Jelinek <jakub@redhat.com>
3156 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
3157 to dump_generic_node.
3158 (NIY): Pass also flags to do_niy.
3160 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
3162 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
3163 (simd_clone_vector_of_formal_parm_types)
3164 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
3165 (simd_clone_mangle, simd_clone_create)
3166 (simd_clone_adjust_return_type, create_tmp_simd_array)
3167 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
3168 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
3169 (ipa_simd_modify_function_body, simd_clone_linear_addend)
3170 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
3171 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
3172 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
3173 * omp-simd-clone.c: ... this new file.
3174 (simd_clone_vector_of_formal_parm_types): Make it static.
3175 * Makefile.in (OBJS): Add omp-simd-clone.o.
3177 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
3180 * config/i386/sse.md: Use proper memory operand modifiers.
3183 2016-04-15 Richard Biener <rguenther@suse.de>
3184 Alan Modra <amodra@gmail.com>
3186 PR tree-optimization/70130
3187 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
3188 when alignment stays not the same and no not use the realign
3191 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3194 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3195 direct move handlers for KFmode. Change TFmode handlers test from
3196 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
3198 2016-04-14 Jakub Jelinek <jakub@redhat.com>
3201 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
3202 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
3203 (inlined_polymorphic_ctor_dtor_block_p): Use it.
3204 * tree-ssa-live.c (remove_unused_scope_block_p): When
3205 in_ctor_dtor_block, avoid discarding not just BLOCKs with
3206 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
3207 block_ultimate_origin is FUNCTION_DECL.
3208 (remove_unused_locals): If current_function_decl is
3209 polymorphic_ctor_dtor_p, pass initial true to
3210 remove_unused_scope_block_p' is_ctor_dtor_block.
3212 2016-04-14 Martin Sebor <msebor@redhat.com>
3217 * doc/extend.texi (Variable Length): Revert.
3219 2016-04-14 Marek Polacek <polacek@redhat.com>
3220 Jan Hubicka <hubicka@ucw.cz>
3223 * tree.c (verify_type): Disable the canonical type of main variant
3226 2016-04-14 Jason Merrill <jason@redhat.com>
3228 * cfgexpand.c, expr.c: Revert previous change.
3230 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
3233 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
3234 when building a mem ref for the incoming reduction variable.
3236 2016-04-14 Richard Biener <rguenther@suse.de>
3238 PR tree-optimization/70614
3239 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
3240 loop if the evolution dropped to chrec_dont_know.
3241 (interpret_condition_phi): Likewise.
3243 2016-04-14 Richard Biener <rguenther@suse.de>
3245 PR tree-optimization/70623
3246 * tree-ssa-pre.c (changed_blocks): Make global ...
3247 (compute_antic): ... local here. Move and fix worklist
3248 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
3249 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
3250 worklist handling, dump when ANTIC_IN changed.
3251 (compute_partial_antic_aux): Remove worklist handling.
3252 (init_pre): Do not compute post dominators. Add a comment about
3253 the CFG order chosen.
3254 (fini_pre): Do not free post dominators.
3256 2016-04-13 Martin Sebor <msebor@redhat.com>
3261 * doc/extend.texi (Variable Length): Document C++ specifics.
3263 2016-04-13 Jakub Jelinek <jakub@redhat.com>
3266 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
3267 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
3268 eh edges have been purged.
3271 * tree-sra.c (create_access_replacement,
3272 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
3274 * tree-pretty-print.c (dump_fancy_name): New function.
3275 (dump_decl_name, dump_generic_node): Use it.
3277 2016-04-13 Jason Merrill <jason@redhat.com>
3279 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
3280 * expr.c (expand_expr_real_1): Likewise.
3282 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
3284 * config/i386/i386.md (kunpckhi): Swap operands.
3285 (kunpcksi): Likewise.
3286 (kunpckdi): Likewise.
3287 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
3288 (vec_pack_trunc_<mode>): Likewise.
3290 2016-04-13 Jakub Jelinek <jakub@redhat.com>
3293 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
3296 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
3297 gimplification turns some element into non-constant.
3300 * rtl.h (convert_memory_address_addr_space_1): New prototype.
3301 * explow.c (convert_memory_address_addr_space_1): No longer static,
3302 add NO_EMIT argument and don't call convert_modes if true, pass
3303 it down recursively, remove break after return.
3304 (convert_memory_address_addr_space): Adjust caller.
3305 * simplify-rtx.c (simplify_unary_operation_1): Call
3306 convert_memory_address_addr_space_1 instead of convert_memory_address,
3307 if it returns NULL, don't simplify.
3309 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
3312 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
3314 2016-04-12 Jakub Jelinek <jakub@redhat.com>
3316 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3317 Bump the upper SIMDLEN limits, so that if the return type or
3318 characteristic type if the return type is void can be passed in
3319 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
3322 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3325 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
3326 Do not use "=" constraint on an input constraint.
3327 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
3328 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
3329 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
3330 generates (neg (abs ...)) instead of (abs ...).
3332 2016-04-12 Jakub Jelinek <jakub@redhat.com>
3334 PR rtl-optimization/70596
3335 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
3336 just invalidate LRA data and reset them. Adjust dump wording.
3338 2016-04-12 Martin Liska <mliska@suse.cz>
3341 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
3343 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
3345 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3346 max_loop_iterations_int.
3347 (tree_unswitch_outer_loop): Likewise.
3348 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
3349 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
3351 2016-04-12 Tom de Vries <tom@codesourcery.com>
3353 PR tree-optimization/68756
3354 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
3355 instead of new_name.
3357 2016-04-12 Jakub Jelinek <jakub@redhat.com>
3359 PR tree-optimization/70602
3360 * tree-sra.c (generate_subtree_copies): Don't write anything into
3361 constant pool decls.
3363 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
3364 regardless whether there are depend clauses or not.
3366 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3369 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
3370 target attribute and pragma from changing the -mfloat128
3371 and -mfloat128-hardware options.
3373 * doc/extend.texi (Additional Floating Types): Document PowerPC
3374 __float128 restrictions.
3376 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
3379 * config/aarch64/driver-aarch64.c
3380 (aarch64_get_extension_string_for_isa_flags): New.
3381 (arch_extension): Rename to...
3382 (aarch64_arch_extension): ...This.
3383 (ext_to_feat_string): Rename to...
3384 (aarch64_extensions): ...This.
3385 (aarch64_core_data): Keep track of architecture extension flags.
3386 (cpu_data): Rename to...
3387 (aarch64_cpu_data): ...This.
3388 (aarch64_arch_driver_info): Keep track of architecture extension
3390 (get_arch_name_from_id): Rename to...
3391 (get_arch_from_id): ...This, change return type.
3392 (host_detect_local_cpu): Update and reformat for renames, handle
3393 extensions through common infrastructure.
3395 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
3398 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
3399 track of a canonical flag name.
3400 (all_extensions): Likewise.
3401 (arch_to_arch_name): Also track extension flags enabled by the arch.
3402 (all_architectures): Likewise.
3403 (aarch64_parse_extension): Move to here.
3404 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
3406 (aarch64_rewrite_selected_cpu): Update for above change.
3407 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
3408 are handled, such that the single explicit value enabled by an
3409 extension is kept seperate from the implicit values it also enables.
3410 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
3412 (aarch64_parse_extension): New.
3413 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
3414 here to config/aarch64/aarch64-protos.h.
3415 (aarch64_parse_extension): Move from here to
3416 common/config/aarch64/aarch64-common.c.
3417 (aarch64_option_print): Update.
3418 (aarch64_declare_function_name): Likewise.
3419 (aarch64_start_file): Likewise.
3420 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
3421 the canonical flag for extensions.
3422 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
3425 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
3427 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
3430 2016-04-09 Tom de Vries <tom@codesourcery.com>
3432 PR tree-optimization/68953
3433 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
3434 first to last subscript.
3436 2016-04-09 Jakub Jelinek <jakub@redhat.com>
3438 PR tree-optimization/70586
3439 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
3442 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
3446 PR tree-optimization/70373
3450 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
3451 clauses for acc parallel reductions as necessary. Error on those
3453 * omp-low.c (scan_sharing_clauses): Don't install variables which
3454 are used in acc parallel reductions.
3455 (lower_rec_input_clauses): Remove dead code.
3456 (lower_oacc_reductions): Add support for reference reductions.
3457 (lower_reduction_clauses): Remove dead code.
3458 (lower_omp_target): Don't remap variables appearing in acc parallel
3460 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
3462 2016-04-08 Jakub Jelinek <jakub@redhat.com>
3465 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
3466 with multiple SSA_NAME defs, force the outputs other than first
3467 to be live before calling live_track_process_def on each output.
3469 PR rtl-optimization/70574
3470 * fwprop.c (forward_propagate_and_simplify): Don't add
3471 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
3472 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
3473 paradoxical subregs within *loc.
3475 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
3477 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
3478 -ftree-parallelize-loops={0,1}.
3479 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
3480 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
3481 * config/ia64/hpux.h (LIB_SPEC): Likewise.
3482 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3483 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
3485 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
3488 * asan.c (instrument_derefs): If we get unknown location, extract it
3490 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
3492 2016-04-08 Tom de Vries <tom@codesourcery.com>
3494 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
3495 implicit firstprivate clause.
3497 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3500 * config/arm/thumb2.md (tst + branch-> lsls + branch
3501 peephole below *orsi_not_shiftsi_si): Require that condition
3502 register is dead after the peephole.
3503 (second peephole after the above): Likewise.
3505 2016-04-08 Alan Modra <amodra@gmail.com>
3508 * builtins.c (fold_builtin_classify): For IBM extended precision,
3509 look at just the high-order double to test for NaN.
3510 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
3511 test just the high double for Inf but both doubles for subnormal
3514 2016-04-07 Jakub Jelinek <jakub@redhat.com>
3516 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
3517 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
3518 node->simdclone->mask_mode != VOIDmode masks.
3519 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
3520 earlier, use it instead of node->simdclone.
3521 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3522 Set clonei->mask_mode.
3524 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
3527 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
3528 Pass it through to cp_parser_already_scoped_statement.
3529 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
3530 it through to cp_parser_statement.
3531 (cp_parser_statement): Pass IF_P through to
3532 cp_parser_iteration_statement.
3533 (cp_parser_pragma): Adjust call to
3534 cp_parser_iteration_statement.
3536 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
3539 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
3540 resolve a future -Wparentheses warning.
3541 * omp-low.c (scan_sharing_clauses): Likewise.
3542 * tree-parloops.c (eliminate_local_variables): Likewise.
3544 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
3546 PR rtl-optimization/70398
3547 * lra-constraints.c (process_address_1): Check zero scale and code
3548 for reloading with zero scale.
3550 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
3552 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
3553 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
3555 2016-04-06 Jakub Jelinek <jakub@redhat.com>
3557 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3558 Add support for AVX512F clones, include them by default for
3559 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
3560 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
3564 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
3565 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
3566 firstprivate clauses.
3567 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
3568 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
3569 (lower_omp_target): Set TREE_NO_WARNING for
3570 non-addressable possibly uninitialized vars which are copied into
3571 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
3573 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
3575 * config/pa/predicates.md (integer_store_memory_operand): Accept
3576 REG+D operands with a large offset when reload_in_progress is true.
3577 (floating_point_store_memory_operand): Likewise.
3579 2016-04-05 Jakub Jelinek <jakub@redhat.com>
3582 * match.pd (nested int casts): Limit to GIMPLE.
3584 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
3587 * ipa-devirt.c (maybe_record_node): Fix comment; use
3588 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
3590 2016-04-05 Jakub Jelinek <jakub@redhat.com>
3592 PR rtl-optimization/70542
3593 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
3594 if there are any uses other than insn or debug insns.
3596 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
3597 Jakub Jelinek <jakub@redhat.com>
3599 PR tree-optimization/70509
3600 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
3601 Shift HOST_WIDE_INT_1U instead of 1.
3603 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
3605 PR tree-optimization/70509
3606 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
3607 of the vector base type for index.
3609 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
3612 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
3614 2016-04-05 Richard Biener <rguenther@suse.de>
3616 PR tree-optimization/70526
3617 * tree-sra.c (build_ref_for_offset): Use prev_base to
3618 extract the alias pointer type.
3620 2016-04-05 Richard Biener <rguenther@suse.de>
3622 * dse.c (struct store_info): Remove alias_set member.
3623 (struct read_info_type): Likewise.
3624 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
3625 spill_deleted, clear_alias_set_lookup): Remove.
3626 (get_group_info): Remove dead base == NULL_RTX case.
3627 (dse_step0): Remove initialization of removed variables.
3628 (delete_dead_store_insn): Reomve alias set dumping.
3629 (free_read_records): Remove alias_set handling.
3630 (canon_address): Remove alias_set_out parameter.
3631 (record_store): Remove spill_alias_set, it's always zero.
3632 (check_mem_read_rtx): Likewise.
3633 (dse_step2): Rename from ...
3634 (dse_step2_nospill): ... this. Adjust.
3635 (scan_stores): Rename from ...
3636 (scan_stores_nospill): ... this.
3637 (scan_reads): Rename from ...
3638 (scan_reads_nospill): ... this.
3639 (scan_stores_spill, scan_reads_spill): Remove.
3640 (dse_step3_scan): Remove for_spills argument which is always false.
3641 (dse_step3): Likewise.
3642 (dse_step5): Rename from ...
3643 (dse_step5_nospill): ... this. Remove alias_set handling.
3644 (rest_of_handle_dse): Adjust.
3646 2016-04-05 Jakub Jelinek <jakub@redhat.com>
3649 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
3650 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
3651 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
3652 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
3654 2016-04-05 Richard Biener <rguenther@suse.de>
3657 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
3658 non-register type temporaries into SSA.
3660 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
3663 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
3664 calls when sanitizing.
3665 (possible_polymorphic_call_target_p): Fix formatting.
3667 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3668 Jakub Jelinek <jakub@redhat.com>
3671 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
3672 to ensure a call statement is compatible with a built-in's
3674 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
3677 2016-04-04 Richard Biener <rguenther@suse.de>
3679 PR rtl-optimization/70484
3680 * rtl.h (canon_output_dependence): Declare.
3681 * alias.c (canon_output_dependence): New function.
3682 * dse.c (record_store): Use canon_output_dependence rather
3683 than canon_true_dependence.
3685 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
3688 * cgraph.h (symtab_node::copy_visibility_from): New function.
3689 * symtab.c (symtab_node::copy_visibility_from): New function.
3690 * ipa-visibility.c (optimize_weakref): New function.
3691 (function_and_variable_visibility): Use it.
3693 2016-04-04 Martin Liska <mliska@suse.cz>
3696 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
3697 value that is really in range handled by SBR instruction.
3698 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
3699 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
3700 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
3702 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
3706 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
3707 set, but not for SP_REG operands.
3709 2016-04-02 Martin Sebor <msebor@redhat.com>
3712 * fold-const.c (maybe_nonzero_address): New function.
3713 (fold_comparison): Call it. Fold equality and relational
3714 expressions involving null pointers.
3715 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
3717 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
3719 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
3720 the "Y" constraint (scalar FP 0.0 immediate).
3722 * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
3723 Add the "const_double" to the list of operand constraints.
3725 2016-04-01 Jakub Jelinek <jakub@redhat.com>
3727 PR rtl-optimization/70467
3728 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
3729 If low word of the last operand is 0, just emit addition/subtraction
3732 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3735 * config/s390/s390.c (s390_expand_insv): Check for everything
3736 constant instead of just VOIDmode stuff.
3738 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3741 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
3743 2016-04-01 Nathan Sidwell <nathan@acm.org>
3745 * tree.def (TRY_CATCH_EXPR): Correct documentation.
3747 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
3749 PR rtl-optimization/70461
3750 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
3753 2016-03-31 Martin Liska <mliska@suse.cz>
3756 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
3757 a tree value or an immediate integer value to a buffer
3758 that is eventually copied to a BRIG section.
3759 (emit_immediate_operand): Call the function here.
3760 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
3761 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
3762 of class' fields that are removed.
3763 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
3764 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
3765 m_brig_repr_size fields.
3767 2016-03-31 Martin Liska <mliska@suse.cz>
3770 * hsa-gen.c (hsa_function_representation::update_dominance): New
3772 (convert_addr_to_flat_segment): Likewise.
3773 (gen_hsa_memory_set): New alignment argument.
3774 (gen_hsa_ctor_assignment): Likewise.
3775 (gen_hsa_insns_for_single_assignment): Provide alignment
3776 to gen_hsa_ctor_assignment.
3777 (gen_hsa_insns_for_direct_call): Add new argument.
3778 (expand_lhs_of_string_op): New function.
3779 (expand_string_operation_builtin): Likewise.
3780 (expand_memory_copy): New function.
3781 (expand_memory_set): New function.
3782 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
3783 (convert_switch_statements): Change signature.
3784 (generate_hsa): Use a return value of the function.
3785 (pass_gen_hsail::execute): Do not call
3786 convert_switch_statements here.
3787 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
3788 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
3789 (hsa_function_representation::update_dominance): New function.
3791 2016-03-31 Martin Liska <mliska@suse.cz>
3794 * hsa-brig.c (emit_directive_variable): Emit alignment
3795 according to hsa_symbol::m_align.
3796 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
3797 (dump_hsa_symbol): Dump alignment of HSA symbols.
3798 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
3799 (gen_hsa_addr_with_align): New function.
3800 (hsa_bitmemref_alignment): Use newly added function.
3801 (gen_hsa_insns_for_load): Likewise.
3802 (gen_hsa_insns_for_store): Likewise.
3803 (gen_hsa_memory_copy): New argument added.
3804 (gen_hsa_insns_for_single_assignment): Respect
3805 alignment for assignments processed via gen_hsa_memory_copy.
3806 (gen_hsa_insns_for_direct_call): Likewise.
3807 (gen_hsa_insns_for_return): Likewise.
3808 (gen_function_def_parameters): Set default alignment.
3809 * hsa.c (hsa_object_alignment): New function.
3810 (hsa_byte_alignment): Pasted function.
3811 * hsa.h (hsa_symbol::m_align): New field.
3813 2016-03-31 Bin Cheng <bin.cheng@arm.com>
3815 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
3816 scratch field for goto case.
3818 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
3820 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
3822 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
3825 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
3826 (scalar_chain::convert_insn): Call convert_op for reg
3827 moves to handle undefined registers.
3829 2016-03-31 Nathan Sidwell <nathan@acm.org>
3832 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
3833 Assert we don't want to move backwards.
3835 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
3838 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
3840 2016-03-31 Jakub Jelinek <jakub@redhat.com>
3842 PR rtl-optimization/70460
3843 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
3844 with operand from REG_LABEL_OPERAND, instead substitute
3845 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
3846 Don't do anything for REG_NON_LOCAL_GOTO jumps.
3848 2016-03-31 Martin Liska <mliska@suse.cz>
3850 * passes.c (execute_one_pass): Do not call
3851 todo_after for a discarded function.
3853 2016-03-31 Bin Cheng <bin.cheng@arm.com>
3855 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
3856 (no_cost, infinite_cost): Initialize the new field.
3857 (get_computation_cost_at): Record setup cost.
3858 (determine_use_iv_cost_address): Skip cost computation for sub
3859 uses if we can estimate it without losing accuracy.
3861 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
3863 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
3865 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3866 max_loop_iterations_int.
3867 (tree_unswitch_outer_loop): Likewise.
3868 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
3869 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
3871 2016-03-30 Richard Biener <rguenther@suse.de>
3874 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
3876 2016-03-30 Jakub Jelinek <jakub@redhat.com>
3879 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
3880 in gen_blendm expander.
3882 2016-03-30 Nick Clifton <nickc@redhat.com>
3885 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
3886 case where we are already provided with an SImode SUBREG.
3888 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
3891 * config/i386/i386.c (ix86_expand_epilogue): Properly check
3892 conflict between DRAP register and __builtin_eh_return.
3894 2016-03-30 Michael Matz <matz@suse.de>
3895 Richard Biener <rguenther@suse.de>
3898 * ipa-polymorphic-call.c (struct type_change_info): Change
3899 speculative to an unsigned allowing to limit the work we do.
3900 (csftc_abort_walking_p): New inline function..
3901 (check_stmt_for_type_change): Limit the number of may-defs
3902 skipped for speculative devirtualization to
3903 max-speculative-devirt-maydefs.
3904 * params.def (max-speculative-devirt-maydefs): New param.
3905 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
3907 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
3910 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
3913 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
3915 PR tree-optimization/59124
3916 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
3917 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
3919 2016-03-29 Jeff Law <law@redhat.com>
3921 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
3923 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
3925 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
3928 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
3930 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
3931 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
3932 gcrt0.o if linking dynamically.
3934 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
3937 * ipa-devirt.c (methods_equal_p): New function.
3938 (compare_virtual_tables): Use it.
3939 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
3940 * cgraphclones.c (clone_function_name_1): Use
3941 symbol_table::symbol_suffix_separator.
3942 * coverage.c (build_var): Likewise.
3943 * symtab.c (symbol_table::symbol_suffix_separator): New.
3945 2016-03-29 Jakub Jelinek <jakub@redhat.com>
3947 PR rtl-optimization/70429
3948 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
3949 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
3950 mode != result_mode.
3953 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
3955 PR tree-optimization/70405
3956 * ssa-iterators.h (num_imm_uses): Add missing braces.
3958 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
3960 PR rtl-optimization/68695
3961 * ira-color.c (allocno_copy_cost_saving): New.
3962 (improve_allocation): Use it.
3964 2016-03-29 Richard Henderson <rth@redhat.com>
3967 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
3969 2016-03-29 Richard Biener <rguenther@suse.de>
3972 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
3973 use alignment returned by get_pointer_alignment_1 if it is
3974 bigger than BITS_PER_UNIT.
3975 * builtins.c (get_pointer_alignment_1): Do not return true
3976 for alignment extracted from SSA info.
3978 2016-03-28 James Bowman <james.bowman@ftdichip.com>
3980 * config/ft32/ft32.opt (mnodiv): New.
3981 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
3982 * doc/invoke.texi (FT32 Options -mnodiv): New.
3984 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
3987 * config/i386/i386.md (define_split, andn): Fix modes.
3989 2016-03-26 Richard Biener <rguenther@suse.de>
3990 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3993 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
3995 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
3996 as 2nd argument to cl_optimization_restore().
3998 2016-03-25 Richard Henderson <rth@redhat.com>
4001 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
4002 * config/aarch64/aarch64-protos.h: Declare it.
4003 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
4005 2016-03-25 Alan Modra <amodra@gmail.com>
4008 * config/rs6000/constraints.md (j): Simplify.
4009 * config/rs6000/predicates.md (easy_fp_constant): Exclude
4011 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
4012 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
4013 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
4014 in all constraint alternatives.
4015 (movtd_64bit_nodm): Delete "j" constraint alternative.
4017 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
4019 * tree-ssa-propagate.c: Enhance docs for
4020 SSA_PROP_NOT_INTERESTING.
4022 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
4024 * doc/extend.texi: Fix typo in documentation to pure attribute.
4026 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
4029 * config/pa/pa.md (bswapdi2): Use a scratch register.
4031 2016-03-24 Richard Henderson <rth@redhat.com>
4034 * fold-const.c (extract_muldiv_1): Correct test for multiplication
4037 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
4039 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
4040 using ix86_expand_binary_operator instead of gen_andsi3.
4042 2016-03-24 Richard Biener <rguenther@suse.de>
4044 PR tree-optimization/70396
4045 * tree-vect-stmts.c (vectorizable_comparison): Use
4046 get_vectype_for_scalar_type.
4048 2016-03-24 Richard Biener <rguenther@suse.de>
4051 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
4052 with register bases.
4054 2016-03-24 Richard Biener <rguenther@suse.de>
4056 PR tree-optimization/70372
4057 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
4058 build_all_ones_cst to also handle vector types correctly.
4060 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4063 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
4066 2016-03-23 Marek Polacek <polacek@redhat.com>
4069 * doc/invoke.texi: Document -Wignored-attributes.
4071 2016-03-23 Bin Cheng <bin.cheng@arm.com>
4073 PR tree-optimization/69042
4074 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
4075 parameter from 30 to 40.
4077 2016-03-23 Bin Cheng <bin.cheng@arm.com>
4079 PR tree-optimization/69042
4080 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
4081 for use with constant offset stripped in base.
4083 2016-03-23 Richard Biener <rguenther@suse.de>
4086 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
4087 mode compatibility check.
4088 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
4090 2016-03-23 Jeff Law <law@redhat.com>
4092 PR tree-optimization/64058
4093 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
4095 (struct ssa_conflicts): Move up earlier in the file.
4096 (conflicts_, var_map_): New static variables.
4097 (initialize_conflict_count): New function to initialize the
4098 CONFLICT_COUNT field for each conflict pair.
4099 (compare_pairs): Lazily initialize the conflict count and use it
4100 as the first tie-breaker.
4101 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
4102 and wipe conflicts_ and map_ around the call to qsort. Remove
4103 special case for 2 coalesce pairs.
4104 * bitmap.c (bitmap_count_unique_bits): New function.
4105 (bitmap_count_bits_in_word): New function, extracted from
4107 (bitmap_count_bits): Use bitmap_count_bits_in_word.
4108 * bitmap.h (bitmap_count_unique_bits): Declare it.
4110 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
4113 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
4114 transparent alias chain for decl assembler name.
4115 * config/sol2.c (solaris_assemble_visibility): Likewise.
4117 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4119 * config/arm/arm1020e.md (1020call_op): Reduce reservation
4121 (v10_fdivs): Likewise.
4122 (v10_fdivd): Likewise.
4124 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4127 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
4128 to not call fclose twice on file.
4130 2016-03-23 Jakub Jelinek <jakub@redhat.com>
4132 PR tree-optimization/70354
4133 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
4134 oprnd0 is wider than oprnd1 and there is a cast from the wider
4135 type to oprnd1, mask it with the mask of the narrower type.
4138 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
4139 Optimize TARGET_STV splitters, if high or low word of last argument
4142 2016-03-22 Jeff Law <law@redhat.com>
4145 tree-ssa-threadbackward.c
4146 (fsm_find_control_statement_thread_paths): Correctly distinguish
4147 between old style jump threads vs FSM jump threads.
4149 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
4152 * config/i386/i386.c (scalar_chain::convert_op): Support
4153 uninitialized register usage case.
4155 2016-03-22 Richard Biener <rguenther@suse.de>
4158 * genmatch.c (gen_transform): Adjust last parameter to a three-state
4160 (capture::gen_transform): ... to change behavior when substituting
4161 a condition into cond or not-cond expr context.
4162 (dt_simplify::gen_1): Adjust.
4163 * gimple-match-head.c: Include gimplify.h for unshare_expr.
4164 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
4165 last change and instead change to
4166 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
4167 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
4169 2016-03-22 Anthony Green <green@moxielogic.com>
4171 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
4172 issue for moxiebox targets.
4173 (CC1PLUS_SPEC): Ditto.
4175 2016-03-22 Richard Biener <rguenther@suse.de>
4178 * fold-const.c (extract_muldiv_1): Properly perform multiplication
4181 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
4183 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
4185 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
4188 * config/i386/i386.c (def_builtin): Handle
4189 OPTION_MASK_ISA_AVX512VL to be and-ed with other
4191 (const struct builtin_description bdesc_special_args[]):
4192 Remove duplicate ISA bits.
4194 2016-03-22 Jakub Jelinek <jakub@redhat.com>
4197 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
4198 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
4199 in a way that works also for AVX512BW.
4202 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
4203 instead of source if operands[1] is xmm16 and above and
4204 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
4205 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
4208 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
4209 on assign if (*from_p) is a comparison, set it to
4210 TREE_NO_WARNING (*from_p).
4212 2016-03-21 Jakub Jelinek <jakub@redhat.com>
4215 * lra.c (restore_scratches): Ignore deleted insns.
4217 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
4218 Jakub Jelinek <jakub@redhat.com>
4220 PR tree-optimization/70317
4221 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
4224 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
4227 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
4228 of ix86_expand_move.
4230 (movti): Use general_operand for operand 1 predicate.
4232 2016-03-21 Martin Liska <mliska@suse.cz>
4234 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
4236 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
4238 2016-03-21 Martin Liska <mliska@suse.cz>
4241 * ipa-icf.c (sem_function::parse): Skip static
4242 constructors and destructors.
4244 2016-03-21 Jakub Jelinek <jakub@redhat.com>
4247 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
4248 function-like macro, peek following token(s) if it is followed
4249 by CPP_OPEN_PAREN token with optional padding in between, and
4250 if not, don't treat it like a macro.
4252 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
4253 Alexander Monakov <amonakov@ispras.ru>
4255 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
4256 for the stabs debug format.
4258 2016-03-21 Richard Biener <rguenther@suse.de>
4260 PR tree-optimization/70310
4261 * tree-vect-generic.c (expand_vector_condition): Fold the built
4264 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
4267 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
4268 Block third alternative for AVX-512VL target,
4270 2016-03-21 Martin Liska <mliska@suse.cz>
4273 * hsa-brig.c (emit_function_directives): Mark unemitted
4274 global variables for emission.
4275 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
4276 (get_symbol_for_decl): Likewise.
4277 * hsa.h (struct hsa_symbol): New flag.
4279 2016-03-21 Richard Biener <rguenther@suse.de>
4281 PR tree-optimization/70288
4282 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
4283 we do not estimate unsimplified all-constant conditionals or
4284 switches as optimized away.
4286 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
4288 PR rtl-optimization/69102
4289 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
4290 when we have a readonly dependency context.
4292 2016-03-18 Jeff Law <law@redhat.com>
4294 PR rtl-optimization/70263
4295 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
4296 (update_equiv_regs): When trying to move a store to after the insn
4297 that sets the source of the store, make sure the store occurs after
4298 the insn that sets the source of the store. When successful note
4299 the REG_EQUIV note created in the dump file.
4301 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
4302 Bernd Schmidt <bschmidt@redhat.com>
4304 * doc/extend.texi: Document more potential problems with basic asms.
4306 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
4308 PR rtl-optimization/70278
4309 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
4312 2016-03-18 Jason Merrill <jason@redhat.com>
4314 * calls.c (load_register_parameters): Fix zero size sibcall logic.
4316 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
4318 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
4319 values to 128b regs.
4321 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
4323 PR tree-optimization/70252
4324 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
4325 boolean vector has a proper number of elements.
4326 (supportable_narrowing_operation): Likewise.
4328 2016-03-18 Tom de Vries <tom@codesourcery.com>
4331 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
4333 2016-03-18 Jakub Jelinek <jakub@redhat.com>
4335 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
4336 instead of replace_rtx for DEBUG_INSNs.
4338 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4340 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
4341 load type reservations.
4343 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
4346 * config/pa/constraints.md: Revert 2015-02-13 change. Use
4347 define_constraint for "Q" and "T" constraints.
4349 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
4351 Tweak the pipeline model for Exynos M1
4353 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
4356 2016-03-17 David Malcolm <dmalcolm@redhat.com>
4359 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
4360 where one or both locations aren't within a line_map.
4362 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
4365 * opts.c (finish_options): Don't set flag_pie to the default if
4366 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
4369 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
4371 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
4372 true as ALL_REGS argument to replace_rtx.
4374 2016-03-17 Richard Biener <rguenther@suse.de>
4377 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
4380 2016-03-17 Jakub Jelinek <jakub@redhat.com>
4383 * rtl.h (replace_rtx): Add ALL_REGS argument.
4384 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
4385 equality and assert mode is the same, instead of just rtx pointer
4387 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
4388 true as ALL_REGS argument to replace_rtx.
4390 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
4392 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
4393 for boolean vector with vector mode only.
4394 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
4396 2016-03-17 Nick Clifton <nickc@redhat.com>
4399 * config/rx/rx.c (rx_print_integer): Print negative constants in
4402 2016-03-17 Jakub Jelinek <jakub@redhat.com>
4405 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
4407 2016-03-16 Richard Henderson <rth@redhat.com>
4408 Richard Biener <rguenth@suse.de>
4413 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
4414 first operand as is_gimple_condexpr.
4419 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
4420 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
4421 Do not gimplify the result.
4422 (do_unop): Adjust call to tree_vec_extract.
4423 (do_binop): Likewise.
4424 (do_compare): Likewise.
4425 (do_plus_minus): Likewise.
4426 (do_negate): Likewise.
4427 (expand_vector_condition): Likewise.
4428 (do_cond): Likewise.
4430 2016-03-16 Richard Henderson <rth@redhat.com>
4433 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
4434 (aarch64_classify_address): Use it.
4435 (aarch64_legitimize_address): Force all subexpressions of PLUS
4436 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
4438 2016-03-16 Jakub Jelinek <jakub@redhat.com>
4439 Richard Biener <rguenth@suse.de>
4442 * rtlanal.c (replace_rtx): For REG, if from is a REG,
4443 return to even if only REGNO is equal, and assert
4446 2016-03-11 Jeff Law <law@redhat.com>
4448 PR rtl-optimization/70224
4449 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
4451 2016-03-16 Richard Henderson <rth@redhat.com>
4454 * function.h (struct function): Add has_forced_label_in_static.
4455 * gimplify.c (force_labels_r): Set it.
4456 * lto-streamer-in.c (input_struct_function_base): Read it.
4457 * lto-streamer-out.c (output_struct_function_base): Write it.
4458 * tree-inline.c (has_label_address_in_static_1): Remove.
4459 (copy_forbidden): Remove fndecl parameter; test
4460 has_forced_label_in_static.
4461 (inline_forbidden_p): Update call to copy_forbidden.
4462 (tree_versionable_function_p): Likewise.
4463 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
4464 (chkp_versioning): Likewise.
4465 * tree-inline.h (copy_forbidden): Update decl.
4467 2016-03-16 Marek Polacek <polacek@redhat.com>
4470 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
4471 function being thunked if the result type doesn't have fixed size.
4472 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
4473 doesn't have fixed size.
4475 2016-03-16 Bin Cheng <bin.cheng@arm.com>
4477 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
4478 reporting malformed loop nest.
4480 2016-03-16 Tom de Vries <tom@codesourcery.com>
4483 * ipa-devirt.c (possible_polymorphic_call_targets): Move
4484 nodes.length () == 1 test to before first nodes[0] access.
4486 2016-03-16 Tom de Vries <tom@codesourcery.com>
4488 PR tree-optimization/68715
4489 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
4492 2016-03-16 Tom de Vries <tom@codesourcery.com>
4494 PR tree-optimization/68809
4495 * graphite-scop-detection.c (same_close_phi_node): Test if result types
4498 2016-03-16 Carlos O'Donell <carlos@redhat.com>
4499 Sandra Loosemore <sandra@codesourcery.com>
4501 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
4502 on leaf attribute. Mention ELF interposition problems.
4504 2016-03-16 Alan Modra <amodra@gmail.com>
4506 PR rtl-optimization/69195
4507 PR rtl-optimization/47992
4508 * ira.c (indirect_jump_optimize): Ignore artificial defs.
4511 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
4514 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
4516 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4518 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
4520 2016-03-15 Jakub Jelinek <jakub@redhat.com>
4522 PR rtl-optimization/70222
4523 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
4524 optimization if mode is different from result_mode, queue up masking
4525 of the result in outer_op. Formatting fix.
4528 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
4531 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
4533 PR rtl-optimization/69032
4534 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
4535 looping backwards over basic block insns.
4537 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
4540 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
4541 to non-speculative when propagating trap bits.
4543 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
4545 PR rtl-optimization/63384
4546 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
4549 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
4552 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
4553 factored out from ...
4554 (sched_analyze_insn): ... here.
4555 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
4556 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
4557 get_implicit_reg_pending_clobbers in it.
4558 (setup_id_reg_sets): Use setup_id_implicit_regs.
4559 (deps_init_id): Ditto.
4561 2016-03-15 Tom de Vries <tom@codesourcery.com>
4564 * cgraph.c (cgraph_node::get_body): Save, reset and restore
4566 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
4567 execute_function_dump.
4568 (execute_one_pass): Don't dump function if it will be dumped after ipa
4571 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
4573 * genrecog.c (match_pattern_2): If pred is NULL don't call
4574 safe_predicate_mode on it.
4576 2016-03-14 Jakub Jelinek <jakub@redhat.com>
4579 * lra-constraints.c (delete_move_and_clobber): Change assertion
4580 to also allow dregno == 0.
4582 2016-03-14 Richard Henderson <rth@redhat.com>
4585 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
4586 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
4587 (reassociate_bb): Use optimize_vec_cond_expr; avoid
4588 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
4591 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
4594 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
4596 (lra_create_live_ranges_1): initialize hard register biggest_mode to
4598 * lra-constraints.c (split_reg): For hard regs, try to find the
4599 biggest single-register mode used in the function.
4601 2016-03-14 Richard Biener <rguenther@suse.de>
4603 PR tree-optimization/56365
4604 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
4605 constants to compare against.
4607 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
4610 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
4611 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
4612 (define_split for the GPR case): Use int_reg_operand instead of
4613 gpc_reg_operand for the output.
4615 2016-03-14 Tom de Vries <tom@codesourcery.com>
4617 PR tree-optimization/70045
4618 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
4619 create_empty_if_region_on_edge argument.
4621 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
4623 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
4624 (STACK_CHECK_PROTECT): Likewise.
4625 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
4626 (STACK_CHECK_PROTECT): Likewise.
4627 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
4628 (STACK_CHECK_PROTECT): Likewise.
4629 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
4630 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4631 (STACK_CHECK_PROTECT): Likewise.
4633 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
4635 PR rtl-optimization/69307
4636 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
4637 registers in modes that span more than one register.
4639 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
4642 * lra-constraints.c (delete_move_and_clobber): New.
4643 (remove_inheritance_pseudos): Use it.
4645 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
4648 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
4649 the libcall is LCT_THROW.
4650 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
4651 for the checking routine.
4653 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
4656 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
4657 optimization if we have direct move.
4658 (roundu32<mode>2_fprs): Likewise.
4660 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
4663 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
4665 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
4666 Arguments swapped. All callers changed. Take reg_renumber into
4667 account, and Calculate and compare register ranges for hard regs.
4669 2016-03-11 Jeff Law <law@redhat.com>
4671 PR tree-optimization/70190
4672 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4673 Handle cases where we can not extract the taken edge, even though we
4674 found a constant value.
4676 PR tree-optimization/64058
4677 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
4678 (num_coalesce_pairs): Move up earlier in file.
4679 (find_coalesce_pair): Initialize the INDEX field for each pair
4681 (compare_pairs): No longer sort on the elements in each pair.
4682 Instead break ties with the index of the coalesce pair.
4684 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4687 * config/aarch64/aarch64-protos.h
4688 (aarch64_save_restore_target_globals): New prototype.
4689 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
4690 Call the above when popping pragma.
4691 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
4693 (aarch64_set_current_function): Rewrite using the above.
4695 2016-03-11 Jakub Jelinek <jakub@redhat.com>
4697 PR tree-optimization/70177
4698 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
4699 (extract_ops_from_tree): ... this. In the 2 argument
4700 overload remove _1 suffix.
4701 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
4702 (extract_ops_from_tree): ... this.
4703 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
4705 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4706 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
4707 extract_ops_from_tree instead of 2 operand one.
4709 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
4711 PR tree-optimization/70013
4712 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
4713 for constant-pool entries.
4715 2016-03-11 Jakub Jelinek <jakub@redhat.com>
4717 PR rtl-optimization/70174
4718 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
4719 followed by gen_lowpart on force_reg instead of just gen_lowpart.
4721 PR tree-optimization/70169
4722 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
4723 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
4726 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
4727 Jakub Jelinek <jakub@redhat.com>
4730 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
4731 of uninitialized values.
4733 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4735 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
4737 ("*trunctddd2"): New pattern definition.
4738 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
4741 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4743 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
4744 definitions for BFP and DFP rounding modes.
4745 ("fixuns_truncdddi2", "fixuns_trunctddi2")
4746 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
4747 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
4748 ("fix_trunctf<mode>2"): Use the new constants instead of magic
4751 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4753 * config/s390/constraints.md: Adjust comment.
4754 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
4755 s390_decompose_addrstyle_without_index.
4756 * config/s390/predicates.md (shift_count_or_setmem_operand):
4757 Rename to setmem_operand.
4758 * config/s390/s390-protos.h
4759 (s390_decompose_shift_count): Rename to
4760 s390_decompose_addrstyle_without_index.
4761 * config/s390/s390.c (s390_decompose_shift_count)
4762 (s390_mem_constraint, print_shift_count_operand)
4763 (print_operand_address, print_operand): Rename
4764 s390_decompose_shift_count to
4765 s390_decompose_addrstyle_without_index and rename
4766 print_shift_count_operand to print_addrstyle_operand troughout the
4768 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
4769 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
4770 Rename shift_count_or_setmem_operand to setmem_operand.
4771 * config/s390/vx-builtins.md ("vec_insert<mode>")
4772 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
4775 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4778 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
4779 Handle overlapping retval and newval.
4781 2016-03-10 Nick Clifton <nickc@redhat.com>
4784 * config/aarch64/aarch64.c
4785 (aarch64_override_options_after_change_1): When forcing
4786 flag_omit_frame_pointer to be true, use a special value that can
4787 be detected if this function is called again, thus preventing
4788 flag_omit_leaf_frame_pointer from being forced to be false.
4790 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4792 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
4793 Set x_flag_omit_leaf_frame_pointer when handling
4794 -momit-leaf-frame-pointer.
4796 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
4799 * cgraph.c (cgraph_node::dump): Dump split_part and
4800 indirect_call_target.
4801 * cgraph.h (cgraph_node): Add indirect_call_target flag.
4802 * ipa.c (has_addr_references_p): Cleanup.
4803 (is_indirect_call_target_p): New.
4804 (walk_polymorphic_call_targets): Do not mark virtuals that may be
4805 called indirectly as local.
4806 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
4808 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
4811 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
4812 on cxa_pure_virtual.
4814 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
4817 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
4819 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
4822 * tree.c (need_assembler_name_p): Only record main variant type names.
4824 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
4827 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
4828 Always define to 0 or 1.
4829 (TARGET_FIX_ERR_A53_843419): New macro.
4830 * config/aarch64/aarch64-elf-raw.h
4831 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
4832 * config/aarch64/aarch64-linux.h: Likewise.
4833 * config/aarch64/aarch64.c
4834 (aarch64_override_options_after_change_1): Do not default
4835 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
4837 (aarch64_attributes): Handle fix-cortex-a53-843419.
4838 (aarch64_can_inline_p): Likewise.
4839 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
4841 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
4842 Jakub Jelinek <jakub@redhat.com>
4844 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
4845 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
4846 DECL_COMMONS if flag_unconstrained_commons is set.
4847 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4848 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
4849 (funconstrained-commons): Document.
4851 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
4853 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
4854 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
4856 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
4858 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
4859 has a proper number of elements.
4861 2016-03-10 Alan Modra <amodra@gmail.com>
4863 PR rtl-optimization/69195
4864 PR rtl-optimization/47992
4865 * ira.c (recorded_label_ref): Delete.
4866 (update_equiv_regs): Return void.
4867 (indirect_jump_optimize): New function.
4868 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
4869 before regstat_compute_ri. Don't rebuild_jump_labels here.
4870 Delete update_regstat.
4872 2016-03-10 Richard Biener <rguenther@suse.de>
4874 PR tree-optimization/70128
4875 * tree-ssa-structalias.c (set_uids_in_ptset): Set
4876 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
4878 2016-03-09 Jakub Jelinek <jakub@redhat.com>
4880 PR tree-optimization/70152
4881 * tree-sra.c (replace_removed_params_ssa_names): Copy over
4882 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
4885 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
4886 instead of gen_sse2_loadlpd.
4887 * config/i386/sse.md (*vec_concatv2df): Rename to...
4888 (vec_concatv2df): ... this.
4890 PR tree-optimization/70127
4891 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
4893 2016-03-09 David Malcolm <dmalcolm@redhat.com>
4897 * diagnostic-show-locus.c (compatible_locations_p): New function.
4898 (layout::layout): Sanitize ranges using compatible_locations_p.
4900 2016-03-09 David Malcolm <dmalcolm@redhat.com>
4904 * diagnostic-show-locus.c (layout_range::layout_range): Replace
4905 location_range param with three const expanded_locations * and a
4907 (layout::layout): Replace call to
4908 rich_location::lazily_expand_location with get_expanded_location.
4909 Extract the range and perform location expansion here, passing
4910 the results to the layout_range ctor.
4911 * diagnostic.c (source_range::debug): Delete.
4912 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
4913 of rich_location::get_expanded_location.
4914 * gcc-rich-location.c (get_range_for_expr): Delete.
4915 (gcc_rich_location::add_expr): Reimplement to avoid the
4916 rich_location::add_range overload that took a location_range,
4917 passing a location_t instead.
4919 2016-03-09 Richard Biener <rguenther@suse.de>
4920 Jakub Jelinek <jakub@redhat.com>
4922 PR tree-optimization/70138
4923 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4924 Also skip vect_double_reduction_def.
4926 2016-03-09 Jakub Jelinek <jakub@redhat.com>
4929 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
4930 if the operand is "m".
4932 2016-03-09 Nathan Sidwell <nathan@acm.org>
4934 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
4936 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4938 * config/i386/i386.c (processor_target_table): Fix cost table
4939 intialization order for znver1.
4941 2016-03-08 Jakub Jelinek <jakub@redhat.com>
4943 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
4944 - becuase -> because.
4945 * ipa-reference.c (ignore_module_statics): Likewise.
4946 * cgraph.c (cgraph_node::get_body): Likewise.
4947 * ipa-inline.c (early_inliner): Likewise.
4948 * ipa-devirt.c (types_same_for_odr): Likewise.
4949 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4950 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
4952 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4954 * tree-ssa-math-opts.c: Fix typo in comment.
4956 2016-03-08 Jakub Jelinek <jakub@redhat.com>
4959 * config/i386/i386.c (scalar_chain::make_vector_copies,
4960 scalar_chain::convert_reg): Call end_sequence in between
4961 get_insns and emit_conversion_insns rather than after both
4964 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
4967 * config/i386/i386.h (machine_function): Add
4968 pc_thunk_call_expanded flag.
4969 (ix86_pc_thunk_call_expanded): New define.
4970 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
4971 (*set_got): Rename insn pattern from set_got.
4972 (*set_got_labelled): Rename inst pattern from set_got_labelled.
4973 * config/i386/i386.c (ix86_compute_frame_layout): Use
4974 ix86_pc_thunk_call_expanded to prevent red-zone.
4976 2016-03-07 Martin Jambor <mjambor@suse.cz>
4978 * hsa.h (hsa_get_ctor_statements): Declare.
4979 (hsa_get_dtor_statements): Likewise.
4980 (hsa_get_kernel_dispatch_type): Likewise.
4981 * hsa.c (hsa_get_ctor_statements): New function.
4982 (hsa_get_dtor_statements): Likewise.
4983 (hsa_get_kernel_dispatch_type): Likewise.
4984 * hsa-brig.c (hsa_cdtor_statements): Removed.
4985 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
4986 hsa_get_dtor_statements.
4987 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
4988 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
4990 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
4992 * config/arm/arm-cores.def (cortex-r8): New.
4993 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
4994 * config/arm/arm-tune.md: Likewise.
4995 * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
4997 2016-03-07 Martin Sebor <msebor@redhat.com>
4999 PR rtl-optimization/19705
5000 * doc/invoke.texi (Options That Control Optimization): Clarify
5001 -fno-branch-count-reg.
5003 2016-02-26 Richard Biener <rguenther@suse.de>
5004 Jeff Law <law@redhat.com>
5006 PR tree-optimization/69740
5007 * cfghooks.c (remove_edge): Request loop fixups if we delete
5008 an edge that might turn an irreducible loop into a natural
5010 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
5011 Move after definition of loops_state_clear.
5013 2016-03-07 Bin Cheng <bin.cheng@arm.com>
5015 PR rtl-optimization/69052
5016 * rtlanal.c (commutative_operand_precedence): Set higher precedence
5019 2016-03-07 Tom de Vries <tom@codesourcery.com>
5021 PR tree-optimization/70116
5022 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
5023 is_tm_ending stmts and ubsan/asan internal functions.
5024 (find_duplicate): Use it. Don't test is_tm_ending here.
5026 2016-03-07 Richard Biener <rguenther@suse.de>
5028 PR tree-optimization/70115
5029 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
5030 (propagate_constants_for_unrolling): Use replace_uses_by.
5032 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
5035 * omp-low.c (struct oacc_loop): Add ifns.
5036 (new_oacc_loop_raw): Initialize it.
5037 (finish_oacc_loop): Clear mask & flags if no ifns.
5038 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
5039 (oacc_loop_xform_loop): Add ifns arg & adjust.
5040 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
5042 2016-03-07 Richard Henderson <rth@redhat.com>
5045 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
5046 (insert_value_copy_on_edge): Likewise.
5048 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5050 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
5052 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5055 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
5057 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
5059 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
5061 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
5063 Fix sseimul type attribute.
5064 * config/i386/znver1.md
5065 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
5066 znver1_sseimul_avx256_load) : Fix the type attribute.
5067 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
5068 pipe usage and latency.
5070 2016-03-05 Jakub Jelinek <jakub@redhat.com>
5073 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
5074 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
5077 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
5080 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
5082 PR rtl-optimization/69941
5083 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
5084 the reg share its mode.
5086 2016-03-04 Jeff Law <law@redhat.com>
5088 PR tree-optimization/69196
5089 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5090 If the both SSA_NAMEs are anonymous, then consider them unassociated
5091 and include the PHI in the statement count.
5093 2016-03-05 Tom de Vries <tom@codesourcery.com>
5095 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
5096 construct in oacc routine. Check for oacc region in oacc routine.
5098 2016-03-04 Jakub Jelinek <jakub@redhat.com>
5101 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
5102 2016-02-22 changes, instead don't recurse if RECUR is already true.
5103 Don't change *dynamic_check if RECUR. Adjust recursive caller
5104 to pass true to the new argument.
5105 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
5108 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
5109 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
5111 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
5113 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
5115 PR rtl-optimization/57676
5116 * lra-assigns.c (lra_assign): Guard test for maximum iterations
5119 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
5121 * tree-vect-patterns.c (search_type_for_mask): Handle
5122 comparison of booleans.
5124 2016-03-04 Jakub Jelinek <jakub@redhat.com>
5126 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
5130 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
5131 all other ops that have dw_val_class_die_ref operands,
5132 and DW_OP_GNU_entry_value.
5134 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5136 PR rtl-optimization/69904
5137 * config/arm/arm.c (arm_cannot_copy_insn_p):
5138 Return true for load-exclusive instructions.
5140 2016-03-03 Jakub Jelinek <jakub@redhat.com>
5143 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
5144 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
5145 the pattern no matter if it is used just by non-pattern, pattern
5147 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
5148 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5149 oprnd1 def_stmt is in pattern, don't look through it.
5151 2016-03-03 Marek Polacek <polacek@redhat.com>
5154 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
5156 2016-03-03 Martin Liska <mliska@suse.cz>
5158 PR tree-optimization/70043
5159 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
5160 previous statement if we see a debug statement.
5162 2016-03-03 Richard Biener <rguenther@suse.de>
5164 PR tree-optimization/55936
5165 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
5166 parameter and guard unsafe equivalence use.
5167 (vrp_evaluate_conditional_warnv_with_ops): Always use
5168 safe equivalences but not via the quadratic compare_names
5171 2016-03-03 Michael Collison <michael.collison@linaro.org>
5174 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
5175 for operand 1 to s_register_operand. Change predicate for operand
5176 2 to arm_not_immediate_operand.
5178 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
5180 * doc/tm.texi: Regenerated.
5182 2016-03-02 Richard Henderson <rth@redhat.com>
5185 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
5186 simplification when all args are positive non-fixed registers.
5188 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5190 * target.def (lra_p): Specify that new ports should use LRA.
5192 2016-03-02 Jakub Jelinek <jakub@redhat.com>
5195 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
5196 gimplify_type_sizes the type they refer to.
5197 (omp_notice_variable): Handle reference vars to VLAs.
5198 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
5199 reference to VLA decls in the second pass instead of first pass.
5201 2016-03-02 Tom de Vries <tom@codesourcery.com>
5203 PR tree-optimization/68659
5204 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
5205 new_expr == NULL_TREE.
5206 (get_new_name): Handle ADDR_EXPR.
5208 2016-03-02 Bin Cheng <bin.cheng@arm.com>
5210 PR rtl-optimization/69052
5211 * loop-invariant.c (canonicalize_address): New function.
5212 (inv_can_prop_to_addr_use): Check validity of address expression
5213 which is canonicalized by above function.
5215 2016-03-02 Alan Modra <amodra@gmail.com>
5218 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
5221 2016-03-02 Jakub Jelinek <jakub@redhat.com>
5224 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
5225 (*movhi_internal): Put mask moves from and to memory separately
5226 from moves from/to GPRs.
5228 2016-03-02 Richard Biener <rguenther@suse.de>
5230 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
5231 GENERIC expressions in GIMPLE.
5233 2016-03-02 Richard Biener <rguenther@suse.de>
5235 * config/i386/i386.c (type_natural_mode): Fix typo.
5237 2016-03-02 Nick Clifton <nickc@redhat.com>
5239 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
5241 2016-03-02 Richard Biener <rguenther@suse.de>
5242 Uros Bizjak <ubizjak@gmail.com>
5245 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
5247 2016-03-02 Richard Biener <rguenther@suse.de>
5250 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
5252 2016-03-02 Marek Polacek <polacek@redhat.com>
5255 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
5256 "is promoted to" warning.
5258 2016-03-01 DJ Delorie <dj@redhat.com>
5260 * config.gcc: Deprecate mep-*.
5262 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
5265 * lra-constraints.c (regno_val_use_in): New.
5266 (match_reload): Use it instead of regno_use_in.
5268 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
5270 PR rtl-optimization/70007
5271 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
5272 references present in REG_EQUAL notes attached to non-SET patterns.
5274 2016-03-01 Jeff Law <law@redhat.com>
5276 PR tree-optimization/69196
5277 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5278 Appropriately clamp the number of statements to copy when the
5279 thread path does not traverse a loop backedge.
5281 PR tree-optimization/69196
5282 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5283 Do count some PHIs in the thread path against the insn count. Decrease
5284 final statement count by one as the control statement in the last
5285 block will get removed. Remove special cased code for handling PHIs
5288 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
5291 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
5292 asm dialect alternatives to explicit GOTPCREL calls.
5294 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
5297 * ira.c (do_reload): Issue warning for generic stack checking here...
5298 * reload1.c (reload): ...instead of here and streamline it.
5300 2016-03-01 Nick Clifton <nickc@redhat.com>
5302 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
5304 2016-03-01 Richard Biener <rguenther@suse.de>
5306 PR tree-optimization/69983
5307 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
5308 types and fall back to operand_equal_p.
5310 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5313 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5315 * config/s390/constraints.md ("jm8"): New constraint.
5316 * config/s390/predicates.md ("const_int_8bitset_operand"): New
5318 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
5320 ("*setmem_long<setmem_and>"): New pattern.
5321 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
5323 ("*setmem_long_31z<setmem_and>"): New pattern.
5324 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
5325 New substitution rules with the required attributes.
5328 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5331 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5333 * gensupport.c (process_substs_on_one_elem): Split loop to
5334 complete mark_operands_used_in_match_dup on all expressions in the
5336 (adjust_operands_numbers): Inline into process_substs_on_one_elem
5337 and remove function.
5339 2016-03-01 Richard Biener <rguenther@suse.de>
5342 * fold-const.c (fold_indirect_ref_1): Fix range checking for
5343 vector BIT_FIELD_REF extract.
5345 2016-03-01 Richard Biener <rguenther@suse.de>
5347 PR tree-optimization/69994
5348 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
5350 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
5352 PR tree-optimization/69956
5353 * tree-vect-stmts.c (supportable_widening_operation): Support
5354 multi-step conversion of boolean vectors.
5355 (supportable_narrowing_operation): Likewise.
5357 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5359 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
5362 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5364 * config/s390/subst.md (DSI_VI): New mode iterator.
5365 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
5366 * config/s390/vector.md ("vec_set<mode>"): Move expander before
5367 the insn definition.
5368 ("*vec_set<mode>"): Change predicate and add alternative to
5369 support only either register or const_int operands as element
5371 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
5373 ("vec_extract<mode>"): New expander.
5374 ("*vec_extract<mode>"): New insn definition supporting reg and
5375 const_int element selectors.
5376 ("*vec_extract<mode>_plus"): New insn definition supporting
5377 reg+const_int element selectors.
5378 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
5379 following expander+insn definition.
5380 ("<vec_shifts_name><mode>3"): New expander.
5381 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
5383 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5385 * config/s390/s390.md ("*tabort_1"): Change predicate to
5386 nonmemory_operand. Add a second alternative to cover
5387 register as well as const int operands.
5388 ("*tabort_1_plus"): New pattern definition.
5390 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5392 * config/s390/s390.md ("*ashrdi3_cc_31")
5393 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
5394 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
5395 Merge insn definitions into ...
5396 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
5397 New pattern definition.
5398 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
5399 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
5400 ("*ashr<mode>3_and"): Merge insn definitions into ...
5401 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
5402 New pattern definition.
5403 * config/s390/subst.md ("addr_style_op_cc_subst")
5404 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
5405 substitutions patterns plus attributes.
5406 Add ashiftrt to SUBST iterator.
5408 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5410 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
5411 op2 to nonmemory_operand.
5412 ("*<shift>di3_31", "*<shift>di3_31_and"):
5413 Merge into single pattern definition ...
5414 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
5415 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
5416 pattern definition ...
5417 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
5418 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
5421 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5423 * config/s390/predicates.md (const_int_6bitset_operand): New
5425 * config/s390/s390.md: Include subst.md.
5426 ("rotl<mode>3"): New expander.
5427 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
5429 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
5430 * config/s390/subst.md: New file.
5432 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5434 * config/s390/s390.md ("op_type", "atype", "length" attributes):
5435 Remove RRR type. It doesn't really exist.
5436 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
5438 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
5439 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
5440 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
5441 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
5442 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
5443 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
5444 `enabled' attribute.
5446 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5448 * gensupport.c (process_substs_on_one_elem): Split loop to
5449 complete mark_operands_used_in_match_dup on all expressions in the
5451 (adjust_operands_numbers): Inline into process_substs_on_one_elem
5452 and remove function.
5454 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
5457 * config/sparc/sparc.c (NWORDS_UP): Rename to...
5458 (CEIL_NWORDS): ...this. Use CEIL macro.
5459 (compute_fp_layout): Adjust to above renaming.
5460 (function_arg_union_value): Likewise.
5461 (sparc_arg_partial_bytes): Likewise.
5462 (sparc_function_arg_advance): Likewise.
5464 2016-02-29 Jeff Law <law@redhat.com>
5466 PR tree-optimization/70005
5467 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
5468 where an object with a boolean range is compared against a value
5471 PR tree-optimization/69999
5472 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
5473 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
5476 2016-02-29 Richard Biener <rguenther@suse.de>
5478 PR tree-optimization/69994
5479 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
5480 (get_unary_op): Look through nop conversions.
5481 (ops_equal_values_p): New function, look for equality diregarding
5483 (eliminate_plus_minus_pair): Use ops_equal_values_p
5484 (repropagate_negates): Do not use get_unary_op here.
5486 2016-02-29 Martin Liska <mliska@suse.cz>
5488 * system.h: Poison ENABLE_CHECKING macro.
5490 2016-02-29 Martin Liska <mliska@suse.cz>
5492 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
5493 is presented in dump flags.
5494 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
5495 (hsa_regalloc): Likewise.
5497 2016-02-19 Richard Biener <rguenther@suse.de>
5499 PR tree-optimization/69980
5500 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
5501 permutation of those we need to keep.
5503 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
5506 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
5507 (NWORDS_UP): ...this
5508 (init_cumulative_args): Minor tweaks.
5509 (sparc_promote_function_mode): Likewise.
5510 (scan_record_type): Delete.
5511 (traverse_record_type): New function template.
5512 (classify_data_t): New structure type.
5513 (classify_registers): New inline function.
5514 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
5515 exhausted. Instantiate traverse_record_type on classify_registers and
5516 deal with the case of a structure passed in slot #15 with no FP field
5518 (assign_data_t): New structure type.
5519 (compute_int_layout): New static function.
5520 (compute_fp_layout): Likewise.
5521 (count_registers): New inline function.
5522 (assign_int_registers): New static function.
5523 (assign_fp_registers): Likewise.
5524 (assign_registers): New inline function.
5525 (function_arg_record_value_1): Delete.
5526 (function_arg_record_value_2): Likewise.
5527 (function_arg_record_value_3): Likewise.
5528 (function_arg_record_value): Adjust to above changes. Instantiate
5529 traverse_record_type on count_registers to first count the number of
5530 registers to be used and then on assign_registers to assign them.
5531 (function_arg_union_value): Adjust to above renaming.
5532 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
5533 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
5534 case of a structure passed in slot #15
5535 (sparc_function_arg_advance): Likewise.
5536 (function_arg_padding): Minor tweak.
5538 2016-02-29 Richard Biener <rguenther@suse.de>
5540 PR tree-optimization/69720
5541 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
5542 the adjustment_def path for possibly vectorized defs.
5543 (vect_create_epilog_for_reduction): Handle vectorized initial
5546 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
5548 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
5550 2016-02-27 Jeff Law <law@redhat.com>
5553 2016-02-26 Richard Biener <rguenther@suse.de>
5554 Jeff Law <law@redhat.com>
5556 PR tree-optimization/69740
5557 * cfghooks.c (remove_edge): Request loop fixups if we delete
5558 an edge that might turn an irreducible loop into a natural
5561 2016-02-27 Jakub Jelinek <jakub@redhat.com>
5563 PR rtl-optimization/69896
5564 * tree-vect-generic.c (get_compute_type): Avoid single element
5567 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
5569 Rename the AArch64 tuning option and related functions to enable the
5570 Newton series for the reciprocal square root to reflect its
5571 approximative characteristic.
5573 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
5574 function to "aarch64_emit_approx_rsqrt".
5575 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
5576 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
5577 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
5578 (xgene1_tunings): Likewise.
5579 (use_rsqrt_p): Likewise.
5580 (aarch64_emit_swrsqrt): Use new function name.
5581 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
5582 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
5583 text explaining this option.
5584 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
5586 2016-02-26 Jakub Jelinek <jakub@redhat.com>
5589 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5590 complain about -mallow-movmisalign without -mvsx if
5591 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
5593 2016-02-26 Joel Sherrill <joel@rtems.org>
5595 * config.gcc: Add x86_64-*-rtems*.
5596 * gcc/config/i386/rtems-64.h: New file.
5598 2016-02-26 Joel Sherrill <joel@rtems.org>
5600 * config.gcc: Add aarch64-*-rtems*.
5601 * gcc/config/aarch64/rtems.h: New file.
5603 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
5606 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
5607 shift amount using %h. Add comment.
5609 2016-02-26 Richard Biener <rguenther@suse.de>
5610 Jeff Law <law@redhat.com>
5612 PR tree-optimization/69740
5613 * cfghooks.c (remove_edge): Request loop fixups if we delete
5614 an edge that might turn an irreducible loop into a natural
5617 2016-02-26 Martin Jambor <mjambor@suse.cz>
5620 * tree-sra.c (sra_modify_assign): Do not remove loads of
5621 uninitialized aggregates to SSA_NAMEs.
5623 2016-02-26 Richard Henderson <rth@redhat.com>
5626 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
5627 pseudo in case the target rtx matches the source of the left
5630 2016-02-26 Martin Jambor <mjambor@suse.cz>
5633 * hsa.h (hsa_type_packed_p): Declare.
5634 * hsa.c (hsa_type_packed_p): New function.
5635 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
5637 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
5638 * hsa-brig.c (emit_basic_insn): Likewise.
5640 2016-02-26 Martin Jambor <mjambor@suse.cz>
5643 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
5645 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
5647 2016-02-26 Martin Jambor <mjambor@suse.cz>
5649 * hsa.h (is_a_helper): New overload for hsa_op_immed for
5650 hsa_op_with_type operands.
5651 (hsa_unsigned_type_for_type): Declare.
5652 * hsa.c (hsa_unsigned_type_for_type): New function.
5653 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
5654 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
5655 the finalizer. Do not emit extra move.
5657 2016-02-26 Martin Jambor <mjambor@suse.cz>
5659 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
5660 atomic operations in private segment.
5662 2016-02-26 Martin Jambor <mjambor@suse.cz>
5664 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
5665 statements to wi->info. Also disallow omp simd constructs.
5666 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
5667 for not gridifying. Dump special string for omp_for.
5669 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5672 * config/aarch64/aarch64.c (aarch64_set_current_function):
5673 Save/restore target globals when switching to
5674 target_option_default_node.
5676 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5679 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
5680 Return 0 if !SHIFT_COUNT_TRUNCATED.
5682 2016-02-26 Jakub Jelinek <jakub@redhat.com>
5683 Eric Botcazou <ebotcazou@adacore.com>
5685 PR rtl-optimization/69891
5686 * dse.c (scan_insn): If we can't figure out memset arguments
5687 or they are non-constant, call clear_rhs_from_active_local_stores.
5689 2016-02-26 Martin Liska <mliska@suse.cz>
5691 * doc/extend.texi: Mention clog10, clog10f an clog10l
5692 in Builtins section.
5694 2016-02-26 Martin Liska <mliska@suse.cz>
5696 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
5698 (resolve_args_picking_1): Likewise.
5699 * dwarf2out.h (struct GTY): Likewise.
5701 2016-02-26 Martin Liska <mliska@suse.cz>
5703 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
5705 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
5707 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
5708 Martin Liska <mliska@suse.cz>
5710 * doc/install.texi: Mention --enable-valgrind-annotations.
5712 2016-02-26 Richard Biener <rguenther@suse.de>
5714 PR tree-optimization/69551
5715 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
5716 looking through aliases adjust DECL_PT_UID to refer to the
5717 ultimate alias target.
5719 2016-02-25 Martin Liska <mliska@suse.cz>
5722 * alloc-pool.c (after_memory_report): New variable.
5723 * alloc-pool.h (base_pool_allocator ::release): Do not use
5724 the infrastructure if after_memory_report.
5725 * toplev.c (toplev::main): Mark after memory report.
5727 2016-02-25 Richard Biener <rguenther@suse.de>
5729 PR tree-optimization/48795
5730 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
5732 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
5735 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
5736 offloading is enabled and -fopenacc or -fopenmp is specified.
5737 (CRTOFFLOADEND): Likewise.
5738 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
5739 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
5740 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
5741 (offload_objects_file_name): New static var.
5742 (tool_cleanup): Remove offload_objects_file_name file.
5743 (find_offloadbeginend): Replace with ...
5744 (find_crtoffloadtable): ... this.
5745 (run_gcc): Remove offload_argc and offload_argv.
5746 Get offload_objects_file_name from -foffload-objects=... option.
5747 Read names of object files with offload from this file, pass them to
5748 compile_images_for_offload_targets. Don't call find_offloadbeginend and
5749 don't pass offloadbegin and offloadend to the linker. Don't pass
5750 offload non-LTO files to the linker, because now they're not claimed.
5752 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
5755 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
5756 on builtin_unreachable.
5758 2016-02-25 Jakub Jelinek <jakub@redhat.com>
5760 PR rtl-optimization/69896
5761 * regcprop.c: Include cfgrtl.h.
5762 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
5763 than remembered mode, either delete it (if noop_move_p), or
5764 treat like copy_p but not noop_p instruction.
5766 2016-02-24 Jakub Jelinek <jakub@redhat.com>
5769 * dwarf2out.c (gen_variable_die): Work around buggy LTO
5770 - allow NULL decl for Fortran DW_TAG_common_block variables.
5772 2016-02-24 Jason Merrill <jason@redhat.com>
5774 * common.opt (flifetime-dse): Add -flifetime-dse=1.
5776 2016-02-24 Richard Biener <rguenther@suse.de>
5777 Jakub Jelinek <jakub@redhat.com>
5780 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
5781 conditionally executed ops to well-defined overflow behavior.
5783 2016-02-24 Jakub Jelinek <jakub@redhat.com>
5786 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
5789 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5791 PR rtl-optimization/69886
5792 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
5793 argument. Use it when checking validity of set instructions.
5794 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
5795 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
5797 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
5798 * store-motion.c (find_moveable_store): Update
5799 can_assign_to_reg_without_clobbers_p callsite.
5801 2016-02-24 Richard Biener <rguenther@suse.de>
5804 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
5806 (record_nonwrapping_iv): Do not fall back to the low/high bound
5807 for non-constant IV bases if the stmt is not always executed.
5809 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5811 * config/arm/arm-cores.def (cortex-a32): New entry.
5812 * config/arm/arm-tables.opt: Regenerate.
5813 * config/arm/arm-tune.md: Regenerate.
5814 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
5815 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
5816 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
5817 for -mcpu and -mtune.
5819 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5822 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
5823 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
5824 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
5825 (atomic_loaddi_1): Delete.
5826 (atomic_loaddi): Rewrite expander using the above changes.
5828 2016-02-24 Jakub Jelinek <jakub@redhat.com>
5831 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
5834 2016-02-24 Jakub Jelinek <jakub@redhat.com>
5835 Richard Biener <rguenth@suse.de>
5838 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
5839 set_mem_attributes if tem is SSA_NAME which got expanded
5842 2016-02-24 Richard Biener <rguenther@suse.de>
5844 PR tree-optimization/69907
5845 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
5846 end of permutations for BB vectorization.
5848 2016-02-24 Christian Bruel <christian.bruel@st.com>
5850 * config/arm/arm-c.c (arm_option_override): Initialize
5851 target_option_current_node.
5852 * config/arm/arm.c (arm_pragma_target_parse): Replace
5853 build_target_option_node call by target_option_current_node.
5854 Set target_option_current_node.
5857 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
5860 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
5861 define_insn_and_split to define_insn.
5862 (zero_extendqi<mode>2_dot2): Same.
5863 (extendqi<mode>2_dot): Same.
5864 (extendqi<mode>2_dot2): Same.
5866 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
5868 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
5869 and add bypass for AES{D,E} and AESMC pairs.
5870 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
5873 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
5875 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
5876 series for reciprocal square root in Exynos M1.
5878 2016-02-23 Martin Sebor <msebor@redhat.com>
5881 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
5882 __builtin_alloca_with_align.
5884 2016-02-23 Richard Henderson <rth@redhat.com>
5886 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
5887 (ix86_register_pragmas): Remove __seg_tls.
5888 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
5889 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
5890 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
5891 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
5892 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
5893 * doc/extend.texi (__seg_tls): Remove item.
5895 2016-02-23 Richard Biener <rguenther@suse.de>
5897 * alloc-pool.h (struct allocation_object): Make id member
5898 conditional on CHECKING_P again.
5899 (get_instance): Adjust.
5900 (base_pool_allocator): Likewise.
5902 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
5904 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
5905 (parallelize_loops): In OpenACC kernels mode, set n_threads to
5907 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
5909 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
5911 2016-02-23 Richard Biener <rguenther@suse.de>
5913 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
5914 * bitmap.h (struct bitmap_usage): Likewise.
5915 (bitmap_move): Declare.
5916 * bitmap.c (register_overhead): Take size_t argument.
5917 (bitmap_move): New function.
5918 * df-problems.c (df_rd_transfer_function): Use bitmap_move
5919 to properly account overhead.
5920 * tree.c (free_node): Use tree_size.
5922 2016-02-23 Jakub Jelinek <jakub@redhat.com>
5925 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
5926 when inverting comparison.
5929 * common.opt (Wunreachable-code): Add Warning flag.
5931 2016-02-23 Mark Wielaard <mjw@redhat.com>
5932 Jakub Jelinek <jakub@redhat.com>
5935 * cgraphunit.c (check_global_declaration): Check main_input_filename
5936 and DECL_SOURCE_FILE are not NULL.
5938 2016-02-23 Martin Jambor <mjambor@suse.cz>
5940 PR tree-optimization/69666
5941 * tree-sra.c (sra_modify_assign): Do not attempt to create
5942 default_def replacements for unscalarizable regions.
5944 2016-02-20 Mark Wielaard <mjw@redhat.com>
5947 * cgraphunit.c (check_global_declaration): Check level of
5948 warn_unused_const_variable and main_input_filename.
5949 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
5950 (-Wunused-variable): For C implies -Wunused-const-variable=1.
5951 (-Wunused-const-variable): Explain levels 1 and 2.
5953 2016-02-22 Jakub Jelinek <jakub@redhat.com>
5956 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
5957 identical arguments. Formatting and spelling fixes.
5960 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
5965 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
5966 and m68k-devices.def.
5967 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
5968 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
5970 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
5972 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
5973 and HImode registers.
5975 2016-02-22 Richard Biener <rguenther@suse.de>
5977 PR tree-optimization/69882
5978 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
5979 preserve permutations present because of gaps.
5980 (vect_supported_load_permutation_p): Always continue checking
5981 permutations after vect_attempt_slp_rearrange_stmts.
5983 2016-02-22 Bin Cheng <bin.cheng@arm.com>
5985 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
5986 min_profitable_estimate, rather than min_profitable_iters.
5988 2016-02-22 Jakub Jelinek <jakub@redhat.com>
5991 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
5992 SImode for last match_operand.
5994 2016-02-22 Martin Liska <mliska@suse.cz>
5996 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
5997 return bitsize - 1 as the return value.
5999 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
6003 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
6004 Handle negative shift counts.
6005 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
6006 force_reg on the shift constant.
6007 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
6008 (lshrsi3_d): Handle negative shift counts.
6010 2016-02-22 Richard Biener <rguenther@suse.de>
6011 Tom de Vries <tom@codesourcery.com>
6013 * graph.c: Include dumpfile.h.
6014 (print_graph_cfg): Split into three overloads.
6015 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
6017 2016-02-22 Tom de Vries <tom@codesourcery.com>
6019 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
6022 2016-02-22 Richard Biener <rguenther@suse.de>
6025 * ipa-inline-transform.c (inline_call): When not updating
6026 overall summaries adjust self size by the growth estimate.
6027 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
6028 hash-set, do not update overall summaries here. Renamed from ...
6029 (inline_to_all_callers): ... this which is now wrapping the
6030 above and performing delayed overall summary update.
6031 (early_inline_small_functions): Delay updating of the overall
6034 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
6036 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
6039 2016-02-19 Jakub Jelinek <jakub@redhat.com>
6042 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
6043 :%* in %:gt() argument.
6044 (greater_than_spec_func): Adjust for expecting only numbers,
6045 if there are more than two numbers, compare the last two.
6047 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
6049 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
6050 -Wnarrowing with -std.
6052 2016-02-19 Jakub Jelinek <jakub@redhat.com>
6055 * expr.c (store_field): Don't use bit-field path if exp is
6056 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
6057 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
6058 and the assignment can be performed by bitwise copy. Formatting
6062 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
6063 call copy_reg_eh_region_note_forward on before and/or after sequences
6064 and remove note from insn if it no longer can throw.
6067 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
6070 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6072 * config/s390/vector.md: Add missing commutative operand markers
6073 to the patterns which qualify for one.
6074 * config/s390/vx-builtins.md: Likewise.
6076 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6078 * config/s390/vector.md (VI, VI_QHS): Add single element vector
6079 types to mode iterators.
6080 (vec_double): ... and mode attribute.
6081 * config/s390/vx-builtins.md (non_vec_int): Likewise.
6083 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6085 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
6086 Change the predicate of op2 from nonimmediate to general and let
6087 reload fix it if necessary.
6089 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6091 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
6093 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6095 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
6098 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6100 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
6101 * config/s390/s390.c (s390_expand_vec_movstr): New function.
6102 * config/s390/s390.md ("movstr<P:mode>"): Call
6103 s390_expand_vec_movstr.
6105 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6107 * config/s390/s390.md: Add missing output modifier for operand 1
6108 to print it as address properly.
6110 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6112 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
6113 * config/s390/2964.md: New file.
6114 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
6115 of insn grouping attributes depending on the CPU level.
6116 (s390_get_unit_mask): New function.
6117 (s390_sched_score): Remove the OOO from the scheduling macros.
6118 Add loop to calculate a score for the instruction mix.
6119 (s390_sched_reorder): Likewise plus improve debug output.
6120 (s390_sched_variable_issue): Rename macros as above. Calculate
6121 the unit distances after actually scheduling an insn. Improve
6123 (s390_sched_init): Clear last_scheduled_unit_distance array.
6124 * config/s390/s390.md: Include 2964.md.
6126 2016-02-18 Jakub Jelinek <jakub@redhat.com>
6129 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
6130 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
6131 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
6132 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
6133 *avx512f_<code>v8div16qi2_mask_1): New insns.
6135 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6138 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
6141 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
6142 earlyclobber from target. Use wF constraint for fused memory
6144 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
6146 2016-02-18 Jakub Jelinek <jakub@redhat.com>
6147 Martin Liska <mliska@suse.cz>
6150 * cfgexpand.c (asan_sanitize_stack_p): New function.
6151 (partition_stack_vars): Use the function.
6152 (expand_stack_vars): Likewise.
6153 (defer_stack_allocation): Likewise.
6154 (expand_used_vars): Likewise.
6156 2016-02-18 Richard Biener <rguenther@suse.de>
6159 * fold-const.c (operand_equal_p): Properly compare offsets for
6160 IMAGPART_EXPR and ARRAY_REF.
6162 2016-02-18 Nick Clifton <nickc@redhat.com>
6166 * config/arm/arm.c (arm_option_override_internal): Disable
6167 interworking if the target does not support thumb instructions.
6168 (arm_reload_in_hi): Handle the case where a register to register
6169 move needs reloading because there is no simple pattern to handle
6171 (arm_reload_out_hi): Likewise.
6173 2016-02-18 Richard Biener <rguenther@suse.de>
6176 * match.pd: Don't use fold_binary or fold_unary for folding
6179 2016-02-17 Jakub Jelinek <jakub@redhat.com>
6182 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
6183 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
6184 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
6185 warn on gimple_no_warning_p statements.
6187 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
6189 * doc/extend.texi (C++ Attributes): Correct description of
6190 warn_unused type attribute.
6192 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6194 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
6195 correct instruction.
6197 2016-02-17 Richard Biener <rguenther@suse.de>
6199 PR rtl-optimization/69609
6200 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
6201 (find_traces_1_round): When ending a trace update cached priority
6203 (bb_to_key): Use cached priority when available.
6204 (copy_bb): Initialize cached priority.
6205 (reorder_basic_blocks_software_trace_cache): Likewise.
6207 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6210 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
6212 (aarch64_comparison_operator): Break overly long line into two.
6213 (aarch64_comparison_operation): Likewise.
6214 * config/aarch64/aarch64.md (cstorecc4): Use
6215 aarch64_comparison_operator_mode instead of
6216 aarch64_comparison_operator.
6217 (cstore<mode>4): Likewise.
6218 (aarch64_cstore<mode>): Likewise.
6219 (*cstoresi_insn_uxtw): Likewise.
6220 (cstore<mode>_neg): Likewise.
6221 (*cstoresi_neg_uxtw): Likewise.
6223 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6226 * config/arm/predicates.md (arm_comparison_operator_mode):
6228 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
6229 instead of arm_comparison_operator.
6230 (*mov_negscc): Likewise.
6231 (*mov_notscc): Likewise.
6232 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
6233 (*thumb2_mov_negscc): Likewise.
6234 (*thumb2_mov_negscc_strict_it): Likewise.
6235 (*thumb2_mov_notscc): Likewise.
6236 (*thumb2_mov_notscc_strict_it): Likewise.
6238 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
6240 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
6243 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
6245 * config/visium/visium.c (machine_libfunc_index): New enum.
6246 (machine_libfuncs): New structure.
6247 (visium_libfuncs): New static variable.
6248 (TARGET_INIT_LIBFUNCS): Define to...
6249 (visium_init_libfuncs): ...this. New function.
6250 (expand_block_move_4): Use the appropriate libfunc.
6251 (expand_block_move_2): Likewise.
6252 (expand_block_move_1): Likewise.
6253 (expand_block_set_4): Likewise.
6254 (expand_block_set_2): Likewise.
6255 (expand_block_set_1): Likewise.
6256 (visium_trampoline_init): Likewise.
6258 2016-02-17 Nick Clifton <nickc@redhat.com>
6260 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
6261 TI's devices.csv file as of March 2016.
6263 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
6266 * opts-global.c (handle_common_deferred_options): Introduce and
6267 initialize two global variables to remember command-line options
6268 specifying a stack-limiting register.
6269 * opts.h: Add extern declarations of the two new global variables.
6270 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
6271 variable based on the values of the two new global variables.
6273 2016-02-16 Jakub Jelinek <jakub@redhat.com>
6276 * common.opt (Wnonnull-compare): New warning.
6277 * doc/invoke.texi (-Wnonnull): Remove text about comparison
6278 of arguments against NULL.
6279 (-Wnonnull-compare): Document.
6280 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
6281 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
6282 * passes.def (pass_warn_nonnull_compare): Add.
6283 * gimple-ssa-nonnull-compare.c: New file.
6285 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
6287 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
6288 AARCH64_EXTRA_TUNE_RECIP_SQRT.
6290 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
6292 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
6293 reciprocal sqrt for -mlow-precision-recip-sqrt.
6295 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
6296 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6298 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
6299 always use lane loads to construct non-constant vectors.
6301 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
6303 * config/aarch64/aarch64.md
6304 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
6305 constraints for operand 3.
6306 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
6308 2016-02-16 Jakub Jelinek <jakub@redhat.com>
6309 Richard Biener <rguenther@suse.de>
6311 PR tree-optimization/69820
6312 * tree-vect-patterns.c (type_conversion_p): Return false if
6313 *orig_type is unsigned single precision or boolean.
6314 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
6317 2016-02-16 Jakub Jelinek <jakub@redhat.com>
6319 PR rtl-optimization/69764
6320 PR rtl-optimization/69771
6321 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
6322 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
6324 2016-02-16 Richard Biener <rguenther@suse.de>
6326 PR tree-optimization/69776
6327 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
6329 (indirect_refs_may_alias_p): Likewise.
6330 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
6331 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
6332 according to tbaa_p.
6333 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
6334 (optimize_stmt): For redundant store discovery do not allow tbaa.
6336 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
6338 PR tree-optimization/69714
6339 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
6340 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
6342 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
6344 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
6345 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
6346 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
6347 * config/arc/arc.c (arc_init): Check FPU options.
6348 (get_arc_condition_code): Handle new CC_FPU* modes.
6349 (arc_select_cc_mode): Likewise.
6350 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
6351 register pair only. Allow access for ARCv2 accumulator.
6352 (gen_compare_reg): Whenever we have FPU support use FPU compare
6354 (arc_reorg): Don't generate brcc insns when FPU compare
6355 instructions are involved.
6356 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
6357 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
6358 floating point emulation.
6359 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
6360 (REVERSE_CONDITION): Add new CC_FPU* modes.
6361 (TARGET_FP_SP_BASE): Define.
6362 (TARGET_FP_DP_BASE): Likewise.
6363 (TARGET_FP_SP_FUSED): Likewise.
6364 (TARGET_FP_DP_FUSED): Likewise.
6365 (TARGET_FP_SP_CONV): Likewise.
6366 (TARGET_FP_DP_CONV): Likewise.
6367 (TARGET_FP_SP_SQRT): Likewise.
6368 (TARGET_FP_DP_SQRT): Likewise.
6369 (TARGET_FP_DP_AX): Likewise.
6370 * config/arc/arc.md (ARCV2_ACC): New constant.
6371 (type): New fpu type attribute.
6372 (SDF): Conditional iterator.
6373 (cstore<mode>, cbranch<mode>): Change expand condition.
6374 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
6375 handles FPU/FPX cases as well.
6376 * config/arc/arc.opt (mfpu): New option.
6377 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
6379 (adddf3, muldf3, subdf3): Removed.
6380 * config/arc/predicates.md (proper_comparison_operator): Recognize
6382 * config/arc/fpu.md: New file.
6383 * doc/invoke.texi (ARC Options): Document mfpu option.
6385 2016-02-16 Richard Biener <rguenther@suse.de>
6387 PR rtl-optimization/69291
6388 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
6389 noce_operand_ok check.
6391 2016-02-16 Tom de Vries <tom@codesourcery.com>
6394 * omp-low.c (simd_clone_create): Remove call to
6395 symtab->call_cgraph_insertion_hooks.
6397 2016-02-16 Jakub Jelinek <jakub@redhat.com>
6399 PR tree-optimization/69802
6400 * tree-ssa-reassoc.c (update_range_test): If op is
6401 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
6402 op == 1 test of precision 1 integral op, otherwise handle
6403 that case as op itself. Fix up formatting.
6404 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
6407 2016-02-16 Richard Biener <rguenther@suse.de>
6409 PR tree-optimization/69586
6410 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
6411 types for conversion sources.
6413 2016-02-16 Richard Biener <rguenther@suse.de>
6416 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
6417 mask OEP_ADDRESS_OF.
6419 2016-02-16 Alan Modra <amodra@gmail.com>
6422 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
6423 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
6424 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
6426 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
6427 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
6428 (p8_fmrgow_<mode>): Likewise.
6429 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
6431 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
6432 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
6433 to use movdi_internal64. Remove op0_di.
6434 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
6436 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
6438 Add support for the FCCMP insn types
6440 * config/aarch64/aarch64.md (fccmp): Change insn type.
6442 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
6443 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
6444 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
6445 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
6446 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
6447 * config/arm/types.md (fccmps): Add new insn type.
6450 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
6452 * alias.c (get_alias_set): Fix a typo in comment.
6454 2016-02-15 Richard Biener <rguenther@suse.de>
6456 PR tree-optimization/69595
6457 * match.pd: Complete range test simplification to true.
6459 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
6461 PR rtl-optimization/69648
6462 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
6463 pic_offset_table_rtx.
6465 PR rtl-optimization/69752
6466 * ira.c (update_equiv_regs): When looking for more than a single SET,
6467 also take other side effects into account.
6469 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
6471 * config/s390/s390.c (s390_function_profiler): Add a new sequence
6472 for z900+ CPUs in 31-bit mode.
6474 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
6476 * common/config/s390/s390-common.c (s390_supports_split_stack):
6478 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
6479 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
6480 * config/s390/s390.c (struct machine_function): New field
6481 split_stack_varargs_pointer.
6482 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
6483 in s390_emit_prologue.
6484 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
6486 (morestack_ref): New global.
6487 (SPLIT_STACK_AVAILABLE): New macro.
6488 (s390_expand_split_stack_prologue): New function.
6489 (s390_live_on_entry): New function.
6490 (s390_va_start): Use split-stack vararg pointer if appropriate.
6491 (s390_asm_file_end): Emit the split-stack note sections.
6492 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
6493 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
6494 (UNSPECV_SPLIT_STACK_CALL): New unspec.
6495 (UNSPECV_SPLIT_STACK_DATA): New unspec.
6496 (split_stack_prologue): New expand.
6497 (split_stack_space_check): New expand.
6498 (split_stack_data): New insn.
6499 (split_stack_call): New expand.
6500 (split_stack_call_*): New insn.
6501 (split_stack_cond_call): New expand.
6502 (split_stack_cond_call_*): New insn.
6504 2016-02-15 Richard Biener <rguenther@suse.de>
6506 PR tree-optimization/69783
6507 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6508 Add trivially correct cases.
6510 2016-02-15 Tom de Vries <tom@codesourcery.com>
6513 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
6515 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
6517 2016-02-15 Richard Biener <rguenther@suse.de>
6519 PR tree-optimization/69776
6520 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6521 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
6522 indicate whether we can use TBAA to disambiguate against stores.
6523 Use alias-set zero if not.
6524 (visit_reference_op_store): Do not use TBAA when looking up
6526 * tree-ssa-pre.c (compute_avail): Use TBAA here.
6527 (eliminate_dom_walker::before_dom_children): But not when looking
6528 up redundant stores.
6530 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
6532 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
6534 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6536 * config/i386/znver1.md
6537 (znver1_pop, znver1_pop_mem,
6538 znver1_load_imov_double_store,
6539 znver1_load_imov_direct_store,
6540 znver1_load_imov_direct_load,
6541 znver1_load_imov_double_load): Add new.
6542 (znver1_insn, znver1_insn_load): Add icmov type.
6544 znver1_sseavx_fma_load,
6546 znver1_avx256_fma_load): Fix pipe usage.
6548 2016-02-14 Alan Modra <amodra@gmail.com>
6551 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
6552 with an invalid hard reg, reload just the reg not the entire
6553 pre/post-inc/dec address expression.
6555 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
6558 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
6559 fixed R1_REG scratch reg.
6560 (sibcall_value_pcrel_fdpic): Likewise.
6562 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
6566 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
6568 2016-02-12 Walter Lee <walt@tilera.com>
6570 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
6571 * config/tilegx/t-tilegx: Likewise.
6573 2016-02-12 David Malcolm <dmalcolm@redhat.com>
6576 * diagnostic-show-locus.c (struct line_span): New struct.
6577 (layout::get_first_line): Delete.
6578 (layout::get_last_line): Delete.
6579 (layout::get_num_line_spans): New member function.
6580 (layout::get_line_span): Likewise.
6581 (layout::print_heading_for_line_span_index_p): Likewise.
6582 (layout::get_expanded_location): Likewise.
6583 (layout::calculate_line_spans): Likewise.
6584 (layout::m_first_line): Delete.
6585 (layout::m_last_line): Delete.
6586 (layout::m_line_spans): New field.
6587 (layout::layout): Update comment. Replace m_first_line and
6588 m_last_line with m_line_spans, replacing their initialization
6589 with a call to calculate_line_spans.
6590 (diagnostic_show_locus): When printing source lines and
6591 annotations, rather than looping over a single span
6592 of lines, instead loop over each line_span within
6593 the layout, with an inner loop over the lines within them.
6594 Call the context's start_span callback when changing line spans.
6595 * diagnostic.c (diagnostic_initialize): Initialize start_span.
6596 (diagnostic_build_prefix): Break out the building of the location
6597 part of the string into...
6598 (diagnostic_get_location_text): ...this new function, rewriting
6599 it from nested ternary expressions to a sequence of "if"
6601 (default_diagnostic_start_span_fn): New function.
6602 * diagnostic.h (diagnostic_start_span_fn): New typedef.
6603 (diagnostic_context::start_span): New field.
6604 (default_diagnostic_start_span_fn): New prototype.
6606 2016-02-12 David Malcolm <dmalcolm@redhat.com>
6609 * gcc.c (driver::finalize): Fix cleanup of "specs".
6611 2016-02-12 David Malcolm <dmalcolm@redhat.com>
6615 * gcc.c (driver::driver): Initialize m_option_suggestions.
6616 (driver::~driver): Clean up m_option_suggestions.
6617 (suggest_option): Convert to...
6618 (driver::suggest_option): ...this, and split out into
6619 driver::build_option_suggestions and find_closest_string.
6620 (driver::build_option_suggestions): New function, from
6621 first half of suggest_option. Special-case
6622 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
6623 the sanitizer_opts array. For options of enum types, add the
6624 various enum values to the candidate strings.
6625 (driver::handle_unrecognized_options): Remove "const".
6626 * gcc.h (driver::handle_unrecognized_options): Likewise.
6627 (driver::build_option_suggestions): New decl.
6628 (driver::suggest_option): New decl.
6629 (driver::m_option_suggestions): New field.
6630 * opts-common.c (add_misspelling_candidates): New function.
6631 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
6632 and make non-static.
6633 * opts.h (sanitizer_opts): New array decl.
6634 (add_misspelling_candidates): New function decl.
6635 * spellcheck.c (find_closest_string): New function.
6636 * spellcheck.h (find_closest_string): New function decl.
6638 2016-02-12 Jakub Jelinek <jakub@redhat.com>
6640 PR rtl-optimization/69764
6641 PR rtl-optimization/69771
6642 * optabs.c (expand_binop_directly): For shift_optab_p, force
6643 convert_modes with VOIDmode if xop1 has VOIDmode.
6645 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
6648 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
6649 to correctly determine instrumentation thunks.
6651 2016-02-12 Jakub Jelinek <jakub@redhat.com>
6654 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
6655 type by reference, force lhs on the call.
6658 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
6659 Compute retval and retbnd early in all cases if split_part_return_p
6660 and return_bb is not EXIT. Remove all clobber stmts and reset
6661 all debug stmts that refer to SSA_NAMEs defined in split part,
6662 except if it is retval, in that case replace the old retval with the
6663 lhs of the call to the split part.
6665 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
6668 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
6671 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
6672 whose result is used in PHI.
6673 (maybe_optimize_range_tests): Likewise.
6674 (final_range_test_p): Likweise.
6676 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
6679 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
6680 whose result is used in PHI.
6681 (maybe_optimize_range_tests): Likewise.
6682 (final_range_test_p): Likweise.
6684 2016-02-12 Jakub Jelinek <jakub@redhat.com>
6686 * cgraph.c: Spelling fixes - behaviour -> behavior and
6687 neighbour -> neighbor.
6688 * target.def: Likewise.
6689 * sel-sched.c: Likewise.
6690 * config/mips/mips.c: Likewise.
6691 * config/arc/arc.md: Likewise.
6692 * config/arm/cortex-a57.md: Likewise.
6693 * config/arm/arm.c: Likewise.
6694 * config/arm/neon.md: Likewise.
6695 * config/arm/arm-c.c: Likewise.
6696 * config/vms/vms-c.c: Likewise.
6697 * config/s390/s390.c: Likewise.
6698 * config/i386/znver1.md: Likewise.
6699 * config/i386/i386.c: Likewise.
6700 * config/ia64/hpux-unix2003.h: Likewise.
6701 * config/msp430/msp430.md: Likewise.
6702 * config/rx/rx.c: Likewise.
6703 * config/rx/rx.md: Likewise.
6704 * config/aarch64/aarch64-simd.md: Likewise.
6705 * config/aarch64/aarch64.c: Likewise.
6706 * config/nvptx/nvptx.c: Likewise.
6707 * config/bfin/bfin.c: Likewise.
6708 * config/cris/cris.opt: Likewise.
6709 * config/rs6000/rs6000.c: Likewise.
6710 * target.h: Likewise.
6711 * spellcheck.c: Likewise.
6712 * ira-build.c: Likewise.
6713 * tree-inline.c: Likewise.
6714 * builtins.c: Likewise.
6715 * lra-constraints.c: Likewise.
6716 * explow.c: Likewise.
6717 * hwint.h: Likewise.
6718 * targhooks.c: Likewise.
6719 * tree-vect-data-refs.c: Likewise.
6721 * doc/tm.texi: Likewise.
6722 * doc/extend.texi: Likewise.
6723 * doc/install.texi: Likewise.
6724 * doc/md.texi: Likewise.
6725 * tree-ssa-tail-merge.c: Likewise.
6726 * sched-int.h: Likewise.
6727 * match.pd: Likewise.
6728 * sched-ebb.c: Likewise.
6729 * target.def (omit_struct_return_reg): Likewise.
6730 * gimple-ssa-isolate-paths.c: Likewise.
6731 (find_implicit_erroneous_behaviour): Renamed to...
6732 (find_implicit_erroneous_behavior): ... this.
6733 (find_explicit_erroneous_behaviour): Renamed to...
6734 (find_explicit_erroneous_behavior): ... this.
6735 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
6737 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
6739 PR rtl-optimization/64682
6740 PR rtl-optimization/69567
6741 PR rtl-optimization/69737
6742 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
6743 in I2 as well, just lose it.
6745 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6747 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
6749 (aarch64_last_printed_tune_string): Likewise.
6750 (aarch64_declare_function_name): Only output .arch assembler
6751 directive if it will be different from the previously output
6752 directive. Same for .tune comment but only if -dA is set.
6753 (aarch64_start_file): New function.
6754 (TARGET_ASM_FILE_START): Define.
6756 2016-02-11 David Malcolm <dmalcolm@redhat.com>
6759 * Makefile.in (PLUGIN_HEADERS): Add params.list.
6761 2016-02-11 Jakub Jelinek <jakub@redhat.com>
6764 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
6765 -Wmaybe-uninitialized warning.
6767 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
6770 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
6772 2016-02-11 Richard Biener <rguenther@suse.de>
6774 PR rtl-optimization/69291
6775 * ifcvt.c (noce_try_store_flag_constants): Do not allow
6776 subexpressions affected by changing the result.
6778 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
6781 * lra-constraints.c (curr_insn_transform): Find in/out operands
6782 for secondary memory moves. Update dups.
6784 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
6786 PR tree-optimization/69652
6787 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
6788 to nested loop, did source re-formatting, skip debug statements,
6789 add check on statement with volatile operand, remove dead scalar
6792 2016-02-10 Jakub Jelinek <jakub@redhat.com>
6793 Patrick Palka <ppalka@gcc.gnu.org>
6797 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
6798 calls if the return type is TREE_ADDRESSABLE.
6799 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
6800 * ipa-split.c (split_function): Fix doubled "we" in comment.
6801 Use void return type for the split part even if
6802 !split_point->split_part_set_retval.
6804 2016-02-10 Bin Cheng <bin.cheng@arm.com>
6806 PR tree-optimization/68021
6807 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
6808 when computing the value of biv cand by itself.
6810 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
6812 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
6813 (cortexa57_tunings): Likewise.
6814 (cortexa72_tunings): Likewise.
6815 (arch_macro_fusion_pair_p): Add support for AES fusion.
6816 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
6817 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6818 Allow virtual registers before reload so early scheduling works.
6819 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
6820 correct latency and pipeline.
6821 (cortex_a57_crypto_complex): Likewise.
6822 (cortex_a57_crypto_xor): Likewise.
6823 (define_bypass): Add AES bypass.
6825 2016-02-10 Richard Biener <rguenther@suse.de>
6827 PR tree-optimization/69726
6828 * passes.def: Add DCE pass before late uninit.
6829 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
6830 really fixup if-conversions job.
6832 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
6834 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
6835 (arm_cortex_a57_tune): Likewise.
6836 (aarch_macro_fusion_pair_p): Add support for AES fusion.
6837 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
6839 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
6841 * timevar.def (TV_PHASE_DBGINFO): Delete.
6842 (TV_PHASE_CHECK_DBGINFO): Likewise.
6843 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
6845 2016-02-10 Richard Biener <rguenther@suse.de>
6847 PR tree-optimization/69719
6848 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6849 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
6851 2016-02-09 Andrew Pinski <apinski@cavium.com>
6854 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
6855 get_vcond_mask_icode returns false.
6857 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
6860 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
6861 an ADDIS that adds a pointer to a large constant that sets the
6862 upper16 bits with a load operation.
6864 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
6867 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
6869 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
6871 (vzipq_s16): Likewise.
6872 (vzipq_s32): Likewise.
6873 (vzipq_f32): Likewise.
6874 (vzipq_u8): Likewise.
6875 (vzipq_u16): Likewise.
6876 (vzipq_u32): Likewise.
6877 (vzipq_p8): Likewise.
6878 (vzipq_p16): Likewise.
6880 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
6883 * config/arm/arm.c (neon_endian_lane_map): New function.
6884 (neon_vector_pair_endian_lane_map): New function.
6885 (arm_evpc_neon_vuzp): Allow for big endian lane order.
6886 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
6888 (vuzpq_s16): Likewise.
6889 (vuzpq_s32): Likewise.
6890 (vuzpq_f32): Likewise.
6891 (vuzpq_u8): Likewise.
6892 (vuzpq_u16): Likewise.
6893 (vuzpq_u32): Likewise.
6894 (vuzpq_p8): Likewise.
6895 (vuzpq_p16): Likewise.
6897 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
6900 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
6903 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
6905 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
6906 truncate const_int operand 1 to QImode.
6908 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
6910 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
6911 corresponding to an abnormal edge.
6913 2016-02-09 Tom de Vries <tom@codesourcery.com>
6915 PR tree-optimization/69599
6916 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
6918 (find_func_aliases_for_builtin_call, find_func_clobbers)
6919 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
6922 2016-02-09 Richard Biener <rguenther@suse.de>
6924 PR tree-optimization/69715
6925 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
6926 LHS on calls as non-rewritable.
6928 2016-02-09 Tom de Vries <tom@codesourcery.com>
6931 * lto-wrapper.c (append_diag_options): New function.
6932 (compile_offload_image): Call append_diag_options.
6934 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
6937 * doc/extend.texi (Flag Output Operands): Correct sectioning.
6938 Minor copy-edit to fix verb tenses.
6940 2016-02-08 Jakub Jelinek <jakub@redhat.com>
6942 PR tree-optimization/69209
6943 * ipa-split.c (split_function): If split part is not
6944 returning retval, retval has gimple type but is not
6945 gimple value, force it into a SSA_NAME first.
6947 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
6949 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
6952 2016-02-08 Jason Merrill <jason@redhat.com>
6955 * convert.c (convert_to_integer_1): Check dofold on truncation
6957 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
6958 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
6959 Rename from *_nofold.
6960 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
6961 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
6963 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
6966 * tree.c (build_common_tree_nodes): Remove short_double argument.
6967 All callers changed.
6968 * tree.h (build_common_tree_nodes): Adjust declaration.
6969 * doc/invoke.texi (-fshort-double): Remove documentation.
6970 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6971 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
6972 * lto-wrapper.c (merge_and_complain, append_compiler_options)
6973 (append_linker_options): Don't handle OPT_fshort_double.
6975 PR rtl-optimization/68730
6976 * lra-remat.c (insn_to_cand_activation): New static variable.
6977 (lra_remat): Allocate and free it.
6978 (create_cand): New arg activation. Initialize a field in
6979 insn_to_cand_activation if it is nonnull.
6980 (create_cands): Pass the activation insn to create_cand when making
6981 a candidate involving an output reload. Reorganize code a little.
6982 (do_remat): Keep track of active status of candidates in a separate
6985 2016-02-08 Richard Biener <rguenther@suse.de>
6987 PR tree-optimization/69719
6988 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6989 Properly use absolute of the difference of the two offsets to
6990 compare or adjust the segment length.
6992 2016-02-08 Richard Biener <rguenther@suse.de>
6993 Jeff Law <law@redhat.com>
6996 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
6997 types for anonymous SSA names.
6999 2016-02-08 Richard Biener <rguenther@suse.de>
7001 PR rtl-optimization/69274
7002 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
7004 2016-02-08 Jeff Law <law@redhat.com>
7006 PR tree-optimization/65917
7007 * tree-ssa-dom.c (record_temporary_equivalences): Record both
7008 equivalences from if (x == y) style conditionals.
7009 (loop_depth_of_name): Remove.
7010 (record_equality): Remove loop depth check.
7011 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
7012 (const_and_copies::record_const_or_copy_raw): New member function.
7013 * tree-ssa-scopedtables.c
7014 (const_and_copies::record_const_or_copy_raw): New, factored out of
7015 (const_and_copies::record_const_or_copy): Call new member function.
7017 2016-02-05 Jeff Law <law@redhat.com>
7019 PR tree-optimization/68541
7020 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
7021 (count_stmts_in_block): New function.
7022 (poor_ifcvt_candidate_code): Likewise.
7023 (is_feasible_trace): Add some heuristics to determine when path
7024 splitting is profitable.
7025 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
7026 is a diamond with a single exit.
7028 2016-02-05 Martin Sebor <msebor@redhat.com>
7031 * doc/invoke.texi: Update -Wplacement-new to take an optional
7034 2016-02-06 Richard Henderson <rth@redhat.com>
7037 * tree.c (tree_nop_conversion_p): Do not strip casts into or
7038 out of non-standard address spaces.
7040 2016-02-05 Jakub Jelinek <jakub@redhat.com>
7042 PR rtl-optimization/69691
7043 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
7045 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
7047 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
7048 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
7049 (*ieee128_mfvsrd_64bit): Likewise.
7050 (*ieee128_mfvsrd_32bit): Likewise.
7052 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
7056 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
7058 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
7059 instrumented_version.
7061 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
7063 * doc/invoke.texi (Optimize Options): In table of --param options
7064 rename second occurrence of tracer-min-branch-ratio to
7065 tracer-min-branch-probability, rename
7066 tracer-min-branch-ratio-feedback to
7067 tracer-min-branch-probability-feedback and clarify description,
7068 rename sched-spec-state-edge-prob-cutoff to
7069 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
7070 to selsched-insns-to-rename, rename lto-minpartition to
7071 lto-min-partition, delete reorder-blocks-duplicate and
7072 reorder-blocks-duplicate-feedback.
7074 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7076 * config/s390/s390.c (s390_register_info_set_ranges): Remove
7079 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
7081 * doc/extend.texi: S/390: Correct some typos.
7083 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7085 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
7087 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7090 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
7091 (s390_register_info_gprtofpr): Use new macros above.
7092 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
7094 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
7095 its name. Adjust restore and save gpr ranges.
7096 (s390_register_info_set_ranges): New function.
7097 (s390_register_info): Use new macros above. Call
7098 s390_register_info_set_ranges.
7099 (s390_optimize_register_info): Likewise.
7100 (s390_hard_regno_rename_ok): Use new macros.
7101 (s390_hard_regno_scratch_ok): Likewise.
7102 (s390_emit_epilogue): Likewise.
7103 (s390_can_use_return_insn): Likewise.
7104 (s390_optimize_prologue): Likewise.
7105 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
7107 2016-02-05 Jakub Jelinek <jakub@redhat.com>
7110 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
7112 (ix86_option_override_internal): Disable TARGET_STV even for
7113 -m{incoming,preferred}-stack-boundary=3.
7115 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7117 * config.gcc: Mark deprecated rtems targets as obsolete.
7119 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
7121 PR rtl-optimization/64682
7122 PR rtl-optimization/69567
7123 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
7124 before I2 only if the register is both used and set in I2.
7126 2016-02-04 DJ Delorie <dj@redhat.com>
7128 * config/msp430/msp430.c (msp430_start_function): Add function type.
7130 2016-02-04 Jakub Jelinek <jakub@redhat.com>
7133 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
7135 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
7137 PR rtl-optimization/69577
7139 2015-10-29 Richard Henderson <rth@redhat.com>
7143 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
7144 sse check to the exact conditions of PR 67609.
7146 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
7149 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
7150 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
7151 not allowed into the traditional Altivec registers.
7152 (movtd_64bit_nodm): Likewise.
7153 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7155 2016-02-04 David Malcolm <dmalcolm@redhat.com>
7157 * config/aarch64/cortex-a57-fma-steering.c
7158 (aarch64_register_fma_steering): Remove "static" from arguments
7161 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
7164 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
7167 2016-02-04 Mike Frysinger <vapier@gentoo.org>
7169 * doc/invoke.texi: Delete -mno-fma4.
7171 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
7173 PR rtl-optimization/69577
7174 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
7175 (find_subregs_of_mode): Update accordingly. Iterate over partial
7178 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
7180 * config/arm/arm-protos.h (neon_reinterpret): Remove.
7181 * config/arm/arm.c (neon_reinterpret): Remove.
7182 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
7183 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
7184 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
7185 vreinterpretti): Remove.
7186 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
7187 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
7188 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
7189 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
7190 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
7191 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
7192 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
7193 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
7194 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
7195 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
7196 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
7197 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
7198 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
7199 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
7200 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
7201 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
7202 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
7203 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
7204 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
7205 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
7206 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
7207 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
7208 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
7209 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
7210 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
7211 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
7212 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
7213 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
7214 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
7215 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
7216 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
7217 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
7218 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
7219 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
7220 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
7221 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
7222 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
7223 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
7224 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
7225 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
7226 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
7227 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
7228 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
7229 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
7230 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
7231 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
7232 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
7233 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
7234 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
7235 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
7236 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
7237 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
7238 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
7239 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
7240 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
7241 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
7242 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
7243 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
7244 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
7245 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
7246 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
7247 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
7248 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
7249 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
7250 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
7251 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
7252 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
7253 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
7254 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
7255 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
7256 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
7257 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
7258 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
7259 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
7260 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
7261 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
7262 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
7263 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
7264 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
7265 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
7266 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
7267 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
7268 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
7269 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
7270 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
7271 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
7272 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
7273 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
7274 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
7275 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
7276 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
7277 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
7278 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
7279 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
7280 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
7281 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
7282 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
7283 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
7284 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
7285 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
7286 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
7287 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
7288 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
7290 2016-02-04 Martin Liska <mliska@suse.cz>
7293 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
7294 that are gimple_store_p.
7295 (maybe_instrument_call): Likewise.
7297 2016-02-04 Bin Cheng <bin.cheng@arm.com>
7299 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
7300 register scaling out of memory reference and comment why.
7302 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7306 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
7307 folding the source of a SET.
7309 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7313 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
7314 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
7316 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
7320 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
7323 2016-02-04 Christian Bruel <christian.bruel@st.com>
7325 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
7326 * config/arm/arm.c (arm_set_current_function): Likewise.
7328 2016-02-04 Jakub Jelinek <jakub@redhat.com>
7329 Ilya Enkovich <enkovich.gnu@gmail.com>
7330 H.J. Lu <hongjiu.lu@intel.com>
7333 * config/i386/i386.c (convert_scalars_to_vector): Remove
7334 stack alignment fixes.
7335 (ix86_option_override_internal): Disable TARGET_STV if stack
7336 might not be aligned enough.
7337 (ix86_minimum_alignment): Assert that TARGET_STV is false.
7339 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
7341 * gcc/config/i386/x86-tune.def: Disable default prefetching
7344 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
7345 Vladimir Makarov <vmakarov@redhat.com>
7348 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
7349 in validating fused toc addresses.
7351 2016-02-03 Jakub Jelinek <jakub@redhat.com>
7354 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
7355 range->m_caret fields if range->m_show_caret_p is false.
7358 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7359 Force oldval into register if it does not satisfy reg_or_short_operand
7360 predicate. Fix up formatting.
7362 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
7363 Alexandre Oliva <aoliva@redhat.com>
7366 * lra-constraints.c (simplify_operand_subreg): Check additionally
7367 address validity after potential reloading.
7368 (process_address_1): Check insns validity. In case of failure do
7371 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
7374 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
7377 2016-02-02 Jakub Jelinek <jakub@redhat.com>
7379 * wide-int.cc (canonize_uhwi): New function.
7380 (wi::divmod_internal): Use it.
7382 2016-02-02 James Norris <jnorris@codesourcery.com
7384 * gimplify.c (omp_notice_variable): Add usage check.
7386 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
7388 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
7389 like LE, GE, LT, GT when emitting relational operator.
7391 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
7393 * ira-costs.c (find_costs_and_classes): Add extra argument.
7394 * target.def (ira_change_pseudo_allocno_class): Add parameter.
7395 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
7396 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
7397 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
7398 Add best_class parameter, and return it if not ALL_REGS.
7399 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
7401 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
7404 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
7406 * config/aarch64/aarch64.c
7407 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
7408 (aarch64_ira_change_pseudo_allocno_class): New function.
7410 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
7413 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
7415 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7417 * config/avr/avr.c (avr_option_override): Set
7418 PARAM_ALLOW_STORE_DATA_RACES to 1.
7420 2016-02-02 Richard Biener <rguenther@suse.de>
7422 PR tree-optimization/69595
7423 * match.pd: Add range test simplifications to true/false.
7425 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
7427 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
7428 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
7431 2016-02-02 Richard Biener <rguenther@suse.de>
7433 PR tree-optimization/69606
7434 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
7435 info on the result before moving a stmt.
7437 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
7440 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
7441 branch with vector comparison.
7442 * config/i386/sse.md (VI48_AVX): New mode iterator.
7443 (define_expand "cbranch<mode>4): Add support for conditional branch
7444 with vector comparison.
7445 * tree-vect-loop.c (optimize_mask_stores): New function.
7446 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
7447 has_mask_store field of vect_info.
7448 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
7449 vectorized loops having masked stores after vec_info destroy.
7450 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
7451 correspondent macros.
7452 (optimize_mask_stores): Add prototype.
7454 2016-02-02 Alan Modra <amodra@gmail.com>
7457 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
7460 2016-02-02 Alan Modra <amodra@gmail.com>
7463 * config/rs6000/rs6000.c (need_toc_init): New var, set it
7464 whenever toc_label_name used.
7465 (rs6000_file_start): Don't set up toc section here,
7466 (rs6000_output_function_epilogue): do so here instead,
7467 (rs6000_xcoff_file_start): and here.
7468 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
7469 (load_toc_aix_di): Likewise.
7471 2016-02-01 Jakub Jelinek <jakub@redhat.com>
7473 PR rtl-optimization/69592
7474 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
7475 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
7476 (num_sign_bit_copies_binary_arith_p): New inline function.
7477 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
7479 2016-02-01 Jeff Law <law@redhat.com>
7481 PR tree-optimization/69580
7482 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
7483 * tree-ssa-threadbackward.c
7484 (fsm_find_control_statement_thread_paths): Do not try to walk
7485 through large PHI nodes.
7487 2016-02-01 Jakub Jelinek <jakub@redhat.com>
7489 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
7490 when count is incremented above limit, don't analyze further
7493 * omp-low.c (oacc_parse_default_dims): Avoid
7494 -Wsign-compare warning, make sure value fits into int
7495 rather than just unsigned int.
7497 2016-02-01 Bin Cheng <bin.cheng@arm.com>
7499 PR tree-optimization/67921
7500 * fold-const.c (split_tree): New parameters. Convert pointer
7501 type variable part to proper type before negating.
7502 (fold_binary_loc): Pass new arguments to split_tree.
7504 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
7506 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
7507 (nvptx_goacc_validate_dims): Extend to handle global defaults.
7508 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
7509 * doc/tm.texti: Rebuilt.
7510 * doc/invoke.texi (fopenacc-dim): Document.
7511 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
7512 (append_compiler_options): Likewise.
7513 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
7514 (oacc_parse_default_dims): New.
7515 (oacc_validate_dims): Add USED arg. Select non-unity default when
7517 (oacc_loop_fixed_partitions): Return mask of used partitions.
7518 (oacc_loop_auto_partitions): Emit dump info.
7519 (oacc_loop_partition): Return mask of used partitions.
7520 (execute_oacc_device_lower): Parse default dimension arg. Adjust
7521 loop partitioning and validation calls.
7523 2016-02-01 Richard Biener <rguenther@suse.de>
7526 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
7528 2016-02-01 Richard Biener <rguenther@suse.de>
7530 PR tree-optimization/69574
7531 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
7532 of asserting return chrec_dont_know.
7534 2016-02-01 Martin Liska <mliska@suse.cz>
7536 * mem-stats-traits.h: Add copyright header.
7537 * mem-stats.h: Likewise.
7539 2016-02-01 Richard Biener <rguenther@suse.de>
7541 PR tree-optimization/69579
7542 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
7543 Do not propagate through abnormal PHI results.
7545 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
7547 * postreload.c (reload_cse_simplify): Remove dead code.
7549 2016-02-01 Jakub Jelinek <jakub@redhat.com>
7551 PR rtl-optimization/69570
7552 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
7553 if there is more than one set, not if there is a single set.
7555 2016-02-01 Richard Henderson <rth@redhat.com>
7558 * combine.c (make_compound_operation): When looking through a
7559 subreg, make sure to re-extend to the width of the outer mode.
7561 2016-01-30 Jakub Jelinek <jakub@redhat.com>
7563 PR tree-optimization/69546
7564 * wide-int.cc (wi::divmod_internal): For unsigned division
7565 where both operands fit into uhwi, if o1 is 1 and o0 has
7566 msb set, if divident_prec is larger than bits per hwi,
7567 clear another quotient word and return 2 instead of 1.
7568 Similarly for remainder with msb in HWI set, if dividend_prec
7569 is larger than bits per hwi.
7571 2016-01-29 Martin Jambor <mjambor@suse.cz>
7573 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
7574 Use short lowercase names.
7575 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
7576 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
7577 acq_rel one. Protect warning agains segfaults if
7578 get_memory_order_name returns NULL.
7579 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
7580 with release semantics. Do not warn if get_memory_order already did.
7581 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
7582 semantics. Fix check for relaxed or acquire semantics. Do not warn
7583 if get_memory_order already did.
7585 2016-01-29 Sebastian Pop <s.pop@samsung.com>
7587 * doc/install.texi: Document that isl-0.16 is supported.
7589 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
7592 * config/i386/constraints.md (Bm): Describe as special memory
7594 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
7595 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7596 * genpreds.c (struct constraint_data): Add is_special_memory.
7597 (have_special_memory_constraints, special_memory_start): New
7599 (special_memory_end): Ditto.
7600 (add_constraint): Add new arg is_special_memory. Add code to
7601 process its true value. Update have_special_memory_constraints.
7602 (process_define_constraint): Pass the new arg.
7603 (process_define_register_constraint): Ditto.
7604 (choose_enum_order): Process special memory.
7605 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
7606 function insn_extra_special_memory_constraint.
7607 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7608 * gensupport.c (process_rtx): Process
7609 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7610 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
7611 * ira-lives.c (single_reg_class): Use
7612 insn_extra_special_memory_constraint.
7613 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
7614 * lra-constraints.c (process_alt_operands): Ditto.
7615 (curr_insn_transform): Use insn_extra_special_memory_constraint.
7616 * recog.c (asm_operand_ok, preprocess_constraints): Process
7618 * reload.c (find_reloads): Ditto.
7619 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
7620 * stmt.c (parse_input_constraint): Use
7621 insn_extra_special_memory_constraint.
7623 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
7626 * lra-splill.c (lra_final_code_change): Revert r229087 by
7627 removing all sub-registers.
7629 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
7632 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
7634 2016-01-29 Jakub Jelinek <jakub@redhat.com>
7637 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
7638 SSE1, copy target into the temporary reg first before recursing
7641 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
7643 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
7646 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
7648 * ginclude/stdarg.h: Test __cplusplus instead of
7649 __GXX_EXPERIMENTAL_CXX0X__.
7651 2016-01-29 Richard Biener <rguenther@suse.de>
7653 PR tree-optimization/69547
7654 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
7655 Do not mark clobbers necessary.
7656 (mark_all_reaching_defs_necessary_1): Likewise.
7658 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7660 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
7661 declaration name with %qs and print it in both error messages.
7662 Also fix indentation.
7664 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7667 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
7668 trailing blank line from error message.
7670 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
7673 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
7676 2016-01-29 Richard Biener <rguenther@suse.de>
7679 * match.pd: Allow all integral types when simplifying a
7680 widening or sign-changing conversion.
7682 2016-01-28 Sebastian Pop <s.pop@samsung.com>
7684 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
7685 back to setting codegen_error to fail codegen.
7687 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
7690 * config/i386/constraints.md (C): Only accept constant zero operand.
7691 (BC): New constraint.
7692 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
7693 instead of C constraint.
7694 * doc/md.texi (Machine Constraints): Update description
7697 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
7700 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
7702 2016-01-28 Jakub Jelinek <jakub@redhat.com>
7705 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
7708 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
7710 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
7711 branches if using guessed profile.
7713 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
7715 * graphite-optimize-isl.c (optimize_isl): Fix dump.
7717 2016-01-28 Richard Henderson <rth@redhat.com>
7720 * config/aarch64/aarch64-modes.def (CC_Cmode): New
7721 * config/aarch64/aarch64-protos.h: Update.
7722 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
7723 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
7724 (aarch64_get_condition_code_1): Handle CC_Cmode.
7725 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
7726 (*add<mode>3_compareC_cconly_imm): New.
7727 (*add<mode>3_compareC_cconly): New.
7728 (*add<mode>3_compareC_imm): New.
7729 (add<mode>3_compareC): New.
7730 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
7731 to be first. Use aarch64_carry_operation.
7732 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
7733 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
7734 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
7735 (subti3): Use subdi3_compare1.
7736 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
7737 (sub<mode>3_compare1): New.
7738 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
7739 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
7740 (*subsi3_carryin_uxtw): Likewise.
7741 (*ngc<mode>, *ngcsi_uxtw): Likewise.
7742 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
7743 * config/aarch64/iterators.md (DWI): New.
7744 * config/aarch64/predicates.md (aarch64_carry_operation): New.
7745 (aarch64_borrow_operation): New.
7747 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
7749 * graphite-optimize-isl.c (optimize_isl): Print a different debug
7750 message when isl does not return a valid schedule.
7752 2016-01-28 Sebastian Pop <s.pop@samsung.com>
7754 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
7755 Remove comments from class declarations: they are already in the code
7758 2016-01-28 Sebastian Pop <s.pop@samsung.com>
7760 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
7762 (ternary_op_to_tree): Same.
7763 (unary_op_to_tree): Same.
7764 (nary_op_to_tree): Same.
7765 (gcc_expression_from_isl_expr_op): Same.
7766 (gcc_expression_from_isl_expression): Same.
7767 (graphite_create_new_loop): Same.
7768 (graphite_create_new_loop_guard): Same.
7769 (build_iv_mapping): Same.
7770 (graphite_create_new_guard): Same.
7771 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
7772 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
7774 2016-01-28 Sebastian Pop <s.pop@samsung.com>
7776 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
7777 instead of setting codegen_error to fail codegen.
7779 2016-01-28 Jason Merrill <jason@redhat.com>
7781 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
7783 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
7785 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
7786 Remove CONST_INT_P check in CCMP cost calculation.
7788 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
7790 * config/aarch64/aarch64.c (generic_vector_cost):
7791 Set vec_permute_cost.
7792 (cortexa57_vector_cost): Likewise.
7793 (exynosm1_vector_cost): Likewise.
7794 (xgene1_vector_cost): Likewise.
7795 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
7796 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
7797 Add vec_permute_cost entry.
7799 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
7801 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
7803 (add<mode>3_compare0): Likewise.
7804 (addsi3_compare0_uxtw): Likewise.
7805 (add<mode>3nr_compare0): Likewise.
7806 (compare_neg<mode>): Likewise.
7807 (<optab><mode>3): Likewise.
7809 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
7811 * tree-vect-stmts.c (vectorizable_comparison): Add
7812 NULL check for vectype.
7814 2016-01-28 Richard Biener <rguenther@suse.de>
7816 PR tree-optimization/69466
7817 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
7818 Account for PHIs we couldn't duplicate.
7820 2016-01-28 Martin Liska <mliska@suse.cz>
7823 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
7824 instead of ENABLE_VALGRIND_CHECKING.
7826 2016-01-27 Richard Henderson <rth@redhat.com>
7829 * lra-remat.c (subreg_regs): New.
7830 (dump_candidates_and_remat_bb_data): Dump it.
7831 (operand_to_remat): Reject if operand in subreg_regs.
7832 (set_bb_regs): Collect subreg_regs.
7833 (lra_remat): Init and free subreg_regs. Compute
7834 calculate_local_reg_remat_bb_data before create_cands.
7836 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
7839 * config/i386/i386.c (ix86_update_stack_boundary): Don't
7840 change stack_alignment_needed for __tls_get_addr call.
7842 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
7844 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
7846 2016-01-27 Jeff Law <law@redhat.com>
7848 PR tree-optimization/68398
7849 PR tree-optimization/69196
7850 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
7851 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
7852 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7853 Only count PHIs in the last block in the path. The others will
7854 const/copy propagate away. Add heuristic to allow more irreducible
7855 subloops to be created when it is likely profitable to do so.
7857 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7858 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
7859 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
7861 2016-01-27 Jakub Jelinek <jakub@redhat.com>
7864 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
7865 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
7866 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
7867 * tree-streamer-in.c: Include asan.h.
7868 (streamer_get_builtin_tree): For builtins in sanitizer
7869 range call initialize_sanitizer_builtins and retry.
7871 2016-01-27 Ian Lance Taylor <iant@google.com>
7873 * common.opt (fkeep-gc-roots-live): New undocumented option.
7874 * tree-ssa-loop-ivopts.c (add_candidate_1): If
7875 -fkeep-gc-roots-live, skip pointers.
7876 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
7879 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
7882 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
7883 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
7885 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
7888 * configure.ac: NetBSD provides SSP in its C library.
7889 * configure: Updated.
7891 2016-01-27 Richard Biener <rguenther@suse.de>
7893 PR tree-optimization/69166
7894 * tree-vect-loop.c (vect_is_simple_reduction): Always check
7895 reduction code for commutativity / associativity.
7897 2016-01-27 Martin Jambor <mjambor@suse.cz>
7899 PR tree-optimization/69355
7900 * tree-sra.c (analyze_access_subtree): Correct hole detection when
7901 total_scalarization fails.
7903 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
7905 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
7908 2016-01-27 Christian Bruel <christian.bruel@st.com>
7911 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
7912 Move arm_reset_previous_fndecl and set_target_option_current_node in
7913 the conditional part. Call save_restore_target_globals.
7914 * config/arm/arm.c (arm_set_current_function):
7915 Refactor to better support #pragma target and attribute mix.
7916 Call save_restore_target_globals.
7917 * config/arm/arm-protos.h (save_restore_target_globals): New function.
7919 2016-01-27 Martin Liska <mliska@suse.cz>
7921 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
7922 reference for an HSA kernel and its host function.
7924 2016-01-27 Jakub Jelinek <jakub@redhat.com>
7926 PR tree-optimization/69399
7927 * wide-int.h (wi::lrshift): For larger precisions, only
7928 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
7930 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
7932 * config/arc/predicates.md (proper_comparison_operator): Reject
7933 constant-constant comparison.
7935 2016-01-26 Tom de Vries <tom@codesourcery.com>
7937 PR tree-optimization/69110
7938 * tree-data-ref.c (initialize_data_dependence_relation): Handle
7939 DR_NUM_DIMENSIONS == 0.
7941 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
7942 Sebastian Pop <s.pop@samsung.com>
7944 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
7945 isl_ast_op_cond and isl_ast_op_select.
7946 (gcc_expression_from_isl_expr_op): Same.
7948 2016-01-26 Jason Merrill <jason@redhat.com>
7951 * tree.c (recompute_constructor_flags): Split out from
7953 (verify_constructor_flags): New.
7954 * tree.h: Declare them.
7956 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
7958 PR rtl-optimization/69217
7959 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
7960 are no TYPE_FIELDS set for the record type.
7962 2016-01-26 Jakub Jelinek <jakub@redhat.com>
7965 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
7966 toc_label_name unconditionally.
7967 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
7968 SYMBOL_REF string. Use toc_label_name instead of constructing
7970 (rs6000_elf_declare_function_name): Use toc_label_name instead of
7971 constructing LCTOC1.
7973 2016-01-26 Martin Sebor <msebor@redhat.com>
7976 * doc/extend.texi (Common Type Attributes): Move text that talks about
7977 attribute packed from attribute aligned to the section discussing
7978 the former attribute for clarity.
7980 2016-01-26 Richard Henderson <rth@redhat.com>
7983 * trans-mem.c (tm_region_init): Mark entry block as visited.
7985 2016-01-26 David Malcolm <dmalcolm@redhat.com>
7988 * diagnostic-show-locus.c (layout::print_source_line): Replace
7989 call to pp_newline with call to layout::print_newline.
7990 (layout::print_annotation_line): Likewise.
7991 (layout::move_to_column): Likewise.
7992 (layout::print_any_fixits): After printing any fixits, print a
7993 trailing newline, if necessary.
7994 (layout::print_newline): New method, resetting any colorization
7996 (diagnostic_show_locus): Move the pp_newline to before the
7997 early bailout. Remove dummy block enclosing the layout instance.
7998 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
7999 of pp_newline_and_flush with pp_flush.
8000 (diagnostic_append_note): Delete use of pp_newline.
8001 (diagnostic_append_note_at_rich_loc): Delete.
8002 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
8003 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
8004 when newline characters are added to the buffer.
8006 2016-01-26 Michael Matz <matz@suse.de>
8008 * configure.ac (ac_cv_std_swap_in_utility): New test.
8009 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
8010 * configure: Regenerate.
8011 * config.in: Regenerate.
8013 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
8015 * config/arc/arc.md (cstoresi4): Force operand into register.
8016 (arcset<code>): Fix predicate.
8017 (arcsetltu): Likewise.
8018 (arcsetgeu): Likewise.
8019 (arcsethi): Likewise.
8020 (arcsetls): Likewise.
8022 2016-01-26 Jakub Jelinek <jakub@redhat.com>
8024 PR tree-optimization/69483
8025 * gimple-fold.c (canonicalize_constructor_val): Return NULL
8026 if base has error_mark_node type.
8028 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
8031 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
8032 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
8034 (vget_lane_f16): Handle big-endian.
8035 (vgetq_lane_f16): Likewise.
8036 (vset_lane_f16): Likewise.
8037 (vsetq_lane_f16): Likewise.
8038 * config/arm/iterators.md (VQXMOV): Add V8HF.
8039 (VDQ): Add V4HF and V8HF.
8040 (V_reg): Handle V4HF and V8HF.
8041 (Is_float_mode): Likewise.
8042 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
8043 neon_vdup_nv8hf): New patterns.
8044 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
8045 Use VD_LANE iterator.
8046 (neon_vld1_dup<mode>): Use VQ2 iterator.
8048 2016-01-26 Nathan Sidwell <nathan@acm.org>
8050 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
8051 (set_oacc_fn_attrib): Add IS_KERNEL arg.
8052 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
8053 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
8054 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
8055 (oacc_validate_dims): Add LEVEL arg, don't return level.
8056 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
8058 (execute_oacc_device_lower): Adjust, add more dump output.
8059 * tree-ssa-loop.c (gate_oacc_kernels): Use
8060 oacc_fn_attrib_kernels_p.
8061 * tree-parloops.c (create_parallel_loop): Adjust
8062 set_oacc_fn_attrib call.
8064 2016-01-26 Jakub Jelinek <jakub@redhat.com>
8067 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
8068 (append_compiler_options): Handle -fcilkplus.
8069 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
8071 2016-01-26 Nick Clifton <nickc@redhat.com>
8074 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
8075 been marked as DECL_ONE_ONLY but we do not the means to make it
8076 so, then do not allow it to bind locally.
8078 2016-01-26 Jakub Jelinek <jakub@redhat.com>
8081 * opts.h (parse_sanitizer_options): New prototype.
8082 * opts.c (sanitizer_opts): New array.
8083 (parse_sanitizer_options): New function.
8084 (common_handle_option): Use parse_sanitizer_options.
8086 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
8089 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
8090 alignment adjustment to ...
8091 (ix86_update_stack_boundary): Here. Don't over-align stack for
8093 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
8094 if __tls_get_addr is called.
8096 2016-01-26 Christian Bruel <christian.bruel@st.com>
8098 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
8100 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
8102 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
8104 2016-01-26 Richard Biener <rguenther@suse.de>
8107 * match.pd: Guard X * CST CMP 0 pattern with single_use.
8109 2016-01-26 Richard Biener <rguenther@suse.de>
8111 PR tree-optimization/69452
8112 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
8113 (move_computations_dom_walker::before_dom_children): Rename
8115 (move_computations_worker): This.
8116 (move_computations): Perform an RPO rather than a DOM walk.
8118 2016-01-26 Jakub Jelinek <jakub@redhat.com>
8121 * combine.c (combine_instructions): For REG_EQUAL note with
8122 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
8123 to the underlying register.
8124 * doc/rtl.texi (REG_EQUAL): Document the behavior of
8125 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
8127 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
8130 * config/aarch64/aarch64-builtins.c
8131 (aarch64_init_simd_builtin_types): Do not set structural
8132 equality to __Poly{8,16,64,128}_t types.
8134 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
8136 PR tree-optimization/69400
8137 * wide-int.cc (wi_pack): Take the precision as argument and
8138 perform canonicalization here rather than in the callers.
8139 Use the main loop to handle all full-width HWIs. Add a
8140 zero HWI if in_len isn't a full result.
8141 (wi::divmod_internal): Update accordingly.
8142 (wi::mul_internal): Likewise. Simplify.
8144 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
8145 Sebastian Pop <s.pop@samsung.com>
8147 * graphite-poly.c (apply_poly_transforms): Simplify.
8148 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
8149 (print_isl_map): Same.
8150 (print_isl_union_map): Same.
8151 (print_isl_schedule): New.
8152 (debug_isl_schedule): New.
8153 * graphite-dependences.c (scop_get_reads): Do not call
8154 isl_union_map_add_map that is undocumented isl functionality.
8155 (scop_get_must_writes): Same.
8156 (scop_get_may_writes): Same.
8157 (scop_get_original_schedule): Remove.
8158 (scop_get_dependences): Do not call isl_union_map_compute_flow that
8159 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
8160 (compute_deps): Remove.
8161 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
8162 (debug_schedule_ast): New.
8163 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
8164 set_separate_option.
8165 (graphite_regenerate_ast_isl): Add dump.
8166 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
8167 from scop->transformed_schedule.
8168 (graphite_regenerate_ast_isl): Add more dump.
8169 * graphite-optimize-isl.c (optimize_isl): Set
8170 scop->transformed_schedule. Check whether schedules are equal.
8171 (apply_poly_transforms): Move here.
8172 * graphite-poly.c (apply_poly_transforms): ... from here.
8173 (free_poly_bb): Static.
8174 (free_scop): Static.
8175 (pbb_number_of_iterations_at_time): Remove.
8176 (print_isl_ast): New.
8177 (debug_isl_ast): New.
8178 (debug_scop_pbb): New.
8179 * graphite-scop-detection.c (print_edge): Move.
8181 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
8182 (build_scop_scattering): Remove.
8183 (create_pw_aff_from_tree): Assert instead of bailing out.
8184 (add_condition_to_pbb): Remove unused code, do not fail.
8185 (add_conditions_to_domain): Same.
8186 (add_conditions_to_constraints): Remove.
8187 (build_scop_context): New.
8188 (add_iter_domain_dimension): New.
8189 (build_iteration_domains): Initialize pbb->iterators.
8190 Call add_conditions_to_domain.
8193 (index_outermost_in_loop): New.
8194 (index_pbb_in_loop): New.
8195 (outermost_pbb_in): New.
8196 (add_in_sequence): New.
8197 (add_outer_projection): New.
8198 (outer_projection_mupa): New.
8199 (add_loop_schedule): New.
8200 (build_schedule_pbb): New.
8201 (build_schedule_loop): New.
8202 (embed_in_surrounding_loops): New.
8203 (build_schedule_loop_nest): New.
8204 (build_original_schedule): New.
8205 (build_poly_scop): Call build_original_schedule.
8206 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
8207 (free_poly_dr): Remove.
8208 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
8209 (free_poly_bb): Remove.
8210 (debug_loop_vec): Remove.
8211 (print_isl_ast): Declare.
8212 (debug_isl_ast): Declare.
8213 (scop_do_interchange): Remove.
8214 (scop_do_strip_mine): Remove.
8215 (scop_do_block): Remove.
8216 (flatten_all_loops): Remove.
8217 (optimize_isl): Remove.
8218 (pbb_number_of_iterations_at_time): Remove.
8219 (debug_scop_pbb): Declare.
8220 (print_schedule_ast): Declare.
8221 (debug_schedule_ast): Declare.
8222 (struct scop): Remove schedule. Add original_schedule,
8223 transformed_schedule.
8224 (free_gimple_poly_bb): Remove.
8225 (print_generated_program): Remove.
8226 (debug_generated_program): Remove.
8227 (unify_scattering_dimensions): Remove.
8228 * sese.c (print_edge): ... here.
8229 (print_sese): ... here.
8230 (debug_edge): ... here.
8231 (debug_sese): ... here.
8232 * sese.h (print_edge): Declare.
8233 (print_sese): Declare.
8234 (dump_edge): Declare.
8235 (dump_sese): Declare.
8237 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
8238 Sebastian Pop <s.pop@samsung.com>
8240 * Makefile.in: Set ISLVER in site.exp.
8242 2016-01-25 Jakub Jelinek <jakub@redhat.com>
8244 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
8245 DECL_VALUE_EXPR of new_var even for the non-array case. Look
8246 through DECL_VALUE_EXPR for expansion.
8248 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
8250 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
8251 the frame info after reload completed.
8253 2016-01-25 Jeff Law <law@redhat.com>
8255 PR tree-optimization/69196
8256 PR tree-optimization/68398
8257 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
8258 tree-ssa-threadupdate.c.
8259 (determine_bb_domination_status): Prototype
8260 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
8261 (determine_bb_domination_status): No longer static.
8262 (valid_jump_thread_path): Remove code to detect characteristics
8263 of the jump thread path not associated with correctness.
8264 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
8265 Correct test for thread path length. Count PHIs for real operands as
8266 statements that need to be copied. Do not count ASSERT_EXPRs.
8267 Look at all the blocks in the thread path. Compute and selectively
8268 filter thread paths based on threading through the latch, threading
8269 a multiway branch or crossing a multiway branch.
8271 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8273 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
8274 decl with __attribute__ ((unused)) annotation.
8276 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
8279 * tree-vect-stmts.c (vectorizable_condition): Check vectype
8280 of operands is compatible with a statement vectype.
8282 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
8284 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
8285 improve wording for mixed storage order support.
8287 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
8289 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
8290 (vcvt_u64_f64): Likewise.
8291 (vcvta_s64_f64): Likewise.
8292 (vcvta_u64_f64): Likewise.
8293 (vcvtm_s64_f64): Likewise.
8294 (vcvtm_u64_f64): Likewise.
8295 (vcvtn_s64_f64): Likewise.
8296 (vcvtn_u64_f64): Likewise.
8297 (vcvtp_s64_f64): Likewise.
8298 (vcvtp_u64_f64): Likewise.
8300 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
8302 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
8303 (arc_init): Check validity mll64 option.
8304 (arc_save_restore): Use double load/store instruction.
8305 (arc_expand_movmem): Likewise.
8306 (arc_split_move): Don't split if we have double load/store
8307 instructions. Returns a boolean.
8308 (arc_process_double_reg_moves): Change function to return boolean
8309 instead of a sequence of instructions.
8310 (arc_dwarf_register_span): New function.
8311 * config/arc/arc-protos.h (arc_split_move): Change prototype.
8312 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
8313 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
8314 (*movdf_insn): Likewise.
8315 * config/arc/arc.opt (mll64): New option.
8316 * config/arc/predicates.md (even_register_operand): New predicate.
8317 * doc/invoke.texi (ARC Options): Add mll64 documentation.
8319 2016-01-25 Richard Biener <rguenther@suse.de>
8322 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
8323 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
8325 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
8327 2016-01-25 Richard Biener <rguenther@suse.de>
8329 PR tree-optimization/69376
8330 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
8332 (VN_INFO_ANTI_RANGE_P): New inline.
8333 (VN_INFO_RANGE_TYPE): Likewise.
8334 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
8335 SSA_NAME_ANTI_RANGE_P.
8336 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
8337 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8338 Properly query VN_INFO_RANGE_TYPE.
8340 2016-01-25 Nick Clifton <nickc@redhat.com>
8343 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
8345 2016-01-23 Tom de Vries <tom@codesourcery.com>
8347 PR tree-optimization/69426
8348 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
8351 2016-01-23 Jakub Jelinek <jakub@redhat.com>
8353 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
8354 "the the" with "the" in the comments.
8355 * ipa-devirt.c (build_type_inheritance_graph,
8356 update_type_inheritance_graph): Likewise.
8357 * tree.c (build_function_type_list_1): Likewise.
8358 * cfgloopmanip.c (scale_loop_profile): Likewise.
8359 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
8360 * gimple-ssa-split-paths.c
8361 (find_block_to_duplicate_for_splitting_paths): Likewise.
8362 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
8363 * expr.c (convert_move): Likewise.
8364 * var-tracking.c (vt_stack_adjustments): Likewise.
8365 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
8366 * tree-vrp.c (test_for_singularity): Likewise.
8368 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
8369 directly instead of building a temporary tree.
8372 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
8373 remove <algorithm> include.
8375 2016-01-22 Jakub Jelinek <jakub@redhat.com>
8378 * config/i386/i386.c: Include dojump.h.
8379 (expand_small_movmem_or_setmem,
8380 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
8382 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
8383 if dynamic_check != -1.
8385 2016-01-21 Jeff Law <law@redhat.com>
8388 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
8389 record_temporary_equivalences. Rewritten to avoid unnecessary calls
8390 into dominated_by_p.
8391 (cprop_into_successor_phis): Avoid unnecessary tests.
8393 2016-01-22 Richard Henderson <rth@redhat.com>
8396 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
8397 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
8399 2016-01-22 Michael Matz <matz@suse.de>
8401 * system.h (string, algorithm): Include only conditionally.
8402 (new): Include always under C++.
8403 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
8404 * final.c (toplevel): Ditto.
8405 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
8406 * genconditions.c (write_header): Make gencondmd.c define
8408 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
8410 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
8411 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
8413 2016-01-22 Christian Bruel <christian.bruel@st.com>
8416 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
8418 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8421 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
8422 define_insn_and_split. Ensure operands[1] and operands[0] do not
8423 get assigned the same register.
8425 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
8427 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
8429 2016-01-22 Christian Bruel <christian.bruel@st.com>
8431 * config/arm/arm-c.c (arm_pragma_target_parse):
8432 Remove warn_builtin_macro_redefined overwrite.
8434 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
8436 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
8437 flag_non_call_exceptions compatibility.
8439 2016-01-22 Jakub Jelinek <jakub@redhat.com>
8442 * dwarf2out.c (add_child_die_after): New function.
8443 (dwarf_qual_info_t): New type.
8444 (dwarf_qual_info): New variable.
8445 (qualified_die_p): New function.
8446 (modified_type_die): For -fdebug-types-section, ensure
8447 canonical order of qualifiers. Put qualified DIEs adjacent
8448 to the corresponding non-qualified type DIE and search there
8449 for existing qualified DIEs.
8451 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
8453 * doc/extend.texi (scalar_storage_order type attribute): Document
8454 restriction on type punning and aliasing, and remove future tense.
8456 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
8459 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
8462 2016-01-21 Jeff Law <law@redhat.com>
8465 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
8466 useless call to record_temporary_equivalences.
8467 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
8468 allocate 10 slots in the bb_path vector and let it grow as needed.
8469 (fsm_find_control_statement_thread_paths): Similarly for the next_path
8472 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
8474 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
8476 * configure: Regenerate.
8478 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
8480 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
8481 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
8483 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
8486 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
8487 drop EXPAND_INITIALIZER.
8488 * rtl.h (contains_symbolic_reference_p): Declare.
8489 * rtlanal.c (contains_symbolic_reference_p): New function.
8490 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
8491 a subtraction into a NOT if symbolic constants are involved.
8493 2016-01-21 Anton Blanchard <anton@samba.org>
8494 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8497 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
8499 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
8502 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
8504 * config/microblaze/microblaze.c
8505 (get_branch_target): New.
8506 (insert_wic_for_ilb_runout): New.
8508 (microblaze_machine_dependent_reorg): New.
8509 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
8510 * config/microblaze/microblaze.md
8511 (UNSPEC_IPREFETCH): Define.
8512 (iprefetch): New pattern
8513 * config/microblaze/microblaze.opt
8514 (mxl-prefetch): New flag.
8516 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
8518 * config/microblaze/microblaze.h
8519 (FIXED_REGISTERS): Update in macro.
8520 (CALL_USED_REGISTERS): Update in macro.
8522 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
8524 PR rtl-optimization/68920
8525 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
8528 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
8530 PR rtl-optimization/68990
8531 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
8532 pseudo instead of inheritance ones.
8534 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8535 Nick Clifton <nickc@redhat.com>
8539 * config/mips/mips.c (mips_compute_frame_info): Initialise
8540 args_size and hard_frame_pointer_offset fields of the frame
8541 structure before calling mips_global_pointer.
8543 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
8545 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
8547 * configure: Regenerate.
8549 2016-01-21 Richard Biener <rguenther@suse.de>
8551 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
8553 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
8555 * config/s390/s390.c (s390_asm_declare_function_size): Add code
8556 to actually emit the .size directive.
8558 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
8559 Jakub Jelinek <jakub@redhat.com>
8563 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
8564 args array size by one to avoid buffer overflow.
8566 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
8568 * config/s390/s390.md (pool_section_start): Use switch_to_section
8569 to select proper read-only data section instead of hardcoding
8571 (pool_section_end): Use switch_to_section to match the above.
8573 2016-01-21 Richard Biener <rguenther@suse.de>
8575 PR tree-optimization/69378
8576 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
8577 (set_ssa_val_to): Use it for dominance checks taking into
8578 account not executable edges.
8580 2016-01-21 Jakub Jelinek <jakub@redhat.com>
8583 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
8584 for bitsize instead of GET_MODE_PRECISION (mode).
8586 2016-01-20 Martin Sebor <msebor@redhat.com>
8589 * extend.texi (__sync Builtins): Clarify the semantics of
8590 __sync_fetch_and_OP built-ins on pointers.
8591 (__atomic Builtins): Same.
8593 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8594 Sebastian Pop <s.pop@samsung.com>
8596 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
8597 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
8598 (is_valid_rename): Same.
8599 (translate_isl_ast_to_gimple::get_rename): Same.
8600 (translate_isl_ast_to_gimple::rename_all_uses): Same.
8601 (translate_isl_ast_to_gimple::rename_uses): Same.
8602 (get_new_name): Check for close_phi nodes.
8603 (copy_loop_phi_args): Use phi_node_kind.
8604 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
8605 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
8607 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8608 Sebastian Pop <s.pop@samsung.com>
8610 Revert commit r229783.
8611 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8612 Remove use of parameter_rename_map.
8614 (copy_internal_parameters): Remove.
8615 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
8616 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
8617 (free_sese_info): Do not free parameter_rename_map.
8618 (set_rename): Do not use parameter_rename_map.
8619 (rename_uses): Update call to set_rename.
8620 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
8621 * sese.h (parameter_rename_map_t): Remove.
8622 (struct sese_info_t): Remove field parameter_rename_map.
8624 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8625 Sebastian Pop <s.pop@samsung.com>
8627 * graphite-isl-ast-to-gimple.c: Fix comment.
8628 * graphite-scop-detection.c (defined_in_loop_p): New.
8629 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
8630 names defined in loop.
8632 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8633 Sebastian Pop <s.pop@samsung.com>
8635 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8636 Discard unstructured if-then-else regions.
8638 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8639 Sebastian Pop <s.pop@samsung.com>
8641 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
8642 (cleanup_loop_iter_dom): Remove.
8643 (build_loop_iteration_domains): Remove.
8644 (build_scop_context): Remove.
8645 (build_scop_iteration_domain): Remove.
8646 (add_loop_constraints): New.
8647 (build_iteration_domains): New.
8648 (build_poly_scop): Call build_iteration_domains.
8650 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8651 Sebastian Pop <s.pop@samsung.com>
8653 * graphite-scop-detection.c
8654 (scop_detection::harmful_loop_in_region): Free dom and loops.
8655 (scop_detection::loop_body_is_valid_scop): Free bbs.
8657 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8658 Sebastian Pop <s.pop@samsung.com>
8660 * graphite-scop-detection.c (record_loop_in_sese): New.
8661 (gather_bbs::before_dom_children): Call record_loop_in_sese.
8662 (build_scops): Remove call to build_sese_loop_nests.
8663 * sese.c (sese_record_loop): Remove.
8664 (build_sese_loop_nests): Remove.
8665 (new_sese_info): Remove region->loops.
8666 (free_sese_info): Same.
8667 * sese.h (sese_contains_loop): Same.
8668 (build_sese_loop_nests): Remove.
8669 (sese_contains_loop): Remove.
8671 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8672 Sebastian Pop <s.pop@samsung.com>
8674 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
8675 loop_is_valid_in_scop.
8676 (scop_detection::harmful_stmt_in_region): Renamed
8677 harmful_loop_in_region.
8678 Call loop_is_valid_in_scop.
8680 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8681 Sebastian Pop <s.pop@samsung.com>
8683 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
8686 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8687 Sebastian Pop <s.pop@samsung.com>
8689 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
8690 * graphite.h (struct poly_bb): Remove field is_reduction.
8691 (PBB_IS_REDUCTION): Remove.
8693 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
8694 Sebastian Pop <s.pop@samsung.com>
8696 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
8697 (add_pdr_constraints): Same.
8698 (scop_get_reads): Same.
8699 (scop_get_must_writes): Same.
8700 (scop_get_may_writes): Same.
8701 (scop_get_original_schedule): Same.
8702 (extend_schedule): Same.
8703 (apply_schedule_on_deps): Same.
8704 (carries_deps): Same.
8705 (compute_deps): Same.
8706 (scop_get_dependences): Same.
8707 * graphite-isl-ast-to-gimple.c
8708 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
8709 * graphite-optimize-isl.c (get_schedule_for_band): Same.
8710 (get_schedule_for_band_list): Same.
8711 (get_schedule_map): Same.
8712 (apply_schedule_map_to_scop): Same.
8713 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
8714 (build_loop_iteration_domains): Same.
8715 (add_condition_to_pbb): Same.
8716 (add_param_constraints): Same.
8717 (pdr_add_memory_accesses): Same.
8718 (pdr_add_data_dimensions): Same.
8720 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
8722 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
8725 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
8727 * common.opt (feliminate-dwarf2-dups): Replace references to
8728 "DWARF 2" with just "DWARF".
8729 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
8730 * doc/extend.texi: Likewise.
8731 * doc/cpp.texi: Likewise.
8732 * doc/invoke.texi: Likewise.
8733 (Option Summary): Add -gdwarf to list of Debugging Options.
8734 (Debugging Options): Document -gdwarf.
8735 * doc/contrib.texi: Spell "DWARF" like that.
8737 2016-01-21 Jakub Jelinek <jakub@redhat.com>
8739 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
8740 warning. Fix up formatting.
8743 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
8744 attempt to mark memory input operand addressable and
8745 call prepare_gimple_addressable in that case. Don't adjust
8746 input_location for diagnostics, use error_at instead.
8748 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
8750 * config/rs6000/ppc-auxv.h: New file.
8751 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
8753 (cpu_supports): Likewise.
8754 * config/rs6000/rs6000.c: include "ppc-auxv.h".
8755 (cpu_is_info): New variable.
8756 (cpu_supports_info): Likewise.
8757 (tcb_verification_symbol): Likewise.
8758 (cpu_builtin_p): Likewise.
8759 (cpu_expand_builtin): New function.
8760 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
8761 (rs6000_init_builtins): Likewise.
8762 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
8763 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
8764 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
8765 * configure: Regenerate.
8766 * config.in: Likewise.
8767 * doc/extend.texi (PowerPC Built-in Functions): Document
8768 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
8770 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
8773 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
8775 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
8778 2016-01-20 Richard Henderson <rth@redhat.com>
8784 * tree.c (tm_define_builtin): New.
8785 (find_tm_vector_type): New.
8786 (build_tm_vector_builtins): New.
8787 (build_common_builtin_nodes): Call it.
8789 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
8791 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
8792 (arm_fp_ok): Likewise.
8794 (arm_crypto): Likewise.
8796 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
8797 Richard Biener <rguenther@suse.de>
8799 PR tree-optimization/69328
8800 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
8801 vectors have same number of elements.
8802 (vectorizable_condition): Fix masked version recognition.
8804 2016-01-20 Richard Biener <rguenther@suse.de>
8806 PR tree-optimization/69345
8807 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
8808 (VN_INFO_PTR_INFO): Likewise.
8809 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
8810 info when it is equal between non-dominating SSA names.
8811 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8812 Make sure to look at original SSA infos.
8814 2016-01-20 Jeff Law <law@redhat.com>
8817 * config/m68k/predicates.md (pow2_m1_operand): New predicate
8819 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
8820 (pc_or_label_operand): New predicate.
8821 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
8822 tests for small integers that are 2^n - 1.
8824 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
8826 * doc/invoke.texi (Options Summary): Add '.' after @xref.
8828 2016-01-19 Jeff Law <law@redhat.com>
8831 * tree-ssa-threadbackwards.c
8832 (fsm_find_control_statement_thread_paths): Do not try to lookup
8833 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
8835 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
8837 * doc/lto.texi: Remove text that says only Gold has linker plugin
8840 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
8842 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
8843 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
8844 the DIE accordingly.
8845 (modified_type_die): Add REVERSE parameter and pass it recursively,
8846 as well as to base_type_die. Adjust presence check accordingly.
8847 (base_type_for_mode): Adjust call to modified_type_die.
8848 (add_type_attribute): Add REVERSE parameter and pass it to
8850 (generic_parameter_die): Adjust call to add_type_attribute.
8851 (add_scalar_info): Likewise.
8852 (add_subscript_info): Likewise.
8853 (gen_array_type_die): Likewise.
8854 (gen_descr_array_type_die): Likewise.
8855 (gen_entry_point_die): Likewise.
8856 (gen_enumeration_type_die): Likewise.
8857 (gen_formal_parameter_die): Likewise.
8858 (gen_subprogram_die): Likewise.
8859 (gen_variable_die ): Likewise.
8860 (gen_const_die): Likewise.
8861 (gen_field_die): Likewise.
8862 (gen_pointer_type_die): Likewise.
8863 (gen_reference_type_die): Likewise.
8864 (gen_ptr_to_mbr_type_die): Likewise.
8865 (gen_inheritance_die): Likewise.
8866 (gen_subroutine_type_die): Likewise.
8867 (gen_typedef_die): Likewise.
8868 (force_type_die): Adjust call to modified_type_die.
8870 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
8872 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
8873 flow throughout the file. Fix broken link to Objective-C 2.0
8875 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
8878 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
8880 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
8882 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
8885 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
8886 (maybe_record_node): Record cxa_pure_virtual as the only possible
8887 target if there are not ohter candidates.
8888 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
8890 2016-01-19 Richard Biener <rguenther@suse.de>
8892 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
8893 (get_memory_order): Likewise.
8895 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
8897 * tree-vect-stmts.c (vectorizable_store): Check
8900 2016-01-19 David Malcolm <dmalcolm@redhat.com>
8903 * gcc.c (driver::decode_argv): Add call to
8904 init_opts_obstack before init_options_struct.
8905 * opts.c (init_opts_obstack): Remove idempotency.
8906 (init_options_struct): Replace call to init_opts_obstack
8907 with a gcc_assert to verify that it has already been called.
8908 * toplev.c (toplev::main): Add call to init_opts_obstack before
8909 calls to init_options_struct.
8910 (toplev::finalize): Move cleanup of opts_obstack next to
8911 cleanup of save_decoded_options, clearing the latter, and
8912 save_decoded_options_count.
8914 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8917 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
8918 attribute to unconditional. Remove %? from output template.
8920 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
8921 Jiong Wang <jiong.wang@arm.com>
8923 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
8924 generated from different expand order.
8926 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
8928 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
8929 Add support for CCMP costing.
8931 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
8933 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
8934 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
8935 (fccmpe<mode>): Likewise.
8936 (fcmp): Rename to fcmp and globalize pattern.
8938 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
8939 (aarch64_gen_ccmp_next): Add FP support.
8941 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
8943 * target.def (gen_ccmp_first): Update documentation.
8944 (gen_ccmp_next): Likewise.
8945 * doc/tm.texi (gen_ccmp_first): Update documentation.
8946 (gen_ccmp_next): Likewise.
8947 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
8948 expand_ccmp_expr_1. Improve comments.
8949 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
8950 (ccmp_ior<mode>): Remove pattern.
8951 (cmp<mode>): Remove expand.
8952 (cmp): Globalize pattern.
8953 (cstorecc4): Use cc_register.
8954 (mov<mode>cc): Remove ccmp_cc_register check.
8955 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
8956 Simplify after removal of CC_DNE/* modes.
8957 (aarch64_ccmp_mode_to_code): Remove.
8958 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
8959 In 'k' case use integer as condition.
8960 (aarch64_nzcv_codes): Remove inverted cases.
8961 (aarch64_code_to_ccmode): Remove.
8962 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
8963 comparison with CC register to be used in folowing CCMP/branch/CSEL.
8964 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
8965 pattern. Return the comparison with CC register. Invert conditions
8967 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
8968 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
8970 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
8972 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8973 instrumented_version.
8975 2016-01-19 Richard Biener <rguenther@suse.de>
8977 PR tree-optimization/69336
8978 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
8979 handled components with get_ref_base_and_extent.
8980 (equal_mem_array_ref_p): Adjust.
8982 2016-01-19 Jakub Jelinek <jakub@redhat.com>
8985 * shrink-wrap.c: Include valtrack.h.
8986 (move_insn_for_shrink_wrap): Add DEBUG argument. If
8987 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
8988 in between insn and where it will be moved to. Call
8989 dead_debug_insert_temp.
8990 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
8991 first and dead_debug_local_finish at the end.
8992 For uses and defs bitmap, handle all regs in between REGNO and
8993 END_REGNO, not just the first one.
8995 2016-01-19 Richard Biener <rguenther@suse.de>
8997 PR tree-optimization/69352
8998 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
8999 (equal_mem_array_ref_p): Constrain size and max size properly.
9000 Compare the reverse flag.
9002 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
9004 * ira.c (ira): Update regstat data if we deleted insns.
9006 2016-01-19 Jakub Jelinek <jakub@redhat.com>
9008 PR rtl-optimization/68955
9009 PR rtl-optimization/64557
9010 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
9011 here. Fix up formatting.
9012 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
9014 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9017 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
9018 assume that the node has body.
9019 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
9022 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9024 * lto-streamer-out.c (lto_output): Do not stream instrumentation
9027 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9029 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
9030 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
9032 2016-01-19 Martin Jambor <mjambor@suse.cz>
9033 Martin Liska <mliska@suse.cz>
9034 Michael Matz <matz@suse.de>
9036 * Makefile.in (OBJS): Add new source files.
9037 (GTFILES): Add hsa.c.
9038 * common.opt (disable_hsa): New variable.
9039 (-Whsa): New warning.
9040 * config.in (ENABLE_HSA): New.
9041 * configure.ac: Treat hsa differently from other accelerators.
9042 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
9044 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
9045 * doc/install.texi (Configuration): Document --with-hsa-runtime,
9046 --with-hsa-runtime-include, --with-hsa-runtime-lib and
9048 * doc/invoke.texi (-Whsa): Document.
9049 (hsa-gen-debug-stores): Likewise.
9050 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
9051 to invoke offload compiler for hsa acclerator.
9052 * opts.c (common_handle_option): Determine whether HSA offloading
9053 should be performed.
9054 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
9055 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
9056 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
9057 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
9058 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
9059 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
9060 GF_OMP_FOR_KIND_GRID_LOOP.
9061 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
9062 (pp_gimple_stmt_1): Likewise.
9063 * gimple-walk.c (walk_gimple_stmt): Likewise.
9064 * gimple.c (gimple_build_omp_grid_body): New function.
9065 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
9066 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
9067 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
9068 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
9069 GF_OMP_TEAMS_GRID_PHONY.
9070 (gimple_statement_omp_single_layout): Updated comments.
9071 (gimple_build_omp_grid_body): New function.
9072 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
9073 (gimple_omp_for_grid_phony): New function.
9074 (gimple_omp_for_set_grid_phony): Likewise.
9075 (gimple_omp_parallel_grid_phony): Likewise.
9076 (gimple_omp_parallel_set_grid_phony): Likewise.
9077 (gimple_omp_teams_grid_phony): Likewise.
9078 (gimple_omp_teams_set_grid_phony): Likewise.
9079 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
9080 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
9081 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
9082 (BUILT_IN_GOMP_TARGET): Updated type.
9083 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
9084 (adjust_for_condition): New function.
9085 (get_omp_for_step_from_incr): Likewise.
9086 (extract_omp_for_data): Moved parts to adjust_for_condition and
9087 get_omp_for_step_from_incr.
9088 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
9089 (fixup_child_record_type): Bail out if receiver_decl is NULL.
9090 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
9091 (scan_omp_parallel): Do not create child functions for phony
9093 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
9094 (scan_omp_1_op): Checking assert we are not remapping to
9095 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
9096 (parallel_needs_hsa_kernel_p): New function.
9097 (expand_parallel_call): Register apprpriate parallel child
9098 functions as HSA kernels.
9099 (grid_launch_attributes_trees): New type.
9100 (grid_attr_trees): New variable.
9101 (grid_create_kernel_launch_attr_types): New function.
9102 (grid_insert_store_range_dim): Likewise.
9103 (grid_get_kernel_launch_attributes): Likewise.
9104 (get_target_argument_identifier_1): Likewise.
9105 (get_target_argument_identifier): Likewise.
9106 (get_target_argument_value): Likewise.
9107 (push_target_argument_according_to_value): Likewise.
9108 (get_target_arguments): Likewise.
9109 (expand_omp_target): Call get_target_arguments instead of looking
9110 up for teams and thread limit.
9111 (grid_expand_omp_for_loop): New function.
9112 (grid_arg_decl_map): New type.
9113 (grid_remap_kernel_arg_accesses): New function.
9114 (grid_expand_target_kernel_body): New function.
9115 (expand_omp): Call it.
9116 (lower_omp_for): Do not emit phony constructs.
9117 (lower_omp_taskreg): Do not emit phony constructs but create for them
9118 a temporary variable receiver_decl.
9119 (lower_omp_taskreg): Do not emit phony constructs.
9120 (lower_omp_teams): Likewise.
9121 (lower_omp_grid_body): New function.
9122 (lower_omp_1): Call it.
9123 (grid_reg_assignment_to_local_var_p): New function.
9124 (grid_seq_only_contains_local_assignments): Likewise.
9125 (grid_find_single_omp_among_assignments_1): Likewise.
9126 (grid_find_single_omp_among_assignments): Likewise.
9127 (grid_find_ungridifiable_statement): Likewise.
9128 (grid_target_follows_gridifiable_pattern): Likewise.
9129 (grid_remap_prebody_decls): Likewise.
9130 (grid_copy_leading_local_assignments): Likewise.
9131 (grid_process_kernel_body_copy): Likewise.
9132 (grid_attempt_target_gridification): Likewise.
9133 (grid_gridify_all_targets_stmt): Likewise.
9134 (grid_gridify_all_targets): Likewise.
9135 (execute_lower_omp): Call grid_gridify_all_targets.
9136 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
9137 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
9138 (tree_omp_clause): Added union field dimension.
9139 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
9140 * tree.c (omp_clause_num_ops): Added number of arguments of
9141 OMP_CLAUSE__GRIDDIM_.
9142 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
9143 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
9144 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
9145 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
9146 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
9147 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
9148 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
9149 * tree-pass.h (make_pass_gen_hsail): Declare.
9150 (make_pass_ipa_hsa): Likewise.
9151 * ipa-hsa.c: New file.
9152 * lto-section-in.c (lto_section_name): Add hsa section name.
9153 * lto-streamer.h (lto_section_type): Add hsa section.
9154 * timevar.def (TV_IPA_HSA): New.
9155 * hsa-brig-format.h: New file.
9156 * hsa-brig.c: New file.
9157 * hsa-dump.c: Likewise.
9158 * hsa-gen.c: Likewise.
9161 * toplev.c (compile_file): Call hsa_output_brig.
9162 * hsa-regalloc.c: New file.
9164 2016-01-18 Jeff Law <law@redhat.com>
9166 PR tree-optimization/69320
9167 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
9168 ranged object, do nothing if the RHS constant is not [0..1].
9169 (optimize_stmt): Comparing a boolean ranged object against a
9170 constant outside [0..1] results in a compile-time constant.
9172 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
9175 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
9177 * doc/invoke.texi (Invoking GCC): Add new section to menu.
9178 (Option Summary): Update to reflect new section and moved options.
9179 (C++ Dialect Options): Move -fstats to new section.
9180 (Debugging Options): Move all dump, statistics, and other GCC
9181 developer options to new section. Rewrite section introduction
9182 and re-order remaining options to put the more basic ones first.
9183 (Optimization Options): Move -fira-verbose and -flto-report* to
9185 (Developer Options): New section incorporating moved options.
9186 * doc/cppopts.texi (-dM): Update cross-reference.
9188 2016-01-18 Richard Henderson <rth@redhat.com>
9191 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
9192 operands to pseudo only if CSE is expected. Split long immediate
9193 operands only after reload, and for the stack pointer.
9194 (*add<GPI>3_pluslong): Remove.
9195 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
9196 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
9197 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
9198 (*add<GPI>3 peepholes): New.
9199 (*add<GPI>3 splitters): New.
9200 * config/aarch64/constraints.md (Upl): New.
9201 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
9203 2016-01-18 Richard Biener <rguenther@suse.de>
9205 PR tree-optimization/69297
9206 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
9208 (vect_bb_vectorization_profitable_p): Clear visited flag again.
9210 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
9213 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
9214 of mixind vector and scalar types.
9215 (fold_relational_const): Add handling of vector
9216 comparison with boolean result.
9217 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
9218 comparison of vector operands with boolean result for EQ/NE only.
9219 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
9220 (verify_gimple_cond): Likewise.
9221 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
9224 2016-01-18 Joseph Myers <joseph@codesourcery.com>
9226 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
9229 2016-01-18 Richard Biener <rguenther@suse.de>
9232 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
9234 2016-01-18 Tom de Vries <tom@codesourcery.com>
9236 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
9238 2016-01-18 Tom de Vries <tom@codesourcery.com>
9240 * omp-low.c (set_oacc_fn_attrib): Make extern.
9241 * omp-low.h (set_oacc_fn_attrib): Declare.
9242 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
9243 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
9244 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
9245 Add and handle function parameter oacc_kernels_p.
9246 (find_reduc_addr, get_omp_data_i_param): New function.
9247 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
9248 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
9249 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
9250 Calculate dominance info. Skip loops that are not in a kernels region
9251 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
9252 (pass_parallelize_loops::execute): Call parallelize_loops with
9253 oacc_kernels_p argument.
9254 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
9255 New member function.
9256 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
9257 * passes.def: Add argument to pass_parallelize_loops instantation.
9259 2016-01-18 Tom de Vries <tom@codesourcery.com>
9261 * tree-parloops.c (pass_parallelize_loops::execute): Allow
9262 pass_parallelize_loops to be run outside the loop pipeline.
9264 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
9266 * tree-scalar-evolution.c (follow_copies_to_constant): New.
9267 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
9269 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
9272 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
9273 using get_ref_base_and_extent.
9274 (equal_mem_array_ref_p): New.
9275 (hashable_expr_equal_p): Add call to previous.
9277 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
9280 * tree-sra.c (disqualified_constants, constant_decl_p): New.
9281 (sra_initialize): Allocate disqualified_constants.
9282 (sra_deinitialize): Free disqualified_constants.
9283 (disqualify_candidate): Update disqualified_constants when appropriate.
9284 (create_access): Scan for constant-pool entries as we go along.
9285 (scalarizable_type_p): Add check against type_contains_placeholder_p.
9286 (maybe_add_sra_candidate): Allow constant-pool entries.
9287 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
9288 (initialize_constant_pool_replacements): New.
9289 (sra_modify_assign): Avoid mangling assignments created by previous,
9290 and don't generate writes into constant pool.
9291 (sra_modify_function_body): Call initialize_constant_pool_replacements.
9293 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
9295 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
9297 (scalar_chain::convert_op): Likewise.
9298 * config/i386/i386.md (*andndi3_doubleword): New.
9300 2016-01-18 Richard Biener <rguenther@suse.de>
9302 PR tree-optimization/69170
9303 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
9304 building a vector from scalar results of a pattern stmt.
9306 2016-01-18 Jakub Jelinek <jakub@redhat.com>
9308 * haifa-sched.c (autopref_multipass_init): Work around
9309 -Wmaybe-uninitialized warning.
9311 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
9313 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
9314 against the constant 0.
9316 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9318 PR tree-optimization/68799
9319 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
9320 look up phi candidates in the statement-candidate map.
9321 (phi_add_costs): Likewise.
9322 (record_phi_increments): Likewise.
9323 (phi_incr_cost): Likewise.
9324 (ncd_with_phi): Likewise.
9325 (all_phi_incrs_profitable): Likewise.
9327 2016-01-17 Jakub Jelinek <jakub@redhat.com>
9329 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
9330 -Wmaybe-uninitialized warning.
9332 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
9334 * doc/invoke.texi (Invoking GCC): Add new section to menu.
9335 (Option Summary): Update to reflect new section and moved options.
9336 (C++ Dialect Options): Move -fvtable-verify and related options.
9337 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
9338 and profiling-related options.
9339 (Optimization Options): Move profile generation options and
9340 -fstack-protector and related options.
9341 (Instrumentation Options): New section incorporating moved options.
9342 (Code Generation Options): Move -finstrument-functions and
9343 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
9345 2016-01-16 Tom de Vries <tom@codesourcery.com>
9347 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
9349 2016-01-16 Tom de Vries <tom@codesourcery.com>
9351 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
9353 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
9355 * hash-table.h (hash_table::empty): Turn into an inline wrapper
9356 that checks whether the table is already empty. Rename the
9357 original implementation to...
9358 (hash_table::empty_slot): ...this new private function.
9360 2016-01-15 David Malcolm <dmalcolm@redhat.com>
9363 * diagnostic-show-locus.c (layout::print_source_line): Move x
9364 offset of line until after call to
9365 get_line_width_without_trailing_whitespace.
9367 2016-01-15 Jeff Law <law@redhat.com>
9369 PR tree-optimization/69270
9370 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
9371 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
9372 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
9373 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
9374 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9375 ssa_name_has_boolean_range and constant_boolean_node.
9377 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
9379 PR rtl-optimization/69030
9380 * lra-spills.c (remove_pseudos): Check nrefs and make the function
9382 (spill_pseudos): Delete debug insn for dead pseudo.
9383 (lra_spill): Initiate spill_hard_reg and slots memory separately.
9385 2016-01-15 Jiong Wang <jiong.wang@arm.com>
9387 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
9389 (TYPES_UNOPUS): Likewise.
9390 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
9391 builtin type, from UNOP to UNOPUS.
9392 (lbtruncuv4sf): Likewise.
9393 (lbtruncuv2df): Likewise.
9394 (lrounduv2sf): Likewise.
9395 (lrounduv4sf): Likewise.
9396 (lrounduv2df): Likewise.
9397 (lroundusf): Likewise.
9398 (lroundusf): Likewise.
9399 (lceiluv2sf): Likewise.
9400 (lceiluv4sf): Likewise.
9401 (lceiluv2df): Likewise.
9402 (lceilusf): Likewise.
9403 (lceiludf): Likewise.
9404 (lflooruv2sf): Likewise.
9405 (lflooruv4sf): Likewise.
9406 (lflooruv2df): Likewise.
9407 (lfloorusf): Likewise.
9408 (lfloorudf): Likewise.
9409 (lfrintnuv2sf): Likewise.
9410 (lfrintnuv4sf): Likewise.
9411 (lfrintnuv2df): Likewise.
9412 (lfrintnusf): Likewise.
9413 (lfrintnudf): Likewise.
9414 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
9416 (vcvtq_u32_f32): Likewise.
9417 (vcvtq_u64_f64): Likewise.
9418 (vcvta_u32_f32): Likewise.
9419 (vcvtaq_u32_f32): Likewise.
9420 (vcvtaq_u64_f64): Likewise.
9421 (vcvtm_u32_f32): Likewise.
9422 (vcvtmq_u32_f32): Likewise.
9423 (vcvtmq_u64_f64): Likewise.
9424 (vcvtn_u32_f32): Likwise.
9425 (vcvtnq_u32_f32): Likewise.
9426 (vcvtnq_u64_f64): Likewise.
9427 (vcvtp_u32_f32): Likewise.
9428 (vcvtpq_u32_f32): Likewise.
9429 (vcvtpq_u64_f64): Likewise.
9430 (vcvtmd_u64_f64): Likewise.
9431 (vcvtms_u32_f32): Likewise.
9432 (vcvtad_u64_f64): Likewise.
9433 (vcvtas_u32_f32): Likewise.
9434 (vcvtnd_u64_f64): Likewise.
9435 (vcvtns_u32_f32): Likewise.
9436 (vcvtpd_u64_f64): Likewise.
9437 (vcvtps_u32_f32): Likewise.
9439 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9441 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
9442 CSEL of zero_extended registers.
9444 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9446 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
9447 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
9449 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9451 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
9452 false when argument string is not found in the attributes table
9455 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
9458 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
9459 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
9460 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
9463 2016-01-15 Richard Biener <rguenther@suse.de>
9465 PR tree-optimization/66856
9466 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
9467 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
9468 (vect_create_new_slp_node): Increment stmt reference count.
9469 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
9470 an SLP tree before swapping operands.
9471 (vect_build_slp_tree): Likewise.
9472 (destroy_bb_vec_info): Free stmt info after SLP instances.
9473 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
9474 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
9475 (STMT_VINFO_NUM_SLP_USES): New macro.
9477 2016-01-15 Richard Biener <rguenther@suse.de>
9480 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
9481 (add_linkage_name): ... here.
9482 (gen_typedef_die): Use add_linkage_name_raw instead of
9483 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
9486 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
9488 * gimplify.c (oacc_default_clause): Decode reference and pointer
9489 types for both kernels and parallel regions.
9491 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
9494 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
9496 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
9498 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
9499 (convert_scalars_to_vector): Likewise.
9501 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
9503 * doc/extend.texi (Type Traits): Fix grammar.
9505 2016-01-15 Martin Jambor <mjambor@suse.cz>
9507 * tree-inline.c (remap_decl): Use existing dclarations if
9508 remapping a type and prevent_decl_creation_for_types.
9509 (replace_locals_stmt): Do an initial remapping of non-VLA typed
9510 decls first. Do real remapping with
9511 prevent_decl_creation_for_types set.
9512 * tree-inline.h (copy_body_data): New field
9513 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
9516 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
9518 * config/s390/s390.opt (mmvcle): More verbose help text.
9520 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
9522 * config/s390/s390.opt: Add period to -mzvector option text.
9524 2016-01-15 Richard Biener <rguenther@suse.de>
9526 PR tree-optimization/68961
9527 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
9528 of invariants in stores again.
9530 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
9532 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
9534 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
9536 * config/i386/i386.c (ix86_expand_branch): Don't split
9537 DI mode xor instruction to SI mode.
9539 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
9542 * ipa-icf.c (sem_function::merge): Virtual functions may become
9543 reachable even if they address is not taken and there are no
9546 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
9548 * lto-streamer-out.c (subtract_estimated_size): New function.
9549 (get_symbol_initial_value): Use it.
9551 2016-01-15 Christian Bruel <christian.bruel@st.com>
9554 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
9555 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
9556 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
9557 use add_builtin_function_ext_scope instead of add_builtin_function.
9558 (neon_set_p, neon_crypto_set_p): Remove.
9559 (arm_init_builtins): Always call arm_init_neon_builtins and
9560 arm_init_crypto_builtins.
9561 (arm_expand_builtin): Check that builtins are allowed for the arch.
9562 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
9563 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
9564 arm_init_neon_builtins call.
9566 2016-01-15 Richard Biener <rguenther@suse.de>
9568 PR tree-optimization/69117
9569 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
9570 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
9571 of the leader conservatively.
9572 (free_scc_vn): Restore original SSA name infos.
9574 2016-01-14 Jeff Law <law@redhat.com>
9576 PR tree-optimization/69270
9577 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
9578 single bit of precision, verify it's also unsigned.
9579 (record_edge_info): Use constant_boolean_node rather than fold_convert
9580 to convert boolean_true/boolean_false to the right type.
9582 2016-01-14 Richard Henderson <rth@redhat.com>
9585 * loop-doloop.c (record_reg_sets): New.
9586 (doloop_optimize): Reject the transform if the sequence
9587 clobbers registers live at the end of the loop block.
9588 (doloop_optimize_loops): Enable df_live if needed.
9590 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9592 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
9593 * gcc/config/rs6000/rs6000.c: Likewise.
9594 * gcc/config/rs6000/rs6000.h: Likewise.
9595 * gcc/config/rs6000/rs6000.md: Likewise.
9596 * gcc/doc/extend.texi: Likewsie.
9598 2016-01-14 Jeff Law <law@redhat.com>
9600 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
9603 2016-01-14 Richard Henderson <rth@redhat.com>
9607 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
9608 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
9609 instead of builtin_decl_declared_p to test for declaration.
9611 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
9613 * doc/loop.texi (Loop Analysis and Representation): Document
9614 loop_depth function.
9616 2016-01-14 Tom de Vries <tom@codesourcery.com>
9618 PR tree-optimization/68773
9619 * omp-low.c (expand_omp_target): Don't set force_output.
9620 * varpool.c (varpool_node::get_create): Same.
9621 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
9622 offload_funcs with force_output.
9624 2016-01-14 Jakub Jelinek <jakub@redhat.com>
9627 * lra-eliminations.c (move_plus_up): Don't change anything if either
9628 the outer or inner subreg mode is not MODE_INT.
9629 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
9630 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
9632 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
9634 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
9635 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
9636 reduc_uplus_@var{m}): Remove.
9637 * expr.c (expand_expr_real_2): Remove expansion path for
9638 reduc_[us](min|max|plus) optabs.
9639 * optabs-tree.c (scalar_reduc_to_vector): Remove.
9640 * optabs-tree.h (scalar_reduc_to_vector): Remove.
9641 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
9642 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
9643 * tree-vect-loop.c (vectorizable_reduction): Remove test for
9644 reduc_[us](min|max|plus) optabs.
9646 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
9648 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
9649 (reduc_plus_scal_v2sf): New.
9650 (reduc_smax_v2sf): Rename to...
9651 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
9652 (reduc_smin_v2sf): Rename to...
9653 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
9655 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
9657 * alias.c (compare_base_symbol_refs): New function.
9658 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
9661 2016-01-14 Jakub Jelinek <jakub@redhat.com>
9664 PR tree-optimization/69155
9665 * tree-complex.c: Include cfganal.h.
9666 (phis_to_revisit): New variable.
9667 (extract_component): Add phiarg_p argument. Assert that returned
9668 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
9669 (update_phi_components): Partly rewrite to use loop over real/imag
9670 components instead of code duplication. If extract_component returns
9671 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
9672 create_tmp_reg into the PHI node instead, and mention the phi triplet
9674 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
9675 in phis_to_revisit at the end.
9677 2016-01-14 Richard Biener <rguenther@suse.de>
9679 PR tree-optimization/68060
9680 * tree-vect-loop.c (vect_is_simple_reduction): Check the
9681 outer loop reduction is only used in the inner loop before
9682 detecting a double reduction.
9684 2016-01-14 Jakub Jelinek <jakub@redhat.com>
9687 * combine.c (expand_field_assignment): Punt if compute_mode is
9688 unsupported scalar mode.
9690 2016-01-14 Richard Biener <rguenther@suse.de>
9692 PR tree-optimization/66856
9693 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
9694 SLP node only if it built successfully.
9695 (vect_analyze_slp_instance): Adjust.
9697 2016-01-14 Jeff Law <law@redhat.com>
9699 PR tree-optimization/69270
9700 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
9701 (record_edge_info): Use it. Convert boolean_{true,false}_node
9704 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
9707 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
9708 use block_ultimate_origin
9709 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
9711 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
9713 * doc/invoke.texi (Submodel Options): Rename section to
9714 "Machine-Dependent Options" to better reflect its content.
9715 Rewrite introductory text to remove archaic CPU names.
9718 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
9720 * doc/invoke.texi (Code Gen Options): Move section up in file,
9721 before target-specific options. Update menu and option summary
9722 to reflect the new section ordering.
9724 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
9726 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
9727 (C++ Dialect Options): Add cross-reference to -std option.
9728 * doc/standards.texi (C++ Language): Document C++14 support.
9730 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9732 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
9733 for pack/unpack functions for __ibm128.
9734 (PACK_IF): Likewise.
9735 (UNPACK_IF): Likewise.
9737 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
9738 support for __ibm128 pack/unpack functions.
9739 (rs6000_invalid_builtin): Likewise.
9740 (rs6000_init_builtins): Likewise.
9741 (rs6000_opt_masks): Likewise.
9743 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
9744 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
9746 (RS6000_BTM_COMMON): Likewise.
9748 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
9749 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
9750 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
9751 128-bit floating point. Add support for the double values to be
9752 in Altivec registers for TF/IF packing and unpacking, but restrict
9753 TD packing sub-fields to be FPR registers. Don't allow overlapped
9754 register support for packing. Allow pack inputs to be memory
9755 locations. Don't build generator functions for unpack<mode>_dm
9756 and unpack<mode>_nodm.
9757 (unpack<mode>_dm): Likewise.
9758 (unpack<mode>_nodm): Likewise.
9759 (pack<mode>): Likewise.
9761 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
9762 built-in functions to pack/unpack explicit __ibm128 values.
9763 (__builtin_unpack_ibm128): Likewise.
9765 * doc/extend.texi (PowerPC Built-in Functions): Document
9766 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
9768 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
9771 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
9772 Add new arg loc and pass it down as context.
9773 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
9774 to the location to use for the warning.
9775 (check_function_arguments): New arg loc. All callers changed. Pass
9776 it to check_function_nonnull.
9777 * c-common.h (check_function_arguments): Adjust declaration.
9779 2016-01-13 Jakub Jelinek <jakub@redhat.com>
9781 PR tree-optimization/69156
9782 * gimple.c (validate_type): Removed.
9783 (gimple_builtin_call_types_compatible_p): Use
9784 useless_type_conversion_p instead of validate_type.
9785 * value-prof.c (gimple_stringop_fixed_value): Fold
9786 icall_size to correct type.
9788 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
9790 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
9793 2016-01-13 Richard Henderson <rth@redhat.com>
9796 * target.def (builtin_tm_load, builtin_tm_store): Remove.
9797 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
9798 (ix86_builtin_tm_store): Remove.
9799 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
9800 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
9801 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
9802 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
9803 * doc/tm.texi: Rebuild.
9805 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
9806 (BUILT_IN_TM_MEMCPY_RTWN): New.
9807 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
9808 fallback from vector to integer helpers.
9809 (build_tm_load): Handle vector types directly, instead of
9811 (build_tm_store): Likewise.
9812 (expand_assign_tm): Prepare for register types not handled by
9813 the above. Copy them to memory and use memcpy.
9814 * tree.c (tm_define_builtin): New.
9815 (find_tm_vector_type): New.
9816 (build_tm_vector_builtins): New.
9817 (build_common_builtin_nodes): Call it.
9819 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
9821 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
9822 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
9824 2016-01-13 Tom de Vries <tom@codesourcery.com>
9826 PR tree-optimization/69169
9827 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
9828 handled_struct_type param.
9829 (create_variable_info_for, intra_create_variable_infos): Call
9830 create_variable_info_for_1 with extra arg.
9832 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
9834 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
9835 and "armv8.1-a+crc" entries.
9837 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
9840 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
9841 Change first operand predicate from register_or_constm1_operand
9842 to register_operand.
9843 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
9844 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
9845 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
9846 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
9847 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
9848 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
9849 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
9850 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
9851 comparison with constm1_rtx from vec_prefetch_gen part.
9853 2016-01-13 Richard Biener <rguenther@suse.de>
9855 PR tree-optimization/69013
9856 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
9857 Exchange assert for a test.
9859 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9862 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
9864 2016-01-13 Richard Biener <rguenther@suse.de>
9866 PR tree-optimization/69242
9867 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
9868 assert with a check.
9870 2016-01-13 Richard Biener <rguenther@suse.de>
9872 PR tree-optimization/69186
9873 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9874 Properly guard vect_update_misalignment_for_peel call.
9876 2016-01-12 Jeff Law <law@redhat.com>
9878 PR tree-optimization/pr67755
9879 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
9880 "need_profile_correction".
9881 (thread_block_1): Initialize new field to false by default. If we
9882 have multiple thread paths through a common joiner to different
9883 final targets, then set new field to true.
9884 (compute_path_counts): Only do count adjustment when it's really
9887 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
9889 * doc/invoke.texi (Spec Files): Move section down in file, past
9890 all command-line option descriptions.
9892 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9895 * doc/gty.texi: Remove documentation of mark_hook.
9896 * gengtype.c (struct write_types_data): Remove code to support
9897 mark_hook attribute.
9898 (walk_type): Likewise.
9899 (write_func_for_structure): Likewise.
9901 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
9903 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
9904 Directory Options, and -specs= to Overall Options.
9905 (Overall Options): Adjust similarly. Reorder to group related
9906 options together. Make -specs= cross-reference the spec file details.
9907 (Directory Options): Adjust similarly.
9909 2016-01-12 Jeff Law <law@redhat.com>
9911 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
9913 2016-01-12 Olivier Hainque <hainque@adacore.com>
9915 * gcc.c (spec_undefvar_allowed): New global.
9916 (process_command): Set to true when running for --version or --help,
9918 (getenv_spec_function): When the variable is not defined, use the
9919 variable name as the variable value if we're allowed not to issue
9922 2016-01-12 Bin Cheng <bin.cheng@arm.com>
9924 PR tree-optimization/68911
9925 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
9926 information computed for expression "init + nit * step".
9928 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
9930 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
9931 about name of GCC executable. Remove deleted node from menu.
9932 (Directory Options) <-B>: Remove cross-reference to deleted node.
9933 (Target Options): Delete section.
9935 2016-01-12 Christian Bruel <christian.bruel@st.com>
9938 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
9939 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
9941 2016-01-12 Jakub Jelinek <jakub@redhat.com>
9944 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
9945 aligned_mem is properly set for AVX512-VL floating point masked
9949 * ifcvt.c (cond_exec_process_if_block): When removing the last
9950 insn from then_bb, remove also any possible barriers that follow it.
9952 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
9956 * config/i386/iamcu.h (SIZE_TYPE): New macro.
9957 (PTRDIFF_TYPE): Likewise.
9958 (WCHAR_TYPE): Likewise.
9959 (WCHAR_TYPE_SIZE): Likewise.
9960 (STDINT_LONG32): Likewise.
9962 2016-01-12 Richard Biener <rguenther@suse.de>
9964 PR tree-optimization/69053
9965 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
9966 convert initial value for cond reductions.
9968 2016-01-12 Richard Biener <rguenther@suse.de>
9970 PR tree-optimization/69007
9971 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
9972 widen_sum after dot_prod and sad.
9974 2016-01-12 Richard Biener <rguenther@suse.de>
9976 PR tree-optimization/69168
9977 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
9978 pattern stmt SLP type.
9979 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
9980 end up unused so cope with that case.
9982 2016-01-12 Richard Biener <rguenther@suse.de>
9984 PR tree-optimization/69157
9985 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
9986 stmts def type only during analyze phase.
9987 (vectorizable_call): Likewise.
9988 (vectorizable_simd_clone_call): Likewise.
9989 (vectorizable_conversion): Likewise.
9990 (vectorizable_assignment): Likewise.
9991 (vectorizable_shift): Likewise.
9992 (vectorizable_operation): Likewise.
9993 (vectorizable_store): Likewise.
9994 (vectorizable_load): Likewise.
9996 2016-01-12 Richard Biener <rguenther@suse.de>
9998 PR tree-optimization/69174
9999 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
10001 (vectorizable_load): Properly compute the number of loads needed
10002 for permuted strided SLP loads and do not spuriously assign
10003 to SLP_TREE_VEC_STMTS.
10005 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
10007 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
10008 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
10009 (MD_EXEC_PREFIX): Remove.
10010 (MD_STARTFILE_PREFIX) Removee.
10011 (FILE_NAME_ABSOLUTE_P): Remove.
10012 (CPP_SPEC): Do not read macros from sys/version.h.
10013 (LINK_COMMAND_SPEC): Remove.
10014 (LOCAL_INCLUDE_DIR): Remove.
10015 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
10016 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
10017 (POST_LINK_SPEC): Define to invoke stubify after linker
10018 (LIBSTDCXX): Remove define
10019 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
10020 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
10021 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
10022 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
10023 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
10024 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
10025 (i386_djgpp_asm_named_section): Add propotype of new procedure
10027 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
10028 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
10029 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
10030 in config/i386/djgpp.h).
10031 (STANDARD_STARTFILE_PREFIX_2): Define identical to
10032 STANDARD_STARTFILE_PREFIX_1.
10033 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
10034 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
10035 installation errors.
10036 (MAX_OFILE_ALIGNMENT): Define to 128.
10037 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
10039 * config/i386/djgpp.c: New file. Add implementation of
10040 i386_djgpp_asm_named_section.
10042 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
10044 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
10045 Add rule for building djgpp.o.
10047 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10049 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
10050 (rtx_is_swappable_p): Reductions are swappable.
10051 (insn_is_swappable_p): V2DF reductions are swappable.
10053 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
10055 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
10056 reloads for other unsupported memory operands.
10058 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
10059 Jim Wilson <jim.wilson@linaro.org>
10062 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
10063 copy_to_mode_reg instead of force_reg.
10065 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
10068 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
10069 TARGET_80387 is true.
10071 2016-01-11 Jakub Jelinek <jakub@redhat.com>
10074 * lra-eliminations.c (move_plus_up): Only move plus up
10075 if subreg of the constant can be simplified into constant
10076 and use the simplified subreg of the constant instead of
10077 the original constant.
10079 * fold-const.c (fold_convertible_p): Don't return true
10080 for conversion of VECTOR_TYPE to same sized integral type.
10081 (fold_convert_loc): Fix up formatting. Fold conversion of
10082 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
10083 instead of NOP_EXPR.
10085 PR tree-optimization/69214
10086 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
10087 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10090 PR tree-optimization/69207
10091 * tree-vect-slp.c (vect_get_constant_vectors): For
10092 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
10093 fold_convertible_p to vector_type's element type, and always
10094 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
10096 2016-01-11 Richard Biener <rguenther@suse.de>
10098 PR tree-optimization/69173
10099 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
10100 fixup the cycle if all stmts are in a pattern.
10102 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
10104 PR middle-end/68999
10105 * alias.c (base_alias_check): Move check for addresses with
10106 alignment ANDs before the call for compare_base_decls.
10107 (memrefs_conflict_p): Return -1 for different decls
10108 that went through alignment adjustments.
10110 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10112 PR rtl-optimization/68796
10113 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
10114 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
10115 and QImode comparisons against zero with CC_NZmode.
10116 * config/aarch64/iterators.md (short_mask): New mode_attr.
10118 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
10120 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
10121 (<avx512>_store<mode>_mask): Likewise.
10123 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
10124 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10126 PR rtl-optimization/68841
10127 * ifcvt.c (struct noce_if_info): Add orig_x field.
10128 (bbs_ok_for_cmove_arith): Add to_rename parameter.
10129 Don't record conflicts on to_rename if it's present.
10130 Allow memory destinations in sets.
10131 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
10132 blocks, passing orig_x to the checks.
10133 (noce_process_if_block): Set if_info->orig_x appropriately.
10135 2016-01-11 Tom de Vries <tom@codesourcery.com>
10137 PR tree-optimization/69069
10138 * tree-parloops.c (create_parallel_loop): Add missing phi args.
10140 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
10142 PR rtl-optimization/68920
10143 * config/i386/i386.c (ix86_option_override_internal): Restrict number
10144 of conditional moves for RTL if-conversion to 1 for
10145 TARGET_ONE_IF_CONV_INSN.
10146 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
10147 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
10148 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
10149 parameter to restirct number of conditional moves for
10151 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
10152 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
10155 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
10158 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
10159 onepart vars. Fix typo in comment. Fix reversed condition in
10161 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
10164 * var-tracking.c (dump_onepart_variable_differences): New.
10165 (dataflow_set_different): If a detailed dump is requested,
10166 delay early returns and dump differences between onepart
10167 variables present before and after, and added variables.
10169 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
10172 * expr.c (expand_expr_real_1): For boolean vector constants
10173 with a scalar mode use const_scalar_mask_from_tree.
10174 (const_scalar_mask_from_tree): New.
10175 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
10176 assigned to a mask type to handle constants.
10178 2016-01-11 Martin Jambor <mjambor@suse.cz>
10181 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
10182 useless parameters if we cannot change function signature.
10184 2016-01-11 Martin Jambor <mjambor@suse.cz>
10187 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
10190 2016-01-11 Tom de Vries <tom@codesourcery.com>
10192 PR tree-optimization/69109
10193 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
10196 2016-01-11 Tom de Vries <tom@codesourcery.com>
10198 PR tree-optimization/69108
10199 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
10200 res is not used in a phi.
10202 2016-01-11 Yury Gribov <y.gribov@samsung.com>
10205 * common.opt (frandom-seed): Fix parameter name.
10206 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
10208 2016-01-11 Tom de Vries <tom@codesourcery.com>
10210 PR tree-optimization/69058
10211 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
10214 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
10216 * config/arc/arc.opt (mdiv-rem): Add period to the end.
10217 (mcode-density): Likewise.
10219 2016-01-10 Tom de Vries <tom@codesourcery.com>
10221 PR tree-optimization/69062
10222 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
10223 (parallelize_loops): Don't paralelize loop that has phi with address
10226 2016-01-10 Tom de Vries <tom@codesourcery.com>
10228 PR tree-optimization/69039
10229 * tree-parloops.c (try_create_reduction_list): Only allow single exit
10232 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
10234 PR middle-end/68743
10235 * match.pd: Require target has function_c99_misc before doing
10236 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
10238 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
10240 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
10242 * configure: Regenerate.
10244 2016-01-09 Jakub Jelinek <jakub@redhat.com>
10246 PR middle-end/50865
10247 PR tree-optimization/69097
10248 * fold-const.h (expr_not_equal_to): New prototype.
10249 * fold-const.c: Include stringpool.h and tree-ssanames.h.
10250 (expr_not_equal_to): New function.
10251 * match.pd (X % -Y is the same as X % Y): Don't optimize
10252 unless X is known not to be equal to minimum or Y is known
10253 not to be equal to -1.
10254 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
10255 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
10256 (simplify_stmt_using_ranges): Adjust caller.
10257 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
10258 substitute_and_fold.
10260 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
10262 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
10265 2016-01-08 Jakub Jelinek <jakub@redhat.com>
10267 PR tree-optimization/69167
10268 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
10269 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
10271 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
10273 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
10274 Richard Biener <rguenther@suse.de>
10276 PR tree-optimization/68707
10277 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
10278 instances that can be handled via vect_load_lanes.
10280 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
10282 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
10283 if we can't determine address equivalence.
10284 * alias.c (compare_base_decl): Update for changed return value of
10285 symtab_node::equal_address_to.
10287 2016-01-08 Jason Merrill <jason@redhat.com>
10291 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
10292 * expr.c (store_field): Not here.
10293 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
10294 call with TREE_ADDRESSABLE type.
10295 * tree-cfg.c (verify_gimple_call): Adjust.
10297 2016-01-08 Olivier Hainque <hainque@adacore.com>
10299 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
10302 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
10304 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
10305 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
10306 (reduc_smin_v2sf): Rename to...
10307 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
10308 (reduc_splus_v2sf): Rename to...
10309 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
10311 2016-01-08 Jakub Jelinek <jakub@redhat.com>
10313 PR tree-optimization/69162
10314 * gimplify.c (gimplify_va_arg_expr): Encode original type of
10315 valist argument in another argument.
10316 (gimplify_modify_expr): Adjust for the above change. Cleanup.
10317 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
10318 to determine the va_list type, build a MEM_REF instead of
10319 build_fold_indirect_ref.
10321 PR tree-optimization/69172
10322 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
10325 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
10327 PR tree-optimization/67781
10328 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
10329 and cmpnop in two steps: first the ones not accessed in original
10330 gimple expression in a endian independent way and then the ones not
10331 accessed in the final result in an endian-specific way.
10333 2016-01-08 Jakub Jelinek <jakub@redhat.com>
10335 PR tree-optimization/69083
10336 * tree-vect-slp.c (vect_get_constant_vectors): For
10337 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
10338 element type. If op is fold_convertible_p to vector_type's element
10339 type, use NOP_EXPR instead of VCE.
10341 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
10343 PR rtl-optimization/67778
10344 PR rtl-optimization/68634
10345 PR rtl-optimization/68909
10346 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
10347 block from the stack until done with it. Remove a superfluous
10348 bitmap set. Remove a superfluous bitmap test.
10350 2016-01-07 Martin Sebor <msebor@redhat.com>
10353 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
10354 constraint on the type of arguments.
10356 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
10358 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
10359 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
10360 unaligned_access on the gcc_options set.
10361 * config/arm/arm.c (arm_option_override_internal): Use
10362 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
10364 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
10367 * config/i386/i386.c (ix86_frame_pointer_required): Enable
10368 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
10370 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
10373 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
10376 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
10377 depending on frame_pointer_needed before remaining integer and SSE
10378 registers are saved.
10380 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
10383 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
10385 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
10388 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
10389 Use the "xBm" constraint.
10390 (float<sseintvecmodelower><mode>2<mask_name><round_name):
10392 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
10393 (sse_cvtsi2ssq<round_name>): Likewise.
10394 (sse_cvtss2si<round_name>): Likewise.
10395 (sse_cvtss2siq<round_name>): Likewise.
10396 (sse2_cvtsi2sdq<round_name>): Likewise.
10397 (sse2_cvtsd2si<round_name>): Likewise.
10398 (sse2_cvtsd2siq<round_name>): Likewise.
10399 * config/i386/subst.md (round_nimm_scalar_predicate): New
10402 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
10404 PR middle-end/67639
10405 * varasm.c (make_decl_rtl): Mark invalid register vars as
10408 PR rtl-optimization/66206
10409 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
10410 All callers changed.
10412 2016-01-07 Jakub Jelinek <jakub@redhat.com>
10414 PR tree-optimization/69141
10415 * tree-ssa-pre.c: Include langhooks.h.
10416 (eliminate_dom_walker::before_dom_children): Use
10417 lang_hooks.decl_printable_name instead of
10418 cgraph_node::get ()->name ().
10420 PR middle-end/68960
10421 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
10422 it and DECL_ALIGN too.
10424 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
10426 * config/mips/mips-ftypes.def: Sort to lexicographical order.
10428 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
10431 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
10432 depending on frame_pointer_needed before remaining integer and SSE
10433 registers are saved.
10435 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10437 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
10438 mode iterator with VSX_M2.
10439 (*p9_vecstore_<mode>): Likewise.
10440 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
10441 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
10442 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
10443 (define_split for VSX_LE128 stores): Likewise.
10444 (define_peephole2 for TImode LE swaps): Likewise.
10445 (define_split for VSX_LE128 post-reload stores): Likewise.
10447 2016-01-06 Marek Polacek <polacek@redhat.com>
10450 * convert.c (convert_to_integer_1): Adjust call to
10451 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
10452 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
10453 EXPR instead of ARG.
10454 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
10456 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
10459 * doc/extend.texi (RL78 Variable Attributes): New section.
10461 2016-01-05 Marek Polacek <polacek@redhat.com>
10464 * builtins.c (get_memmodel): Use expansion point location rather than
10465 the input location. Call warning_at rather than warning.
10466 (expand_builtin_atomic_compare_exchange): Likewise.
10467 (expand_builtin_atomic_load): Likewise.
10468 (expand_builtin_atomic_store): Likewise.
10469 (expand_builtin_atomic_clear): Likewise.
10471 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
10474 * config/i386/i386.c (ix86_expand_vector_logical_operator):
10475 Replace nonimmediate_operand with vector_operand.
10476 * config/i386/predicates.md (vector_operand): New predicate.
10477 (general_vector_operand): Replace nonimmediate_operand with
10479 * config/i386/sse.md: Replace nonimmediate_operand with
10480 vector_operand and m constraint with Bm constraint on SSE
10481 patterns with 16-byte memory operand.
10482 * config/i386/subst.md (round_nimm_predicate): Replace
10483 nonimmediate_operand with vector_operand.
10484 (round_saeonly_nimm_predicate): Likewise.
10485 (round_saeonly_nimm_scalar_predicate): New.
10487 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
10490 * config/i386/constraints.md (Bm): New constraint.
10491 * config/i386/predicates.md (vector_memory_operand): New
10493 * config/i386/sse.md: Replace xm with xBm in plusminus and
10494 any_logic patterns.
10496 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
10499 * doc/extend.texi (V850 Function Attributes): New section.
10500 (V850 Variable Attributes): New section.
10502 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
10505 * doc/extend.texi (MicroBlaze Function Attributes): Document
10506 interrupt_handler and fast_interrupt attributes.
10508 2016-01-05 Sergei Trofimovich <siarheit@google.com>
10511 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
10512 for local symbolic operands.
10513 * config/ia64/predicates.md (local_symbolic_operand64): New
10516 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10518 PR rtl-optimization/68651
10519 * combine.c (combine_simplify_rtx): Canonicalize x + x into
10522 2016-01-05 Nathan Sidwell <nathan@acm.org>
10524 * alias.c (compare_base_decls): Use symtab_node::get.
10526 2016-01-05 Nick Clifton <nickc@redhat.com>
10529 * ira-costs.c (copy_cost): Initialise the t_icode field of the
10530 secondary_reload_info structure.
10533 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
10534 decls if weak support is available.
10536 2016-01-04 Martin Sebor <msebor@redhat.com>
10538 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
10540 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
10542 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
10543 OPTION_MASK_P9_DFORM.
10545 * config/rs6000/constraints.md (wo constraint): New constraint for
10548 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
10550 (rs6000_init_hard_regno_mode_ok): Likewise.
10552 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
10555 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
10556 expanders not to have constraints. Add support for ISA 3.0 xxperm
10557 instruction. Add support for fusing xxlor with xxperm.
10558 (altivec_vperm_<mode>_internal): Likewise.
10559 (altivec_vperm_v8hiv16qi): Likewise.
10560 (altivec_vperm_<mode>v16q): Likewise.
10561 (altivec_vperm_<mode>_uns): Likewise.
10562 (vperm_v8hiv4si): Likewise.
10563 (vperm_v16qiv8hi): Likewise.
10565 * doc/md.texi (RS/6000 constraints): Document wo constraint.
10567 2016-01-04 Jakub Jelinek <jakub@redhat.com>
10569 Update copyright years.
10571 * gcc.c (process_command): Update copyright notice dates.
10572 * gcov-dump.c (print_version): Ditto.
10573 * gcov.c (print_version): Ditto.
10574 * gcov-tool.c (print_version): Ditto.
10575 * gengtype.c (create_file): Ditto.
10576 * doc/cpp.texi: Bump @copying's copyright year.
10577 * doc/cppinternals.texi: Ditto.
10578 * doc/gcc.texi: Ditto.
10579 * doc/gccint.texi: Ditto.
10580 * doc/gcov.texi: Ditto.
10581 * doc/install.texi: Ditto.
10582 * doc/invoke.texi: Ditto.
10584 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
10586 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
10587 modes larger than TImode as TImode if NEON is not enabled.
10589 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
10592 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
10593 mode for %f0-%f31 only if TARGET_FPU.
10595 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
10598 * config/sparc/sparc.c (scan_record_type): Take into account subfields
10599 to compute the PACKED_P predicate.
10600 (function_arg_record_value): Minor tweaks.
10602 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
10604 * doc/install.texi (--with-multilib-list): Describe the meaning of the
10605 option for arm*-*-* targets.
10607 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
10609 * doc/extend.texi (Common Function Attributes): Move docs for
10610 MSP430-specific attributes to....
10611 (MSP430 Function Attributes): ...here. Delete the redundant
10612 entries and copy-edit the remaining text.
10613 (MSP430 Variable Attributes): Use uniform format for index
10614 entries and add a cross-reference to the corresponding function
10617 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
10619 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
10621 (x86 Options): Likewise.
10623 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
10627 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
10628 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
10629 to corresponding attribute.
10631 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
10633 * doc/extend.texi (Common Function Attributes) <noplt>: Move
10634 to correct alphabetization of table. Copy-edit and correct
10636 <stack_protect>: Likewise.
10637 <target_clones>: Likewise.
10639 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
10640 Correct punctuation.
10641 (Code Gen Options) <-fno-plt>: Copy-edit.
10643 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
10646 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
10647 SI values. Explicitly convert SI to DI and vice-versa.
10649 2016-01-01 Jakub Jelinek <jakub@redhat.com>
10651 PR tree-optimization/69070
10652 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
10653 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
10656 * ubsan.c (ubsan_instrument_float_cast): Call
10657 initialize_sanitizer_builtins.
10660 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
10662 Copyright (C) 2016 Free Software Foundation, Inc.
10664 Copying and distribution of this file, with or without modification,
10665 are permitted in any medium without royalty provided the copyright
10666 notice and this notice are preserved.