1 2015-07-10 Tom de Vries <tom@codesourcery.com>
3 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
6 2015-07-10 Richard Biener <rguenther@suse.de>
8 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
9 Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
10 (if_convertible_loop_p_1): For this always compute bb predicates.
11 (if_convertible_loop_p): And free them.
13 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
18 2015-07-10 Richard Biener <rguenther@suse.de>
20 PR tree-optimization/66823
21 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
24 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
26 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
27 to handle mips[32|64]r3 and mips[32|64]r5.
29 2015-07-09 Jakub Jelinek <jakub@redhat.com>
32 * tree-nested.c (get_static_chain): Or in a flag into
33 info->static_chain_added.
34 (get_frame_field, get_nonlocal_debug_decl): Likewise.
35 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
37 (convert_tramp_reference_stmt): If a frame_decl or chain_decl
38 is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
41 PR tree-optimization/66718
42 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
44 (vect_simd_lane_linear): New function.
45 (vectorizable_simd_clone_call): Support using linear arguments for
46 addresses of arrays elements indexed by GOMP_SIMD_LANE result.
48 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
51 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
53 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
55 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
56 Use machine mode, not enum machine_mode in the prototype.
58 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
59 classify 128-bit floating point support.
60 (FLOAT128_IBM_P): Likewise.
61 (FLOAT128_VECTOR_P): Likewise.
62 (FLOAT128_2REG_P): Likewise.
63 (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
64 (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
65 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
66 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
68 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
69 tests against TFmode/TDmode, since those modes do not use VSX
71 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
73 (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
74 tests against TFmode, etc.
75 (invalid_e500_subreg): Add tests against IFmode/KFmode.
76 (reg_offset_addressing_ok_p): Likewise.
77 (rs6000_legitimate_offset_address_p): Likewise.
78 (rs6000_legitimize_address): Likewise.
79 (rs6000_legitimize_reload_address): Likewise.
80 (rs6000_legitimate_address_p): Clean up tests against TFmode and
81 TDmode to use the new helper macros, which will include IFmode and
83 (rs6000_emit_move): Likewise.
84 (rs6000_darwin64_record_arg_recurse): Likewise.
85 (print_operand): Likewise.
86 (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
87 that uses a single vector register as a vector and not as a
88 floating point register in terms of the calling sequence.
89 (rs6000_discover_homogeneous_aggregate): Likewise.
90 (rs6000_return_in_memory): Likewise.
91 (init_cumulative_args): Likewise.
92 (rs6000_function_arg_boundary): Likewise.
93 (rs6000_function_arg_advance_1): Likewise.
94 (rs6000_function_arg): Likewise.
95 (rs6000_pass_by_reference): Likewise.
96 (rs6000_gimplify_va_arg): Likewise.
97 (rs6000_secondary_reload_memory): Use machine_mode not enum
99 (rs6000_split_multireg_move): Use new helper macros.
100 (spe_func_has_64bit_regs_p): Likewise.
101 (rs6000_output_function_epilogue): Add IFmode/KFmode support.
102 (output_toc): Use new helper macros.
103 (rs6000_register_move_cost): Likewise.
104 (rs6000_function_value): Add IEEE 128-bit floating point calling
106 (rs6000_libcall_value): Likewise.
107 (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
108 floating point support.
109 (rs6000_vector_mode_supported_p): Likewise.
111 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
113 PR rtl-optimization/66782
114 * lra-int.h (struct lra_insn_recog_data): Add comment about
115 clobbered hard regs for arg_hard_regs.
116 * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
117 * lra-lives.c (process_bb_lives): Process clobbered hard regs.
118 Add condition for processing used hard regs.
119 * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
120 Process clobbered hard regs.
122 2015-07-09 Michael Matz <matz@suse.de>
124 * genmatch.c (fprintf_indent): New function.
125 (operand::gen_transform): Add indent parameter.
126 (expr::gen_transform, c_expr::gen_transform,
127 capture::gen_transform): Ditto and use fprintf_indent.
128 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
129 (dt_operand::gen, dt_operand::gen_predicate,
130 dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
131 dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
132 (decision_tree::gen_gimple): Adjust calls and indent generated
134 (decision_tree::gen_generic): Ditto.
135 (write_predicate): Ditto.
137 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
140 * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
141 * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
142 (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
143 {GENERAL_SSE_MMX}_REG_P where appropriate.
145 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
147 * lto-streamer.h: Don't include target.h and alloc-pool.h.
148 * builtins.c: Adjust includes.
149 * gimple.c: Likewise.
150 * ipa-icf.c: Likewise.
151 * lto-opts.c: Likewise.
152 * ipa-reference.c: Likewise.
153 * lto-section-out.c: Likewise.
154 * lto-streamer-in.c: Likewise.
155 * lto-streamer-out.c: Likewise.
156 * opts-global.c: Likewise.
157 * symtab.c: Likewise.
158 * tree-chkp.c: Likewise.
159 * tree-ssa-live.c: Likewise.
160 * tree-streamer-in.c: Likewise.
161 * tree-streamer-out.c: Likewise.
162 * config/darwin.c: Likewise.
163 * config/i386/winnt.c: Likewise.
165 2015-07-09 Richard Biener <rguenther@suse.de>
167 * genmatch.c (struct expr): Add force_single_use flag.
168 (expr::expr): Add copy constructor.
169 (capture_info::walk_match): Gather force_single_use captures.
170 (expr::gen_transform): Use possibly NULLified sequence.
171 (dt_simplify::gen): Apply single-use restrictions by NULLifying
172 seq if any constrained expr is not single-use.
173 (parser::parse_expr): Refactor to allow multiple flags. Handle
174 's' flag to force an expression have a single-use if the pattern
175 simplifies to more than one statement.
176 * match.pd: Convert most single_use conditionals to :s flags.
178 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
180 * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
181 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
182 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
184 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
186 * flags.h: Don't include flag-types.h or options.h.
187 * opts-common.c: Adjust includes.
188 * opts-global.c: Likewise.
189 * common/config/epiphany/epiphany-common.c: Likewise.
191 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
194 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
197 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
200 * config/i386/i386.c (ix86_return_in_memory): Return true
201 if int_size_in_bytes returns negative for IA MCU.
203 2015-07-09 Marek Polacek <polacek@redhat.com>
205 PR tree-optimization/66718
206 * Makefile.in (OBJS): Add gimple-laddress.o.
207 * passes.def: Schedule pass_laddress.
208 * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
209 * tree-pass.h (make_pass_laddress): Declare.
210 * gimple-laddress.c: New file.
212 2015-07-09 Richard Biener <rguenther@suse.de>
214 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
216 2015-07-09 Richard Biener <rguenther@suse.de>
218 PR tree-optimization/66807
219 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
221 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
223 * function.c (stack_protect_epilogue): Use if rather than switch for
224 check targetm.have_stack_protect_test.
226 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
228 * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
229 * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
230 * config/arc/arc.h: Likewise.
231 * config/arm/arm.h: Likewise.
232 * config/bfin/bfin.h: Likewise.
233 * config/epiphany/epiphany.h: Likewise.
234 * config/frv/frv.h: Likewise.
235 * config/ia64/ia64.h: Likewise.
236 * config/iq2000/iq2000.h: Likewise.
237 * config/lm32/lm32.h: Likewise.
238 * config/m32r/m32r.h: Likewise.
239 * config/mcore/mcore.h: Likewise.
240 * config/mep/mep.h: Likewise.
241 * config/microblaze/microblaze.h: Likewise.
242 * config/mips/mips.h: Likewise.
243 * config/mmix/mmix.h: Likewise.
244 * config/mn10300/mn10300.h: Likewise.
245 * config/nds32/nds32.h: Likewise.
246 * config/nios2/nios2.h: Likewise.
247 * config/pa/pa.h: Likewise.
248 * config/rl78/rl78.h: Likewise.
249 * config/sh/sh.h: Likewise.
250 * config/sparc/sparc.h: Likewise.
251 * config/stormy16/stormy16.h: Likewise.
252 * config/tilegx/tilegx.h: Likewise.
253 * config/tilepro/tilepro.h: Likewise.
254 * config/v850/v850.h: Likewise.
255 * config/xtensa/xtensa.h: Likewise.
256 * doc/tm.texi: Regenerate.
257 * doc/tm.texi.in: Adjust.
258 * combine.c (simplify_set): Likewise.
259 (simplify_comparison): Likewise.
260 * expr.c (store_constructor): Likewise.
261 * internal-fn.c (expand_arith_overflow): Likewise.
262 * reload.c (push_reload): Likewise.
263 (find_reloads): Likewise.
264 (find_reloads_subreg_address): Likewise.
265 * reload1.c (eliminate_regs_1): Likewise.
266 * rtlanal.c (nonzero_bits1): Likewise.
267 (num_sign_bit_copies1): Likewise.
268 * simplify-rtx.c (simplify_truncation): Likewise.
270 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
272 * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
273 of AUTO_INC_DEC with the preprocessor.
274 * combine.c (combine_instructions): Likewise.
275 (can_combine_p): Likewise.
276 (try_combine): Likewise.
277 * emit-rtl.c (try_split): Likewise.
278 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
279 * lower-subreg.c (resolve_simple_move): Likewise.
280 * lra.c (update_inc_notes): Likewise.
281 * recog.c (asm_operand_ok): Likewise.
282 (constrain_operands): Likewise.
283 * regrename.c (scan_rtx_address): Likewise.
284 * reload.c (update_auto_inc_notes): Likewise.
285 (reg_inc_found_and_valid_p): Likewise.
286 * reload1.c (reload): Likewise.
287 (emit_input_reload_insns): Likewise.
288 (delete_output_reload): Likewise.
289 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
290 * valtrack.c (cleanup_auto_inc_dec): Likewise.
292 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
294 * rtl.h: Always define AUTO_INC_DEC.
295 * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
296 * combine.c (combine_instructions): Likewise.
297 (can_combine_p): Likewise.
298 (try_combine): Likewise.
299 * emit-rtl.c (try_split): Likewise.
300 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
301 * lower-subreg.c (resolve_simple_move): Likewise.
302 * lra.c (update_inc_notes): Likewise.
303 * recog.c (asm_operand_ok): Likewise.
304 (constrain_operands): Likewise.
305 * regrename.c (scan_rtx_address): Likewise.
306 * reload.c (update_auto_inc_notes): Likewise.
307 (find_equiv_reg): Likewise.
308 * reload1.c (reload): Likewise.
309 (reload_as_needed): Likewise.
310 (choose_reload_regs): Likewise.
311 (emit_input_reload_insns): Likewise.
312 (delete_output_reload): Likewise.
313 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
314 * valtrack.c (cleanup_auto_inc_dec): Likewise.
316 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
318 * combine.c (can_combine_def_p): Don't check the value of
319 HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
320 (combinable_i3pat): Likewise.
321 (mark_used_regs_combine): Likewise.
322 * regrename.c (rename_chains): Likewise.
323 * reload.c (find_reloads_address): Likewise.
324 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
326 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
328 * combine.c (update_rsp_from_reg_equal): Don't check if
329 SHORT_IMMEDIATES_SIGN_EXTEND is defined.
330 (reg_nonzero_bits_for_combine): Likewise.
331 * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
333 * config/frv/frv.h: Likewise.
334 * config/lm32/lm32.h: Likewise.
335 * config/mep/mep.h: Likewise.
336 * config/mips/mips.h: Likewise.
337 * config/rs6000/rs6000.h: Likewise.
338 * config/sh/sh.h: Likewise.
339 * config/tilegx/tilegx.h (enum reg_class): Likewise.
340 * config/tilepro/tilepro.h: Likewise.
341 * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
342 * doc/tm.texi: Regenerate.
343 * doc/tm.texi.in: Adjust.
344 * rtlanal.c (nonzero_bits1): Likewise.
346 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
348 * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
349 with the preprocessor.
350 (combine_instructions): Likewise.
351 (try_combine): Likewise.
353 (distribute_notes): Likewise.
355 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
357 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
359 (simplify_set): Likewise.
360 * cse.c (cse_insn): Likewise.
361 * fold-const.c (fold_single_bit_test): Likewise.
362 (fold_unary_loc): Likewise.
363 * postreload.c (reload_cse_simplify_set): Likewise.
364 (reload_cse_simplify_operands): Likewise.
366 2015-07-08 Jiong Wang <jiong.wang@arm.com>
368 * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
369 (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
371 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
374 * config/i386/x86intrin.h: Include <adxintrin.h> even if
375 __iamcu__ is defined.
377 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
379 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
381 2015-07-08 Iain Sandoe <iain@codesourcery.com>
384 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
385 names from preservation.
387 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
390 * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
391 hard regno live at the start of BB with incoming abnormal edges.
392 * lra-lives.c (process_bb_lives): Ditto.
394 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
397 * config/nvptx/mkoffload.c (main): Create an offload image only in
398 64-bit configurations.
400 2015-07-08 Martin Liska <mliska@suse.cz>
403 * tree-sra.c (create_access_1): Call ctor without brackets.
404 (create_artificial_child_access): Likewise.
406 2015-07-08 Richard Biener <rguenther@suse.de>
408 PR tree-optimization/66793
409 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
410 Properly split the block after stmts ending it.
412 2015-07-08 Richard Biener <rguenther@suse.de>
414 PR tree-optimization/66794
415 * passes.c (execute_function_todo): Assert that post-dominators
417 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
418 Free post-dominators.
420 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
422 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
425 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
427 * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
428 more than or equal 8 and less than 32 when optimizing for size.
430 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
432 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
433 COSTS_N_INSNS (1) and increment it appropriately throughout the
436 2015-07-08 Richard Biener <rguenther@suse.de>
438 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
440 2015-07-08 Alan Modra <amodra@gmail.com>
442 * target.def (rtx_costs): Remove "code" param, add "mode".
443 * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
444 (set_src_cost, get_full_set_src_cost): Likewise. Move later in file.
445 (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
446 * rtlanal.c (rtx_cost): Add "mode" parameter. Update targetm.rtx_costs
447 call. Track mode when given in rtx.
448 (get_full_rtx_cost): Add "mode" parameter. Update rtx_cost calls.
449 (default_address_cost): Pass Pmode to rtx_cost.
450 (insn_rtx_cost): Pass dest mode of set to set_src_cost.
451 * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
453 * cse.c (COST, COST_IN): Add MODE param. Update all uses.
454 (notreg_cost): Add mode param. Use it.
455 * gcse.c (want_to_gcse_p): Delete forward declaration. Add
456 mode param and pass to set_src_cost. Update all calls.
457 (hash_scan_set): Formatting.
458 * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
459 (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
461 * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
462 init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
463 emit_store_flag): Update set_src_cost and rtx_cost calls.
464 * auto-inc-dec.c (attempt_change): Likewise.
465 * calls.c (precompute_register_parameters): Likewise.
466 * combine.c (expand_compound_operation, make_extraction,
467 force_to_mode, distribute_and_simplify_rtx): Likewise.
468 * dojump.c (prefer_and_bit_test): Likewise.
469 * dse.c (find_shift_sequence): Likewise.
470 * expr.c (compress_float_constant): Likewise.
471 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
472 * ifcvt.c (noce_try_sign_mask): Likewise.
473 * loop-doloop.c (doloop_optimize): Likewise.
474 * loop-invariant.c (create_new_invariant): Likewise.
475 * lower-subreg.c (shift_cost, compute_costs): Likewise.
476 * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
477 lshift_cheap_p): Likewise.
478 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
479 try_replace_in_use, reload_cse_move2add): Likewise.
480 * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
482 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
483 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
484 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
485 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
486 * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
487 add "mode" param. Use "mode: in place of GET_MODE (x). Pass mode
489 * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
490 * config/arc/arc.c (arc_rtx_costs): Likewise.
491 * config/arm/arm.c (arm_rtx_costs): Likewise.
492 * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
493 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
494 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
495 * config/cris/cris.c (cris_rtx_costs): Likewise.
496 * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
497 * config/frv/frv.c (frv_rtx_costs): Likewise.
498 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
499 * config/i386/i386.c (ix86_rtx_costs): Likewise.
500 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
501 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
502 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
503 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
504 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
505 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
506 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
507 * config/mep/mep.c (mep_rtx_cost): Likewise.
508 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
509 * config/mips/mips.c (mips_rtx_costs): Likewise.
510 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
511 * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
512 * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
513 * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
514 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
515 * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
516 * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
517 * config/pa/pa.c (hppa_rtx_costs): Likewise.
518 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
519 * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
520 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
521 * config/s390/s390.c (s390_rtx_costs): Likewise.
522 * config/sh/sh.c (sh_rtx_costs): Likewise.
523 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
524 * config/spu/spu.c (spu_rtx_costs): Likewise.
525 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
526 * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
527 * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
528 * config/v850/v850.c (v850_rtx_costs): Likewise.
529 * config/vax/vax.c (vax_rtx_costs): Likewise.
530 * config/visium/visium.c (visium_rtx_costs): Likewise.
531 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
532 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
533 "code" param, and pass as outer_code to first rtx_cost call. Pass
534 mode to rtx_cost calls.
535 (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
537 (aarch64_rtx_costs_wrapper): Update.
538 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
539 arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
541 * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
543 (avr_operand_rtx_cost): Similarly.
544 (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
545 for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
546 * config/mips/mips.c (mips_stack_address_p): Comment typo.
547 (mips_binary_cost): Update rtx_cost and set_src_cost calls.
548 (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
549 * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
551 (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
552 * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
553 * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
554 * doc/tm.texi: Regenerate.
556 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
558 * tree-core.h: Include symtab.h.
559 * rtl.h: Include hard-reg-set.h but not flags.h.
560 (HARD_CONST): Remove condition compilation involving HARD_CONST since
561 hard-reg-set.h is always included.
562 * regs.h: Don't include hard-reg-set.h or rtl.h.
563 * cfg.h: Include dominance.h.
564 * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
565 * backend.h: New. Aggregate commonly used backend header files.
566 * gimple-ssa.h: Don't include tree-hasher.h.
567 * ssa.h: New. Aggregate commonly used SSA header files.
568 * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
569 * sel-sched-ir.h: Flatten includes.
570 * lra-int.h: Flatten completely.
571 * sel-sched-dump.h: Flatten includes.
572 * ira-int.h: Flatten includes.
573 * gimple-streamer.h: Remove all includes.
574 * cfgloop.h: Remove all #includes except cfgloopmanip.h.
575 * resource.h: Flatten hard-reg-set.h and df.h.
576 * sched-int.h: Flatten insn-arrt.h and df.h.
577 * valtrack.h: flatten bitmap.h, df.h, and rtl.h
578 * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
579 * genattrtab.c (write_header): Adjust generated includes.
580 * genautomata.c (main): Likewise.
581 * genconditions.c (write-header): Likewise.
582 * genemit.c (main): Likewise.
583 * gengtype.c (open_base_files): Likewise.
584 * genopinit.c (main): Likewise.
585 * genoutput.c (output_prologue): Likewise.
586 * genpeep.c (main): Likewise.
587 * genpreds.c (write_insn_preds_c): Likewise.
588 * genrecog.c (write_header): Likewise.
589 * alias.c: Adjust includes.
591 * attribs.c: Likewise.
592 * auto-inc-dec.c: Likewise.
593 * auto-profile.c: Likewise.
594 * bb-reorder.c: Likewise.
595 * bt-load.c: Likewise.
596 * builtins.c: Likewise.
597 * caller-save.c: Likewise.
601 * cfganal.c: Likewise.
602 * cfgbuild.c: Likewise.
603 * cfgcleanup.c: Likewise.
604 * cfgexpand.c: Likewise.
605 * cfghooks.c: Likewise.
606 * cfgloop.c: Likewise.
607 * cfgloopanal.c: Likewise.
608 * cfgloopmanip.c: Likewise.
609 * cfgrtl.c: Likewise.
610 * cgraph.c: Likewise.
611 * cgraphbuild.c: Likewise.
612 * cgraphclones.c: Likewise.
613 * cgraphunit.c: Likewise.
614 * cilk-common.c: Likewise.
615 * combine-stack-adj.c: Likewise.
616 * combine.c: Likewise.
617 * compare-elim.c: Likewise.
618 * convert.c: Likewise.
619 * coverage.c: Likewise.
620 * cppbuiltin.c: Likewise.
623 * cselib.c: Likewise.
624 * data-streamer-in.c: Likewise.
625 * data-streamer-out.c: Likewise.
626 * data-streamer.c: Likewise.
627 * dbxout.c: Likewise.
631 * df-core.c: Likewise.
632 * df-problems.c: Likewise.
633 * df-scan.c: Likewise.
635 * dojump.c: Likewise.
636 * dominance.c: Likewise.
637 * domwalk.c: Likewise.
638 * double-int.c: Likewise.
640 * dumpfile.c: Likewise.
641 * dwarf2asm.c: Likewise.
642 * dwarf2cfi.c: Likewise.
643 * dwarf2out.c: Likewise.
644 * emit-rtl.c: Likewise.
645 * et-forest.c: Likewise.
646 * except.c: Likewise.
647 * explow.c: Likewise.
648 * expmed.c: Likewise.
651 * fixed-value.c: Likewise.
652 * fold-const.c: Likewise.
653 * function.c: Likewise.
654 * fwprop.c: Likewise.
655 * gcc-plugin.h: Likewise.
656 * gcse-common.c: Likewise.
658 * generic-match-head.c: Likewise.
659 * ggc-page.c: Likewise.
660 * gimple-builder.c: Likewise.
661 * gimple-expr.c: Likewise.
662 * gimple-fold.c: Likewise.
663 * gimple-iterator.c: Likewise.
664 * gimple-low.c: Likewise.
665 * gimple-match-head.c: Likewise.
666 * gimple-pretty-print.c: Likewise.
667 * gimple-ssa-isolate-paths.c: Likewise.
668 * gimple-ssa-strength-reduction.c: Likewise.
669 * gimple-streamer-in.c: Likewise.
670 * gimple-streamer-out.c: Likewise.
671 * gimple-walk.c: Likewise.
672 * gimple.c: Likewise.
673 * gimplify-me.c: Likewise.
674 * gimplify.c: Likewise.
675 * godump.c: Likewise.
677 * graphite-blocking.c: Likewise.
678 * graphite-dependences.c: Likewise.
679 * graphite-interchange.c: Likewise.
680 * graphite-isl-ast-to-gimple.c: Likewise.
681 * graphite-optimize-isl.c: Likewise.
682 * graphite-poly.c: Likewise.
683 * graphite-scop-detection.c: Likewise.
684 * graphite-sese-to-poly.c: Likewise.
685 * graphite.c: Likewise.
686 * haifa-sched.c: Likewise.
687 * hw-doloop.c: Likewise.
689 * init-regs.c: Likewise.
690 * internal-fn.c: Likewise.
691 * ipa-chkp.c: Likewise.
692 * ipa-comdats.c: Likewise.
693 * ipa-cp.c: Likewise.
694 * ipa-devirt.c: Likewise.
695 * ipa-icf-gimple.c: Likewise.
696 * ipa-icf.c: Likewise.
697 * ipa-inline-analysis.c: Likewise.
698 * ipa-inline-transform.c: Likewise.
699 * ipa-inline.c: Likewise.
700 * ipa-polymorphic-call.c: Likewise.
701 * ipa-profile.c: Likewise.
702 * ipa-prop.c: Likewise.
703 * ipa-pure-const.c: Likewise.
704 * ipa-ref.c: Likewise.
705 * ipa-reference.c: Likewise.
706 * ipa-split.c: Likewise.
707 * ipa-utils.c: Likewise.
708 * ipa-visibility.c: Likewise.
710 * ira-build.c: Likewise.
711 * ira-color.c: Likewise.
712 * ira-conflicts.c: Likewise.
713 * ira-costs.c: Likewise.
714 * ira-emit.c: Likewise.
715 * ira-lives.c: Likewise.
718 * langhooks.c: Likewise.
720 * loop-doloop.c: Likewise.
721 * loop-init.c: Likewise.
722 * loop-invariant.c: Likewise.
723 * loop-iv.c: Likewise.
724 * loop-unroll.c: Likewise.
725 * lower-subreg.c: Likewise.
726 * lra-assigns.c: Likewise.
727 * lra-coalesce.c: Likewise.
728 * lra-constraints.c: Likewise.
729 * lra-eliminations.c: Likewise.
730 * lra-lives.c: Likewise.
731 * lra-remat.c: Likewise.
732 * lra-spills.c: Likewise.
734 * lto-cgraph.c: Likewise.
735 * lto-compress.c: Likewise.
736 * lto-opts.c: Likewise.
737 * lto-section-in.c: Likewise.
738 * lto-section-out.c: Likewise.
739 * lto-streamer-in.c: Likewise.
740 * lto-streamer-out.c: Likewise.
741 * lto-streamer.c: Likewise.
743 * mode-switching.c: Likewise.
744 * modulo-sched.c: Likewise.
746 * omp-low.c: Likewise.
747 * optabs.c: Likewise.
748 * opts-global.c: Likewise.
749 * passes.c: Likewise.
750 * plugin.c: Likewise.
751 * postreload-gcse.c: Likewise.
752 * postreload.c: Likewise.
753 * predict.c: Likewise.
754 * print-rtl.c: Likewise.
755 * print-tree.c: Likewise.
756 * profile.c: Likewise.
758 * realmpfr.c: Likewise.
761 * reg-stack.c: Likewise.
762 * regcprop.c: Likewise.
763 * reginfo.c: Likewise.
764 * regrename.c: Likewise.
765 * regstat.c: Likewise.
766 * reload.c: Likewise.
767 * reload1.c: Likewise.
769 * resource.c: Likewise.
770 * rtl-chkp.c: Likewise.
771 * rtlanal.c: Likewise.
772 * rtlhooks.c: Likewise.
773 * sanopt.c: Likewise.
774 * sched-deps.c: Likewise.
775 * sched-ebb.c: Likewise.
776 * sched-rgn.c: Likewise.
777 * sched-vis.c: Likewise.
778 * sdbout.c: Likewise.
779 * sel-sched-dump.c: Likewise.
780 * sel-sched-ir.c: Likewise.
781 * sel-sched.c: Likewise.
783 * shrink-wrap.c: Likewise.
784 * simplify-rtx.c: Likewise.
785 * stack-ptr-mod.c: Likewise.
787 * stor-layout.c: Likewise.
788 * store-motion.c: Likewise.
789 * stringpool.c: Likewise.
790 * symtab.c: Likewise.
791 * target-globals.c: Likewise.
792 * targhooks.c: Likewise.
793 * toplev.c: Likewise.
794 * tracer.c: Likewise.
795 * trans-mem.c: Likewise.
796 * tree-affine.c: Likewise.
797 * tree-browser.c: Likewise.
798 * tree-call-cdce.c: Likewise.
799 * tree-cfg.c: Likewise.
800 * tree-cfgcleanup.c: Likewise.
801 * tree-chkp-opt.c: Likewise.
802 * tree-chkp.c: Likewise.
803 * tree-chrec.c: Likewise.
804 * tree-complex.c: Likewise.
805 * tree-data-ref.c: Likewise.
806 * tree-dfa.c: Likewise.
807 * tree-diagnostic.c: Likewise.
808 * tree-dump.c: Likewise.
809 * tree-eh.c: Likewise.
810 * tree-emutls.c: Likewise.
811 * tree-if-conv.c: Likewise.
812 * tree-inline.c: Likewise.
813 * tree-into-ssa.c: Likewise.
814 * tree-iterator.c: Likewise.
815 * tree-loop-distribution.c: Likewise.
816 * tree-nested.c: Likewise.
817 * tree-nrv.c: Likewise.
818 * tree-object-size.c: Likewise.
819 * tree-outof-ssa.c: Likewise.
820 * tree-parloops.c: Likewise.
821 * tree-phinodes.c: Likewise.
822 * tree-predcom.c: Likewise.
823 * tree-pretty-print.c: Likewise.
824 * tree-profile.c: Likewise.
825 * tree-scalar-evolution.c: Likewise.
826 * tree-sra.c: Likewise.
827 * tree-ssa-address.c: Likewise.
828 * tree-ssa-alias.c: Likewise.
829 * tree-ssa-ccp.c: Likewise.
830 * tree-ssa-coalesce.c: Likewise.
831 * tree-ssa-copy.c: Likewise.
832 * tree-ssa-copyrename.c: Likewise.
833 * tree-ssa-dce.c: Likewise.
834 * tree-ssa-dom.c: Likewise.
835 * tree-ssa-dse.c: Likewise.
836 * tree-ssa-forwprop.c: Likewise.
837 * tree-ssa-ifcombine.c: Likewise.
838 * tree-ssa-live.c: Likewise.
839 * tree-ssa-loop-ch.c: Likewise.
840 * tree-ssa-loop-im.c: Likewise.
841 * tree-ssa-loop-ivcanon.c: Likewise.
842 * tree-ssa-loop-ivopts.c: Likewise.
843 * tree-ssa-loop-manip.c: Likewise.
844 * tree-ssa-loop-niter.c: Likewise.
845 * tree-ssa-loop-prefetch.c: Likewise.
846 * tree-ssa-loop-unswitch.c: Likewise.
847 * tree-ssa-loop.c: Likewise.
848 * tree-ssa-math-opts.c: Likewise.
849 * tree-ssa-operands.c: Likewise.
850 * tree-ssa-phiopt.c: Likewise.
851 * tree-ssa-phiprop.c: Likewise.
852 * tree-ssa-pre.c: Likewise.
853 * tree-ssa-propagate.c: Likewise.
854 * tree-ssa-reassoc.c: Likewise.
855 * tree-ssa-sccvn.c: Likewise.
856 * tree-ssa-scopedtables.c: Likewise.
857 * tree-ssa-sink.c: Likewise.
858 * tree-ssa-strlen.c: Likewise.
859 * tree-ssa-structalias.c: Likewise.
860 * tree-ssa-tail-merge.c: Likewise.
861 * tree-ssa-ter.c: Likewise.
862 * tree-ssa-threadedge.c: Likewise.
863 * tree-ssa-threadupdate.c: Likewise.
864 * tree-ssa-uncprop.c: Likewise.
865 * tree-ssa-uninit.c: Likewise.
866 * tree-ssa.c: Likewise.
867 * tree-ssanames.c: Likewise.
868 * tree-stdarg.c: Likewise.
869 * tree-streamer-in.c: Likewise.
870 * tree-streamer-out.c: Likewise.
871 * tree-streamer.c: Likewise.
872 * tree-switch-conversion.c: Likewise.
873 * tree-tailcall.c: Likewise.
874 * tree-vect-data-refs.c: Likewise.
875 * tree-vect-generic.c: Likewise.
876 * tree-vect-loop-manip.c: Likewise.
877 * tree-vect-loop.c: Likewise.
878 * tree-vect-patterns.c: Likewise.
879 * tree-vect-slp.c: Likewise.
880 * tree-vect-stmts.c: Likewise.
881 * tree-vectorizer.c: Likewise.
882 * tree-vrp.c: Likewise.
886 * valtrack.c: Likewise.
887 * value-prof.c: Likewise.
888 * var-tracking.c: Likewise.
889 * varasm.c: Likewise.
890 * varpool.c: Likewise.
891 * vmsdbgout.c: Likewise.
892 * vtable-verify.c: Likewise.
894 * wide-int.cc: Likewise.
895 * xcoffout.c: Likewise.
896 * config/aarch64/aarch64-builtins.c: Likewise.
897 * config/aarch64/aarch64.c: Likewise.
898 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
899 * config/alpha/alpha.c: Likewise.
900 * config/arc/arc.c: Likewise.
901 * config/arm/aarch-common.c: Likewise.
902 * config/arm/arm-builtins.c: Likewise.
903 * config/arm/arm-c.c: Likewise.
904 * config/arm/arm.c: Likewise.
905 * config/avr/avr-c.c: Likewise.
906 * config/avr/avr-log.c: Likewise.
907 * config/avr/avr.c: Likewise.
908 * config/bfin/bfin.c: Likewise.
909 * config/c6x/c6x.c: Likewise.
910 * config/cr16/cr16.c: Likewise.
911 * config/cris/cris.c: Likewise.
912 * config/darwin-c.c: Likewise.
913 * config/darwin.c: Likewise.
914 * config/epiphany/epiphany.c: Likewise.
915 * config/epiphany/mode-switch-use.c: Likewise.
916 * config/epiphany/resolve-sw-modes.c: Likewise.
917 * config/fr30/fr30.c: Likewise.
918 * config/frv/frv.c: Likewise.
919 * config/ft32/ft32.c: Likewise.
920 * config/h8300/h8300.c: Likewise.
921 * config/i386/i386-c.c: Likewise.
922 * config/i386/i386.c: Likewise.
923 * config/i386/msformat-c.c: Likewise.
924 * config/i386/winnt-cxx.c: Likewise.
925 * config/i386/winnt-stubs.c: Likewise.
926 * config/i386/winnt.c: Likewise.
927 * config/ia64/ia64-c.c: Likewise.
928 * config/ia64/ia64.c: Likewise.
929 * config/iq2000/iq2000.c: Likewise.
930 * config/lm32/lm32.c: Likewise.
931 * config/m32c/m32c-pragma.c: Likewise.
932 * config/m32c/m32c.c: Likewise.
933 * config/m32r/m32r.c: Likewise.
934 * config/m68k/m68k.c: Likewise.
935 * config/mcore/mcore.c: Likewise.
936 * config/mep/mep-pragma.c: Likewise.
937 * config/mep/mep.c: Likewise.
938 * config/microblaze/microblaze-c.c: Likewise.
939 * config/microblaze/microblaze.c: Likewise.
940 * config/mips/mips.c: Likewise.
941 * config/mmix/mmix.c: Likewise.
942 * config/mn10300/mn10300.c: Likewise.
943 * config/moxie/moxie.c: Likewise.
944 * config/msp430/msp430-c.c: Likewise.
945 * config/msp430/msp430.c: Likewise.
946 * config/nds32/nds32-cost.c: Likewise.
947 * config/nds32/nds32-fp-as-gp.c: Likewise.
948 * config/nds32/nds32-intrinsic.c: Likewise.
949 * config/nds32/nds32-isr.c: Likewise.
950 * config/nds32/nds32-md-auxiliary.c: Likewise.
951 * config/nds32/nds32-memory-manipulation.c: Likewise.
952 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
953 * config/nds32/nds32-predicates.c: Likewise.
954 * config/nds32/nds32.c: Likewise.
955 * config/nios2/nios2.c: Likewise.
956 * config/nvptx/nvptx.c: Likewise.
957 * config/pa/pa.c: Likewise.
958 * config/pdp11/pdp11.c: Likewise.
959 * config/rl78/rl78-c.c: Likewise.
960 * config/rl78/rl78.c: Likewise.
961 * config/rs6000/rs6000-c.c: Likewise.
962 * config/rs6000/rs6000.c: Likewise.
963 * config/rx/rx.c: Likewise.
964 * config/s390/s390-c.c: Likewise.
965 * config/s390/s390.c: Likewise.
966 * config/sh/sh-c.c: Likewise.
967 * config/sh/sh-mem.cc: Likewise.
968 * config/sh/sh.c: Likewise.
969 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
970 * config/sh/sh_treg_combine.cc: Likewise.
971 * config/sol2-c.c: Likewise.
972 * config/sol2-cxx.c: Likewise.
973 * config/sol2-stubs.c: Likewise.
974 * config/sol2.c: Likewise.
975 * config/sparc/sparc-c.c: Likewise.
976 * config/sparc/sparc.c: Likewise.
977 * config/spu/spu-c.c: Likewise.
978 * config/spu/spu.c: Likewise.
979 * config/stormy16/stormy16.c: Likewise.
980 * config/tilegx/mul-tables.c: Likewise.
981 * config/tilegx/tilegx-c.c: Likewise.
982 * config/tilegx/tilegx.c: Likewise.
983 * config/tilepro/mul-tables.c: Likewise.
984 * config/tilepro/tilepro-c.c: Likewise.
985 * config/tilepro/tilepro.c: Likewise.
986 * config/v850/v850-c.c: Likewise.
987 * config/v850/v850.c: Likewise.
988 * config/vax/vax.c: Likewise.
989 * config/visium/visium.c: Likewise.
990 * config/vms/vms-c.c: Likewise.
991 * config/vms/vms.c: Likewise.
992 * config/vxworks.c: Likewise.
993 * config/xtensa/xtensa.c: Likewise.
995 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
997 * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
998 Remove operand constraints. Change operand 2 predicate to
999 nonmemory operand. Limit const_int values to mode bitsize. Only
1000 allow const_int values less than 32 when optimizing for size.
1001 (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
1002 Remove operand constraints.
1003 (*bt<mode>): Use SImode for const_int values less than 32.
1004 (regmode): Remove mode attribute.
1006 2015-07-07 Anatoly Sokolov <aesok@post.ru>
1008 * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1009 * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
1010 moxie_legitimate_address_p): New functions.
1011 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1013 2015-07-07 Tom de Vries <tom@codesourcery.com>
1015 PR tree-optimization/66642
1016 * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
1017 header comment. Rename split_edge variable to edge_at_split. Split
1018 exit edge to create new loop exit bb. Insert loop exit phis in new
1021 2015-07-07 Tom de Vries <tom@codesourcery.com>
1023 * tree-cfg.c (get_virtual_phi): New function.
1024 * tree-cfg.h (get_virtual_phi): Declare.
1025 * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
1026 (rewrite_virtuals_into_loop_closed_ssa): New function.
1027 * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
1029 * tree-parloops.c (replace_uses_in_bbs_by): Remove.
1030 (transform_to_exit_first_loop_alt): Use
1031 rewrite_virtuals_into_loop_closed_ssa.
1033 2015-07-07 Richard Biener <rguenther@suse.de>
1035 * fold-const.c (fold_binary_loc): Move
1036 (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
1037 * match.pd: ... here.
1038 Add (X * C1) % C2 -> 0 simplification pattern derived from
1041 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
1044 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
1045 change for target/65249.
1047 2015-07-07 Paulo Matos <pmatos@broadcom.com>
1049 * symtab.c (address_matters_1): Fix typo in comment above.
1050 (can_increase_alignment_p): Likewise.
1052 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1054 * function.c (free_after_compilation): Clear PROP_cfg in
1057 2015-07-07 Richard Biener <rguenther@suse.de>
1059 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
1061 (add_control_edge): Remove excessive vertical space in dumping.
1062 (process_ssa_edge_worklist): Simulate at most one statement and
1063 return whether we did. Do not simulate PHIs if they are in a
1064 BB not yet simulated.
1065 (ssa_propagate): Adjust to always drain the BB worklist whenever
1066 a BB is available there, likewise the VARYING edges list before
1067 the interesting edge list.
1069 2015-07-07 Christian Bruel <christian.bruel@st.com>
1072 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
1074 2015-07-07 Richard Biener <rguenther@suse.de>
1077 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
1080 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
1082 * config/i386/i386.md (insv<mode>): Rename from insv. Use SWI48
1083 modes for operands 0 and 3. Use SImode for operands 2 and 3.
1084 Copy operand 0 to a temporary if !ext_register_operand. Remove
1085 ancient extract_bit_field workaround.
1086 (insv<mode>_1): Rename from mov<mode>_insv_1.
1087 (*insvqi): Rename from *movqi_insv_2.
1088 * config/i386/i386.c (emit_i386_cw_initialization): Update calls
1089 for renamed insvsi_1.
1090 (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
1092 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
1094 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
1095 call to nvptx_reorg_subreg.
1097 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
1099 * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
1100 * graphite-dependencies.c, graphite-interchange.c,
1101 graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
1102 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
1105 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
1107 * match.pd: Remove element_mode inside HONOR_*.
1108 (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
1109 (~X | X -> -1, ~X ^ X -> -1): Merge.
1110 * tree.c (build_each_one_cst): New function.
1111 * tree.h (build_each_one_cst): Likewise.
1113 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
1115 * config.gcc <mips*-*-*>: Add fused-madd.opt.
1116 * config/mips/mips.opt (mfused-madd): Remove.
1117 * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
1118 * config/mips/mips.h (TARGET_MIPS8000): New.
1119 (ISA_HAS_FP_MADD4_MSUB4): Remove.
1120 (ISA_HAS_FP_MADDF_MSUBF): Remove.
1121 (ISA_HAS_FP_MADD3_MSUB3): Remove.
1122 (ISA_HAS_NMADD4_NMSUB4): Remove.
1123 (ISA_HAS_NMADD3_NMSUB3): Remove.
1124 (ISA_HAS_FUSED_MADD4): New.
1125 (ISA_HAS_UNFUSED_MADD4): New.
1126 (ISA_HAS_FUSED_MADDF): New.
1127 (ISA_HAS_FUSED_MADD3): New.
1128 * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
1129 (*fma<mode>4_madd3) New.
1130 (*fma<mode>4_madd4) New.
1131 (*fma<mode>4_maddf) New.
1133 (*fms<mode>4_msub3) New.
1134 (*fms<mode>4_msub4) New.
1136 (*fnma<mode>4_nmadd3) New.
1137 (*fnma<mode>4_nmadd4) New.
1139 (*fnms<mode>4_nmsub3) New.
1140 (*fnms<mode>4_nmsub4) New.
1141 (*madd4<mode>) Modify to be unfused only.
1142 (*msub4<mode>) Modify to be unfused only.
1143 (*nmadd4<mode>) Modify to be unfused only.
1144 (*nmsub4<mode>) Modify to be unfused only.
1145 (*madd3<mode>) Remove.
1146 (*msub3<mode>) Remove.
1147 (*nmadd3<mode>) Remove.
1148 (*nmsub3<mode>) Remove.
1149 (*nmadd3<mode>_fastmath) Remove.
1150 (*nmsub3<mode>_fastmath) Remove.
1151 (*nmadd4<mode>_fastmath) Update condition.
1152 (*nmsub4<mode>_fastmath) Update condition.
1154 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
1157 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
1158 alignment attribute, exploring one level down for records and arrays.
1160 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
1162 * config/i386/i386.md (extv<mode>): Rename from extv. Use SWI24
1163 modes for operands 0 and 1. Use SImode for operands 2 and 3.
1164 Copy operand 1 to a temporary if !ext_register_operand. Remove
1165 ancient extract_bit_field workaround.
1166 (*extv<mode>): Rename from *mov<mode>_extv_1.
1167 (*extvqi): Rename from *movqi_extv_1.
1168 (extzv<mode>): Rename from extzv. Use SWI248 modes for
1169 operands 0 and 1. Use SImode for operands 2 and 3. Copy operand 1
1170 to a temporary if !ext_register_operand. Remove ancient
1171 extract_bit_field workaround.
1172 (*extzv<mode>): Rename from *mov<mode>_extzv_1.
1173 (*extzvqi): Rename from *movqi_extzv_2.
1174 (*testqi_ext_3): Remove modes from const_int_operand predicated
1175 operands. Add "n" constraint.
1176 (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
1177 operand. Add "J" constraint.
1178 (*btsq, *btrq, *btcq peephole2s): Remove mode from
1179 const_0_to_63 predicated operand.
1180 (regmode): New insn attribute.
1181 (*bt<mode>): Use SImode for operand 1. Change operand 1 predicate
1182 to nonmemory_operand. Use regmode insn attribute.
1183 (*jcc_bt<mode>_1): Convert operand 2 to SImode.
1184 (*jcc_bt<mode>_mask): Remove mode from operand 3.
1185 (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
1186 (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
1187 operands. Use "N" constraint instead of "n".
1189 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
1191 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
1193 2015-07-06 Richard Biener <rguenther@suse.de>
1195 PR tree-optimization/66772
1196 * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
1197 values are available in the PHI node BB when there are
1198 still unexecutable edges.
1200 2015-07-06 Richard Biener <rguenther@suse.de>
1202 PR tree-optimization/66767
1203 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
1204 Make sure to build the alignment test on a SSA name without
1205 final alignment info valid only if the alignment test
1208 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
1211 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
1212 loop start when inserting LSETUP.
1214 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
1217 * config/i386/i386.c (ix86_option_override_internal): Allow
1218 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
1220 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1222 * read-md.c (decimal_string): Rename to ...
1223 (md_decimal_string): ... this.
1224 (handle_enum): Reflect this.
1226 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
1229 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
1231 2015-07-06 Richard Biener <rguenther@suse.de>
1234 * match.pd: Add missing constraint of y to REAL_CST in
1235 REAL_CST - x CMP y to y - CST CMP x simplification.
1237 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
1239 PR tree-optimization/66757
1240 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
1242 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
1243 Sandra Loosemore <sandra@codesourcery.com>
1245 * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
1246 Delete extern declaration.
1247 (gprel_constant_p): Add extern declaration.
1248 * config/nios2/constraints.md ("S"): Use gprel_constant_p
1249 instead of nios2_symbol_ref_in_small_data_p.
1250 * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
1251 (nios2_symbol_ref_in_small_data_p): Make static.
1252 (gprel_constant_p): Make non-static.
1254 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
1256 * doc/fragments.texi (Target Fragment): Convert debian.org
1258 * doc/install.texi (Configuration): Ditto.
1260 2015-07-05 Jakub Jelinek <jakub@redhat.com>
1262 PR tree-optimization/66718
1263 * tree-vect-stmts.c (vectorizable_call): Replace uses of
1264 GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
1266 PR tree-optimization/66718
1267 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
1268 vectorizable_load, vectorizable_condition): Move vectype,
1269 nunits, ncopies computation after checking what kind of statement
1272 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1274 * target-insns.def (extv, extzv, insv): New targetm instruction
1276 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
1278 * recog.c (simplify_while_replacing): Likewise.
1280 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1282 * target-insns.def (doloop_begin, doloop_end): New targetm
1283 instruction patterns.
1284 * loop-init.c: Include target.h.
1285 (pass_loop2::gate): Use the new targetm patterns instead of
1286 HAVE_*/gen_* interface.
1287 (pass_rtl_doloop::gate): Likewise.
1288 (pass_rtl_doloop::execute): Remove preprocessor condition.
1289 * hw-doloop.c: Build unconditionally.
1290 * loop-doloop.c: Likewise.
1291 (doloop_optimize): Use the new targetm patterns instead of
1292 HAVE_*/gen_* interface.
1293 (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
1294 * modulo-sched.c (doloop_register_get): Likewise.
1296 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1298 * target-insns.def (clear_cache): New targetm instruction pattern.
1299 * builtins.c (expand_builtin___clear_cache): Use it instead of
1300 HAVE_*/gen_* interface.
1302 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1304 * target-insns.def (allocate_stack, check_stack, probe_stack)
1305 (probe_stack_address, split_stack_prologue, split_stack_space_check):
1306 New targetm instruction patterns.
1307 * explow.c (allocate_dynamic_stack_space): Use them instead of
1308 HAVE_*/gen_* interface.
1309 (emit_stack_probe): Likewise.
1310 (probe_stack_range): Likewise.
1311 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1313 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1315 * target-insns.def (stack_protect_set, stack_protect_test): New
1316 targetm instruction patterns.
1317 * cfgexpand.c (stack_protect_prologue): Use them instead of
1318 HAVE_*/gen_* interface.
1319 * function.c (stack_protect_epilogue): Likewise.
1321 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1323 * expr.h (gen_move_insn_uncast): Delete.
1324 * expr.c (gen_move_insn_uncast): Delete.
1326 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1328 * target-insns.def (restore_stack_block, restore_stack_function)
1329 (restore_stack_nonlocal, save_stack_block, save_stack_function)
1330 (save_stack_nonlocal): New targetm instruction patterns.
1331 * builtins.c (expand_builtin_apply): Use them instead of
1332 HAVE_*/gen_* interface.
1333 * explow.c (emit_stack_save, emit_stack_restore): Likewise.
1335 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1337 * target-insns.def (trap): New targetm instruction pattern.
1338 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
1340 * explow.c (allocate_dynamic_stack_space): Likewise.
1341 * ifcvt.c (find_if_header): Likewise.
1343 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1345 * target-insns.def (prefetch): New targetm instruction pattern.
1346 * tree-ssa-loop-prefetch.c: Include targeth.
1347 (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
1348 of HAVE_*/gen_* interface.
1349 * builtins.c (expand_builtin_prefetch): Likewise.
1350 * toplev.c (process_options): Likewise.
1352 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1354 * target-insns.def (untyped_call, untyped_return): New targetm
1355 instruction patterns.
1356 * builtins.c (expand_builtin_apply): Use them instead of
1357 HAVE_*/gen_* interface.
1358 (result_vector): Define unconditionally.
1360 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1362 * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
1363 (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
1364 (nonlocal_goto_receiver): New targetm instruction patterns.
1365 * builtins.c (expand_builtin_setjmp_setup): Use them instead
1366 of HAVE_*/gen_* interface.
1367 (expand_builtin_setjmp_receiver): Likewise.
1368 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1369 * except.c (expand_dw2_landing_pad_for_region): Likewise.
1371 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
1373 * target.def: Add code_for_* hooks.
1374 * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
1375 * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
1376 * target-insns.def (casesi, tablejump): New targetm instruction
1378 * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
1379 (do_tablejump): Likewise.
1380 * stmt.c (expand_switch_as_decision_tree_p): Likewise.
1381 (expand_sjlj_dispatch_table): Likewise.
1382 * targhooks.c (default_case_values_threshold): Likewise.
1384 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
1386 * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
1387 Use rtx_insn * instead of rtx.
1388 (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
1389 (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
1390 (nios2_call_tls_get_addr): Likewise.
1391 (nios2_emit_expensive_div): Likewise.
1392 (nios2_emit_move_sequence): Change return type to bool.
1393 * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
1394 Change return type to bool.
1396 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1399 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
1401 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
1404 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
1405 of register_operand. Remove constraint.
1407 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
1409 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
1412 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
1414 * attribs.c (decl_attributes): Guard inform with the return value
1415 of the preceding warning.
1417 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
1419 * doc/invoke.texi (moverride): Move to correct section.
1421 2015-07-03 Richard Biener <rguenther@suse.de>
1423 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
1425 (dt_operand::gen_gimple_expr): After valueizing operands
1426 re-canonicalize operand order for commutative tree codes.
1428 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
1431 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
1433 (__crc32w): Likewise.
1434 (__crc32d): Likewise.
1435 (__rdpmc): Likewise.
1436 (__rdtscp): Likewise.
1438 (_rdtscp): Likewise.
1439 * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
1442 2015-07-03 Richard Biener <rguenther@suse.de>
1444 * fold-const.c (fold_mathfn_compare): Remove.
1445 (fold_inf_compare): Likewise.
1446 (fold_comparison): Move floating point comparison simplifications...
1447 * match.pd: ... to patterns here. Introduce simple_comparisons
1448 operator list and use it for patterns formerly in fold_comparison.
1450 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
1452 PR tree-optimization/66119
1453 * toplev.c (process_options): Don't set up default values for
1454 the sra_max_scalarization_size_{speed,size} parameters.
1455 * tree-sra (analyze_all_variable_accesses): If no values
1456 have been set for the sra_max_scalarization_size_{speed,size}
1457 parameters, call get_move_ratio to get target defaults.
1459 2015-07-03 Richard Biener <rguenther@suse.de>
1461 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
1462 * match.pd: ... here.
1464 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
1467 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
1468 is not actually the default on FreeBSD.
1470 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1472 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
1474 (CMPGE_8HI): Likewise.
1475 (CMPGE_4SI): Likewise.
1476 (CMPGE_2DI): Likewise.
1477 (CMPGE_U16QI): Likewise.
1478 (CMPGE_U8HI): Likewise.
1479 (CMPGE_U4SI): Likewise.
1480 (CMPGE_U2DI): Likewise.
1481 (CMPLE_16QI): Likewise.
1482 (CMPLE_8HI): Likewise.
1483 (CMPLE_4SI): Likewise.
1484 (CMPLE_2DI): Likewise.
1485 (CMPLE_U16QI): Likewise.
1486 (CMPLE_U8HI): Likewise.
1487 (CMPLE_U4SI): Likewise.
1488 (CMPLE_U2DI): Likewise.
1489 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1490 overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
1491 ALTIVEC_BUILTIN_VEC_CMPLE.
1492 * config/rs6000/vector.md (vector_ge<mode>): Restrict to
1493 floating-point vector modes.
1494 (vector_nlt<mode>): New define_expand.
1495 (vector_nltu<mode>): Likewise.
1496 (vector_ngt<mode>): Likewise.
1497 (vector_ngtu<mode>): Likewise.
1499 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
1501 PR rtl-optimization/66706
1502 * combine.c (make_compound_operation): If an AND of SUBREG of
1503 LSHIFTRT does not simplify, see if just the AND of SUBREG does.
1505 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
1507 * tree-pass.h (make_pass_ch_vect): New.
1508 * passes.def: Add pass_ch_vect just before pass_if_conversion.
1510 * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
1511 pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
1512 make_pass_ch_vect): New.
1513 (pass_ch): Extend ch_base.
1515 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
1516 (ch_base::copy_headers): ...here.
1518 2015-07-02 Richard Biener <rguenther@suse.de>
1520 * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
1521 * fold-const.c (get_pointer_modulus_and_residue): Remove.
1522 (fold_binary_loc): Implement (T)ptr & CST in terms of
1523 get_pointer_alignment_1.
1524 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
1525 Make sure to build the alignment test on a SSA name without
1526 final alignment info valid only after the prologue.
1528 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
1530 * config/cris/cris.md ("epilogue"): Remove condition.
1531 ("prologue"): Ditto.
1533 2015-07-02 Richard Biener <rguenther@suse.de>
1535 * tree-ssa-dom.c (build_and_record_new_cond): Add optional
1536 parameter to record a condition that is false.
1537 (record_conditions): When recording an extra NE_EXPR that is
1538 true also record a EQ_EXPR that is false.
1540 2015-07-02 Bin Cheng <bin.cheng@arm.com>
1542 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
1543 (tree_ssa_iv_optimize_init): Initialize iv_obstack.
1544 (alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
1545 (set_iv, find_interesting_uses_address, add_candidate_1): New
1546 argument to alloc_iv.
1547 (find_interesting_uses_op, find_interesting_uses_cond): Don't
1548 duplicate struct iv.
1549 (free_loop_data): Don't free struct iv explicitly.
1550 (tree_ssa_iv_optimize_finalize): Free iv_obstack.
1552 2015-07-01 DJ Delorie <dj@redhat.com>
1554 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
1556 (SUPPORTS_DISCRIMINATOR): Define.
1558 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
1561 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
1562 there are no CALLs in the same pattern.
1564 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
1566 PR rtl-optimization/61047
1567 * rtlanal.c (get_initial_register_offset): New function.
1568 (rtx_addr_can_trap_p_1): Check offsets of stack references.
1570 2015-07-01 Richard Biener <rguenther@suse.de>
1572 * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
1573 X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
1574 ~X CMP C -> X CMP' ~C to ...
1575 * match.pd: ... patterns here.
1577 2015-07-01 Nick Clifton <nickc@redhat.com>
1579 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
1580 a 16-bit value into a 20-bit memory slot.
1582 2015-07-01 Jiong Wang <jiong.wang@arm.com>
1584 * doc/sourcebuild.texi (AArch64-specific attributes): Document
1585 "aarch64_tiny", "aarch64_small", "aarch64_large",
1586 "aarch64_little_endian", "aarch64_big_endian".
1588 2015-07-01 Jiong Wang <jiong.wang@arm.com>
1590 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
1591 Document "aarch64_small_fpic".
1593 2015-07-01 Jiong Wang <jiong.wang@arm.com>
1595 * configure.ac: Add check for aarch64 assembler -fpic relocation
1597 * configure: Regenerate.
1598 * config.in: Regenerate.
1599 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
1600 to -fPIC if not support of -fpic relocation modifier in assembler.
1602 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
1605 * rtl.c (classify_insn): Handle returns in PARALLELs.
1607 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
1610 * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
1611 to true if the function is nested and if not optimizing.
1612 (convert_local_omp_clauses): Initialize need_frame to true if the
1613 function contains nested functions and if not optimizing.
1615 2015-07-01 Richard Biener <rguenther@suse.de>
1617 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
1618 (X & Y) ^ Y -> ~X & Y transforms to ...
1619 * match.pd: ... here.
1621 2015-07-01 Richard Biener <rguenther@suse.de>
1623 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
1624 of converts to avoid uninteresting noise from the conversion
1625 simplifying patterns.
1627 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
1629 * config/c6x/c6x.c (try_rename_operands): Do not depend on
1630 gcc_assert evaluating its argument for side-effect.
1632 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
1635 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
1638 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
1640 * lto-streamer-out.c (class DFS): Adjust hash_scc method.
1641 (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
1642 (hash_scc): Add this_ref_p and ref_p parameters and pass them
1643 to the inner DFS walk.
1645 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
1647 * target-insns.def (jump): New targetm instruction pattern.
1648 * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
1649 instead of gen_jump.
1650 (fix_up_crossing_landing_pad): Likewise.
1651 (add_labels_and_missing_jumps): Likewise.
1652 (fix_crossing_conditional_branches): Likewise.
1653 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
1654 (force_nonfallthru_and_redirect): Likewise.
1655 * cse.c (cse_insn): Likewise.
1656 * expmed.c (expand_divmod): Likewise.
1657 * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
1658 * haifa-sched.c (init_before_recovery): Likewise.
1659 (sched_create_recovery_edges): Likewise.
1660 * ifcvt.c (find_cond_trap): Likewise.
1661 * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
1662 (expand_float, expand_fix): Likewise.
1663 * stmt.c (emit_jump): Likewise.
1665 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
1667 * defaults.h (HAVE_load_multiple, gen_load_multiple)
1668 (HAVE_store_multiple, gen_store_multiple): Delete.
1669 * target-insns.def (load_multiple, store_multiple): New targetm
1670 instruction patterns.
1671 * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
1672 of HAVE_*/gen_* interface.
1674 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
1676 * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
1677 (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
1678 (gen_mem_signal_fence): Delete.
1679 * target-insns.def (mem_signal_fence, mem_thread_fence)
1680 (memory_barrier): New targetm instruction patterns.
1681 * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
1683 (expand_mem_signal_fence): Likewise.
1685 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
1687 * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
1688 * target-insns.def (epilogue, prologue, sibcall_prologue): New
1689 targetm instruction patterns.
1690 * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
1692 * calls.c (expand_call): Likewise.
1693 * cfgrtl.c (cfg_layout_finalize): Likewise.
1694 * df-scan.c (df_get_entry_block_def_set): Likewise.
1695 (df_get_exit_block_use_set): Likewise.
1696 * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
1697 * final.c (final_start_function): Likewise.
1698 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1699 (reposition_prologue_and_epilogue_notes): Likewise.
1700 * reorg.c (find_end_label): Likewise.
1701 * toplev.c (process_options): Likewise.
1703 2015-06-30 David Malcolm <dmalcolm@redhat.com>
1705 * typed-splay-tree.h: New file.
1707 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
1710 * lra-int.h (lra_substitute_pseudo): Add a parameter.
1711 (lra_substitute_pseudo_within_insn): Ditto.
1712 * lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
1714 (lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
1715 to lra_substitute_pseudo.
1716 * lra-lives.c (process_bb_lives): Add an argument to
1717 lra_substitute_pseudo_within_insn call.
1718 * lra-constraints.c (inherit_reload_reg, split_reg): Add an
1719 argument to lra_substitute_pseudo and
1720 lra_substitute_pseudo_within_insn calls.
1721 (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
1723 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
1725 * configure: Regenerated.
1727 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
1729 * config.gcc: Support i[34567]86-*-elfiamcu target.
1730 * config/i386/iamcu.h: New.
1731 * config/i386/i386.opt: Add -miamcu.
1732 * doc/invoke.texi: Document -miamcu.
1733 * common/config/i386/i386-common.c (ix86_handle_option): Turn
1734 off x87/MMX/SSE/AVX codegen for -miamcu.
1735 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1736 __iamcu/__iamcu__ for -miamcu.
1737 * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
1738 to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
1739 (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
1740 * config/i386/i386.c (ix86_option_override_internal): Ignore and
1741 warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
1742 MCU by default. Default long double to 64-bit for Intel MCU.
1743 Turn on -freg-struct-return for Intel MCU. Issue an error when
1744 -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
1746 (function_arg_advance_32): Pass value whose size is no larger
1747 than 8 bytes in registers for Intel MCU.
1748 (function_arg_32): Likewise.
1749 (ix86_return_in_memory): Return value whose size is no larger
1750 than 8 bytes in registers for Intel MCU.
1751 (iamcu_alignment): New function.
1752 (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
1754 (ix86_local_alignment): Don't increase alignment for Intel MCU.
1755 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
1758 2015-06-30 Marek Polacek <polacek@redhat.com>
1760 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
1761 both operands of the resulting expression.
1763 * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
1764 the final expression with the operand's type and then convert
1765 it to the type of the expression.
1767 2015-06-30 Richard Biener <rguenther@suse.de>
1769 * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
1770 ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
1771 (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
1772 * match.pd: ... to patterns here.
1774 2015-06-30 Richard Biener <rguenther@suse.de>
1776 PR tree-optimization/66704
1777 * tree-vect-data-refs.c (vect_setup_realignment): Use
1778 make_ssa_name for non-SSA name source.
1780 2015-06-30 Jakub Jelinek <jakub@redhat.com>
1783 * omp-low.c (simd_clone_adjust): Handle addressable linear
1784 or uniform parameters or non-gimple type uniform parameters.
1786 2015-06-30 Richard Biener <rguenther@suse.de>
1788 * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
1789 ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
1790 ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
1791 * match.pd: ... here.
1792 Add a few cases of A - B -> A + (-B) when B "easily" negates.
1793 Move (x & y) | x -> x and friends before
1794 (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
1796 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
1798 * config/sparc/leon.md (leon_load): Enable for all LEON variants if
1799 -mfix-ut699 is not specified.
1800 (leon3_load): Rename into...
1801 (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
1804 2015-06-30 Marek Polacek <polacek@redhat.com>
1806 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
1807 * match.pd: ... here.
1809 2015-06-30 Richard Biener <rguenther@suse.de>
1811 * target-insns.def (canonicalize_funcptr_for_compare): Add.
1812 * fold-const.c (build_range_check): Replace uses of
1813 HAVE_canonicalize_funcptr_for_compare.
1814 (fold_widened_comparison): Likewise.
1815 (fold_sign_changed_comparison): Likewise.
1816 * dojump.c: Include "target.h".
1817 (do_compare_and_jump): Replace uses of
1818 HAVE_canonicalize_funcptr_for_compare and
1819 gen_canonicalize_funcptr_for_compare.
1820 * expr.c (do_store_flag): Likewise.
1822 2015-06-30 Tom de Vries <tom@codesourcery.com>
1824 PR tree-optimization/66652
1825 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
1826 max_loop_iterations to determine if nit + 1 overflows.
1828 2015-06-30 Richard Biener <rguenther@suse.de>
1830 * tree-vrp.c (register_edge_assert_for_2): Also register
1831 asserts for dominating conversion results.
1833 2015-06-30 Bin Cheng <bin.cheng@arm.com>
1835 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
1838 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
1841 * configure.ac: Fix filds and fildq test for 64-bit.
1842 * configure: Regenerated.
1844 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
1846 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
1847 (nvptx_reorg): Here. Keep the non-subreg pieces.
1849 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
1851 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
1852 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
1854 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
1856 * config/i386/i386.md (*jcc_1): Use %! in asm template.
1857 Set attribute "length_nobnd" instead of "length".
1860 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
1862 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
1864 * config/nios2/nios2.c (nios2_delegitimize_address): Make
1865 assert less restrictive.
1867 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1870 * cgraphunit.c (cgraph_node::finalize_function): Do not call
1871 do_warn_unused_parameter.
1872 * function.c (do_warn_unused_parameter): Move from here.
1873 * function.h (do_warn_unused_parameter): Do not declare.
1875 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
1878 * gcc.target/arm/armv-sync-comp-swap.c: New.
1879 * gcc.target/arm/armv-sync-op-acquire.c: New.
1880 * gcc.target/arm/armv-sync-op-full.c: New.
1881 * gcc.target/arm/armv-sync-op-release.c: New.
1883 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
1886 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
1887 initial acquire barrier with final barrier.
1889 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
1892 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
1893 initial acquire barrier with final barrier.
1895 2015-06-29 Richard Henderson <rth@redhat.com>
1897 * config/i386/constraints.md (Bf): New constraint.
1898 * config/i386/i386-c.c (ix86_target_macros): Define
1899 __GCC_ASM_FLAG_OUTPUTS__.
1900 * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
1902 * doc/extend.texi (FlagOutputOperands): Document them.
1904 2015-06-29 Jiong Wang <jiong.wang@arm.com>
1906 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
1907 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
1909 (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
1910 * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
1911 SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
1912 (aarch64_symbol_context): Ditto.
1913 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
1914 and use new pattern name.
1915 (aarch64_expand_mov_immediate): Ditto.
1916 (aarch64_print_operand): Ditto.
1917 (aarch64_classify_tls_symbol): Ditto.
1919 2015-06-29 Marek Polacek <polacek@redhat.com>
1920 Marc Glisse <marc.glisse@inria.fr>
1922 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
1923 * match.pd: ... pattern here.
1925 2015-06-29 Tom de Vries <tom@codesourcery.com>
1927 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
1930 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
1932 * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
1933 feature description, split out the native option, add a link to
1934 the feature documentation, rearrange and slightly rewrite text.
1935 (Aarch64 options, -mcpu): Likewise.
1936 (Aarch64 options, Feature Modifiers): Add an anchor. Mention
1937 +rdma implies Adv. SIMD.
1939 2015-06-29 Marek Polacek <polacek@redhat.com>
1942 * function.c (stack_protect_epilogue): Remove a cast to int.
1943 * doc/invoke.texi: Update -Wswitch-bool description.
1945 2015-06-29 Richard Biener <rguenther@suse.de>
1947 * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
1948 * fold-const.c (fold_binary_loc): Move &A - &B simplification
1949 via ptr_difference_const ...
1950 * match.pd: ... here.
1951 When matching (X ^ Y) == Y also match with swapped operands.
1953 2015-06-29 Richard Biener <rguenther@suse.de>
1955 * lto-streamer.h (LTO_major_version): Bump to 5.
1957 2015-06-29 Richard Biener <rguenther@suse.de>
1959 PR tree-optimization/66677
1960 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
1961 STMT_VINFO_VEC_STMT clobbering less strict.
1963 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
1966 * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
1967 division, compute max and min when value ranges for dividend and
1968 divisor are available.
1970 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
1971 Sandra Loosemore <sandra@codesourcery.com>
1973 * regrename.h (regrename_do_replace): Change to return bool.
1974 * regrename.c (rename_chains): Check return value of
1976 (regrename_do_replace): Re-validate the modified insns and
1978 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
1979 Update to match rename_chains changes.
1980 * config/c6x/c6x.c (try_rename_operands): Assert that
1981 regrename_do_replace returns true.
1983 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
1985 * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
1986 operand 2 here. Use copy_addr_to_reg to copy non-index
1987 register operand 2 to a temporary.
1988 (<mode>_stx): Ditto for operand 1.
1989 (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
1990 * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
1991 (ix86_store_bounds): Ditto.
1993 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
1995 * print-tree.c (print_node) [TREE_VEC]: Print its length.
1997 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
1999 * gimple.c (gimple_call_set_fndecl): Remove.
2000 * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
2001 build1_loc directly instead of build_fold_addr_expr_loc.
2003 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
2005 * hash-map.h (hash_map::traverse): Use the definition of the
2006 Key typedef rather than the typedef itself.
2008 2015-06-26 Martin Jambor <mjambor@suse.cz>
2011 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
2012 NULL instead of calling dump_enabled_p.
2014 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
2016 * config/aarch64/aarch64.opt: (override): New.
2017 * doc/invoke.texi (override): Document.
2018 * config/aarch64/aarch64.c (aarch64_flag_desc): New
2019 (aarch64_fusible_pairs): Likewise.
2020 (aarch64_tuning_flags): Likewise.
2021 (aarch64_tuning_override_function): Likewise.
2022 (aarch64_tuning_override_functions): Likewise.
2023 (aarch64_parse_one_option_token): Likewise.
2024 (aarch64_parse_boolean_options): Likewise.
2025 (aarch64_parse_fuse_string): Likewise.
2026 (aarch64_parse_tune_string): Likewise.
2027 (aarch64_parse_one_override_token): Likewise.
2028 (aarch64_parse_override_string): Likewise.
2029 (aarch64_override_options): Parse the -override string if it
2032 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
2034 * config/aarch64/aarch64-protos.h (tune_params): Remove
2036 (aarch64_tune_params): Remove const, change to no longer be
2038 * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
2039 change to no longer be a pointer, initialize to generic_tunings.
2040 (aarch64_min_divisions_for_recip_mul): Change dereference of
2041 aarch64_tune_params to member access.
2042 (aarch64_reassociation_width): Likewise.
2043 (aarch64_rtx_mult_cost): Likewise.
2044 (aarch64_address_cost): Likewise.
2045 (aarch64_branch_cost): Likewise.
2046 (aarch64_rtx_costs): Likewise.
2047 (aarch64_register_move_cost): Likewise.
2048 (aarch64_memory_move_cost): Likewise.
2049 (aarch64_sched_issue_rate): Likewise.
2050 (aarch64_builtin_vectorization_cost): Likewise.
2051 (aarch64_override_options): Take a copy of the selected tuning
2052 struct in to aarch64_tune_params, rather than just setting
2053 a pointer, change dereferences of aarch64_tune_params to member
2055 (aarch64_override_options_after_change): Change dereferences of
2056 aarch64_tune_params to member access.
2057 (aarch64_macro_fusion_p): Likewise.
2058 (aarch_macro_fusion_pair_p): Likewise.
2059 * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
2061 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
2063 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
2064 (aarch64_tune_flags): Likewise.
2065 (AARCH64_TUNE_FMA_STEERING): Likewise.
2066 * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
2067 to AARCH64_FL_USE_FMA_STEERING_PASS.
2068 (cortex-a57.cortex-a53): Likewise.
2069 (cortex-a72): Use cortexa72_tunings.
2070 (cortex-a72.cortex-a53): Likewise.
2071 (exynos-m1): Likewise.
2072 * config/aarch64/aarch64-protos.h (tune_params): Add
2073 a field: extra_tuning_flags.
2074 * config/aarch64/aarch64-tuning-flags.def: New.
2075 * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
2076 (aarch64_extra_tuning_flags): Likewise.
2077 (aarch64_tune_params): Declare here.
2078 * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
2079 (cortexa53_tunings): Likewise.
2080 (cortexa57_tunings): Likewise.
2081 (thunderx_tunings): Likewise.
2082 (xgene1_tunings): Likewise.
2083 (cortexa72_tunings): New.
2084 * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
2085 (gate): Check against aarch64_tune_params.
2086 * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
2089 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
2091 * config/aarch64/aarch64-fusion-pairs.def: New.
2092 * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
2093 * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
2094 aarch64_fusion_pairs.
2095 (AARCH64_FUSE_MOV_MOVK): Likewise.
2096 (AARCH64_FUSE_ADRP_ADD): Likewise.
2097 (AARCH64_FUSE_MOVK_MOVK): Likewise.
2098 (AARCH64_FUSE_ADRP_LDR): Likewise.
2099 (AARCH64_FUSE_CMP_BRANCH): Likewise.
2101 2015-06-26 Jiong Wang <jiong.wang@arm.com>
2103 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
2104 SYMBOL_SMALL_GOT_28K.
2105 * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
2106 relocation modifiers.
2107 (unspec): New enum "UNSPEC_GOTMALLPIC28K.
2108 (ldr_got_small_28k_<mode>): New.
2109 (ldr_got_small_28k_sidi): New.
2110 * config/aarch64/iterators.md (got_modifier): New mode iterator.
2111 * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
2112 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
2113 SYMBOL_SMALL_GOT_28K.
2114 (aarch64_rtx_costs): Add costs for new instruction sequences.
2115 (initialize_aarch64_code_model): Initialize new model.
2116 (aarch64_classify_symbol): Recognize new model and new symbol classification.
2117 (aarch64_asm_preferred_eh_data_format): Support new model.
2118 (aarch64_load_symref_appropriately): Generate new instruction
2119 sequences for -fpic.
2120 (TARGET_USE_PSEUDO_PIC_REG): New definition.
2121 (aarch64_use_pseudo_pic_reg): New function.
2123 2015-06-26 Jiong Wang <jiong.wang@arm.com>
2125 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
2126 SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
2127 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
2128 (aarch64_expand_mov_immediate): Ditto.
2129 (aarch64_print_operand): Ditto.
2130 (aarch64_classify_symbol): Ditto.
2132 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
2134 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
2136 2015-06-26 Bin Cheng <bin.cheng@arm.com>
2139 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
2140 assertion failed. Remove assertion itself.
2142 2015-06-26 Richard Biener <rguenther@suse.de>
2144 * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
2145 and -A CMP CST -> A CMP -CST which is redundant with a pattern
2147 Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
2148 (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
2149 (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
2150 * match.pd: ... patterns here.
2152 2015-06-26 Marek Polacek <polacek@redhat.com>
2154 * match.pd ((x | y) & ~(x & y) -> x ^ y,
2155 (x | y) & (~x ^ y) -> x & y): New patterns.
2157 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
2159 * rtl.h (emit): Add an optional boolean parameter to control
2160 whether barriers are emitted.
2161 * emit-rtl.c (emit): Likewise.
2162 * gensupport.c (get_emit_function): Return null rather than "emit".
2163 * genemit.c (gen_emit_seq): Handle the null return value.
2164 Don't emit barriers after the final instruction in the sequence.
2165 * gentarget-def.c (main): Don't emit barriers after the instruction.
2167 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2169 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
2172 2015-06-26 Richard Biener <rguenther@suse.de>
2174 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
2176 2015-06-26 Richard Biener <rguenther@suse.de>
2178 * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
2179 irrespective on whether the inner operation has a single use
2180 of both off are constant.
2182 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
2183 Segher Boessenkool <segher@kernel.crashing.org>
2186 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
2187 before doing PUT_MODE or PUT_CODE on operands to avoid
2188 in-place RTX modification.
2190 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
2192 * gentarget-def.c (def_target_insn): Cast return of strtol to
2195 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
2197 * gimple.h (gimple_call_set_fn): Move inline function.
2198 * gimple.c (gimple_call_set_fn): Relocate here.
2200 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
2204 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
2205 the replacement insn will work.
2207 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
2209 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
2212 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
2214 * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
2215 * cgraph.h: Include ipa-ref.h and plugin-api.h.
2216 (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
2217 (symtab_node::address_can_be_compared_p): Move function.
2218 * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
2220 * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
2221 * auto-profile.c: Likewise.
2222 * bb-reorder.c: Likewise.
2223 * builtins.c: Likewise.
2224 * calls.c: Likewise.
2225 * cfgexpand.c: Likewise.
2226 * cgraphbuild.c: Likewise.
2227 * cgraphclones.c: Likewise.
2228 * cgraphunit.c: Likewise.
2229 * combine.c: Likewise.
2230 * coverage.c: Likewise.
2231 * data-streamer-in.c: Likewise.
2232 * data-streamer-out.c: Likewise.
2233 * data-streamer.c: Likewise.
2234 * dbxout.c: Likewise.
2235 * dwarf2out.c: Likewise.
2236 * except.c: Likewise.
2238 * final.c: Likewise.
2239 * fold-const.c: Likewise.
2240 * ggc-page.c: Likewise.
2241 * gimple-fold.c: Likewise.
2242 * gimple-iterator.c: Likewise.
2243 * gimple-pretty-print.c: Likewise.
2244 * gimple-streamer-in.c: Likewise.
2245 * gimple-streamer-out.c: Likewise.
2246 * gimple.c: Likewise.
2247 * gimplify.c: Likewise.
2248 * ipa-chkp.c: Likewise.
2249 * ipa-comdats.c: Likewise.
2250 * ipa-cp.c: Likewise.
2251 * ipa-devirt.c: Likewise.
2252 * ipa-icf-gimple.c: Likewise.
2253 * ipa-icf.c: Likewise.
2254 * ipa-inline-analysis.c: Likewise.
2255 * ipa-inline-transform.c: Likewise.
2256 * ipa-inline.c: Likewise.
2257 * ipa-polymorphic-call.c: Likewise.
2258 * ipa-profile.c: Likewise.
2259 * ipa-prop.c: Likewise.
2260 * ipa-pure-const.c: Likewise.
2261 * ipa-ref.c: Likewise.
2262 * ipa-reference.c: Likewise.
2263 * ipa-split.c: Likewise.
2264 * ipa-utils.c: Likewise.
2265 * ipa-visibility.c: Likewise.
2267 * langhooks.c: Likewise.
2268 * lto-cgraph.c: Likewise.
2269 * lto-compress.c: Likewise.
2270 * lto-opts.c: Likewise.
2271 * lto-section-in.c: Likewise.
2272 * lto-section-out.c: Likewise.
2273 * lto-streamer-in.c: Likewise.
2274 * lto-streamer-out.c: Likewise.
2275 * lto-streamer.c: Likewise.
2276 * omp-low.c: Likewise.
2277 * opts-global.c: Likewise.
2278 * passes.c: Likewise.
2279 * predict.c: Likewise.
2280 * print-tree.c: Likewise.
2281 * profile.c: Likewise.
2283 * sanopt.c: Likewise.
2284 * stor-layout.c: Likewise.
2285 * symtab.c: Likewise.
2286 * toplev.c: Likewise.
2287 * trans-mem.c: Likewise.
2288 * tree-cfg.c: Likewise.
2289 * tree-chkp.c: Likewise.
2290 * tree-eh.c: Likewise.
2291 * tree-emutls.c: Likewise.
2292 * tree-inline.c: Likewise.
2293 * tree-nested.c: Likewise.
2294 * tree-parloops.c: Likewise.
2295 * tree-pretty-print.c: Likewise.
2296 * tree-profile.c: Likewise.
2297 * tree-sra.c: Likewise.
2298 * tree-ssa-alias.c: Likewise.
2299 * tree-ssa-live.c: Likewise.
2300 * tree-ssa-loop-ivcanon.c: Likewise.
2301 * tree-ssa-loop-ivopts.c: Likewise.
2302 * tree-ssa-pre.c: Likewise.
2303 * tree-ssa-sccvn.c: Likewise.
2304 * tree-ssa-strlen.c: Likewise.
2305 * tree-ssa-structalias.c: Likewise.
2306 * tree-streamer-in.c: Likewise.
2307 * tree-streamer-out.c: Likewise.
2308 * tree-streamer.c: Likewise.
2309 * tree-switch-conversion.c: Likewise.
2310 * tree-tailcall.c: Likewise.
2311 * tree-vect-data-refs.c: Likewise.
2312 * tree-vect-stmts.c: Likewise.
2313 * tree-vectorizer.c: Likewise.
2316 * ubsan.c: Likewise.
2317 * value-prof.c: Likewise.
2318 * varasm.c: Likewise.
2319 * varpool.c: Likewise.
2320 * config/arm/arm.c: Likewise.
2321 * config/bfin/bfin.c: Likewise.
2322 * config/c6x/c6x.c: Likewise.
2323 * config/cris/cris.c: Likewise.
2324 * config/darwin-c.c: Likewise.
2325 * config/darwin.c: Likewise.
2326 * config/i386/i386.c: Likewise.
2327 * config/i386/winnt.c: Likewise.
2328 * config/microblaze/microblaze.c: Likewise.
2329 * config/mips/mips.c: Likewise.
2330 * config/rs6000/rs6000.c: Likewise.
2331 * config/rx/rx.c: Likewise.
2332 * config/s390/s390.c: Likewise.
2333 * config/tilegx/mul-tables.c: Likewise.
2335 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2337 * config/aarch64/aarch64.c, config/alpha/alpha.c,
2338 config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2339 config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
2340 config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
2341 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
2342 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
2343 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
2344 config/microblaze/microblaze.c, config/mips/mips.c,
2345 config/mmix/mmix.c, config/mn10300/mn10300.c,
2346 config/moxie/moxie.c, config/msp430/msp430.c,
2347 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
2348 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
2349 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
2350 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
2351 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
2352 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
2353 config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
2354 target-def.h include.
2355 * config/ft32/ft32.c: Likewise. Fix misapplied hunk.
2357 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2359 * Makefile.in (TARGET_DEF): Add target-insns.def.
2360 (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
2361 (build/gentarget-def.o): New rule.
2362 (genprogrtl): Add target-def.
2363 * target-insns.def, gentarget-def.c: New files.
2364 * target.def: Add targetm.have_* and targetm.gen_* hooks,
2365 based on the contents of target-insns.def.
2366 * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
2367 (HAVE_return, gen_return): Delete.
2368 * target-def.h: Include insn-target-def.h.
2369 * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
2370 instead of direct calls. Rely on them to do the appropriate assertions.
2371 * function.c (gen_return_pattern): Likewise. Return an rtx_insn *.
2372 (convert_jumps_to_returns): Use targetm interface instead of
2374 (thread_prologue_and_epilogue_insns): Likewise.
2375 * reorg.c (find_end_label, dbr_schedule): Likewise.
2376 * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
2377 * shrink-wrap.c (convert_to_simple_return): Likewise.
2378 (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
2380 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2382 * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
2383 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
2384 config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
2385 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
2386 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
2387 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
2388 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
2389 config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
2390 config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
2391 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
2392 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
2393 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
2394 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
2395 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
2396 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
2397 config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
2400 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2402 * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
2403 (unbounded_int_hashmap_traits::key_type): Likewise.
2404 * hash-map.h (hash_map): Get the key type from the traits.
2405 * hash-traits.h (default_hash_traits): By default, inherit from the
2407 * alias.c (alias_set_traits): Delete.
2408 (alias_set_entry_d::children): Use alias_set_hash as the first
2410 (record_alias_subset): Update accordingly.
2411 * except.c (tree_hash_traits): Delete.
2412 (type_to_runtime_map): Use tree_hash as the first template parameter.
2413 (init_eh): Update accordingly.
2414 * genmatch.c (capture_id_map_hasher): Delete.
2415 (cid_map_t): Use nofree_string_hash as first template parameter.
2416 * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
2417 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
2418 Use symbol_compare_hash as the first template parameter in
2420 * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
2421 (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
2423 * passes.c (pass_registry_hasher): Delete.
2424 (name_to_pass_map): Use nofree_string_hash as the first template
2426 (register_pass_name): Update accordingly.
2427 * sanopt.c (sanopt_tree_map_traits): Delete.
2428 (sanopt_tree_triplet_map_traits): Delete.
2429 (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
2431 (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
2432 the first template parameter.
2433 * sese.c (rename_map_hasher): Delete.
2434 (rename_map_type): Use tree_ssa_name_hash as the first template
2436 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
2437 (function_summary::m_map): Use map_hash as the first template
2439 (function_summary::release): Update accordingly.
2440 * tree-if-conv.c (phi_args_hash_traits): Delete.
2441 (predicate_scalar_phi): Use tree_operand_hash as the first template
2442 parameter to phi_arg_map.
2443 * tree-inline.h (dependence_hasher): Delete.
2444 (copy_body_data::dependence_map): Use dependence_hash as the first
2446 * tree-inline.c (remap_dependence_clique): Update accordingly.
2447 * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
2448 (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
2450 (addr_stridxptr): Update accordingly.
2451 * value-prof.c (profile_id_traits): Delete.
2452 (cgraph_node_map): Use profile_id_hash as the first template
2454 (init_node_map): Update accordingly.
2455 * config/alpha/alpha.c (string_traits): Delete.
2456 (machine_function::links): Use nofree_string_hash as the first
2458 (alpha_use_linkage, alpha_write_linkage): Update accordingly.
2459 * config/m32c/m32c.c (pragma_traits): Delete.
2460 (pragma_htab): Use nofree_string_hash as the first template parameter.
2461 (m32c_note_pragma_address): Update accordingly.
2462 * config/mep/mep.c (pragma_traits): Delete.
2463 (pragma_htab): Use nofree_string_hash as the first template parameter.
2464 (mep_note_pragma_flag): Update accordingly.
2465 * config/mips/mips.c (mips16_flip_traits): Delete.
2466 (mflip_mips16_htab): Use nofree_string_hash as the first template
2468 (mflip_mips16_use_mips16_p): Update accordingly.
2469 (local_alias_traits): Delete.
2470 (mips16_local_aliases): Use nofree_string_hash as the first template
2472 (mips16_local_alias): Update accordingly.
2474 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2476 * hash-map-traits.h (default_hashmap_traits): Delete.
2478 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2480 * hash-map-traits.h (unbounded_hashmap_traits): New class.
2481 (unbounded_int_hashmap_traits): Likewise.
2482 * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
2484 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2486 * ipa-icf.h (symbol_compare_hash): New class.
2487 (symbol_compare_hashmap_traits): Use it.
2488 * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
2489 (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
2490 (mem_alloc_description::reverse_mem_map_t): Remove redundant
2491 default_hashmap_traits.
2492 * sanopt.c (sanopt_tree_triplet_hash): New class.
2493 (sanopt_tree_triplet_map_traits): Use it.
2495 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2497 * gengtype-parse.c (require_template_declaration): Allow '+' in
2498 template parameters. Consolidate cases.
2499 * hash-traits.h (int_hash): New class.
2500 * alias.c (alias_set_hash): New structure.
2501 (alias_set_traits): Use it.
2502 * symbol-summary.h (function_summary::map_hash): New class.
2503 (function_summary::summary_hashmap_traits): Use it.
2504 * tree-inline.h (dependence_hash): New class.
2505 (dependence_hasher): Use it.
2506 * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
2507 * value-prof.c (profile_id_hash): New class.
2508 (profile_id_traits): Use it.
2510 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2512 * config/mips/mips.c (mips16_flip_traits): Use it.
2513 (local_alias_traits, mips16_local_aliases): Convert from a map of
2514 rtxes to a map of symbol names.
2515 (mips16_local_alias): Update accordingly.
2517 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2519 * hash-traits.h (string_hash, nofree_string_hash): New classes.
2520 * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
2521 * passes.c (pass_registry_hasher): Likewise.
2522 * config/alpha/alpha.c (string_traits): Likewise.
2523 * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
2524 * config/m32c/m32c.c (pragma_traits): Likewise.
2525 * config/mep/mep.c (pragma_traits): Likewise.
2527 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2529 * tree-hash-traits.h (tree_hash): New class.
2530 * except.c: Include tree-hash-traits.h.
2531 (tree_hash_traits): Use tree_hash.
2533 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2535 * tree-hash-traits.h (tree_ssa_name_hasher): New class.
2536 * sese.c: Include tree-hash-traits.h.
2537 (rename_map_hasher): Use tree_ssa_name_hasher.
2539 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2541 * tree-hash-traits.h (tree_decl_hash): New class.
2542 * tree-ssa-strlen.c: Include tree-hash-traits.h.
2543 (stridxlist_hash_traits): Use tree_decl_hash.
2545 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2547 * tree-hash-traits.h: New file.
2548 (tree_operand_hash): New class.
2549 * sanopt.c: Include tree-hash-traits.h.
2550 (sanopt_tree_map_traits): Use tree_operand_hash.
2551 * tree-if-conv.c: Include tree-hash-traits.h.
2552 (phi_args_hash_traits): Use tree_operand_hash.
2553 * tree-ssa-uncprop.c: Include tree-hash-traits.h.
2554 (val_ssa_equiv_hash_traits): Use tree_operand_hash.
2556 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2558 * hash-map-traits.h: Include hash-traits.h.
2559 (simple_hashmap_traits): New class.
2560 * mem-stats.h (hash_map): Change the default traits to
2561 simple_hashmap_traits<default_hash_traits<Key> >.
2563 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2565 * hash-table.h: Update comments.
2567 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2569 * hash-traits.h (default_hash_traits): New structure.
2570 * hash-set.h (default_hashset_traits): Delete.
2571 (hash_set): Use default_hash_traits<Key> instead of
2572 default_hashset_traits. Delete hash_entry type and use Key directly.
2573 * ipa-devirt.c (pair_traits): Delete.
2574 (default_hash_traits <type_pair>): Override.
2575 (odr_subtypes_equivalent_p): Remove pair_types template parameter.
2576 (odr_types_equivalent_p, add_type_duplicate): Likewise.
2578 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2580 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
2582 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2584 * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
2585 (has_is_empty, is_empty_helper): Delete.
2586 (has_mark_deleted, mark_deleted_helper): Delete.
2587 (has_mark_empty, mark_empty_helper): Delete.
2588 (hash_table::is_deleted): Call the Descriptor unconditionally.
2589 (hash_table::is_empty): Likewise.
2590 (hash_table::mark_deleted): Likewise.
2591 (hash_table::mark_empty): Likewise.
2593 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2595 * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
2596 redundant typedefs and members.
2597 * coverage.c (counts_entry): Inherit from pointer_hash. Remove
2599 * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
2600 * ipa-devirt.c (odr_name_hasher): Likewise.
2601 (polymorphic_call_target_hasher): Likewise.
2602 * ira-costs.c (cost_classes_hasher): Likewise.
2603 * statistics.c (stats_counter_hasher): Likewise.
2604 * trans-mem.c (log_entry_hasher): Likewise.
2605 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
2606 * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
2607 * tree-ssa-tail-merge.c (same_succ_def): Likewise.
2608 * var-tracking.c (variable_hasher): Likewise.
2609 * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
2610 Remove redundant typedefs and members.
2612 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2614 * hash-traits.h (ggc_cache_hasher): Rename to...
2615 (ggc_cache_remove): ...this and remove typedefs.
2616 (ggc_cache_ptr_hash): New class.
2617 * hash-table.h: Update commentary.
2618 * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
2619 rather than ggc_cache_hasher.
2620 (const_wide_int_hasher, reg_attr_hasher): Likewise.
2621 (const_double_hasher, const_fixed_hasher): Likewise.
2622 * function.c (insn_cache_hasher): Likewise.
2623 * trans-mem.c (tm_wrapper_hasher): Likewise.
2624 * tree.h (tree_decl_map_cache_hasher): Likewise.
2625 * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
2626 (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
2627 * ubsan.c (tree_type_map_cache_hasher): Likewise.
2628 * varasm.c (tm_clone_hasher): Likewise.
2629 * config/i386/i386.c (dllimport_hasher): Likewise.
2630 * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
2631 (tree_hasher): Likewise.
2633 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2635 * hash-traits.h (ggc_hasher): Rename to...
2636 (ggc_remover): ...this and remove typedefs.
2637 (ggc_cache_hasher): Update accordingly. Add typedefs.
2638 (ggc_ptr_hash): New class.
2639 * hash-table.h: Update comment.
2640 * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
2642 * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
2643 (tree_descriptor_hasher): Likewise.
2644 * cgraph.c (function_version_hasher): Likewise.
2645 * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
2646 (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
2647 (dw_loc_list_hasher, addr_hasher): Likewise.
2648 * function.h (used_type_hasher): Likewise.
2649 * function.c (temp_address_hasher): Likewise.
2650 * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
2651 * libfuncs.h (libfunc_hasher): Likewise.
2652 * lto-streamer.h (decl_state_hasher): Likewise.
2653 * optabs.c (libfunc_decl_hasher): Likewise.
2654 * tree-scalar-evolution.c (scev_info_hasher): Likewise.
2655 * varasm.c (section_hasher, object_block_hasher): Likewise.
2656 (const_rtx_desc_hasher): Likewise.
2657 * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
2658 * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
2660 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2662 * hash-traits.h (free_ptr_hash): New class.
2663 * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
2664 rather than typed_free_remove. Remove redudant typedefs.
2665 (external_ref_hasher): Likewise.
2666 * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
2667 (ehspec_hasher): Likewise.
2668 * ggc-common.c (saving_hasher): Likewise.
2669 * gimplify.c (gimplify_hasher): Likewise.
2670 * haifa-sched.c (delay_i2_hasher): Likewise.
2671 * loop-invariant.c (invariant_expr_hasher): Likewise.
2672 * loop-iv.c (biv_entry_hasher): Likewise.
2673 * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
2674 * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
2675 * tree-cfg.c (locus_discrim_hasher): Likewise.
2676 * tree-eh.c (finally_tree_hasher): Likewise.
2677 * tree-into-ssa.c (var_info_hasher): Likewise.
2678 * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
2679 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
2680 * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
2681 * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
2682 * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
2683 * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
2684 (shared_bitmap_hasher): Likewise.
2685 * tree-ssa-threadupdate.c (redirection_data): Likewise.
2686 * tree-vectorizer.h (peel_info_hasher): Likewise.
2687 * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
2688 * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
2690 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2692 * hash-table.h: Update comments.
2693 * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
2694 (nofree_ptr_hash): New class.
2695 * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
2696 than typed_noop_remove. Remove redudant typedefs.
2697 * attribs.c (attribute_hasher): Likewise.
2698 * cfg.c (bb_copy_hasher): Likewise.
2699 * cselib.c (cselib_hasher): Likewise.
2700 * dse.c (invariant_group_base_hasher): Likewise.
2701 * dwarf2cfi.c (trace_info_hasher): Likewise.
2702 * dwarf2out.c (macinfo_entry_hasher): Likewise.
2703 (comdat_type_hasher, loc_list_hasher): Likewise.
2704 * gcse.c (pre_ldst_expr_hasher): Likewise.
2705 * genmatch.c (id_base): Likewise.
2706 * genrecog.c (test_pattern_hasher): Likewise.
2707 * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
2708 * haifa-sched.c (delay_i1_hasher): Likewise.
2709 * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
2710 * ipa-icf.h (congruence_class_group_hash): Likewise.
2711 * ipa-profile.c (histogram_hash): Likewise.
2712 * ira-color.c (allocno_hard_regs_hasher): Likewise.
2713 * lto-streamer.h (string_slot_hasher): Likewise.
2714 * lto-streamer.c (tree_entry_hasher): Likewise.
2715 * plugin.c (event_hasher): Likewise.
2716 * postreload-gcse.c (expr_hasher): Likewise.
2717 * store-motion.c (st_expr_hasher): Likewise.
2718 * tree-sra.c (uid_decl_hasher): Likewise.
2719 * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
2720 (ssa_name_var_hash): Likewise.
2721 * tree-ssa-live.c (tree_int_map_hasher): Likewise.
2722 * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
2723 * tree-ssa-pre.c (pre_expr_d): Likewise.
2724 * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
2725 * vtable-verify.h (registration_hasher): Likewise.
2726 * vtable-verify.c (vtbl_map_hasher): Likewise.
2727 * config/arm/arm.c (libcall_hasher): Likewise.
2728 * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
2729 * config/ia64/ia64.c (bundle_state_hasher): Likewise.
2730 * config/sol2.c (comdat_entry_hasher): Likewise.
2731 * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
2732 (print_fold_checksum, fold_checksum_tree): Likewise.
2733 (debug_fold_checksum, fold_build1_stat_loc): Likewise.
2734 (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
2735 (fold_build_call_array_loc): Likewise.
2736 * tree-ssa-ccp.c (gimple_htab): Likewise.
2737 * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
2738 rather than pointer_type.
2740 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2742 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
2743 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
2745 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2747 * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
2748 (ggc_hasher::ggc_mx): Likewise.
2749 (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
2750 that duplicate ggc_hasher ones.
2752 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2754 * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
2755 (gt_cleare_cache): Check here for deleted and empty entries.
2756 Replace handle_cache_entry with a call to keep_cache_entry.
2757 * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
2758 (ggc_cache_hasher::keep_cache_entry): New function.
2759 * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
2760 (tm_wrapper_hasher::keep_cache_entry): New function.
2761 * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
2762 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
2763 * tree.c (type_cache_hasher::handle_cache_entry): Delete.
2764 (type_cache_hasher::keep_cache_entry): New function.
2765 (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
2766 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
2767 * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
2768 (tree_type_map_cache_hasher::keep_cache_entry): New function.
2769 * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
2770 (tm_clone_hasher::keep_cache_entry): New function.
2771 * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
2772 (dllimport_hasher::keep_cache_entry): New function.
2774 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2776 * hash-table.h: Include hash-traits.h.
2777 (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
2778 (ggc_cache_hasher): Move to...
2779 * hash-traits.h: ...this new file.
2781 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
2783 * tree-core.h (struct tree_optimization_option): Make opts a pointer to
2784 struct cl_optimization.
2785 * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
2786 * tree.c (make_node_stat): Allocate cl_optimization struct.
2787 (copy_node_stat): Allocate and copy cl_optimization struct.
2789 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
2791 * function.h (struct incoming_args): Move struct.
2792 (pass_by_reference, reference_callee_copied): Remove prototypes.
2793 * emit-rtl.h (struct incoming_args): Relocate struct here.
2794 * calls.h (pass_by_reference, reference_callee_copied): Relocate
2796 * function.c (pass_by_reference, reference_callee_copied): Move.
2797 * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
2798 * cfgloop.h: Don't include tm.h or hard-reg-set.h.
2799 * ipa-chkp.c: Include calls.h.
2801 2015-06-25 Andrew Macleod <amacleod@redhat.com>
2803 * alias.h (alias_set_type): Move typedef.
2804 * coretypes.h (alias_set_type): Relocate typedef here.
2805 * rtl.h: Don't include alias.h.
2807 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
2809 * cgraph.h (cgraph_rtl_info): Move to rtl.h
2810 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
2812 * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
2813 * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
2815 * calls.c: Include hard-reg-set.h before rtl.h.
2818 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
2819 Vladimir Makarov <vmakarov@redhat.com>
2821 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
2824 2015-06-25 Richard Biener <rguenther@suse.de>
2826 * fold-const.c (fold_binary_loc): Move simplification of
2827 (X <<>> C1) & C2 ...
2828 * match.pd: ... here.
2830 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
2832 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
2834 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
2836 * match.pd: Add patterns for vec_conds between 1 and 0.
2838 2015-06-25 Richard Biener <rguenther@suse.de>
2840 * tree-vect-stmts.c (vectorizable_conversion): Do not set
2841 STMT_VINFO_VEC_STMT for SLP.
2842 (vectorizable_store): Likewise.
2843 (vectorizable_load): Likewise.
2844 (vect_transform_stmt): Catch SLP vectorization clobbering
2845 STMT_VINFO_VEC_STMT.
2847 2015-06-25 Richard Biener <rguenther@suse.de>
2849 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
2851 (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
2852 cleanup resulting dead code and parameters.
2853 (vect_transform_slp_perm_load): Adjust.
2855 2015-06-25 Nick Clifton <nickc@redhat.com>
2857 * config/bfin/bfin.c (bfin_expand_prologue): Set
2858 current_function_static_stack_size if flag_stack_usage_info is set.
2859 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
2860 * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
2861 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2862 * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
2864 2015-06-25 Tom de Vries <tom@codesourcery.com>
2866 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
2867 comment that the generated IV is unsigned.
2869 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2872 * config/arm/arm.c (arm_dbx_register_number): Return
2873 DWARF_FRAME_REGISTERS by default.
2875 2015-06-25 Tom de Vries <tom@codesourcery.com>
2877 * dominance.c (calculate_dominance_info): Fix verify_dominators call
2878 argument. Call verify_dominator when reusing dominator info.
2880 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
2883 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
2884 an additional element of the unspec vector. Modify indices
2886 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
2887 * config/sh/sh.c (prepare_move_operands): Pass incremented
2888 const_int to gen_GOTaddr2picreg.
2889 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
2891 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
2893 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
2894 Condition on TARGET_FLOAT.
2896 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
2898 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
2901 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
2903 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
2905 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
2906 aarch64_err_no_fpadvsimd.
2908 * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
2909 (aarch64_layout_arg, aarch64_init_cumulative_args): Use
2910 aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
2911 (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
2912 Turn error into assert, test TARGET_FLOAT.
2913 (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
2916 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
2919 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
2921 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
2923 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
2925 2015-06-24 Renlin Li <renlin.li@arm.com>
2927 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
2928 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
2930 2015-06-24 Richard Biener <rguenther@suse.de>
2932 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
2934 (lower_opt_convert): Support lowering of conditional view_convert.
2935 (parser::parse_operation): Likewise.
2936 (parser::parse_for): Likewise.
2938 2015-06-24 Renlin Li <renlin.li@arm.com>
2940 * varasm.c (emit_local): Use unsigned int for align variable.
2942 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2945 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
2946 for negative numbers.
2948 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2950 PR rtl-optimization/66306
2951 * reload.c (find_reloads): Swap the match_dup info for
2952 commutative operands.
2954 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2956 * config/s390/vx-builtins.md
2957 ("vec_scatter_element<mode>_<non_vec_int>")
2958 ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
2959 attribute with bhfgq.
2961 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2963 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
2965 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2967 * config/s390/s390-builtin-types.def: Add flag to indicate the
2968 options under which the function type is needed.
2969 * config/s390/s390-builtins.def: Add flag to indicate the options
2970 under which the builtin is enabled.
2971 * config/s390/s390-builtins.h: Add flags parameter to macro
2973 (bflags_for_builtin): New function.
2974 (flags_for_builtin): Renamed to ...
2975 (opflags_for_builtin): ... this.
2976 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
2977 flags_for_builtin to bflags_for_builtin and
2978 flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
2979 * config/s390/s390.c: Add initialization of bflags_builtin and
2980 opflags_builtin arrays.
2981 Remove code for flags_builtin.
2982 (s390_init_builtins): Only create builtin function types if one of
2983 their flags is active.
2984 Only create builtins if all of their flags are active.
2985 (s390_expand_builtin): Rename flags_for_builtin to
2986 opflags_for_builtin.
2988 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2990 * config/s390/vecintrin.h: Remove internal builtins.
2992 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2994 * config/s390/s390.c (s390_secondary_reload): Fix check for
2995 GENERAL_REGS register class.
2997 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2999 * config/s390/s390.c (s390_support_vector_misalignment): Call
3000 default implementation for !TARGET_VX.
3002 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3004 * config/s390/s390.c (s390_legitimate_constant_p): Add
3007 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3009 * config/s390/s390.c (s390_vector_abi): New variable definition.
3010 (s390_check_type_for_vector_abi): New function.
3011 (TARGET_ASM_FILE_END): New macro definition.
3012 (s390_asm_file_end): New function.
3013 (s390_function_arg): Call s390_check_type_for_vector_abi.
3014 (s390_gimplify_va_arg): Likewise.
3015 * configure: Regenerate.
3016 * configure.ac: Check for .gnu_attribute Binutils feature.
3018 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
3021 * config/bfin/bfin.c (hwloop_optimize): Initialize
3022 JUMP_LABEL for newly created jump.
3024 2015-06-23 Tristan Gingold <gingold@adacore.com>
3026 * collect-utils.c (collect_wait): Unlink the response file here
3029 (utils_cleanup): ...and here.
3031 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
3033 * df-scan.c: Don't include target-def.h.
3034 * targhooks.c: Likewise.
3035 * config/arm/arm-c.c: Likewise.
3036 * config/i386/i386-c.c: Likewise.
3037 * config/nds32/nds32-cost.c: Likewise.
3038 * config/nds32/nds32-fp-as-gp.c: Likewise.
3039 * config/nds32/nds32-intrinsic.c: Likewise.
3040 * config/nds32/nds32-isr.c: Likewise.
3041 * config/nds32/nds32-md-auxiliary.c: Likewise.
3042 * config/nds32/nds32-memory-manipulation.c: Likewise.
3043 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3044 * config/nds32/nds32-predicates.c: Likewise.
3046 2015-06-23 Richard Biener <rguenther@suse.de>
3048 PR tree-optimization/66636
3049 * tree-vect-stmts.c (vectorizable_store): Properly compute the
3050 def type for further defs for strided stores.
3052 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
3054 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
3055 conditional selects.
3056 (setcc_int<mode>, setcc_float<mode>): Reformat.
3058 2015-06-23 Marek Polacek <polacek@redhat.com>
3060 * match.pd ((x + y) - (x | y) -> x & y,
3061 (x + y) - (x & y) -> x | y): New patterns.
3063 2015-06-23 Ludovic Courtès <ludo@gnu.org>
3066 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
3067 '-dynamic-linker' within %{!shared: ...}.
3069 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
3072 * config/i386/predicates.md (addsub_vm_operator): New predicate.
3073 (addsub_vs_operator): Ditto.
3074 (addsub_vs_parallel): Ditto.
3075 * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
3076 (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
3077 Put minus RTX before plus and adjust vec_merge selector.
3078 (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
3079 (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
3080 (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
3081 (addsub vec_merge splitters): New combiner splitters.
3082 (addsub vec_select/vec_concat splitters): Ditto.
3084 2015-06-23 Bin Cheng <bin.cheng@arm.com>
3086 PR tree-optimization/66449
3087 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
3088 POINTER_PLUS_EXPR for pointers.
3090 2015-06-23 Alan Modra <amodra@gmail.com>
3092 * rtlanal.c (commutative_operand_precedence): Correct comments.
3093 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
3094 declaration. Return an int. Distinguish REG,REG return from
3096 (struct simplify_plus_minus_op_data): Make local to function.
3097 (simplify_plus_minus): Don't set canonicalized if merely sorting
3098 registers. Avoid packing ops if nothing changes. White space fixes.
3100 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
3102 * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
3103 -fdump-ada-spec is passed but not if -fsyntax-only is.
3105 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
3108 * lra-lives.c (process_bb_lives): Check insn copying the same
3109 reload pseudo and don't create a copy for it.
3111 2015-06-22 Tom de Vries <tom@codesourcery.com>
3113 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
3116 2015-06-22 Tom de Vries <tom@codesourcery.com>
3118 * builtins.def (DEF_GOMP_BUILTIN): Test
3119 'flag_tree_parallelize_loops > 1' instead of
3120 'flag_tree_parallelize_loops'. Test flag_cilkplus.
3122 2015-06-22 Tom de Vries <tom@codesourcery.com>
3124 * dominance.c (calculate_dominance_info): Verify dominators if
3127 2015-06-22 Marek Polacek <polacek@redhat.com>
3129 * match.pd ((x ^ y) ^ (x | y) -> x & y,
3130 (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
3131 (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
3132 (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
3134 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
3137 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
3138 cost of embedded comparison.
3140 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3143 * config/rs6000/predicates.md (altivec_register_operand): Permit
3144 virtual stack registers.
3145 (vsx_register_operand): Likewise.
3146 (vfloat_operand): Likewise.
3147 (vint_operand): Likewise.
3148 (vlogical_operand): Likewise.
3150 2015-06-22 Richard Biener <rguenther@suse.de>
3152 * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
3153 and single_scalar_iteration_cost members.
3154 (LOOP_VINFO_SCALAR_ITERATION_COST): New.
3155 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
3156 (vect_get_single_scalar_iteration_cost): Remove.
3157 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
3158 Use LOOP_VINFO_SCALAR_ITERATION_COST.
3159 * tree-vect-loop.c (destroy_loop_vec_info): Free
3161 (vect_get_single_scalar_iteration_cost): Compute result into
3162 LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
3163 LOOP_VINFO_SCALAR_ITERATION_COST. Make static.
3164 (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
3165 (vect_estimate_min_profitable_iters): Use them.
3167 2015-06-22 Christian Bruel <christian.bruel@st.com>
3170 * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
3171 (TARGET_INSERT_ATTRIBUTES): Define.
3172 (thumb_flipper): New var.
3173 * config/arm/arm.opt (-mflip-thumb): New switch.
3175 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
3176 Martin Liska <mliska@suse.cz>
3179 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
3180 construction of arg_types.
3181 (sem_function::sem_function): Likewise.
3182 (sem_function::~sem_function): Remove destruction of arg_types.
3183 (sem_function::compatible_parm_types_p): New function.
3184 (sem_function::equals_wpa): Reorg matching of return values
3185 and parameter types.
3186 (sem_function::equals_private): Reorg mathcing of argument types.
3187 (sem_function::parse_tree_args): Remove.
3188 * ipa-icf.h (init_wpa): Do not call it.
3189 (parse_tree_args): Remove.
3190 (compatible_parm_types_p): Declare.
3191 (result_type): Remove.
3192 (arg_types): Remove.
3194 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
3197 * ipa-polymorphic-call.c
3198 (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
3199 initializing alias oracle; fix formating; set base_alias_set if it
3202 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
3204 * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
3205 (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
3206 (find_inc): Likewise.
3207 * combine.c (combine_simplify_rtx): Use std::swap instead of manually
3209 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
3210 * df-scan.c (df_swap_refs): Remove.
3211 (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
3212 * dominance.c (link_roots): Use std::swap instead of manually swapping.
3213 * expr.c (expand_expr_real_2, do_store_flag): Likewise.
3214 * fold-const.c (fold_relational_const): Likewise.
3215 * genattrtab.c (simplify_test_exp): Likewise.
3216 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
3217 gimple_simplify): Likewise.
3218 * ifcvt.c (noce_try_abs, find_if_header): Likewise.
3219 * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
3220 * ipa-devirt.c (add_type_duplicate): Likewise.
3221 * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
3222 * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
3223 * lra.c (lra_create_copy): Likewise.
3224 * lto-streamer-out.c (DFS::DFS): Likewise.
3225 * modulo-sched.c (get_sched_window): Likewise.
3226 * omega.c (omega_pretty_print_problem): Likewise.
3227 * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
3228 * reload1.c (reloads_unique_chain_p): Likewise.
3229 * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
3230 (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
3232 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
3234 * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
3235 predicate_mem_writes): Likewise.
3236 * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
3237 * tree-predcom.c (combine_chains): Likewise.
3238 * tree-ssa-alias.c (nonoverlapping_component_refs_p,
3239 refs_may_alias_p_1): Likewise.
3240 * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
3241 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
3242 * tree-ssa-loop-niter.c (refine_bounds_using_guard,
3243 number_of_iterations_cond): Likewise.
3244 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
3245 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3246 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
3247 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
3248 * tree-vrp.c (extract_range_from_binary_expr_1,
3249 extract_range_from_unary_expr_1): Likewise.
3251 2015-06-20 Marek Polacek <polacek@redhat.com>
3253 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
3255 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
3258 * config/sh/sh.c (prepare_move_operands): Replace subreg
3259 index term with R0 for base and index addressing.
3261 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
3263 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
3265 (movsf_aarch64): Change condition from register_operand to
3266 aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
3267 load1. Change type for alternative 7 to store1.
3268 (movdf_aarch64): Likewise.
3270 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
3272 * config/vax/vax.md: Adjust sign/zero extend patterns to
3273 handle SUBREGs in operands[1].
3275 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3277 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
3278 of manually swapping.
3279 (expand_vec_perm_interleave2): Likewise.
3281 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
3283 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
3284 reuse bounds created for abnormal ssa names.
3286 2015-06-19 Jakub Jelinek <jakub@redhat.com>
3288 * config/nvptx/nvptx.md (allocate_stack): Rename to...
3289 (allocate_stack_<mode>): ... this, and add :P on both
3290 match_operand and unspec.
3291 (allocate_stack): New expander.
3293 2015-06-19 Christian Bruel <christian.bruel@st.com>
3297 * config/arm/arm.c (arm_set_current_function): Handle
3298 explicit default options.
3300 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
3302 * config/i386/i386.md (*movsicc_noc_zext): New insn.
3303 (zero-extended cmove with mem peephole2): New pattern.
3304 (cmove with mem peephole2): Merge patterns.
3306 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
3308 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
3310 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
3312 * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
3313 * config/mips/mips.md (*madd4<mode>): Ditto.
3314 (*nmadd3<mode>) Ditto.
3315 (*nmadd4<mode>_fastmath): Ditto.
3316 (*nmadd3<mode>_fastmath): Ditto.
3317 (*nmsub4<mode>): Ditto.
3318 (*nmsub3<mode>): Ditto.
3319 (*nmsub4<mode>_fastmath): Ditto.
3320 (*nmsub3<mode>_fastmath): Ditto.
3322 2015-06-18 Michael Matz <matz@suse.de>
3325 * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
3326 grouped strided stores.
3327 (vectorizable_load): Don't use the DR from first_stmt in
3328 the non-SLP grouped strided case.
3330 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
3333 * function.c (assign_bounds): Add arguments assign_regs,
3334 assign_special, assign_bt.
3335 (assign_parms): For vararg functions handle bounds in BT
3336 and special slots after incoming vararg bounds.
3338 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
3341 * cfgexpand.c (expand_return): Handle missing bounds.
3342 (expand_gimple_stmt_1): Likewise.
3343 * tree-chkp.c (chkp_expand_zero_bounds): New.
3344 * tree-chkp.h (chkp_expand_zero_bounds): New.
3346 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
3349 * ipa-chkp.c (chkp_maybe_create_clone): Require
3350 functions to be instrumentable.
3351 * tree-chkp.c (chkp_replace_function_pointer): Use
3352 chkp_instrumentable_p instead of attribute check.
3354 2015-06-18 Richard Biener <rguenther@suse.de>
3356 PR tree-optimization/66510
3357 * tree-vect-stmts.c (vectorizable_load): Properly compute the
3358 number of vector loads for SLP permuted loads.
3359 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
3360 check the stride for loop vectorization.
3361 (vect_enhance_data_refs_alignment): Deal with SLP adjusted
3362 vectorization factor.
3363 (vect_analyze_group_access): If the group size is not a power
3364 of two require a epilogue loop.
3365 * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
3366 compute and optimizing and alias test pruning after final
3367 vectorization factor computation.
3368 * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
3370 (vect_transform_slp_perm_load): Properly compute the original
3371 number of vector load stmts.
3373 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
3375 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
3376 "unlikely character , in @var" warning.
3378 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
3380 * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
3381 (ix86_function_arg_advance): Ditto.
3382 (ix86_pass_by_reference): Ditto. Rewrite MS_ABI part.
3384 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
3386 * function.h (struct rtl_data): Remove struct and accessor macros.
3387 * emit-rtl.h (struct rtl_data): Relocate to here.
3388 * Makefile.in (GTFILES): Add emit-rtl.h.
3389 * df-core.c: Include emit-rtl.h.
3390 * genattrtab.c: Likewise.
3391 * genconditions.c: Likewise.
3392 * genpreds.c: Likewise.
3393 * genrecog.c: Likewise.
3394 * regcprop.c: Likewise.
3395 * resource.c: Likewise.
3396 * sched-rgn.c: Likewise.
3397 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3398 * config/i386/winnt.c: Likewise.
3400 2015-06-17 Jakub Jelinek <jakub@redhat.com>
3403 * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
3404 instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops
3405 and has_force_vectorize_loops flags from cfun into
3407 (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
3408 if simduid is non-NULL.
3409 * tree-pass.h (make_pass_simduid_cleanup): New prototype.
3410 * passes.def (pass_simduid_cleanup): Add new pass after loop
3412 * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
3413 indirection from htab argument's type.
3414 (shrink_simd_arrays): New function.
3415 (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller.
3416 Don't call adjust_simduid_builtins if there are no loops.
3417 (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
3418 (pass_simduid_cleanup::execute): New method.
3419 (make_pass_simduid_cleanup): New function.
3421 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
3423 * tree-core.h (tree_target_option): Make opts field a pointer to a
3424 cl_target_option instead of an instance of the struct.
3425 * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
3427 * tree.c (make_node_stat ): Allocate a cl_target_option struct for
3429 (copy_node_stat): Allocate and copy struct cl_target_option.
3431 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
3433 * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
3434 Remove conditional exposure of prototypes.
3435 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
3436 * tree.c (anon_aggrname_format, anon_aggrname_p): New. Replace macro
3437 definitions in tree.h with functions.
3438 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
3440 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
3442 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
3444 * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
3445 (*cmp<mode>_signed): ... this.
3446 (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
3447 (*cmp<mode>_unsigned): ... this. Remove %b.
3449 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
3451 * coretypes.h: Include input.h and as-a.h.
3452 * rtl.h: Include input.h and as-a.h for generator files.
3453 * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
3454 * vec.c: Don't include diagnostic-core.h.
3455 * alias.c: Do not include input.h, line-map.h or is-a.h.
3457 * attribs.c: Likewise.
3458 * auto-inc-dec.c: Likewise.
3459 * auto-profile.c: Likewise.
3460 * bb-reorder.c: Likewise.
3461 * bt-load.c: Likewise.
3462 * builtins.c: Likewise.
3463 * caller-save.c: Likewise.
3464 * calls.c: Likewise.
3467 * cfganal.c: Likewise.
3468 * cfgbuild.c: Likewise.
3469 * cfgcleanup.c: Likewise.
3470 * cfgexpand.c: Likewise.
3471 * cfghooks.c: Likewise.
3472 * cfgloop.c: Likewise.
3473 * cfgloop.h: Likewise.
3474 * cfgloopanal.c: Likewise.
3475 * cfgloopmanip.c: Likewise.
3476 * cfgrtl.c: Likewise.
3477 * cgraph.c: Likewise.
3478 * cgraphbuild.c: Likewise.
3479 * cgraphclones.c: Likewise.
3480 * cgraphunit.c: Likewise.
3481 * cilk-common.c: Likewise.
3482 * combine-stack-adj.c: Likewise.
3483 * combine.c: Likewise.
3484 * compare-elim.c: Likewise.
3485 * convert.c: Likewise.
3486 * coverage.c: Likewise.
3487 * cppbuiltin.c: Likewise.
3488 * cprop.c: Likewise.
3490 * cselib.c: Likewise.
3491 * data-streamer-in.c: Likewise.
3492 * data-streamer-out.c: Likewise.
3493 * data-streamer.c: Likewise.
3494 * dbxout.c: Likewise.
3497 * debug.c: Likewise.
3498 * df-core.c: Likewise.
3499 * df-problems.c: Likewise.
3500 * df-scan.c: Likewise.
3503 * diagnostic-core.h: Likewise.
3504 * diagnostic.c: Likewise.
3505 * dojump.c: Likewise.
3506 * dominance.c: Likewise.
3507 * domwalk.c: Likewise.
3508 * double-int.c: Likewise.
3510 * dumpfile.c: Likewise.
3511 * dumpfile.h: Likewise.
3512 * dwarf2asm.c: Likewise.
3513 * dwarf2cfi.c: Likewise.
3514 * dwarf2out.c: Likewise.
3515 * emit-rtl.c: Likewise.
3516 * et-forest.c: Likewise.
3517 * except.c: Likewise.
3518 * explow.c: Likewise.
3519 * expmed.c: Likewise.
3521 * final.c: Likewise.
3522 * fixed-value.c: Likewise.
3523 * fold-const.c: Likewise.
3524 * function.c: Likewise.
3525 * fwprop.c: Likewise.
3526 * gcc-plugin.h: Likewise.
3528 * generic-match-head.c: Likewise.
3529 * ggc-page.c: Likewise.
3530 * gimple-builder.c: Likewise.
3531 * gimple-expr.c: Likewise.
3532 * gimple-fold.c: Likewise.
3533 * gimple-iterator.c: Likewise.
3534 * gimple-low.c: Likewise.
3535 * gimple-match-head.c: Likewise.
3536 * gimple-pretty-print.c: Likewise.
3537 * gimple-ssa-isolate-paths.c: Likewise.
3538 * gimple-ssa-strength-reduction.c: Likewise.
3539 * gimple-streamer-in.c: Likewise.
3540 * gimple-streamer-out.c: Likewise.
3541 * gimple-streamer.h: Likewise.
3542 * gimple-walk.c: Likewise.
3543 * gimple.c: Likewise.
3544 * gimplify-me.c: Likewise.
3545 * gimplify.c: Likewise.
3546 * godump.c: Likewise.
3547 * graph.c: Likewise.
3548 * graphite-blocking.c: Likewise.
3549 * graphite-dependences.c: Likewise.
3550 * graphite-interchange.c: Likewise.
3551 * graphite-isl-ast-to-gimple.c: Likewise.
3552 * graphite-optimize-isl.c: Likewise.
3553 * graphite-poly.c: Likewise.
3554 * graphite-scop-detection.c: Likewise.
3555 * graphite-sese-to-poly.c: Likewise.
3556 * graphite.c: Likewise.
3557 * haifa-sched.c: Likewise.
3558 * hw-doloop.c: Likewise.
3559 * ifcvt.c: Likewise.
3560 * init-regs.c: Likewise.
3561 * input.c: Likewise.
3562 * internal-fn.c: Likewise.
3563 * ipa-chkp.c: Likewise.
3564 * ipa-comdats.c: Likewise.
3565 * ipa-cp.c: Likewise.
3566 * ipa-devirt.c: Likewise.
3567 * ipa-icf-gimple.c: Likewise.
3568 * ipa-icf.c: Likewise.
3569 * ipa-inline-analysis.c: Likewise.
3570 * ipa-inline-transform.c: Likewise.
3571 * ipa-inline.c: Likewise.
3572 * ipa-polymorphic-call.c: Likewise.
3573 * ipa-profile.c: Likewise.
3574 * ipa-prop.c: Likewise.
3575 * ipa-pure-const.c: Likewise.
3576 * ipa-ref.c: Likewise.
3577 * ipa-reference.c: Likewise.
3578 * ipa-split.c: Likewise.
3579 * ipa-utils.c: Likewise.
3580 * ipa-visibility.c: Likewise.
3582 * ira-build.c: Likewise.
3583 * ira-color.c: Likewise.
3584 * ira-conflicts.c: Likewise.
3585 * ira-costs.c: Likewise.
3586 * ira-emit.c: Likewise.
3587 * ira-lives.c: Likewise.
3590 * langhooks.c: Likewise.
3592 * loop-doloop.c: Likewise.
3593 * loop-init.c: Likewise.
3594 * loop-invariant.c: Likewise.
3595 * loop-iv.c: Likewise.
3596 * loop-unroll.c: Likewise.
3597 * lower-subreg.c: Likewise.
3598 * lra-assigns.c: Likewise.
3599 * lra-coalesce.c: Likewise.
3600 * lra-constraints.c: Likewise.
3601 * lra-eliminations.c: Likewise.
3602 * lra-lives.c: Likewise.
3603 * lra-remat.c: Likewise.
3604 * lra-spills.c: Likewise.
3606 * lto-cgraph.c: Likewise.
3607 * lto-compress.c: Likewise.
3608 * lto-opts.c: Likewise.
3609 * lto-section-in.c: Likewise.
3610 * lto-section-out.c: Likewise.
3611 * lto-streamer-in.c: Likewise.
3612 * lto-streamer-out.c: Likewise.
3613 * lto-streamer.c: Likewise.
3615 * mode-switching.c: Likewise.
3616 * modulo-sched.c: Likewise.
3617 * omega.c: Likewise.
3618 * omp-low.c: Likewise.
3619 * optabs.c: Likewise.
3620 * opts-global.c: Likewise.
3622 * passes.c: Likewise.
3623 * plugin.c: Likewise.
3624 * postreload-gcse.c: Likewise.
3625 * postreload.c: Likewise.
3626 * predict.c: Likewise.
3627 * pretty-print.h: Likewise.
3628 * print-rtl.c: Likewise.
3629 * print-tree.c: Likewise.
3630 * profile.c: Likewise.
3632 * realmpfr.c: Likewise.
3633 * recog.c: Likewise.
3635 * reg-stack.c: Likewise.
3636 * regcprop.c: Likewise.
3637 * reginfo.c: Likewise.
3638 * regrename.c: Likewise.
3639 * regstat.c: Likewise.
3640 * reload.c: Likewise.
3641 * reload1.c: Likewise.
3642 * reorg.c: Likewise.
3643 * resource.c: Likewise.
3644 * rtl-chkp.c: Likewise.
3645 * rtl-error.c: Likewise.
3646 * rtlanal.c: Likewise.
3647 * rtlhooks.c: Likewise.
3648 * sanopt.c: Likewise.
3649 * sched-deps.c: Likewise.
3650 * sched-ebb.c: Likewise.
3651 * sched-rgn.c: Likewise.
3652 * sched-vis.c: Likewise.
3653 * sdbout.c: Likewise.
3654 * sel-sched-dump.c: Likewise.
3655 * sel-sched-ir.c: Likewise.
3656 * sel-sched.c: Likewise.
3658 * shrink-wrap.c: Likewise.
3659 * simplify-rtx.c: Likewise.
3660 * stack-ptr-mod.c: Likewise.
3661 * statistics.c: Likewise.
3663 * stor-layout.c: Likewise.
3664 * store-motion.c: Likewise.
3665 * streamer-hooks.c: Likewise.
3666 * stringpool.c: Likewise.
3667 * symtab.c: Likewise.
3668 * target-globals.c: Likewise.
3669 * targhooks.c: Likewise.
3670 * toplev.c: Likewise.
3671 * tracer.c: Likewise.
3672 * trans-mem.c: Likewise.
3673 * tree-affine.c: Likewise.
3674 * tree-browser.c: Likewise.
3675 * tree-call-cdce.c: Likewise.
3676 * tree-cfg.c: Likewise.
3677 * tree-cfgcleanup.c: Likewise.
3678 * tree-chkp-opt.c: Likewise.
3679 * tree-chkp.c: Likewise.
3680 * tree-chrec.c: Likewise.
3681 * tree-complex.c: Likewise.
3682 * tree-data-ref.c: Likewise.
3683 * tree-dfa.c: Likewise.
3684 * tree-diagnostic.c: Likewise.
3685 * tree-dump.c: Likewise.
3686 * tree-eh.c: Likewise.
3687 * tree-emutls.c: Likewise.
3688 * tree-if-conv.c: Likewise.
3689 * tree-inline.c: Likewise.
3690 * tree-into-ssa.c: Likewise.
3691 * tree-iterator.c: Likewise.
3692 * tree-loop-distribution.c: Likewise.
3693 * tree-nested.c: Likewise.
3694 * tree-nrv.c: Likewise.
3695 * tree-object-size.c: Likewise.
3696 * tree-outof-ssa.c: Likewise.
3697 * tree-parloops.c: Likewise.
3698 * tree-phinodes.c: Likewise.
3699 * tree-predcom.c: Likewise.
3700 * tree-pretty-print.c: Likewise.
3701 * tree-profile.c: Likewise.
3702 * tree-scalar-evolution.c: Likewise.
3703 * tree-sra.c: Likewise.
3704 * tree-ssa-address.c: Likewise.
3705 * tree-ssa-alias.c: Likewise.
3706 * tree-ssa-ccp.c: Likewise.
3707 * tree-ssa-coalesce.c: Likewise.
3708 * tree-ssa-copy.c: Likewise.
3709 * tree-ssa-copyrename.c: Likewise.
3710 * tree-ssa-dce.c: Likewise.
3711 * tree-ssa-dom.c: Likewise.
3712 * tree-ssa-dse.c: Likewise.
3713 * tree-ssa-forwprop.c: Likewise.
3714 * tree-ssa-ifcombine.c: Likewise.
3715 * tree-ssa-live.c: Likewise.
3716 * tree-ssa-loop-ch.c: Likewise.
3717 * tree-ssa-loop-im.c: Likewise.
3718 * tree-ssa-loop-ivcanon.c: Likewise.
3719 * tree-ssa-loop-ivopts.c: Likewise.
3720 * tree-ssa-loop-manip.c: Likewise.
3721 * tree-ssa-loop-niter.c: Likewise.
3722 * tree-ssa-loop-prefetch.c: Likewise.
3723 * tree-ssa-loop-unswitch.c: Likewise.
3724 * tree-ssa-loop.c: Likewise.
3725 * tree-ssa-math-opts.c: Likewise.
3726 * tree-ssa-operands.c: Likewise.
3727 * tree-ssa-phiopt.c: Likewise.
3728 * tree-ssa-phiprop.c: Likewise.
3729 * tree-ssa-pre.c: Likewise.
3730 * tree-ssa-propagate.c: Likewise.
3731 * tree-ssa-reassoc.c: Likewise.
3732 * tree-ssa-sccvn.c: Likewise.
3733 * tree-ssa-scopedtables.c: Likewise.
3734 * tree-ssa-sink.c: Likewise.
3735 * tree-ssa-strlen.c: Likewise.
3736 * tree-ssa-structalias.c: Likewise.
3737 * tree-ssa-tail-merge.c: Likewise.
3738 * tree-ssa-ter.c: Likewise.
3739 * tree-ssa-threadedge.c: Likewise.
3740 * tree-ssa-threadupdate.c: Likewise.
3741 * tree-ssa-uncprop.c: Likewise.
3742 * tree-ssa-uninit.c: Likewise.
3743 * tree-ssa.c: Likewise.
3744 * tree-ssanames.c: Likewise.
3745 * tree-stdarg.c: Likewise.
3746 * tree-streamer-in.c: Likewise.
3747 * tree-streamer-out.c: Likewise.
3748 * tree-streamer.c: Likewise.
3749 * tree-switch-conversion.c: Likewise.
3750 * tree-tailcall.c: Likewise.
3751 * tree-vect-data-refs.c: Likewise.
3752 * tree-vect-generic.c: Likewise.
3753 * tree-vect-loop-manip.c: Likewise.
3754 * tree-vect-loop.c: Likewise.
3755 * tree-vect-patterns.c: Likewise.
3756 * tree-vect-slp.c: Likewise.
3757 * tree-vect-stmts.c: Likewise.
3758 * tree-vectorizer.c: Likewise.
3759 * tree-vrp.c: Likewise.
3762 * ubsan.c: Likewise.
3763 * valtrack.c: Likewise.
3764 * value-prof.c: Likewise.
3765 * var-tracking.c: Likewise.
3766 * varasm.c: Likewise.
3767 * varpool.c: Likewise.
3768 * vmsdbgout.c: Likewise.
3769 * vtable-verify.c: Likewise.
3771 * wide-int.cc: Likewise.
3772 * xcoffout.c: Likewise.
3773 * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
3774 * common/common-targhooks.c: Likewise.
3775 * config/aarch64/aarch64-builtins.c: Likewise.
3776 * config/aarch64/aarch64.c: Likewise.
3777 * config/alpha/alpha.c: Likewise.
3778 * config/arc/arc.c: Likewise.
3779 * config/arm/aarch-common.c: Likewise.
3780 * config/arm/arm-builtins.c: Likewise.
3781 * config/arm/arm-c.c: Likewise.
3782 * config/arm/arm.c: Likewise.
3783 * config/avr/avr-c.c: Likewise.
3784 * config/avr/avr-log.c: Likewise.
3785 * config/avr/avr.c: Likewise.
3786 * config/bfin/bfin.c: Likewise.
3787 * config/c6x/c6x.c: Likewise.
3788 * config/cr16/cr16.c: Likewise.
3789 * config/cris/cris.c: Likewise.
3790 * config/darwin-c.c: Likewise.
3791 * config/darwin.c: Likewise.
3792 * config/default-c.c: Likewise.
3793 * config/epiphany/epiphany.c: Likewise.
3794 * config/epiphany/mode-switch-use.c: Likewise.
3795 * config/epiphany/resolve-sw-modes.c: Likewise.
3796 * config/fr30/fr30.c: Likewise.
3797 * config/frv/frv.c: Likewise.
3798 * config/ft32/ft32.c: Likewise.
3799 * config/glibc-c.c: Likewise.
3800 * config/h8300/h8300.c: Likewise.
3801 * config/i386/i386-c.c: Likewise.
3802 * config/i386/i386.c: Likewise.
3803 * config/i386/msformat-c.c: Likewise.
3804 * config/i386/winnt-cxx.c: Likewise.
3805 * config/i386/winnt-stubs.c: Likewise.
3806 * config/i386/winnt.c: Likewise.
3807 * config/ia64/ia64-c.c: Likewise.
3808 * config/ia64/ia64.c: Likewise.
3809 * config/iq2000/iq2000.c: Likewise.
3810 * config/lm32/lm32.c: Likewise.
3811 * config/m32c/m32c-pragma.c: Likewise.
3812 * config/m32c/m32c.c: Likewise.
3813 * config/m32r/m32r.c: Likewise.
3814 * config/m68k/m68k.c: Likewise.
3815 * config/mcore/mcore.c: Likewise.
3816 * config/mep/mep-pragma.c: Likewise.
3817 * config/mep/mep.c: Likewise.
3818 * config/microblaze/microblaze-c.c: Likewise.
3819 * config/microblaze/microblaze.c: Likewise.
3820 * config/mips/mips.c: Likewise.
3821 * config/mmix/mmix.c: Likewise.
3822 * config/mn10300/mn10300.c: Likewise.
3823 * config/moxie/moxie.c: Likewise.
3824 * config/msp430/msp430-c.c: Likewise.
3825 * config/msp430/msp430.c: Likewise.
3826 * config/nds32/nds32-cost.c: Likewise.
3827 * config/nds32/nds32-fp-as-gp.c: Likewise.
3828 * config/nds32/nds32-intrinsic.c: Likewise.
3829 * config/nds32/nds32-isr.c: Likewise.
3830 * config/nds32/nds32-md-auxiliary.c: Likewise.
3831 * config/nds32/nds32-memory-manipulation.c: Likewise.
3832 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3833 * config/nds32/nds32-predicates.c: Likewise.
3834 * config/nds32/nds32.c: Likewise.
3835 * config/nios2/nios2.c: Likewise.
3836 * config/nvptx/nvptx.c: Likewise.
3837 * config/pa/pa.c: Likewise.
3838 * config/pdp11/pdp11.c: Likewise.
3839 * config/rl78/rl78-c.c: Likewise.
3840 * config/rl78/rl78.c: Likewise.
3841 * config/rs6000/rs6000-c.c: Likewise.
3842 * config/rs6000/rs6000.c: Likewise.
3843 * config/rx/rx.c: Likewise.
3844 * config/s390/s390-c.c: Likewise.
3845 * config/s390/s390.c: Likewise.
3846 * config/sh/sh-c.c: Likewise.
3847 * config/sh/sh-mem.cc: Likewise.
3848 * config/sh/sh.c: Likewise.
3849 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3850 * config/sh/sh_treg_combine.cc: Likewise.
3851 * config/sol2-c.c: Likewise.
3852 * config/sol2-cxx.c: Likewise.
3853 * config/sol2-stubs.c: Likewise.
3854 * config/sol2.c: Likewise.
3855 * config/sparc/sparc-c.c: Likewise.
3856 * config/sparc/sparc.c: Likewise.
3857 * config/spu/spu-c.c: Likewise.
3858 * config/spu/spu.c: Likewise.
3859 * config/stormy16/stormy16.c: Likewise.
3860 * config/tilegx/mul-tables.c: Likewise.
3861 * config/tilegx/tilegx-c.c: Likewise.
3862 * config/tilegx/tilegx.c: Likewise.
3863 * config/tilepro/mul-tables.c: Likewise.
3864 * config/tilepro/tilepro-c.c: Likewise.
3865 * config/tilepro/tilepro.c: Likewise.
3866 * config/v850/v850-c.c: Likewise.
3867 * config/v850/v850.c: Likewise.
3868 * config/vax/vax.c: Likewise.
3869 * config/visium/visium.c: Likewise.
3870 * config/vms/vms-c.c: Likewise.
3871 * config/vms/vms.c: Likewise.
3872 * config/vxworks.c: Likewise.
3873 * config/winnt-c.c: Likewise.
3874 * config/xtensa/xtensa.c: Likewise.
3876 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
3878 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
3880 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
3882 2015-06-17 Richard Biener <rguenther@suse.de>
3884 PR tree-optimization/66251
3885 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
3886 stmts for SLP strided stores.
3889 2015-05-22 Richard Biener <rguenther@suse.de>
3891 PR tree-optimization/66251
3892 * tree-vect-stmts.c (vectorizable_conversion): Properly
3893 set STMT_VINFO_VEC_STMT even for the SLP case.
3895 2015-05-26 Michael Matz <matz@suse.de>
3898 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
3899 STMT_VINFO_VEC_STMT, also with SLP.
3901 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
3904 * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
3905 (*avx_addsubv4df3_1s): Ditto.
3906 (*sse3_addsubv2df3_1): Ditto.
3907 (*sse3_addsubv2df3_1s): Ditto.
3908 (*avx_addsubv8sf3_1): Ditto.
3909 (*avx_addsubv8sf3_1s): Ditto.
3910 (*sse3_addsubv4sf3_1): Ditto.
3911 (*sse3_addsubv4sf3_1s): Ditto.
3913 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
3915 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
3916 (SYSROOT_SUFFIX_SPEC): Update.
3917 (SYSROOT_HEADERS_SUFFIX_SPEC): New.
3918 (STARTFILE_PREFIX_SPEC): Update.
3919 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
3920 (MULTILIB_REQUIRED): New.
3921 (MULTILIB_OSDIRNAMES): New.
3922 * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
3923 (MULTILIB_REQUIRED): New.
3924 (MULTILIB_OSDIRNAMES): New.
3926 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
3928 * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
3929 * config/aarch64/aarch64-options-extensions.def: Update "fP",
3930 "simd" and "crypto". Add "lse", "pan", "lor" and "rdma".
3931 * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
3932 (AARCH64_FL_PAN): New.
3933 (AARCH64_FL_LOR): New.
3934 (AARCH64_FL_RDMA): New.
3935 (AARCH64_FL_FOR_ARCH8_1): New.
3936 * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
3937 -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
3939 2015-06-16 Martin Liska <mliska@suse.cz>
3941 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
3942 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
3945 2015-06-16 Richard Biener <rguenther@suse.de>
3947 * tree-vect-stmts.c (vectorizable_store): Adjust.
3948 (vectorizable_load): Likewise.
3949 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3951 (vect_create_data_ref_ptr): Likewise.
3952 (bump_vector_ptr): Adjust.
3954 2015-06-16 Richard Biener <rguenther@suse.de>
3956 * tree-vect-stmts.c (vectorizable_load): Properly start loads
3957 with the first element if this is grouped loads.
3959 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
3961 * config/arm/arm-protos.h (struct tune_params): Rename
3962 log_op_non_sc to log_op_non_short_circuit, and rename enum
3963 values to expand SC to SHORT_CIRCUIT.
3964 * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
3965 to LOG_OP_NON_SHORT_CIRCUIT.
3966 (arm_fastmul_tune):Likewise
3967 (arm_strongarm_tune): Likewise.
3968 (arm_xscale_tune): Likewise.
3969 (arm_9e_tune): Likewise.
3970 (arm_marvell_pj4_tune): Likewise.
3971 (arm_v6t2_tune): Likewise.
3972 (arm_cortex_tune): Likewise.
3973 (arm_cortex_a8_tune): Likewise.
3974 (arm_cortex_a7_tune): Likewise.
3975 (arm_cortex_a15_tune): Likewise.
3976 (arm_cortex_a53_tune): Likewise.
3977 (arm_cortex_a57_tune): Likewise.
3978 (arm_xgene1_tune): Likewise.
3979 (arm_cortex_a5_tune): Likewise.
3980 (arm_cortex_a9_tune): Likewise.
3981 (arm_cortex_a12_tune): Likewise.
3982 (arm_v7m_tune): Likewise.
3983 (arm_cortex_m7_tune): Likewise.
3984 (arm_v6m_tune): Likewise.
3985 (arm_fa726te_tune): Likewise.
3987 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
3989 * altivec.md: Delete UNSPEC_VMLADDUHM.
3990 (mulv4si3_p8): New pattern.
3991 (mulv4si3): Use it for POWER8.
3992 (mulv8hi3): Use vmladduhm with zero addend.
3993 (altivec_vmladduhm): Descriptive RTL.
3995 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
3997 * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
3998 to use neon_move instead of mov_imm.
3999 (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
4000 (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
4002 * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
4003 aarch64_float_const_zero_rtx_p check before TFmode check.
4004 * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
4006 (movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
4007 code and attributes to match. Change condition from register_operand
4008 to aarch64_reg_or_fp_zero for op1. Change type for ldp from
4009 neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
4012 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
4015 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
4018 2015-06-14 Shiva Chen <shiva0217@gmail.com>
4020 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
4021 HOST_WIDE_INT parameter.
4023 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
4026 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
4027 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
4029 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
4031 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
4033 * rtl.h (classify_insn): Declare.
4034 * emit-rtl.c (classify_insn): Move to...
4035 * rtl.c: ...here and add generator support.
4036 * gensupport.h (get_emit_function, needs_barrier_p): Declare.
4037 * gensupport.c (get_emit_function, needs_barrier_p): New functions.
4038 * genemit.c (gen_emit_seq): New function.
4039 (gen_expand, gen_split): Use it.
4041 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
4043 * tree.c (make_vector_stat): Fix comment to state that the
4044 function returns a VECTOR_CST.
4046 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
4048 * gensupport.h (add_implicit_parallel): Declare.
4049 * genrecog.c (add_implicit_parallel): Move to...
4050 * gensupport.c (add_implicit_parallel): ...here.
4051 (process_one_cond_exec): Use it.
4052 * genemit.c (gen_insn): Likewise.
4054 2015-06-13 Iain Sandoe <iain@codesourcery.com>
4057 * passes.c (rest_of_decl_compilation): Do not register globals for
4058 early debug if they are declared in built-ins.
4060 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
4062 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
4064 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4066 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
4068 (noce_try_cmove_arith): Likewise.
4069 (noce_get_alt_condition): Likewise.
4071 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4073 * common/config/i386/i386-common.c
4074 (OPTION_MASK_ISA_MWAITX_SET): New.
4075 (ix86_handle_option): Handle mwaitx.
4076 * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
4077 (x86_64-*-*): Likewise.
4078 * config/i386/mwaitxintrin.h: New header.
4079 * config/i386/cpuid.h (bit_MWAITX): Define.
4080 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4082 * config/i386/i386.opt (mwaitx): New.
4083 * config/i386/i386-builtin-types.def
4084 (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
4085 * config/i386/i386-c.c: Define __MWAITX__ if needed.
4086 * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
4088 (ix86_option_override_internal): Handle new option.
4089 (processor_alias_table): Added PTA_MWAITX.
4090 (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
4091 (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
4092 (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
4093 IX86_BUILTIN_MONITORX built-ins.
4094 * config/i386/i386.h (TARGET_MWAITX): New.
4095 * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
4097 (mwaitx): New pattern.
4098 (monitorx_<mode>): New pattern.
4099 * config/i386/x86intrin.h: Include mwaitxintrin.h.
4100 * doc/extend.texi: Document monitorx and mwaitx builtins.
4101 * doc/invoke.texi: Document -mmwaitx option.
4103 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
4105 * emit-rtl.c (need_atomic_barrier_p): Mask model with
4106 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
4108 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
4110 * dbxout.c (xcoff_debug_hooks): Provide a function for
4111 register_main_translation_unit hook.
4113 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
4115 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
4116 variants cases from switch.
4117 (rs6000_post_atomic_barrier): Same.
4118 (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
4119 (rs6000_expand_atomic_exchange): Same.
4120 (rs6000_expand_atomic_op): Same.
4121 * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
4122 SYNC variants cases from switch.
4123 (atomic_load): Same.
4124 (atomic_store): Same.
4126 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
4128 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
4131 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
4134 * dwarf2out.c (check_die): Check for common duplicate attributes.
4135 (add_location_or_const_value_attribute): Do not add duplicate
4137 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
4139 (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
4140 (gen_type_die_with_usage): Call check_die.
4141 (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
4143 2015-06-11 Jason Merrill <jason@redhat.com>
4145 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
4148 2015-06-11 Marek Polacek <polacek@redhat.com>
4150 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
4152 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
4155 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
4156 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
4157 (*addx_extend_sp32): Fix pasto.
4158 (*subx_extend): Rename into...
4159 (*subx_extend_sp32): ...this.
4160 (*adddi3_extend_sp32): Add earlyclobber.
4161 (*subdi3_insn_sp32): Likewise.
4162 (*subdi3_extend_sp32): Likewise.
4163 (*and_not_di_sp32): Likewise.
4164 (*or_not_di_sp32): Likewise.
4165 (*xor_not_di_sp32): Likewise.
4166 (*negdi2_sp32): Likewise.
4167 (*one_cmpldi2_sp32): Likewise.
4169 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
4171 * debug.h (struct gcc_debug_hooks): Add a
4172 register_main_translation_unit hook.
4173 * debug.c (do_nothing_debug_hooks): Provide a function for this
4175 * dbxout.c (dbx_debug_hooks): Likewise.
4176 * sdbout.c (sdb_debug_hooks): Likewise.
4177 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4178 * dwarf2out.c (main_translation_unit): New global variable.
4179 (dwarf2out_register_main_translation_unit): New function
4180 implementing the new hook.
4181 (dwarf2_debug_hooks): Assign
4182 dwarf2out_register_main_translation_unit to this new hook.
4183 (dwarf2out_init): Associate any main translation unit to
4186 2015-06-11 Marek Polacek <polacek@redhat.com>
4188 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
4190 2015-06-11 Marek Polacek <polacek@redhat.com>
4192 * match.pd: Use single_use throughout.
4194 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4196 * config/arm/arm.c (arm_option_params_internal): When optimising
4197 for speed set max_insns_skipped when arm_restrict_it.
4199 2015-06-11 Christian Bruel <christian.bruel@st.com>
4202 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
4204 (arm_cpu_builtins): New function.
4205 (arm_pragma_target_parse): Call arm_cpu_builtins.
4206 * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
4207 (arm_register_target_pragmas): Likewise.
4208 * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
4209 Call arm_register_target_pragmas.
4210 * config/arm/arm-c.c (arm_register_target_pragmas): New function.
4211 (arm_pragma_target_parse): Likewise.
4213 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
4215 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
4216 of the second operand.
4218 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
4221 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
4222 to prepare mask operand for AVX512 modes.
4224 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4227 * doc/md.texi (Machine Constraints): Document that on the PowerPC
4228 if you use a constraint that targets a VSX register, you must use
4229 %x<n> in the template.
4231 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
4233 * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
4234 * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
4235 (define_insn "trap"): New definition.
4237 2015-06-10 Richard Biener <rguenther@suse.de>
4239 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
4241 (vect_supported_load_permutation_p): ... here. Handle
4242 supportable permutations in reductions.
4243 * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
4244 for vectorizing strided group loads.
4246 2015-06-10 Jakub Jelinek <jakub@redhat.com>
4249 * config/i386/i386.c (ix86_split_long_move): For collisions
4250 involving direct tls segment refs, move the UNSPEC_TP possibly
4251 wrapped in ZERO_EXTEND out of the address for lea, to each of
4254 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4256 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
4257 dmb sy. Adjust tabs.
4259 2015-06-10 Tom de Vries <tom@codesourcery.com>
4261 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
4263 2015-06-10 Martin Liska <mliska@suse.cz>
4266 * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
4267 all enum values in mem_alloc_origin.
4268 * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
4270 * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
4271 * bitmap.c (bitmap_register): Likewise.
4272 (dump_bitmap_statistics): Likewise.
4273 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
4274 (ggc_record_overhead): Likewise.
4275 * hash-map.h: Likewise.
4276 * hash-set.h: Likewise.
4277 * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
4278 * hash-table.h: Likewise.
4279 * vec.c (vec_prefix::register_overhead): Likewise.
4280 (vec_prefix::release_overhead): Likewise.
4281 (dump_vec_loc_statistics): Likewise.
4283 2015-06-09 Christian Bruel <christian.bruel@st.com>
4286 * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
4287 * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
4288 (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
4289 * config/arm/arm.h (SWITCHABLE_TARGET): Define.
4290 * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
4291 (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
4292 (arm_valid_target_attribute_p): Likewise.
4293 (arm_set_current_function, arm_can_inline_p): Likewise.
4294 (arm_valid_target_attribute_rec): Likewise.
4295 (arm_previous_fndecl): New variable.
4296 (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
4297 (TARGET_CAN_INLINE_P): Define.
4298 (arm_asm_trampoline_template): Emit mode.
4299 (arm_file_start): Don't set unified syntax.
4300 (arm_declare_function_name): Set unified syntax and mode.
4301 (arm_option_override): Init target_option_default_node.
4302 and target_option_current_node.
4303 * config/arm/arm.md (*call_value_symbol): Set mode when possible.
4304 (*call_symbol): Likewise.
4305 * doc/extend.texi: Document ARM/Thumb target attribute.
4306 * doc/invoke.texi: Likewise.
4308 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
4311 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
4312 PR rtl-optimization/64164
4313 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
4314 * tree-ssa-copyrename.c: Removed.
4315 * opts.c (default_options_table): Drop -ftree-copyrename. Add
4316 -ftree-coalesce-vars.
4317 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
4318 * common.opt (ftree-copyrename): Ignore.
4319 (ftree-coalesce-inlined-vars): Likewise.
4320 * doc/invoke.texi: Remove the ignored options above.
4321 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
4322 * tree-ssa-coalesce.h: ... here.
4323 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
4324 headers required by it.
4325 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
4326 across variables when flag_tree_coalesce_vars. Check register
4327 use and promoted modes to allow coalescing. Moved to
4328 tree-ssa-coalesce.c.
4329 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
4330 with its member functions to tree-ssa-coalesce.c.
4331 (var_map_base_init): Likewise. Renamed to
4332 compute_samebase_partition_bases.
4333 (partition_view_normal): Drop want_bases parameter.
4334 (partition_view_bitmap): Likewise.
4335 * tree-ssa-live.h: Adjust declarations.
4336 * tree-ssa-coalesce.c: Include explow.h.
4337 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
4338 default defs at the entry point.
4339 (dump_part_var_map): New.
4340 (compute_optimized_partition_bases): New, called by...
4341 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
4342 of compute_samebase_partition_bases. Adjust.
4343 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
4344 * cfgexpand.c (leader_merge): New.
4345 (get_rtl_for_parm_ssa_default_def): New.
4346 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
4347 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
4348 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
4349 redundant MEM attr setting.
4350 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
4352 (expand_one_stack_var): ... this. New wrapper to check and
4353 skip already expanded SSA partitions.
4354 (record_alignment_for_reg_var): New, factored out of...
4355 (expand_one_var): ... this.
4356 (expand_one_ssa_partition): New.
4357 (adjust_one_expanded_partition_var): New.
4358 (expand_one_register_var): Check and skip already expanded SSA
4360 (expand_used_vars): Don't create DECLs for anonymous SSA
4361 names. Expand all SSA partitions, then adjust all SSA names.
4362 (pass::execute): Replace the loops that set
4363 SA.partition_to_pseudo from partition leaders and cleared
4364 DECL_RTL for multi-location variables, and that which used to
4365 rename vars and set attrs, with one that clears DECL_RTL and
4366 checks that PARMs and RESULTs default_defs match DECL_RTL.
4367 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
4368 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
4369 * explow.c (promote_ssa_mode): New.
4370 * explow.h (promote_ssa_mode): Declare.
4371 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
4372 * function.c: Include cfgexpand.h.
4373 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
4374 (use_register_for_parm_decl): Wrapper for the above to
4375 special-case the result_ptr.
4376 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
4377 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
4379 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
4380 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
4381 (assign_parm_setup_block): Prefer SSA-assigned location.
4382 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
4383 if stack_parm is NULL.
4384 (assign_parm_setup_stack): Prefer SSA-assigned location.
4385 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
4386 rtl before testing for pointer bounds. Special-case result_ptr.
4387 (expand_function_start): Maybe reset DECL_RTL of result.
4388 Prefer SSA-assigned location for result and static chain.
4389 Factor out DECL_RESULT and SET_DECL_RTL.
4390 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
4391 anonymous SSA names. Use promote_ssa_mode.
4392 (get_temp_reg): Likewise.
4393 (remove_ssa_form): Adjust.
4394 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
4395 and get its reg_usage for reg invalidation.
4396 (compute_bb_dataflow): Pass it insn.
4397 (emit_notes_in_bb): Likewise.
4398 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
4399 fail assert on conversion between unsigned types.
4401 2015-06-09 Tom de Vries <tom@codesourcery.com>
4403 PR tree-optimization/65460
4404 * omp-low.c (expand_omp_target): Set parallelized_function on
4405 cgraph_node for child_fn.
4407 2015-06-09 Tom de Vries <tom@codesourcery.com>
4409 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
4410 parallelized_function before add_new_function.
4412 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
4414 * gcc-plugin.h: Move decls to plugin.h and include it.
4415 * plugin.h: Relocate decls from gcc-plugin.h
4416 * ggc-page.c: Include required header files.
4417 * passes.c: Likewise.
4418 * cgraphunit.c: Likewise.
4420 2015-06-09 Tom de Vries <tom@codesourcery.com>
4422 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
4424 2015-06-09 Jason Merrill <jason@redhat.com>
4427 * toplev.c (check_global_declaration): Don't warn about a clone.
4429 2015-06-09 Marek Polacek <polacek@redhat.com>
4431 PR tree-optimization/66299
4432 * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
4433 ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
4436 2015-06-09 Richard Biener <rguenther@suse.de>
4438 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
4439 (vect_analyze_slp_instance): Instead do not falsely drop
4442 2015-06-09 Richard Biener <rguenther@suse.de>
4445 * match.pd: Handle A % (unsigned)(1 << B).
4447 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
4449 * varasm.c (output_object_block_htab): Remove.
4450 (output_object_block_compare): New.
4451 (output_object_blocks): Sort named object_blocks before outputting
4454 2015-06-09 Richard Biener <rguenther@suse.de>
4456 PR tree-optimization/66419
4457 * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
4458 consider GROUP_GAP when detecting a perfect subchain.
4460 2015-06-09 Nick Clifton <nickc@redhat.com>
4462 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
4463 place read only data in the .frodata section.
4465 2015-06-09 Shiva Chen <shiva0217@gmail.com>
4467 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
4468 (atomic_store<mode>): Likewise.
4470 2015-06-09 Richard Biener <rguenther@suse.de>
4472 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
4474 2015-06-09 Richard Biener <rguenther@suse.de>
4477 * tree-inline.c (insert_init_debug_bind): Unshare value.
4479 2015-06-09 Richard Biener <rguenther@suse.de>
4481 PR tree-optimization/66396
4482 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
4483 Rename virtual operands.
4485 2015-06-09 Tom de Vries <tom@codesourcery.com>
4487 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
4488 always return false.
4490 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
4492 PR rtl-optimization/64164
4493 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
4494 * tree-ssa-copyrename.c: Removed.
4495 * opts.c (default_options_table): Drop -ftree-copyrename. Add
4496 -ftree-coalesce-vars.
4497 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
4498 * common.opt (ftree-copyrename): Ignore.
4499 (ftree-coalesce-inlined-vars): Likewise.
4500 * doc/invoke.texi: Remove the ignored options above.
4501 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
4502 * tree-ssa-coalesce.h: ... here.
4503 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
4504 headers required by it.
4505 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
4506 across variables when flag_tree_coalesce_vars. Check register
4507 use and promoted modes to allow coalescing. Moved to
4508 tree-ssa-coalesce.c.
4509 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
4510 with its member functions to tree-ssa-coalesce.c.
4511 (var_map_base_init): Likewise. Renamed to
4512 compute_samebase_partition_bases.
4513 (partition_view_normal): Drop want_bases parameter.
4514 (partition_view_bitmap): Likewise.
4515 * tree-ssa-live.h: Adjust declarations.
4516 * tree-ssa-coalesce.c: Include explow.h.
4517 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
4518 default defs at the entry point.
4519 (dump_part_var_map): New.
4520 (compute_optimized_partition_bases): New, called by...
4521 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
4522 of compute_samebase_partition_bases. Adjust.
4523 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
4524 * cfgexpand.c (leader_merge): New.
4525 (get_rtl_for_parm_ssa_default_def): New.
4526 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
4527 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
4528 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
4529 redundant MEM attr setting.
4530 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
4532 (expand_one_stack_var): ... this. New wrapper to check and
4533 skip already expanded SSA partitions.
4534 (record_alignment_for_reg_var): New, factored out of...
4535 (expand_one_var): ... this.
4536 (expand_one_ssa_partition): New.
4537 (adjust_one_expanded_partition_var): New.
4538 (expand_one_register_var): Check and skip already expanded SSA
4540 (expand_used_vars): Don't create DECLs for anonymous SSA
4541 names. Expand all SSA partitions, then adjust all SSA names.
4542 (pass::execute): Replace the loops that set
4543 SA.partition_to_pseudo from partition leaders and cleared
4544 DECL_RTL for multi-location variables, and that which used to
4545 rename vars and set attrs, with one that clears DECL_RTL and
4546 checks that PARMs and RESULTs default_defs match DECL_RTL.
4547 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
4548 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
4549 * explow.c (promote_ssa_mode): New.
4550 * explow.h (promote_ssa_mode): Declare.
4551 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
4552 * function.c: Include cfgexpand.h.
4553 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
4554 (use_register_for_parm_decl): Wrapper for the above to
4555 special-case the result_ptr.
4556 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
4557 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
4559 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
4560 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
4561 (assign_parm_setup_block): Prefer SSA-assigned location.
4562 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
4563 if stack_parm is NULL.
4564 (assign_parm_setup_stack): Prefer SSA-assigned location.
4565 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
4566 rtl before testing for pointer bounds. Special-case result_ptr.
4567 (expand_function_start): Maybe reset DECL_RTL of result.
4568 Prefer SSA-assigned location for result and static chain.
4569 Factor out DECL_RESULT and SET_DECL_RTL.
4570 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
4571 anonymous SSA names. Use promote_ssa_mode.
4572 (get_temp_reg): Likewise.
4573 (remove_ssa_form): Adjust.
4574 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
4575 and get its reg_usage for reg invalidation.
4576 (compute_bb_dataflow): Pass it insn.
4577 (emit_notes_in_bb): Likewise.
4578 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
4579 fail assert on conversion between unsigned types.
4581 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
4584 * tree-inline.c (reset_debug_binding): New.
4585 (reset_debug_bindings): Likewise.
4586 (expand_call_inline): Call it.
4588 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
4590 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
4593 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
4595 * lto-streamer-out.c (lto_output_location): Stream
4596 reserved locations correctly.
4597 * lto-streamer-in.c (lto_output_location): Likewise.
4599 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
4601 * coretypes.h: Include hash-table.h and hash-set.h for host files.
4602 * ggc.h: Don't include statistics.h>
4603 * hash-map.h: Remove all includes.
4604 * hash-set.h: Likewise.
4605 * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
4606 the include list. Remove <new>.
4607 * inchash.h: Remove all includes.
4608 * mem-stats.h: Likewise.
4609 * vec.h: No special processing for generators or ggc.
4610 * alias.c : Adjust include files.
4611 * alloc-pool.c : Likewise.
4612 * alloc-pool.h : Likewise.
4613 * asan.c : Likewise.
4614 * attribs.c : Likewise.
4615 * auto-inc-dec.c : Likewise.
4616 * auto-profile.c : Likewise.
4617 * bb-reorder.c : Likewise.
4618 * bitmap.c : Likewise.
4619 * bitmap.h : Likewise.
4620 * bt-load.c : Likewise.
4621 * builtins.c : Likewise.
4622 * caller-save.c : Likewise.
4623 * calls.c : Likewise.
4624 * ccmp.c : Likewise.
4626 * cfganal.c : Likewise.
4627 * cfgbuild.c : Likewise.
4628 * cfgcleanup.c : Likewise.
4629 * cfgexpand.c : Likewise.
4630 * cfghooks.c : Likewise.
4631 * cfgloop.c : Likewise.
4632 * cfgloop.h : Likewise.
4633 * cfgloopanal.c : Likewise.
4634 * cfgloopmanip.c : Likewise.
4635 * cfgrtl.c : Likewise.
4636 * cgraph.c : Likewise.
4637 * cgraphbuild.c : Likewise.
4638 * cgraphclones.c : Likewise.
4639 * cgraphunit.c : Likewise.
4640 * cilk-common.c : Likewise.
4641 * combine-stack-adj.c : Likewise.
4642 * combine.c : Likewise.
4643 * compare-elim.c : Likewise.
4644 * context.c : Likewise.
4645 * convert.c : Likewise.
4646 * coverage.c : Likewise.
4647 * cppbuiltin.c : Likewise.
4648 * cprop.c : Likewise.
4650 * cselib.c : Likewise.
4651 * data-streamer-in.c : Likewise.
4652 * data-streamer-out.c : Likewise.
4653 * data-streamer.c : Likewise.
4654 * data-streamer.h : Likewise.
4655 * dbxout.c : Likewise.
4658 * debug.c : Likewise.
4659 * df-core.c : Likewise.
4660 * df-problems.c : Likewise.
4661 * df-scan.c : Likewise.
4664 * dojump.c : Likewise.
4665 * dominance.c : Likewise.
4666 * domwalk.c : Likewise.
4667 * double-int.c : Likewise.
4669 * dumpfile.c : Likewise.
4670 * dwarf2asm.c : Likewise.
4671 * dwarf2cfi.c : Likewise.
4672 * dwarf2out.c : Likewise.
4673 * emit-rtl.c : Likewise.
4674 * et-forest.c : Likewise.
4675 * except.c : Likewise.
4676 * except.h : Likewise.
4677 * explow.c : Likewise.
4678 * expmed.c : Likewise.
4679 * expr.c : Likewise.
4680 * final.c : Likewise.
4681 * fixed-value.c : Likewise.
4682 * fold-const.c : Likewise.
4683 * function.c : Likewise.
4684 * fwprop.c : Likewise.
4685 * gcc-plugin.h : Likewise.
4687 * gcse-common.c : Likewise.
4688 * gcse.c : Likewise.
4689 * genattrtab.c : Likewise.
4690 * genautomata.c : Likewise.
4691 * genconditions.c : Likewise.
4692 * genemit.c : Likewise.
4693 * generic-match-head.c : Likewise.
4694 * genextract.c : Likewise.
4695 * gengtype-state.c : Likewise.
4696 * gengtype.c : Likewise.
4697 * genhooks.c : Likewise.
4698 * genmatch.c : Likewise.
4699 * genmodes.c : Likewise.
4700 * genrecog.c : Likewise.
4701 * gensupport.c : Likewise.
4702 * ggc-common.c : Likewise.
4703 * ggc-internal.h : Likewise.
4704 * ggc-none.c : Likewise.
4705 * ggc-page.c : Likewise.
4706 * gimple-builder.c : Likewise.
4707 * gimple-expr.c : Likewise.
4708 * gimple-fold.c : Likewise.
4709 * gimple-iterator.c : Likewise.
4710 * gimple-low.c : Likewise.
4711 * gimple-match-head.c : Likewise.
4712 * gimple-pretty-print.c : Likewise.
4713 * gimple-ssa-isolate-paths.c : Likewise.
4714 * gimple-ssa-strength-reduction.c : Likewise.
4715 * gimple-ssa.h : Likewise.
4716 * gimple-streamer-in.c : Likewise.
4717 * gimple-streamer-out.c : Likewise.
4718 * gimple-streamer.h : Likewise.
4719 * gimple-walk.c : Likewise.
4720 * gimple.c : Likewise.
4721 * gimplify-me.c : Likewise.
4722 * gimplify.c : Likewise.
4723 * godump.c : Likewise.
4724 * graph.c : Likewise.
4725 * graphds.c : Likewise.
4726 * graphite-blocking.c : Likewise.
4727 * graphite-dependences.c : Likewise.
4728 * graphite-interchange.c : Likewise.
4729 * graphite-isl-ast-to-gimple.c : Likewise.
4730 * graphite-optimize-isl.c : Likewise.
4731 * graphite-poly.c : Likewise.
4732 * graphite-scop-detection.c : Likewise.
4733 * graphite-sese-to-poly.c : Likewise.
4734 * graphite.c : Likewise.
4735 * haifa-sched.c : Likewise.
4736 * hard-reg-set.h : Likewise.
4737 * hw-doloop.c : Likewise.
4738 * ifcvt.c : Likewise.
4739 * inchash.c : Likewise.
4740 * incpath.c : Likewise.
4741 * init-regs.c : Likewise.
4742 * input.c : Likewise.
4743 * internal-fn.c : Likewise.
4744 * ipa-chkp.c : Likewise.
4745 * ipa-comdats.c : Likewise.
4746 * ipa-cp.c : Likewise.
4747 * ipa-devirt.c : Likewise.
4748 * ipa-icf-gimple.c : Likewise.
4749 * ipa-icf.c : Likewise.
4750 * ipa-inline-analysis.c : Likewise.
4751 * ipa-inline-transform.c : Likewise.
4752 * ipa-inline.c : Likewise.
4753 * ipa-polymorphic-call.c : Likewise.
4754 * ipa-profile.c : Likewise.
4755 * ipa-prop.c : Likewise.
4756 * ipa-pure-const.c : Likewise.
4757 * ipa-ref.c : Likewise.
4758 * ipa-reference.c : Likewise.
4759 * ipa-split.c : Likewise.
4760 * ipa-utils.c : Likewise.
4761 * ipa-visibility.c : Likewise.
4763 * ira-build.c : Likewise.
4764 * ira-color.c : Likewise.
4765 * ira-conflicts.c : Likewise.
4766 * ira-costs.c : Likewise.
4767 * ira-emit.c : Likewise.
4768 * ira-lives.c : Likewise.
4770 * jump.c : Likewise.
4771 * langhooks.c : Likewise.
4773 * libfuncs.h : Likewise.
4774 * lists.c : Likewise.
4775 * loop-doloop.c : Likewise.
4776 * loop-init.c : Likewise.
4777 * loop-invariant.c : Likewise.
4778 * loop-iv.c : Likewise.
4779 * loop-unroll.c : Likewise.
4780 * lower-subreg.c : Likewise.
4781 * lra-assigns.c : Likewise.
4782 * lra-coalesce.c : Likewise.
4783 * lra-constraints.c : Likewise.
4784 * lra-eliminations.c : Likewise.
4785 * lra-lives.c : Likewise.
4786 * lra-remat.c : Likewise.
4787 * lra-spills.c : Likewise.
4789 * lto-cgraph.c : Likewise.
4790 * lto-compress.c : Likewise.
4791 * lto-opts.c : Likewise.
4792 * lto-section-in.c : Likewise.
4793 * lto-section-out.c : Likewise.
4794 * lto-streamer-in.c : Likewise.
4795 * lto-streamer-out.c : Likewise.
4796 * lto-streamer.c : Likewise.
4797 * lto-streamer.h : Likewise.
4799 * mode-switching.c : Likewise.
4800 * modulo-sched.c : Likewise.
4801 * omega.c : Likewise.
4802 * omp-low.c : Likewise.
4803 * optabs.c : Likewise.
4804 * opts-global.c : Likewise.
4805 * opts.h : Likewise.
4806 * passes.c : Likewise.
4807 * plugin.c : Likewise.
4808 * postreload-gcse.c : Likewise.
4809 * postreload.c : Likewise.
4810 * predict.c : Likewise.
4811 * print-rtl.c : Likewise.
4812 * print-tree.c : Likewise.
4813 * profile.c : Likewise.
4814 * read-md.c : Likewise.
4815 * read-md.h : Likewise.
4816 * read-rtl.c : Likewise.
4817 * real.c : Likewise.
4818 * realmpfr.c : Likewise.
4819 * recog.c : Likewise.
4821 * reg-stack.c : Likewise.
4822 * regcprop.c : Likewise.
4823 * reginfo.c : Likewise.
4824 * regrename.c : Likewise.
4825 * regstat.c : Likewise.
4826 * reload.c : Likewise.
4827 * reload1.c : Likewise.
4828 * reorg.c : Likewise.
4829 * resource.c : Likewise.
4830 * rtl-chkp.c : Likewise.
4833 * rtlanal.c : Likewise.
4834 * rtlhash.c : Likewise.
4835 * rtlhash.h : Likewise.
4836 * rtlhooks.c : Likewise.
4837 * sanopt.c : Likewise.
4838 * sched-deps.c : Likewise.
4839 * sched-ebb.c : Likewise.
4840 * sched-rgn.c : Likewise.
4841 * sched-vis.c : Likewise.
4842 * sdbout.c : Likewise.
4843 * sel-sched-dump.c : Likewise.
4844 * sel-sched-ir.c : Likewise.
4845 * sel-sched-ir.h : Likewise.
4846 * sel-sched.c : Likewise.
4847 * sese.c : Likewise.
4848 * shrink-wrap.c : Likewise.
4849 * shrink-wrap.h : Likewise.
4850 * simplify-rtx.c : Likewise.
4851 * stack-ptr-mod.c : Likewise.
4852 * statistics.c : Likewise.
4853 * stmt.c : Likewise.
4854 * stor-layout.c : Likewise.
4855 * store-motion.c : Likewise.
4856 * stringpool.c : Likewise.
4857 * symtab.c : Likewise.
4858 * target-globals.c : Likewise.
4859 * targhooks.c : Likewise.
4860 * tlink.c : Likewise.
4861 * toplev.c : Likewise.
4862 * tracer.c : Likewise.
4863 * trans-mem.c : Likewise.
4864 * tree-affine.c : Likewise.
4865 * tree-affine.h : Likewise.
4866 * tree-browser.c : Likewise.
4867 * tree-call-cdce.c : Likewise.
4868 * tree-cfg.c : Likewise.
4869 * tree-cfgcleanup.c : Likewise.
4870 * tree-chkp-opt.c : Likewise.
4871 * tree-chkp.c : Likewise.
4872 * tree-chrec.c : Likewise.
4873 * tree-complex.c : Likewise.
4874 * tree-data-ref.c : Likewise.
4875 * tree-dfa.c : Likewise.
4876 * tree-diagnostic.c : Likewise.
4877 * tree-dump.c : Likewise.
4878 * tree-eh.c : Likewise.
4879 * tree-eh.h : Likewise.
4880 * tree-emutls.c : Likewise.
4881 * tree-hasher.h : Likewise.
4882 * tree-if-conv.c : Likewise.
4883 * tree-inline.c : Likewise.
4884 * tree-inline.h : Likewise.
4885 * tree-into-ssa.c : Likewise.
4886 * tree-iterator.c : Likewise.
4887 * tree-loop-distribution.c : Likewise.
4888 * tree-nested.c : Likewise.
4889 * tree-nrv.c : Likewise.
4890 * tree-object-size.c : Likewise.
4891 * tree-outof-ssa.c : Likewise.
4892 * tree-parloops.c : Likewise.
4893 * tree-phinodes.c : Likewise.
4894 * tree-predcom.c : Likewise.
4895 * tree-pretty-print.c : Likewise.
4896 * tree-profile.c : Likewise.
4897 * tree-scalar-evolution.c : Likewise.
4898 * tree-sra.c : Likewise.
4899 * tree-ssa-address.c : Likewise.
4900 * tree-ssa-alias.c : Likewise.
4901 * tree-ssa-ccp.c : Likewise.
4902 * tree-ssa-coalesce.c : Likewise.
4903 * tree-ssa-copy.c : Likewise.
4904 * tree-ssa-copyrename.c : Likewise.
4905 * tree-ssa-dce.c : Likewise.
4906 * tree-ssa-dom.c : Likewise.
4907 * tree-ssa-dse.c : Likewise.
4908 * tree-ssa-forwprop.c : Likewise.
4909 * tree-ssa-ifcombine.c : Likewise.
4910 * tree-ssa-live.c : Likewise.
4911 * tree-ssa-loop-ch.c : Likewise.
4912 * tree-ssa-loop-im.c : Likewise.
4913 * tree-ssa-loop-ivcanon.c : Likewise.
4914 * tree-ssa-loop-ivopts.c : Likewise.
4915 * tree-ssa-loop-manip.c : Likewise.
4916 * tree-ssa-loop-niter.c : Likewise.
4917 * tree-ssa-loop-prefetch.c : Likewise.
4918 * tree-ssa-loop-unswitch.c : Likewise.
4919 * tree-ssa-loop.c : Likewise.
4920 * tree-ssa-math-opts.c : Likewise.
4921 * tree-ssa-operands.c : Likewise.
4922 * tree-ssa-phiopt.c : Likewise.
4923 * tree-ssa-phiprop.c : Likewise.
4924 * tree-ssa-pre.c : Likewise.
4925 * tree-ssa-propagate.c : Likewise.
4926 * tree-ssa-reassoc.c : Likewise.
4927 * tree-ssa-sccvn.c : Likewise.
4928 * tree-ssa-scopedtables.c : Likewise.
4929 * tree-ssa-sink.c : Likewise.
4930 * tree-ssa-strlen.c : Likewise.
4931 * tree-ssa-structalias.c : Likewise.
4932 * tree-ssa-tail-merge.c : Likewise.
4933 * tree-ssa-ter.c : Likewise.
4934 * tree-ssa-threadedge.c : Likewise.
4935 * tree-ssa-threadupdate.c : Likewise.
4936 * tree-ssa-uncprop.c : Likewise.
4937 * tree-ssa-uninit.c : Likewise.
4938 * tree-ssa.c : Likewise.
4939 * tree-ssanames.c : Likewise.
4940 * tree-stdarg.c : Likewise.
4941 * tree-streamer-in.c : Likewise.
4942 * tree-streamer-out.c : Likewise.
4943 * tree-streamer.c : Likewise.
4944 * tree-streamer.h : Likewise.
4945 * tree-switch-conversion.c : Likewise.
4946 * tree-tailcall.c : Likewise.
4947 * tree-vect-data-refs.c : Likewise.
4948 * tree-vect-generic.c : Likewise.
4949 * tree-vect-loop-manip.c : Likewise.
4950 * tree-vect-loop.c : Likewise.
4951 * tree-vect-patterns.c : Likewise.
4952 * tree-vect-slp.c : Likewise.
4953 * tree-vect-stmts.c : Likewise.
4954 * tree-vectorizer.c : Likewise.
4955 * tree-vectorizer.h : Likewise.
4956 * tree-vrp.c : Likewise.
4957 * tree.c : Likewise.
4958 * tsan.c : Likewise.
4959 * ubsan.c : Likewise.
4960 * valtrack.c : Likewise.
4961 * valtrack.h : Likewise.
4962 * value-prof.c : Likewise.
4963 * var-tracking.c : Likewise.
4964 * varasm.c : Likewise.
4965 * varpool.c : Likewise.
4967 * vmsdbgout.c : Likewise.
4968 * vtable-verify.c : Likewise.
4969 * vtable-verify.h : Likewise.
4971 * wide-int.cc : Likewise.
4972 * xcoffout.c : Likewise.
4973 * config/aarch64/aarch64-builtins.c : Likewise.
4974 * config/aarch64/aarch64.c : Likewise.
4975 * config/aarch64/cortex-a57-fma-steering.c : Likewise.
4976 * config/alpha/alpha.c : Likewise.
4977 * config/arc/arc.c : Likewise.
4978 * config/arm/aarch-common.c : Likewise.
4979 * config/arm/arm-builtins.c : Likewise.
4980 * config/arm/arm-c.c : Likewise.
4981 * config/arm/arm.c : Likewise.
4982 * config/avr/avr-c.c : Likewise.
4983 * config/avr/avr-log.c : Likewise.
4984 * config/avr/avr.c : Likewise.
4985 * config/bfin/bfin.c : Likewise.
4986 * config/c6x/c6x.c : Likewise.
4987 * config/cr16/cr16.c : Likewise.
4988 * config/cris/cris.c : Likewise.
4989 * config/darwin-c.c : Likewise.
4990 * config/darwin.c : Likewise.
4991 * config/default-c.c : Likewise.
4992 * config/epiphany/epiphany.c : Likewise.
4993 * config/epiphany/mode-switch-use.c : Likewise.
4994 * config/epiphany/resolve-sw-modes.c : Likewise.
4995 * config/fr30/fr30.c : Likewise.
4996 * config/frv/frv.c : Likewise.
4997 * config/ft32/ft32.c : Likewise.
4998 * config/glibc-c.c : Likewise.
4999 * config/h8300/h8300.c : Likewise.
5000 * config/i386/i386-c.c : Likewise.
5001 * config/i386/i386.c : Likewise.
5002 * config/i386/msformat-c.c : Likewise.
5003 * config/i386/winnt-cxx.c : Likewise.
5004 * config/i386/winnt-stubs.c : Likewise.
5005 * config/i386/winnt.c : Likewise.
5006 * config/ia64/ia64-c.c : Likewise.
5007 * config/ia64/ia64.c : Likewise.
5008 * config/iq2000/iq2000.c : Likewise.
5009 * config/lm32/lm32.c : Likewise.
5010 * config/m32c/m32c-pragma.c : Likewise.
5011 * config/m32c/m32c.c : Likewise.
5012 * config/m32r/m32r.c : Likewise.
5013 * config/m68k/m68k.c : Likewise.
5014 * config/mcore/mcore.c : Likewise.
5015 * config/mep/mep-pragma.c : Likewise.
5016 * config/mep/mep.c : Likewise.
5017 * config/microblaze/microblaze-c.c : Likewise.
5018 * config/microblaze/microblaze.c : Likewise.
5019 * config/mips/mips.c : Likewise.
5020 * config/mmix/mmix.c : Likewise.
5021 * config/mn10300/mn10300.c : Likewise.
5022 * config/moxie/moxie.c : Likewise.
5023 * config/msp430/msp430-c.c : Likewise.
5024 * config/msp430/msp430.c : Likewise.
5025 * config/nds32/nds32-cost.c : Likewise.
5026 * config/nds32/nds32-fp-as-gp.c : Likewise.
5027 * config/nds32/nds32-intrinsic.c : Likewise.
5028 * config/nds32/nds32-isr.c : Likewise.
5029 * config/nds32/nds32-md-auxiliary.c : Likewise.
5030 * config/nds32/nds32-memory-manipulation.c : Likewise.
5031 * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
5032 * config/nds32/nds32-predicates.c : Likewise.
5033 * config/nds32/nds32.c : Likewise.
5034 * config/nios2/nios2.c : Likewise.
5035 * config/nvptx/nvptx.c : Likewise.
5036 * config/pa/pa.c : Likewise.
5037 * config/pdp11/pdp11.c : Likewise.
5038 * config/rl78/rl78-c.c : Likewise.
5039 * config/rl78/rl78.c : Likewise.
5040 * config/rs6000/rs6000-c.c : Likewise.
5041 * config/rs6000/rs6000.c : Likewise.
5042 * config/rx/rx.c : Likewise.
5043 * config/s390/s390-c.c : Likewise.
5044 * config/s390/s390.c : Likewise.
5045 * config/sh/sh-c.c : Likewise.
5046 * config/sh/sh-mem.cc : Likewise.
5047 * config/sh/sh.c : Likewise.
5048 * config/sh/sh_optimize_sett_clrt.cc : Likewise.
5049 * config/sh/sh_treg_combine.cc : Likewise.
5050 * config/sol2-c.c : Likewise.
5051 * config/sol2-cxx.c : Likewise.
5052 * config/sol2-stubs.c : Likewise.
5053 * config/sol2.c : Likewise.
5054 * config/sparc/sparc-c.c : Likewise.
5055 * config/sparc/sparc.c : Likewise.
5056 * config/spu/spu-c.c : Likewise.
5057 * config/spu/spu.c : Likewise.
5058 * config/stormy16/stormy16.c : Likewise.
5059 * config/tilegx/mul-tables.c : Likewise.
5060 * config/tilegx/tilegx-c.c : Likewise.
5061 * config/tilegx/tilegx.c : Likewise.
5062 * config/tilepro/mul-tables.c : Likewise.
5063 * config/tilepro/tilepro-c.c : Likewise.
5064 * config/tilepro/tilepro.c : Likewise.
5065 * config/v850/v850-c.c : Likewise.
5066 * config/v850/v850.c : Likewise.
5067 * config/vax/vax.c : Likewise.
5068 * config/visium/visium.c : Likewise.
5069 * config/vms/vms-c.c : Likewise.
5070 * config/vms/vms.c : Likewise.
5071 * config/vxworks.c : Likewise.
5072 * config/winnt-c.c : Likewise.
5073 * config/xtensa/xtensa.c : Likewise.
5075 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
5078 * ipa-utils.h (warn_types_mismatch): Update prototype.
5079 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
5081 (type_mismatch_p): New function.
5082 (warn_types_mismatch): Reorg to work better on non-C++ types.
5083 (odr_types_equivalent_p): Add loc1/loc2 parameters.
5084 (add_type_duplicate): Update.
5086 2015-06-08 Tom de Vries <tom@codesourcery.com>
5088 PR rtl-optimization/66444
5089 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
5092 2015-06-08 Richard Biener <rguenther@suse.de>
5094 PR tree-optimization/66422
5095 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
5096 block after inserted gcc_unreachable.
5098 2015-06-08 Nick Clifton <nickc@redhat.com>
5100 * config/rx/rx.c (rx_function_value): Do not promote vector types.
5101 (rx_promote_function_mode): Likewise.
5102 * config/rx/rx.h (LIBCALL_VALUE): Likewise.
5104 2015-06-08 Jakub Jelinek <jakub@redhat.com>
5106 * genattrtab.c (insn_alternatives): Change type from int *
5108 (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
5109 (get_attr_value): Change type of num_alt to uint64_t.
5110 (compute_alternative_mask): Change return type from
5111 int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
5112 (make_alternative_compare, mk_attr_alt): Change argument type
5113 from int to uint64_t.
5114 (simplify_test_exp): Change type of i from int to uint64_t.
5115 Shift ((uint64_t) 1) instead of 1 up.
5116 (main): Adjust oballocvec first argument from int to uint64_t.
5117 Shift ((uint64_t) 1) instead of 1 up.
5119 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
5122 * gdbhooks.py: Import sys.
5123 (intptr): New function. Replace int(...) by intptr(...).
5125 2015-06-08 Richard Biener <rguenther@suse.de>
5127 * tree-vect-stmts.c (vectorizable_load): Compute the pointer
5128 adjustment for gaps at the end of a SLP load group properly.
5129 * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
5130 all permutations we can generate.
5131 (vect_transform_slp_perm_load): Use the correct group-size.
5133 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
5135 * genmatch.c (expr::gen_transform): For conditions, guess the type
5136 from the second operand.
5138 2015-06-08 Tom de Vries <tom@codesourcery.com>
5140 PR tree-optimization/66442
5141 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
5142 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
5143 if the loop latch is not a singleton. Use
5144 gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
5146 2015-06-08 Marek Polacek <polacek@redhat.com>
5149 * toplev.c (check_global_declaration): Don't warn about artificial
5152 2015-06-08 Tom de Vries <tom@codesourcery.com>
5154 PR tree-optimization/66436
5155 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
5157 * gimplify.c: Add tree-dump.h include.
5158 (gimplify_function_tree): Dump function to gimple dump file.
5159 * stor-layout.c (finalize_size_functions): Don't dump function to gimple
5162 2015-06-08 Tom de Vries <tom@codesourcery.com>
5164 PR tree-optimization/66435
5165 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
5168 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
5170 * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
5171 of ptr_type_node to not be ptr_to_node.
5172 * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
5173 TREE_TYPE of pointers.
5174 * gimple-expr.c (useless_type_conversion): Reorder the check for
5175 function pointers and TYPE_CANONICAL.
5177 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
5180 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
5181 defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
5182 Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
5184 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
5185 Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
5186 _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
5187 _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
5188 and non iso if unix2003.
5190 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
5192 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
5194 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
5196 * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
5197 rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
5198 cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
5199 except.c, final.c, function.c, gcse-common.c, genemit.c,
5200 haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
5201 lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
5202 sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
5203 shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
5206 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
5208 * combine.c (combine_split_insns): Remove cast.
5209 * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
5210 * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
5211 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
5212 * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
5213 * genemit.c (gen_split): Change return type of generated functions to
5215 * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
5216 (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
5217 gen_peephole2_* functions.
5218 (print_subroutine, main): Likewise.
5219 * recog.c (peephole2_optimize): Remove cast.
5220 (peep2_next_insn): Promote return type to rtx_insn.
5221 * recog.h (peep2_next_insn): Fix prototype.
5222 * rtl.h (try_split, split_insns): Likewise.
5224 2015-06-06 DJ Delorie <dj@redhat.com>
5226 * config/msp430/msp430.c (msp430_asm_integer): Support addition
5227 and subtraction too.
5229 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
5232 * config/sh/constraints.md (Sid, Ssd): New memory constraints.
5233 * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
5234 instead of Snd. Disparage Sid/z alternative with '^'.
5236 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
5238 * dwarf2out.c: Remove deferred_locations*.
5239 (dwarf2_debug_hooks): Add early_finish hook.
5240 Remove global_decl hook.
5241 Add early_global_decl and late_global_decl hook.
5242 New global early_dwarf.
5243 New structure set_early_dwarf.
5244 (output_die): Indicate whether a DIE was generated early
5245 when generating assembly with -dA.
5246 (struct limbo_die_struct): Document created_for field.
5247 Remove file_table_last_lookup.
5248 (remove_AT): Return TRUE if successful.
5249 (remove_child_TAG): Clear die_parent.
5250 (reparent_child): New function abstracted from...
5251 (splice_child_die): ...here.
5252 (new_die): ICE if a DIE ends up in limbo too late.
5254 (defer_location): Remove.
5255 (add_subscript_info): Reuse DW_TAG_subrange_type if available.
5256 (fill_variable_array_bounds): New.
5257 (decl_start_label): Call fill_variable_array_bounds.
5258 (gen_formal_parameter_die): Rewrite to reuse previously generated
5260 (gen_subprogram_die): Same.
5261 (gen_variable_die): Same.
5262 (gen_const_die): Same.
5263 (gen_label_die): Same.
5264 (gen_lexical_block_die): Same.
5265 (decl_will_get_specification_p): New.
5266 (local_function_static): New.
5267 (gen_struct_or_union_type_die): Fill in variable-length fields.
5268 (gen_typedef_die): Fill in variable-length typedefs.
5269 (gen_tagged_type_die): Gracefully return on error_mark_node.
5271 (gen_type_die_with_usage): Handle variable-length types.
5272 Remove duplicate code for ARRAY_TYPE case.
5273 (process_scope_var): Only process imported modules during early
5275 (dwarf2out_early_global_decl): New.
5276 (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
5277 (dwarf2out_type_decl): Set early_dwarf while calling
5279 (dwarf2out_decl): Verify that we did not recreate a previously
5281 Do not return on DECL_EXTERNALs in VAR_DECLs.
5282 Abstract some code to local_function_static.
5283 (lookup_filename): Remove use of file_table_last_lookup.
5284 Gracefully exit on missing file_name.
5285 (dwarf2out_finish): Verify limbo list.
5286 Remove deferred_locations_list use.
5287 Move deferred_asm_name and limbo flushing to...
5288 (dwarf2out_early_finish): ...here. New.
5289 (dwarf2out_c_finalize): Remove set of deferred_location_list,
5290 deferred_asm_name, and file_table_last_lookup.
5291 * cgraph.h (referred_to_p): Add default argument.
5292 * cgraphunit.c (referred_to_p): Add and handle include_self
5294 (analyze_functions): Add first_time argument.
5295 Call check_global_declaration for all symbols.
5296 Call late_global_decl for nodes for moribund nodes.
5297 (finalize_compilation_unit): Add new argument to
5299 Call early_global_decl for functions.
5300 Call early_finish debug hook.
5301 * dbxout.c (dbxout_early_global_decl): New.
5302 (dbxout_late_global_decl): New. Adapted from dbxout_global_decl.
5303 (dbx_debug_hooks): Add new hooks.
5304 (xcoff_debug_hooks): Same.
5305 * debug.c (do_nothing_debug_hooks): Add early_finish field.
5306 Add early and late debug hooks.
5307 Remove global_decl hook.
5308 * debug.h (struct gcc_debug_hooks): Add early_finish,
5309 early_global_decl, and late_global_decl fields.
5310 Remove global_decl field.
5311 Document gcc_debug_hooks.
5312 * gengtype.c (output_typename): Remove.
5313 * godump.c (go_early_global_decl): New.
5314 (go_late_global_decl): New.
5315 (go_global_decl): Remove.
5316 (dump_go_spec_init): Remove global_decl. Add
5317 {early,late}_global_decl.
5318 * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
5319 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
5320 * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
5321 (write_global_declarations): Remove.
5322 (global_decl_processing): New.
5323 * langhooks.h (struct lang_hooks_for_decls): Remove
5324 final_write_globals field.
5325 Add post_compilation_parsing_cleanups field.
5326 * passes.c (rest_of_decl_compilation): Call early_global_decl.
5327 * sdbout.c: Add early and late_global_decl hooks. Remove
5328 sdbout_global_decl hook.
5329 Add early_finish field for sdb_debug_hooks.
5330 (sdbout_global_decl): Remove.
5331 (sdbout_early_global_decl): New.
5332 (sdbout_late_global_decl): New.
5333 * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
5334 * toplev.c (check_global_declaration): Rename from
5335 check_global_declaration_1.
5336 Adapt to use symtab infrastructure.
5337 (check_global_declarations): Remove.
5338 (emit_debug_global_declarations): Remove.
5339 (compile_file): Remove call to final_write_globals langhook.
5340 Run the actual compilation process.
5341 Perform any post compilation parser cleanups.
5342 Generate late debug info.
5343 * toplev.h (check_global_declaration): New.
5344 (check_global_declaration_1): Remove.
5345 (check_global_declarations): Remove.
5346 (write_global_declarations): Remove.
5347 (emit_debug_global_declarations): Remove.
5348 (global_decl_processing): New.
5349 * tree-core.h (struct tree_block): Add DIE field.
5350 * tree.h (BLOCK_DIE): New.
5351 * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
5353 (vmsdbgout_early_global_decl): New.
5354 (vmsdbgout_late_global_decl): New.
5355 Add early_finish debug hook field to vmsdbg_debug_hooks.
5356 Remove vmsdbgout_decl to vmsdbgout_function_decl.
5357 Add early and late_global_decl debug hooks.
5359 2015-06-05 Julian Brown <julian@codesourcery.com>
5360 Sandra Loosemore <sandra@codesourcery.com>
5362 * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
5363 * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
5364 to print-sysroot-suffix.sh script.
5366 2015-06-05 Tom de Vries <tom@codesourcery.com>
5368 merge from gomp4 branch:
5369 2015-05-28 Tom de Vries <tom@codesourcery.com>
5371 PR tree-optimization/65443
5372 * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
5373 (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
5374 (try_transform_to_exit_first_loop_alt): New function.
5375 (transform_to_exit_first_loop): Use
5376 try_transform_to_exit_first_loop_alt.
5378 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
5380 * builtins.c (expand_builtin_atomic_compare_exchange): Call
5381 emit_cmp_and_jump_insns with the mode of target.
5383 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5385 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
5387 2015-06-04 DJ Delorie <dj@redhat.com>
5389 * config/msp430/msp430.md (movsi_s): New. Special case for
5390 storing a 20-bit symbol into a 32-bit register.
5391 * config/msp430/msp430.c (msp430_subreg): Add support for it.
5392 * config/msp430/predicates.md (msp430_symbol_operand): New.
5394 2015-06-04 Sriraman Tallam <tmsriram@google.com>
5396 * c-family/c-common.c (noplt): New attribute.
5397 (handle_noplt_attribute): New handler.
5398 * calls.c (prepare_call_address): Check for noplt
5400 * config/i386/i386.c (ix86_expand_call): Check
5401 for noplt attribute.
5402 (ix86_nopic_noplt_attribute_p): New function.
5403 (ix86_output_call_insn): Output indirect call for non-pic
5405 * doc/extend.texi (noplt): Document new attribute.
5406 * doc/invoke.texi: Document new attribute.
5408 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
5410 * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
5411 real.h, and fixed-value.h when included in host source files.
5412 * double-int.h: Remove redundant #includes listed above.
5413 * fixed-value.h: Likewise.
5415 * wide-int.h: Likewise.
5416 * inchash.h: Likewise.
5417 * rtl.h: Add some include files When included from a generator file.
5418 * target.h: Remove wide-int.h and insn-modes.h from the include list.
5419 * internal-fn.h: Don't include coretypes.h.
5420 * alias.c: Adjust includes for restructured coretypes.h.
5422 * attribs.c: Likewise.
5423 * auto-inc-dec.c: Likewise.
5424 * auto-profile.c: Likewise.
5425 * bb-reorder.c: Likewise.
5426 * bt-load.c: Likewise.
5427 * builtins.c: Likewise.
5428 * caller-save.c: Likewise.
5429 * calls.c: Likewise.
5432 * cfganal.c: Likewise.
5433 * cfgbuild.c: Likewise.
5434 * cfgcleanup.c: Likewise.
5435 * cfgexpand.c: Likewise.
5436 * cfghooks.c: Likewise.
5437 * cfgloop.c: Likewise.
5438 * cfgloop.h: Likewise.
5439 * cfgloopanal.c: Likewise.
5440 * cfgloopmanip.c: Likewise.
5441 * cfgrtl.c: Likewise.
5442 * cgraph.c: Likewise.
5443 * cgraphbuild.c: Likewise.
5444 * cgraphclones.c: Likewise.
5445 * cgraphunit.c: Likewise.
5446 * cilk-common.c: Likewise.
5447 * combine-stack-adj.c: Likewise.
5448 * combine.c: Likewise.
5449 * compare-elim.c: Likewise.
5450 * convert.c: Likewise.
5451 * coverage.c: Likewise.
5452 * cppbuiltin.c: Likewise.
5453 * cprop.c: Likewise.
5455 * cselib.c: Likewise.
5456 * data-streamer-in.c: Likewise.
5457 * data-streamer-out.c: Likewise.
5458 * data-streamer.c: Likewise.
5459 * dbxout.c: Likewise.
5462 * debug.c: Likewise.
5463 * df-core.c: Likewise.
5464 * df-problems.c: Likewise.
5465 * df-scan.c: Likewise.
5468 * dojump.c: Likewise.
5469 * dominance.c: Likewise.
5470 * domwalk.c: Likewise.
5471 * double-int.c: Likewise.
5473 * dumpfile.c: Likewise.
5474 * dwarf2asm.c: Likewise.
5475 * dwarf2cfi.c: Likewise.
5476 * dwarf2out.c: Likewise.
5477 * dwarf2out.h: Likewise.
5478 * emit-rtl.c: Likewise.
5479 * et-forest.c: Likewise.
5480 * except.c: Likewise.
5481 * explow.c: Likewise.
5482 * expmed.c: Likewise.
5484 * final.c: Likewise.
5485 * fixed-value.c: Likewise.
5486 * fold-const.c: Likewise.
5487 * function.c: Likewise.
5488 * fwprop.c: Likewise.
5489 * gcc-plugin.h: Likewise.
5491 * generic-match-head.c: Likewise.
5492 * ggc-page.c: Likewise.
5493 * gimple-builder.c: Likewise.
5494 * gimple-expr.c: Likewise.
5495 * gimple-fold.c: Likewise.
5496 * gimple-iterator.c: Likewise.
5497 * gimple-low.c: Likewise.
5498 * gimple-match-head.c: Likewise.
5499 * gimple-pretty-print.c: Likewise.
5500 * gimple-ssa-isolate-paths.c: Likewise.
5501 * gimple-ssa-strength-reduction.c: Likewise.
5502 * gimple-streamer-in.c: Likewise.
5503 * gimple-streamer-out.c: Likewise.
5504 * gimple-streamer.h: Likewise.
5505 * gimple-walk.c: Likewise.
5506 * gimple.c: Likewise.
5507 * gimplify-me.c: Likewise.
5508 * gimplify.c: Likewise.
5509 * godump.c: Likewise.
5510 * graph.c: Likewise.
5511 * graphite-blocking.c: Likewise.
5512 * graphite-dependences.c: Likewise.
5513 * graphite-interchange.c: Likewise.
5514 * graphite-isl-ast-to-gimple.c: Likewise.
5515 * graphite-optimize-isl.c: Likewise.
5516 * graphite-poly.c: Likewise.
5517 * graphite-scop-detection.c: Likewise.
5518 * graphite-sese-to-poly.c: Likewise.
5519 * graphite.c: Likewise.
5520 * haifa-sched.c: Likewise.
5521 * hooks.h: Likewise.
5522 * hw-doloop.c: Likewise.
5523 * ifcvt.c: Likewise.
5524 * incpath.c: Likewise.
5525 * init-regs.c: Likewise.
5526 * internal-fn.c: Likewise.
5527 * ipa-chkp.c: Likewise.
5528 * ipa-comdats.c: Likewise.
5529 * ipa-cp.c: Likewise.
5530 * ipa-devirt.c: Likewise.
5531 * ipa-icf-gimple.c: Likewise.
5532 * ipa-icf.c: Likewise.
5533 * ipa-inline-analysis.c: Likewise.
5534 * ipa-inline-transform.c: Likewise.
5535 * ipa-inline.c: Likewise.
5536 * ipa-polymorphic-call.c: Likewise.
5537 * ipa-profile.c: Likewise.
5538 * ipa-prop.c: Likewise.
5539 * ipa-pure-const.c: Likewise.
5540 * ipa-ref.c: Likewise.
5541 * ipa-reference.c: Likewise.
5542 * ipa-split.c: Likewise.
5543 * ipa-utils.c: Likewise.
5544 * ipa-visibility.c: Likewise.
5546 * ira-build.c: Likewise.
5547 * ira-color.c: Likewise.
5548 * ira-conflicts.c: Likewise.
5549 * ira-costs.c: Likewise.
5550 * ira-emit.c: Likewise.
5551 * ira-lives.c: Likewise.
5554 * langhooks.c: Likewise.
5556 * loop-doloop.c: Likewise.
5557 * loop-init.c: Likewise.
5558 * loop-invariant.c: Likewise.
5559 * loop-iv.c: Likewise.
5560 * loop-unroll.c: Likewise.
5561 * lower-subreg.c: Likewise.
5562 * lra-assigns.c: Likewise.
5563 * lra-coalesce.c: Likewise.
5564 * lra-constraints.c: Likewise.
5565 * lra-eliminations.c: Likewise.
5566 * lra-lives.c: Likewise.
5567 * lra-remat.c: Likewise.
5568 * lra-spills.c: Likewise.
5570 * lto-cgraph.c: Likewise.
5571 * lto-compress.c: Likewise.
5572 * lto-opts.c: Likewise.
5573 * lto-section-in.c: Likewise.
5574 * lto-section-out.c: Likewise.
5575 * lto-streamer-in.c: Likewise.
5576 * lto-streamer-out.c: Likewise.
5577 * lto-streamer.c: Likewise.
5579 * mode-switching.c: Likewise.
5580 * modulo-sched.c: Likewise.
5581 * omega.c: Likewise.
5582 * omp-low.c: Likewise.
5583 * optabs.c: Likewise.
5584 * opts-global.c: Likewise.
5585 * passes.c: Likewise.
5586 * plugin.c: Likewise.
5587 * postreload-gcse.c: Likewise.
5588 * postreload.c: Likewise.
5589 * predict.c: Likewise.
5590 * print-rtl.c: Likewise.
5591 * print-tree.c: Likewise.
5592 * profile.c: Likewise.
5594 * realmpfr.c: Likewise.
5595 * realmpfr.h: Likewise.
5596 * recog.c: Likewise.
5598 * reg-stack.c: Likewise.
5599 * regcprop.c: Likewise.
5600 * reginfo.c: Likewise.
5601 * regrename.c: Likewise.
5603 * regstat.c: Likewise.
5604 * reload.c: Likewise.
5605 * reload1.c: Likewise.
5606 * reorg.c: Likewise.
5607 * resource.c: Likewise.
5608 * rtl-chkp.c: Likewise.
5609 * rtlanal.c: Likewise.
5610 * rtlhooks.c: Likewise.
5611 * sanopt.c: Likewise.
5612 * sched-deps.c: Likewise.
5613 * sched-ebb.c: Likewise.
5614 * sched-rgn.c: Likewise.
5615 * sched-vis.c: Likewise.
5616 * sdbout.c: Likewise.
5617 * sel-sched-dump.c: Likewise.
5618 * sel-sched-ir.c: Likewise.
5619 * sel-sched.c: Likewise.
5621 * shrink-wrap.c: Likewise.
5622 * shrink-wrap.h: Likewise.
5623 * simplify-rtx.c: Likewise.
5624 * stack-ptr-mod.c: Likewise.
5625 * statistics.c: Likewise.
5627 * stor-layout.c: Likewise.
5628 * store-motion.c: Likewise.
5629 * stringpool.c: Likewise.
5630 * symtab.c: Likewise.
5631 * target-globals.c: Likewise.
5632 * targhooks.c: Likewise.
5633 * toplev.c: Likewise.
5634 * tracer.c: Likewise.
5635 * trans-mem.c: Likewise.
5636 * tree-affine.c: Likewise.
5637 * tree-affine.h: Likewise.
5638 * tree-browser.c: Likewise.
5639 * tree-call-cdce.c: Likewise.
5640 * tree-cfg.c: Likewise.
5641 * tree-cfgcleanup.c: Likewise.
5642 * tree-chkp-opt.c: Likewise.
5643 * tree-chkp.c: Likewise.
5644 * tree-chrec.c: Likewise.
5645 * tree-complex.c: Likewise.
5646 * tree-data-ref.c: Likewise.
5647 * tree-dfa.c: Likewise.
5648 * tree-diagnostic.c: Likewise.
5649 * tree-dump.c: Likewise.
5650 * tree-eh.c: Likewise.
5651 * tree-emutls.c: Likewise.
5652 * tree-if-conv.c: Likewise.
5653 * tree-inline.c: Likewise.
5654 * tree-into-ssa.c: Likewise.
5655 * tree-iterator.c: Likewise.
5656 * tree-loop-distribution.c: Likewise.
5657 * tree-nested.c: Likewise.
5658 * tree-nrv.c: Likewise.
5659 * tree-object-size.c: Likewise.
5660 * tree-outof-ssa.c: Likewise.
5661 * tree-parloops.c: Likewise.
5662 * tree-phinodes.c: Likewise.
5663 * tree-predcom.c: Likewise.
5664 * tree-pretty-print.c: Likewise.
5665 * tree-pretty-print.h: Likewise.
5666 * tree-profile.c: Likewise.
5667 * tree-scalar-evolution.c: Likewise.
5668 * tree-sra.c: Likewise.
5669 * tree-ssa-address.c: Likewise.
5670 * tree-ssa-alias.c: Likewise.
5671 * tree-ssa-ccp.c: Likewise.
5672 * tree-ssa-coalesce.c: Likewise.
5673 * tree-ssa-copy.c: Likewise.
5674 * tree-ssa-copyrename.c: Likewise.
5675 * tree-ssa-dce.c: Likewise.
5676 * tree-ssa-dom.c: Likewise.
5677 * tree-ssa-dse.c: Likewise.
5678 * tree-ssa-forwprop.c: Likewise.
5679 * tree-ssa-ifcombine.c: Likewise.
5680 * tree-ssa-live.c: Likewise.
5681 * tree-ssa-loop-ch.c: Likewise.
5682 * tree-ssa-loop-im.c: Likewise.
5683 * tree-ssa-loop-ivcanon.c: Likewise.
5684 * tree-ssa-loop-ivopts.c: Likewise.
5685 * tree-ssa-loop-manip.c: Likewise.
5686 * tree-ssa-loop-niter.c: Likewise.
5687 * tree-ssa-loop-prefetch.c: Likewise.
5688 * tree-ssa-loop-unswitch.c: Likewise.
5689 * tree-ssa-loop.c: Likewise.
5690 * tree-ssa-loop.h: Likewise.
5691 * tree-ssa-math-opts.c: Likewise.
5692 * tree-ssa-operands.c: Likewise.
5693 * tree-ssa-phiopt.c: Likewise.
5694 * tree-ssa-phiprop.c: Likewise.
5695 * tree-ssa-pre.c: Likewise.
5696 * tree-ssa-propagate.c: Likewise.
5697 * tree-ssa-reassoc.c: Likewise.
5698 * tree-ssa-sccvn.c: Likewise.
5699 * tree-ssa-scopedtables.c: Likewise.
5700 * tree-ssa-sink.c: Likewise.
5701 * tree-ssa-strlen.c: Likewise.
5702 * tree-ssa-structalias.c: Likewise.
5703 * tree-ssa-tail-merge.c: Likewise.
5704 * tree-ssa-ter.c: Likewise.
5705 * tree-ssa-threadedge.c: Likewise.
5706 * tree-ssa-threadupdate.c: Likewise.
5707 * tree-ssa-uncprop.c: Likewise.
5708 * tree-ssa-uninit.c: Likewise.
5709 * tree-ssa.c: Likewise.
5710 * tree-ssanames.c: Likewise.
5711 * tree-stdarg.c: Likewise.
5712 * tree-streamer-in.c: Likewise.
5713 * tree-streamer-out.c: Likewise.
5714 * tree-streamer.c: Likewise.
5715 * tree-switch-conversion.c: Likewise.
5716 * tree-tailcall.c: Likewise.
5717 * tree-vect-data-refs.c: Likewise.
5718 * tree-vect-generic.c: Likewise.
5719 * tree-vect-loop-manip.c: Likewise.
5720 * tree-vect-loop.c: Likewise.
5721 * tree-vect-patterns.c: Likewise.
5722 * tree-vect-slp.c: Likewise.
5723 * tree-vect-stmts.c: Likewise.
5724 * tree-vectorizer.c: Likewise.
5725 * tree-vrp.c: Likewise.
5728 * ubsan.c: Likewise.
5729 * valtrack.c: Likewise.
5730 * value-prof.c: Likewise.
5731 * var-tracking.c: Likewise.
5732 * varasm.c: Likewise.
5733 * varpool.c: Likewise.
5734 * vmsdbgout.c: Likewise.
5735 * vtable-verify.c: Likewise.
5737 * wide-int-print.cc: Likewise.
5738 * wide-int-print.h: Likewise.
5739 * wide-int.cc: Likewise.
5740 * xcoffout.c: Likewise.
5741 * config/aarch64/aarch64-builtins.c: Likewise.
5742 * config/aarch64/aarch64.c: Likewise.
5743 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5744 * config/alpha/alpha.c: Likewise.
5745 * config/arc/arc.c: Likewise.
5746 * config/arm/aarch-common.c: Likewise.
5747 * config/arm/arm-builtins.c: Likewise.
5748 * config/arm/arm-c.c: Likewise.
5749 * config/arm/arm.c: Likewise.
5750 * config/avr/avr-c.c: Likewise.
5751 * config/avr/avr-log.c: Likewise.
5752 * config/avr/avr.c: Likewise.
5753 * config/bfin/bfin.c: Likewise.
5754 * config/c6x/c6x.c: Likewise.
5755 * config/cr16/cr16.c: Likewise.
5756 * config/cris/cris.c: Likewise.
5757 * config/darwin-c.c: Likewise.
5758 * config/darwin.c: Likewise.
5759 * config/default-c.c: Likewise.
5760 * config/epiphany/epiphany.c: Likewise.
5761 * config/epiphany/mode-switch-use.c: Likewise.
5762 * config/epiphany/resolve-sw-modes.c: Likewise.
5763 * config/fr30/fr30.c: Likewise.
5764 * config/frv/frv.c: Likewise.
5765 * config/ft32/ft32.c: Likewise.
5766 * config/glibc-c.c: Likewise.
5767 * config/h8300/h8300.c: Likewise.
5768 * config/i386/i386-c.c: Likewise.
5769 * config/i386/i386.c: Likewise.
5770 * config/i386/msformat-c.c: Likewise.
5771 * config/i386/winnt-cxx.c: Likewise.
5772 * config/i386/winnt-stubs.c: Likewise.
5773 * config/i386/winnt.c: Likewise.
5774 * config/ia64/ia64-c.c: Likewise.
5775 * config/ia64/ia64.c: Likewise.
5776 * config/iq2000/iq2000.c: Likewise.
5777 * config/lm32/lm32.c: Likewise.
5778 * config/m32c/m32c-pragma.c: Likewise.
5779 * config/m32c/m32c.c: Likewise.
5780 * config/m32r/m32r.c: Likewise.
5781 * config/m68k/m68k.c: Likewise.
5782 * config/mcore/mcore.c: Likewise.
5783 * config/mep/mep-pragma.c: Likewise.
5784 * config/mep/mep.c: Likewise.
5785 * config/microblaze/microblaze-c.c: Likewise.
5786 * config/microblaze/microblaze.c: Likewise.
5787 * config/mips/mips.c: Likewise.
5788 * config/mmix/mmix.c: Likewise.
5789 * config/mn10300/mn10300.c: Likewise.
5790 * config/moxie/moxie.c: Likewise.
5791 * config/msp430/msp430-c.c: Likewise.
5792 * config/msp430/msp430.c: Likewise.
5793 * config/nds32/nds32-cost.c: Likewise.
5794 * config/nds32/nds32-fp-as-gp.c: Likewise.
5795 * config/nds32/nds32-intrinsic.c: Likewise.
5796 * config/nds32/nds32-isr.c: Likewise.
5797 * config/nds32/nds32-md-auxiliary.c: Likewise.
5798 * config/nds32/nds32-memory-manipulation.c: Likewise.
5799 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5800 * config/nds32/nds32-predicates.c: Likewise.
5801 * config/nds32/nds32.c: Likewise.
5802 * config/nios2/nios2.c: Likewise.
5803 * config/nvptx/nvptx.c: Likewise.
5804 * config/pa/pa.c: Likewise.
5805 * config/pdp11/pdp11.c: Likewise.
5806 * config/rl78/rl78-c.c: Likewise.
5807 * config/rl78/rl78.c: Likewise.
5808 * config/rs6000/rs6000-c.c: Likewise.
5809 * config/rs6000/rs6000.c: Likewise.
5810 * config/rx/rx.c: Likewise.
5811 * config/s390/s390-c.c: Likewise.
5812 * config/s390/s390.c: Likewise.
5813 * config/sh/sh-c.c: Likewise.
5814 * config/sh/sh-mem.cc: Likewise.
5815 * config/sh/sh.c: Likewise.
5816 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5817 * config/sh/sh_treg_combine.cc: Likewise.
5818 * config/sol2-c.c: Likewise.
5819 * config/sol2-cxx.c: Likewise.
5820 * config/sol2-stubs.c: Likewise.
5821 * config/sol2.c: Likewise.
5822 * config/sparc/sparc-c.c: Likewise.
5823 * config/sparc/sparc.c: Likewise.
5824 * config/spu/spu-c.c: Likewise.
5825 * config/spu/spu.c: Likewise.
5826 * config/stormy16/stormy16.c: Likewise.
5827 * config/tilegx/mul-tables.c: Likewise.
5828 * config/tilegx/tilegx-c.c: Likewise.
5829 * config/tilegx/tilegx.c: Likewise.
5830 * config/tilepro/mul-tables.c: Likewise.
5831 * config/tilepro/tilepro-c.c: Likewise.
5832 * config/tilepro/tilepro.c: Likewise.
5833 * config/v850/v850-c.c: Likewise.
5834 * config/v850/v850.c: Likewise.
5835 * config/vax/vax.c: Likewise.
5836 * config/visium/visium.c: Likewise.
5837 * config/vms/vms-c.c: Likewise.
5838 * config/vms/vms.c: Likewise.
5839 * config/vxworks.c: Likewise.
5840 * config/winnt-c.c: Likewise.
5841 * config/xtensa/xtensa.c: Likewise.
5842 * common/config/bfin/bfin-common.c: Likewise.
5844 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
5846 * tree.h (tree_code_for_canonical_type_merging): New function.
5847 * tree.c (gimple_canonical_types_compatible_p): Use
5848 tree_code_for_canonical_type_merging..
5850 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5854 * doc/tm.texi: Regenerate.
5855 * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
5856 * target.def (TARGET_RELAXED_ORDERING): Likewise.
5857 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
5858 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
5859 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
5860 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
5861 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
5862 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
5863 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
5865 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5867 * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
5868 register fma steering pass.
5869 * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
5870 AARCH64_TUNE_FMA_STEERING.
5872 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
5874 * tree.c (verify_type_variant): Verify that type and variant is
5876 (gimple_canonical_types_compatible_p): Look for main variants.
5878 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
5880 * config.gcc (powerpc*-*-*): Add support for a new configure
5881 option --with-advance-toolchain=<xxx> which overrides using the
5882 default header files, libraries and dynamic linker.
5884 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
5885 specs to support the configure --with-advance-toolchain=<xxx>
5887 (INCLUDE_EXTRA_SPEC): Likewise.
5888 (LINK_OS_EXTRA_SPEC32): Likewise.
5889 (LINK_OK_EXTRA_SPEC64): Likewise.
5890 (LINK_OS_NEW_DTAGS_SPEC): Likewise.
5891 (DYNAMIC_LINKER_PREFIX): Likewise.
5892 (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
5894 (GLIBC_DYNAMIC_LINKER32): Likewise.
5895 (GLIBC_DYNAMIC_LINKER64): Likewise.
5896 (LINK_OS_LINUX_SPEC32): Likewise.
5897 (LINK_OS_LINUX_SPEC64): Likewise.
5899 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
5900 configuration option.
5902 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
5905 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
5906 to determine current function ABI.
5907 (ix86_function_value_regno_p): Ditto.
5909 2015-06-03 Martin Liska <mliska@suse.cz>
5911 * alloc-pool.h (struct pool_usage): Correct GNU coding style.
5912 * bitmap.h (struct bitmap_usage): Likewise.
5913 * ggc-common.c (struct ggc_usage): Likewise.
5914 * mem-stats.h (struct mem_location): Likewise.
5915 (struct mem_usage): Likewise.
5916 * vec.c (struct vec_usage): Likewise.
5918 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
5920 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
5923 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
5925 * doc/plugins.texi (enum plugin_event): New event.
5926 * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
5927 and PLUGIN_FINISH_FUNCTION.
5928 * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
5929 (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
5931 2015-06-03 Richard Biener <rguenther@suse.de>
5933 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
5934 compute GROUP_GAP for the first element.
5935 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
5938 2015-06-03 Nick Clifton <nickc@redhat.com>
5940 * config/rl78/rl78-real.md: Add peepholes to avoid a register
5941 copy when calling a function.
5942 * config/rl78/rl78.c (need_to_save): Do not push the frame
5943 pointer in an interrupt handler prologue if it is never used.
5945 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5947 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
5949 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
5951 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
5952 reference when cloning alias node.
5954 2015-06-03 Martin Liska <mliska@suse.cz>
5956 * alloc-pool.h (struct pool_usage): Correct space padding.
5957 * ggc-page.c (ggc_print_statistics): Align columns in a report.
5958 * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
5959 * tree.c (dump_tree_statistics): Align columns in a report.
5961 2015-06-03 Martin Liska <mliska@suse.cz>
5963 * alloc-pool.c (allocate_pool_descriptor): Remove.
5964 (struct pool_output_info): Likewise.
5965 (print_alloc_pool_statistics): Likewise.
5966 (dump_alloc_pool_statistics): Likewise.
5967 * alloc-pool.h (struct pool_usage): New struct.
5968 (pool_allocator::initialize): Change usage of memory statistics
5970 (pool_allocator::release): Likewise.
5971 (pool_allocator::allocate): Likewise.
5972 (pool_allocator::remove): Likewise.
5973 * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
5974 for a pool allocator.
5975 * mem-stats.h (struct mem_location): Add new ctor.
5976 (struct mem_usage): Add counter for number of
5978 (mem_alloc_description::register_descriptor): New overload of
5979 * mem-stats.h (mem_location::to_string): New function.
5980 * bitmap.h (struct bitmap_usage): Use this new function.
5981 * ggc-common.c (struct ggc_usage): Likewise.
5984 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
5986 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
5987 of GCC_INSN_FLAGS_H block.
5989 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
5991 * explow.c (plus_constant): Update check after force_const_mem call
5992 to see if the value returned is not a NULL_RTX.
5994 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
5996 * ipa.c (symbol_table::remove_unreachable_nodes): Don't
5997 remove instumentation thunks calling reachable functions.
5998 * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
5999 * lto/lto-partition.c (privatize_symbol_name_1): New.
6000 (privatize_symbol_name): Privatize both decl and orig_decl
6001 names for instrumented functions.
6002 * cgraph.c (cgraph_node::verify_node): Add transparent
6003 alias chain check for instrumented node.
6005 2015-06-03 Marek Polacek <polacek@redhat.com>
6009 * tree.c (attribute_value_equal): Handle attribute format.
6010 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
6012 2015-06-03 Richard Biener <rguenther@suse.de>
6014 PR tree-optimization/63916
6015 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
6016 Forward-propagate non-invariant addresses by splicing their
6017 reference ops if the result isn't going to be used by PRE.
6018 (vn_reference_lookup_3): Remove pointless assert.
6020 2015-06-03 Richard Biener <rguenther@suse.de>
6022 PR tree-optimization/66375
6023 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
6024 add to the evolution before following SSA edges.
6026 2015-06-03 Bin Cheng <bin.cheng@arm.com>
6028 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
6029 (dump_use, dump_cand, find_induction_variables): Pass new argument
6031 (record_use): Preserve the ssa name information in IV.
6033 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
6035 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
6037 (add_mode_tests): Don't add mode tests if the predicate only
6038 accepts scalar constant integers. Otherwise, allow the mode
6039 of "op" to be VOIDmode if the predicate does accept such integers.
6041 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
6044 * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
6045 !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
6046 (aarch64_secondary_reload): Likewise
6047 (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
6049 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
6052 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
6053 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6056 * cprop.c (try_replace_reg): Check cost of constants before propagating.
6058 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6060 * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
6061 provide access to the IBM extended double floating point mode if
6062 long double is IEEE 128-bit floating point.
6063 (KFmode): Define KFmode to provide access to IEEE 128-bit floating
6064 point if long double is the IBM extended double type.
6066 * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
6067 enable adding IEEE 128-bit floating point support.
6068 (-mfloat128-software): Likewise.
6069 (-mfloat128-sw): Likewise.
6071 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
6072 128-bit floating point types to occupy any register if
6073 -mlong-double-64. Do not allow use of IFmode/KFmode unless
6074 -mfloat128-software is enabled.
6075 (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
6077 (rs6000_option_override_internal): Add -mfloat128-* support.
6078 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
6080 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
6081 and float128 type nodes.
6082 (ieee128_float_type_node): Likewise.
6083 (ibm128_float_type_node): Likewise.
6085 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
6088 * config/aarch64/geniterators.sh: Rewrite in awk.
6090 2015-06-02 Martin Liska <mliska@suse.cz>
6092 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
6093 values to avoid -Wmaybe-uninitialized errors.
6095 2015-06-02 Richard Biener <rguenther@suse.de>
6098 * dwarf2out.c (lookup_context_die): New function.
6099 (resolve_addr): Avoid forcing a full DIE for the
6100 target of a DW_TAG_GNU_call_site during late compilation.
6101 Instead create a stub DIE without a type if we have a
6102 context DIE present.
6104 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
6106 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
6108 2015-06-02 Bin Cheng <bin.cheng@arm.com>
6110 PR tree-optimization/48052
6111 * cfgloop.h (struct control_iv): New.
6112 (struct loop): New field control_ivs.
6113 * tree-ssa-loop-niter.c : Include "stor-layout.h".
6114 (number_of_iterations_lt): Set no_overflow information.
6115 (number_of_iterations_exit): Init control iv in niter struct.
6116 (record_control_iv): New.
6117 (estimate_numbers_of_iterations_loop): Call record_control_iv.
6118 (loop_exits_before_overflow): New. Interface factored out of
6119 scev_probably_wraps_p.
6120 (scev_probably_wraps_p): Factor loop niter related code into
6121 loop_exits_before_overflow.
6122 (free_numbers_of_iterations_estimates_loop): Free control ivs.
6123 * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
6125 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
6127 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
6128 the target doesn't belong to the current function.
6130 2015-06-02 Marek Polacek <polacek@redhat.com>
6133 * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
6134 get_maxval_strlen does not produce an INTEGER_CST.
6136 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
6138 * config/arc/constraints.md: Use lower-case names in match_code.
6139 * config/mmix/constraints.md: Likewise.
6141 2015-06-02 Richard Biener <rguenther@suse.de>
6143 PR tree-optimization/65961
6144 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
6145 check and clarify dump message.
6146 (vect_build_slp_tree): If all children are built up from scalars
6147 build up the parent from scalars instead.
6148 * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
6150 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
6153 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
6154 instead of print ... .
6156 2015-06-02 Alan Modra <amodra@gmail.com>
6158 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
6161 2015-06-02 Bin Cheng <bin.cheng@arm.com>
6163 PR tree-optimization/52563
6164 PR tree-optimization/62173
6165 * tree-ssa-loop-ivopts.c (struct iv): New field. Reorder fields.
6166 (alloc_iv, set_iv): New parameter.
6167 (determine_biv_step): Delete.
6168 (find_bivs): Inline original determine_biv_step. Pass new
6170 (idx_find_step): Use no_overflow information for conversion.
6171 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
6172 resolve_mixers handle folded_casts.
6173 (instantiate_scev_name): Change bool parameter to bool pointer.
6174 (instantiate_scev_poly, instantiate_scev_binary): Ditto.
6175 (instantiate_array_ref, instantiate_scev_not): Ditto.
6176 (instantiate_scev_3, instantiate_scev_2): Ditto.
6177 (instantiate_scev_1, instantiate_scev_r): Ditto.
6178 (instantiate_scev_convert, ): Change parameter. Pass argument
6179 to chrec_convert_aggressive.
6180 (instantiate_scev): Change argument.
6181 (resolve_mixers): New parameter and set it.
6182 (scev_const_prop): New argument.
6183 * tree-scalar-evolution.h (resolve_mixers): New parameter.
6184 * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
6186 (chrec_convert): New parameter. Move definition below.
6187 (chrec_convert_aggressive): New parameter and set it. Call
6188 convert_affine_scev.
6189 * tree-chrec.h (chrec_convert): New parameter.
6190 (chrec_convert_aggressive): Ditto.
6192 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
6194 * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
6195 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
6196 the LHS of a no-return call if its type has variable size.
6197 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
6198 * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
6200 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
6202 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
6203 * config.in: Regenerate.
6205 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
6207 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
6208 consecutive accesses within outer-loop with force_vectorize
6209 for references with zero step in inner-loop.
6211 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
6213 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
6214 rather than from gcc/build directory.
6216 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
6219 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
6220 for __sync memory models, emit initial loads and final barriers as
6223 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
6226 * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
6227 (aarch64_split_atomic_op): Check for __sync memory models, emit
6228 appropriate initial loads and final barriers.
6230 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
6232 * Makefile.in: Fix gcov dependencies that should
6233 not point to a build folder.
6235 2015-06-01 Richard Biener <rguenther@suse.de>
6238 2015-05-29 Richard Biener <rguenther@suse.de>
6240 PR tree-optimization/66314
6241 * tree-ssa-threadupdate.c (create_block_for_threading): Add
6242 parameter that says which loop the new block belongs to.
6243 (ssa_create_duplicates): Blocks duplicated for the threaded
6244 path belong to the loop of the thread destination.
6246 2015-06-01 Martin Liska <mliska@suse.cz>
6248 * sched-deps.c: Include pool-alloc.h before
6249 cselib.h header file is included.
6251 2015-06-01 Richard Biener <rguenther@suse.de>
6253 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
6256 2015-06-01 Martin Liska <mliska@suse.cz>
6258 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
6259 a function local variable.
6261 2015-06-01 Martin Liska <mliska@suse.cz>
6263 * alloc-pool.c (create_alloc_pool): Remove.
6264 (empty_alloc_pool): Likewise.
6265 (free_alloc_pool): Likewise.
6266 (free_alloc_pool_if_empty): Likewise.
6267 (pool_alloc): Likewise.
6268 (pool_free): Likewise.
6269 * alloc-pool.h: Remove old declarations.
6271 2015-06-01 Martin Liska <mliska@suse.cz>
6273 * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
6274 (ira_create_object): Likewise.
6275 (ira_create_allocno): Likewise.
6276 (ira_create_live_range): Likewise.
6277 (copy_live_range): Likewise.
6278 (ira_finish_live_range): Likewise.
6279 (ira_free_allocno_costs): Likewise.
6280 (finish_allocno): Likewise.
6281 (finish_allocnos): Likewise.
6282 (initiate_prefs): Likewise.
6283 (ira_create_pref): Likewise.
6284 (finish_pref): Likewise.
6285 (finish_prefs): Likewise.
6286 (initiate_copies): Likewise.
6287 (ira_create_copy): Likewise.
6288 (finish_copy): Likewise.
6289 (finish_copies): Likewise.
6290 (finish_prefs): Likewise.
6292 2015-06-01 Martin Liska <mliska@suse.cz>
6294 * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
6295 (allocate_and_init_ipcp_value): Likewise.
6296 (ipcp_lattice::add_value): Likewise.
6297 (merge_agg_lats_step): Likewise.
6298 (ipcp_driver): Likewise.
6299 * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
6300 (ipa_free_all_structures_after_iinln): Likewise.
6301 * ipa-prop.h: Likewise.
6303 2015-06-01 Martin Liska <mliska@suse.cz>
6305 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
6307 (set_hint_predicate): Likewise.
6308 (inline_summary_alloc): Likewise.
6309 (reset_inline_edge_summary): Likewise.
6310 (reset_inline_summary): Likewise.
6311 (set_cond_stmt_execution_predicate): Likewise.
6312 (set_switch_stmt_execution_predicate): Likewise.
6313 (compute_bb_predicates): Likewise.
6314 (estimate_function_body_sizes): Likewise.
6315 (inline_free_summary): Likewise.
6317 2015-06-01 Martin Liska <mliska@suse.cz>
6319 * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
6320 (ipa_edge_duplication_hook): Likewise.
6321 (ipa_free_all_structures_after_ipa_cp): Likewise.
6322 (ipa_free_all_structures_after_iinln): Likewise.
6324 2015-06-01 Martin Liska <mliska@suse.cz>
6326 * ipa-profile.c (account_time_size): Use new type-based pool allocator.
6327 (ipa_profile_generate_summary): Likewise.
6328 (ipa_profile_read_summary): Likewise.
6329 (ipa_profile): Likewise.
6331 2015-06-01 Martin Liska <mliska@suse.cz>
6333 * tree-ssa-structalias.c (new_var_info): Use new type-based
6335 (new_constraint): Likewise.
6336 (init_alias_vars): Likewise.
6337 (delete_points_to_sets): Likewise.
6339 2015-06-01 Martin Liska <mliska@suse.cz>
6341 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
6342 (free_strinfo): Likewise.
6343 (pass_strlen::execute): Likewise.
6345 2015-06-01 Martin Liska <mliska@suse.cz>
6347 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
6349 (vn_reference_insert_pieces): Likewise.
6350 (vn_phi_insert): Likewise.
6351 (visit_reference_op_call): Likewise.
6352 (copy_phi): Likewise.
6353 (copy_reference): Likewise.
6354 (process_scc): Likewise.
6355 (allocate_vn_table): Likewise.
6356 (free_vn_table): Likewise.
6358 2015-06-01 Martin Liska <mliska@suse.cz>
6360 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
6362 (add_repeat_to_ops_vec): Likewise.
6363 (get_ops): Likewise.
6364 (maybe_optimize_range_tests): Likewise.
6365 (init_reassoc): Likewise.
6366 (fini_reassoc): Likewise.
6368 2015-06-01 Martin Liska <mliska@suse.cz>
6370 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
6372 (bitmap_set_new): Likewise.
6373 (get_or_alloc_expr_for_constant): Likewise.
6374 (get_or_alloc_expr_for): Likewise.
6375 (phi_translate_1): Likewise.
6376 (compute_avail): Likewise.
6377 (init_pre): Likewise.
6378 (fini_pre): Likewise.
6380 2015-06-01 Martin Liska <mliska@suse.cz>
6382 * sched-deps.c (create_dep_node): Use new type-based pool allocator.
6383 (delete_dep_node): Likewise.
6384 (create_deps_list): Likewise.
6385 (free_deps_list): Likewise.
6386 (sched_deps_init): Likewise.
6387 (sched_deps_finish): Likewise.
6389 2015-06-01 Martin Liska <mliska@suse.cz>
6391 * regcprop.c (free_debug_insn_changes): Use new type-based
6393 (replace_oldest_value_reg): Likewise.
6394 (pass_cprop_hardreg::execute): Likewise.
6396 2015-06-01 Martin Liska <mliska@suse.cz>
6398 * ira-build.c (initiate_cost_vectors): Use new type-based
6400 (ira_allocate_cost_vector): Likewise.
6401 (ira_free_cost_vector): Likewise.
6402 (finish_cost_vectors): Likewise.
6404 2015-06-01 Martin Liska <mliska@suse.cz>
6406 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
6408 (free_sched_pools): Likewise.
6409 * sel-sched-ir.h (_list_alloc): Likewise.
6410 (_list_remove): Likewise.
6412 2015-06-01 Martin Liska <mliska@suse.cz>
6414 * stmt.c (add_case_node): Use new type-based pool allocator.
6415 (expand_case): Likewise.
6416 (expand_sjlj_dispatch_table): Likewise.
6418 2015-06-01 Martin Liska <mliska@suse.cz>
6420 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
6421 (free_bb): Likewise.
6422 (pass_cse_reciprocals::execute): Likewise.
6424 2015-06-01 Martin Liska <mliska@suse.cz>
6426 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
6427 (sra_deinitialize) Likewise.
6428 (create_access_1) Likewise.
6429 (build_accesses_from_assign) Likewise.
6430 (create_artificial_child_access) Likewise.
6432 2015-06-01 Martin Liska <mliska@suse.cz>
6434 * dse.c (get_group_info):Use new type-based pool allocator.
6435 (dse_step0) Likewise.
6436 (free_store_info) Likewise.
6437 (delete_dead_store_insn) Likewise.
6438 (free_read_records) Likewise.
6439 (record_store) Likewise.
6440 (replace_read) Likewise.
6441 (check_mem_read_rtx) Likewise.
6442 (scan_insn) Likewise.
6443 (dse_step1) Likewise.
6444 (dse_step7) Likewise.
6446 2015-06-01 Martin Liska <mliska@suse.cz>
6448 * df-scan.c (struct df_scan_problem_data):Use new type-based
6450 (df_scan_free_internal) Likewise.
6451 (df_scan_alloc) Likewise.
6452 (df_grow_reg_info) Likewise.
6453 (df_free_ref) Likewise.
6454 (df_insn_create_insn_record) Likewise.
6455 (df_mw_hardreg_chain_delete) Likewise.
6456 (df_insn_info_delete) Likewise.
6457 (df_free_collection_rec) Likewise.
6458 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
6459 (df_sort_and_compress_mws) Likewise.
6460 (df_ref_create_structure) Likewise.
6461 (df_ref_record) Likewise.
6463 2015-06-01 Martin Liska <mliska@suse.cz>
6465 * df-problems.c (df_chain_create):Use new type-based pool allocator.
6466 (df_chain_unlink_1) Likewise.
6467 (df_chain_unlink) Likewise.
6468 (df_chain_remove_problem) Likewise.
6469 (df_chain_alloc) Likewise.
6470 (df_chain_free) Likewise.
6471 * df.h (struct dataflow) Likewise.
6473 2015-06-01 Martin Liska <mliska@suse.cz>
6475 * cselib.c (new_elt_list):Use new type-based pool allocator.
6476 (new_elt_loc_list) Likewise.
6477 (unchain_one_elt_list) Likewise.
6478 (unchain_one_elt_loc_list) Likewise.
6479 (unchain_one_value) Likewise.
6480 (new_cselib_val) Likewise.
6481 (cselib_init) Likewise.
6482 (cselib_finish) Likewise.
6484 2015-06-01 Martin Liska <mliska@suse.cz>
6486 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
6487 (sh_reorg) Likewise.
6489 2015-06-01 Martin Liska <mliska@suse.cz>
6491 * cfg.c (initialize_original_copy_tables):Use new type-based
6493 (free_original_copy_tables) Likewise.
6494 (copy_original_table_clear) Likewise.
6495 (copy_original_table_set) Likewise.
6497 2015-06-01 Martin Liska <mliska@suse.cz>
6499 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
6501 (asan_mem_ref_new) Likewise.
6502 (free_mem_ref_resources) Likewise.
6504 2015-06-01 Martin Liska <mliska@suse.cz>
6506 * var-tracking.c (variable_htab_free):Use new type-based
6508 (attrs_list_clear) Likewise.
6509 (attrs_list_insert) Likewise.
6510 (attrs_list_copy) Likewise.
6511 (shared_hash_unshare) Likewise.
6512 (shared_hash_destroy) Likewise.
6513 (unshare_variable) Likewise.
6514 (var_reg_delete_and_set) Likewise.
6515 (var_reg_delete) Likewise.
6516 (var_regno_delete) Likewise.
6517 (drop_overlapping_mem_locs) Likewise.
6518 (variable_union) Likewise.
6519 (insert_into_intersection) Likewise.
6520 (canonicalize_values_star) Likewise.
6521 (variable_merge_over_cur) Likewise.
6522 (dataflow_set_merge) Likewise.
6523 (remove_duplicate_values) Likewise.
6524 (variable_post_merge_new_vals) Likewise.
6525 (dataflow_set_preserve_mem_locs) Likewise.
6526 (dataflow_set_remove_mem_locs) Likewise.
6527 (variable_from_dropped) Likewise.
6528 (variable_was_changed) Likewise.
6529 (set_slot_part) Likewise.
6530 (clobber_slot_part) Likewise.
6531 (delete_slot_part) Likewise.
6532 (loc_exp_insert_dep) Likewise.
6533 (notify_dependents_of_changed_value) Likewise.
6534 (emit_notes_for_differences_1) Likewise.
6535 (vt_emit_notes) Likewise.
6536 (vt_initialize) Likewise.
6537 (vt_finalize) Likewise.
6539 2015-06-01 Martin Liska <mliska@suse.cz>
6541 * ira-color.c (init_update_cost_records):Use new type-based
6543 (get_update_cost_record) Likewise.
6544 (free_update_cost_record_list) Likewise.
6545 (finish_update_cost_records) Likewise.
6546 (initiate_cost_update) Likewise.
6548 2015-06-01 Martin Liska <mliska@suse.cz>
6550 * lra.c (init_insn_regs): Use new type-based pool allocator.
6551 (new_insn_reg) Likewise.
6552 (free_insn_reg) Likewise.
6553 (free_insn_regs) Likewise.
6554 (finish_insn_regs) Likewise.
6555 (init_insn_recog_data) Likewise.
6556 (init_reg_info) Likewise.
6557 (finish_reg_info) Likewise.
6558 (lra_free_copies) Likewise.
6559 (lra_create_copy) Likewise.
6560 (invalidate_insn_data_regno_info) Likewise.
6562 2015-06-01 Martin Liska <mliska@suse.cz>
6564 * lra-lives.c (free_live_range): Use new type-based pool allocator.
6565 (free_live_range_list) Likewise.
6566 (create_live_range) Likewise.
6567 (copy_live_range) Likewise.
6568 (lra_merge_live_ranges) Likewise.
6569 (remove_some_program_points_and_update_live_ranges) Likewise.
6570 (lra_live_ranges_init) Likewise.
6571 (lra_live_ranges_finish) Likewise.
6573 2015-06-01 Martin Liska <mliska@suse.cz>
6575 * et-forest.c (et_new_occ): Use new type-based pool allocator.
6576 (et_new_tree): Likewise.
6577 (et_free_tree): Likewise.
6578 (et_free_tree_force): Likewise.
6579 (et_free_pools): Likewise.
6580 (et_split): Likewise.
6582 2015-06-01 Martin Liska <mliska@suse.cz>
6584 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
6586 * alloc-pool.h (pool_allocator::pool_allocator): New function.
6587 (pool_allocator::release): Likewise.
6588 (inline pool_allocator::release_if_empty): Likewise.
6589 (inline pool_allocator::~pool_allocator): Likewise.
6590 (pool_allocator::allocate): Likewise.
6591 (pool_allocator::remove): Likewise.
6593 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
6595 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
6598 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
6600 * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
6602 * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
6603 (arm_macro_fusion_p): Likewise.
6604 (arm_macro_fusion_pair_p): Likewise.
6606 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
6608 * config/aarch64/aarch64-protos.h (tune_params): Rename
6609 fuseable_ops to fusible_ops.
6610 * config/aarch64/aarch64.c (generic_tunings): Rename
6611 fuseable_ops to fusible_ops.
6612 (cortexa53_tunings): Likewise.
6613 (cortexa57_tunings): Likewise.
6614 (thunderx_tunings): Likewise.
6615 (xgene1_tunings): Likewise.
6616 (aarch64_macro_fusion_p): Likewise.
6617 (aarch64_macro_fusion_pair_p): Likewise.
6619 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
6621 * config/s390/driver-native.c: New file.
6622 * config/s390/x-native: New file.
6623 * config.host: Add new files for s390.
6624 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
6626 * config.gcc: Likewise.
6627 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
6628 * config/s390/s390-opts.h (enum processor_type): Ditto.
6629 * config/s390/s390.c (s390_option_override): Catch unhandled
6632 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
6635 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
6636 redirection for instrumented calls.
6637 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
6638 (append_compiler_options): Append -fcheck-pointer-bounds.
6639 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
6640 (chkp_redirect_edge): New.
6641 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
6642 (chkp_redirect_edge): New.
6644 2015-06-01 Richard Biener <rguenther@suse.de>
6646 PR tree-optimization/66280
6647 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
6650 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6652 * config/aarch64/aarch64.md
6653 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
6656 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
6658 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
6659 Remove obsolete kludge.
6661 2015-06-01 Richard Biener <rguenther@suse.de>
6663 * tree-ssa-reassoc.c (get_rank): Simplify.
6665 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
6667 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
6668 * configure: Regenerated.
6670 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
6672 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
6673 issue (add space between string literal and macro).
6674 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
6676 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
6678 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
6679 implict or explicit -fPIE or -fpie.
6681 2015-05-30 Mike Frysinger <vapier@gentoo.org>
6683 * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
6685 2015-05-28 DJ Delorie <dj@redhat.com>
6687 * expmed.c (extract_bit_field_1): Avoid clobbering a
6688 yet-to-be-used base/index register.
6690 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
6692 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
6693 (alias_stats): Add num_universal.
6694 (alias_set_subset_of): Special case pointers; be ready for NULL
6696 (alias_sets_conflict_p): Special case pointers; be ready for NULL
6698 (init_alias_set_entry): Break out from ...
6699 (record_alias_subset): ... here; propagate new fields;
6700 allocate children only when really needed.
6701 (get_alias_set): Do less generous pointer globbing.
6702 (dump_alias_stats_in_alias_c): Update statistics.
6704 2015-05-30 Alan Modra <amodra@gmail.com>
6706 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
6707 correct block for use of r12.
6708 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
6710 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6713 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
6716 2015-05-29 Jakub Jelinek <jakub@redhat.com>
6718 PR tree-optimization/66142
6719 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
6720 virtual phis that feed themselves.
6722 2015-05-29 Richard Biener <rguenther@suse.de>
6724 PR tree-optimization/66314
6725 * tree-ssa-threadupdate.c (create_block_for_threading): Add
6726 parameter that says which loop the new block belongs to.
6727 (ssa_create_duplicates): Blocks duplicated for the threaded
6728 path belong to the loop of the thread destination.
6730 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6732 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
6733 to cleanup-saved-temps.
6734 * doc/sourcebuild.texi (Clean up generated test files): Expand
6736 (dg-keep-saved-temps): Document new proc.
6737 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
6738 cleanup-saved-temps): Remove.
6740 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
6742 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
6744 * configure: Regenerate.
6746 2015-05-28 Mike Frysinger <vapier@gentoo.org>
6748 * config/nios2/linux.h (CPP_SPEC): Define.
6750 2015-05-28 Mike Frysinger <vapier@gentoo.org>
6752 * config/microblaze/linux.h (CPP_SPEC): Define.
6754 2015-05-28 Mike Frysinger <vapier@gentoo.org>
6756 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
6757 -pthread is specified.
6759 2015-05-28 Richard Biener <rguenther@suse.de>
6761 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
6762 (vect_fixup_scalar_cycles_with_patterns): Likewise.
6763 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
6764 after pattern recog.
6765 (vect_create_epilog_for_reduction): Properly handle reductions
6767 (vectorizable_reduction): Likewise.
6768 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
6770 (vect_get_constant_vectors): Create the correct number of
6771 initial values for reductions.
6772 (vect_schedule_slp_instance): Handle reduction chains that are
6773 type changing properly.
6774 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
6776 2015-05-28 Richard Biener <rguenther@suse.de>
6778 PR tree-optimization/66142
6779 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
6780 values better in memcpy destination handling. Handle non-aliasing
6783 2015-05-28 Lawrence Velázquez <vq@larryv.me>
6786 * config/darwin-c.c (version_components): New global enum.
6787 (parse_version, version_as_legacy_macro)
6788 (version_as_modern_macro, macosx_version_as_macro): New functions.
6789 (version_as_macro): Remove.
6790 (darwin_cpp_builtins): Use new function.
6792 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
6794 * builtins.c (expand_builtin_acc_on_device): Mark parameters
6795 with ATTRIBUTE_UNUSED.
6797 2015-05-28 Julian Brown <julian@codesourcery.com>
6801 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
6802 sequence for !ACCEL_COMPILER.
6804 2015-05-28 Nick Clifton <nickc@redhat.com>
6806 * config/rx/rx.c (push_regs): New function. Extracts code from...
6807 (rx_expand_prologue): ... here. Use push_regs to push even small
6809 (pop_regs): New function.
6810 (rx_expand_epilogue): Use pop_regs to pop even small spans of
6813 2015-05-28 Richard Biener <rguenther@suse.de>
6815 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
6817 (SLP_INSTANCE_BODY_COST_VEC): Remove.
6818 (vect_update_slp_costs_according_to_vf): Likewise.
6819 (vect_slp_analyze_operations): Update prototype.
6820 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
6821 vect_update_slp_costs_according_to_vf, adjust.
6822 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
6823 (vect_analyze_slp_cost_1): Likewise.
6824 (vect_analyze_slp_cost): Likewise. Properly deal with
6825 widening reduction ops. Commit body costs.
6826 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
6827 cost for loops from here.
6828 (vect_slp_analyze_operations): But do it from here when
6829 the vectorization factor is known and stmts are analyzed.
6830 (vect_bb_vectorization_profitable_p): Simplify.
6831 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
6832 (vect_update_slp_costs_according_to_vf): Remove.
6834 2015-05-27 Magnus Granberg <zorry@gentoo.org>
6835 H.J. Lu <hongjiu.lu@intel.com>
6837 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
6838 (BUILD_CFLAGS): Likewise.
6839 (BUILD_CXXFLAGS): Likewise.
6840 (LINKER): Add @NO_PIE_FLAG@.
6841 (BUILD_LDFLAGS): Likewise.
6842 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
6843 --enable-default-pie.
6844 * common.opt (fPIE): Initialize to -1.
6846 (no-pie): New option.
6847 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
6848 * configure.ac: Add --enable-default-pie.
6849 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
6850 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
6851 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
6852 * gcc.c (NO_PIE_SPEC): New.
6853 (PIE_SPEC): Likewise.
6854 (NO_FPIE1_SPEC): Likewise.
6855 (FPIE1_SPEC): Likewise.
6856 (NO_FPIE2_SPEC): Likewise.
6857 (FPIE2_SPEC): Likewise.
6858 (NO_FPIE2_SPEC): Likewise.
6859 (FPIE_SPEC): Likewise.
6860 (NO_FPIE_SPEC): Likewise.
6861 (NO_FPIC1_SPEC): Likewise.
6862 (FPIC1_SPEC): Likewise.
6863 (NO_FPIC2_SPEC): Likewise.
6864 (FPIC2_SPEC): Likewise.
6865 (NO_FPIC2_SPEC): Likewise.
6866 (FPIC_SPEC): Likewise.
6867 (NO_FPIC_SPEC): Likewise.
6868 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
6869 (FPIE1_OR_FPIC1_SPEC): Likewise.
6870 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
6871 (FPIE2_OR_FPIC2_SPEC): Likewise.
6872 (NO_FPIE_AND_FPIC_SPEC): Likewise.
6873 (FPIE_OR_FPIC_SPEC): Likewise.
6874 (LD_PIE_SPEC): Likewise.
6875 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
6876 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
6877 * config/darwin.h (PIE_SPEC): Renamed to ...
6878 (DARWIN_PIE_SPEC): This.
6879 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
6880 * config/darwin9.h (PIE_SPEC): Renamed to ...
6881 (DARWIN_PIE_SPEC): This.
6882 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
6883 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
6884 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
6885 FPIE2_OR_FPIC2_SPEC.
6886 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
6887 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
6888 * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
6889 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
6890 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
6891 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
6892 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
6893 * config/m32r/m32r.h (ASM_SPEC): Likewise.
6894 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
6895 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
6896 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
6897 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
6898 * config/sparc/linux.h (ASM_SPEC): Likewise.
6899 * config/sparc/linux64.h (ASM_SPEC): Likewise.
6900 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
6901 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
6902 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6903 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
6904 * config/sparc/sparc.h (ASM_SPEC): Likewise.
6905 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
6906 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
6907 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
6908 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
6909 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
6910 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
6911 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
6912 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
6913 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
6914 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
6915 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
6916 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
6917 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6918 * config/vax/linux.h (ASM_SPEC): Likewise.
6919 * doc/install.texi: Document --enable-default-pie.
6920 * doc/invoke.texi: Document -no-pie.
6921 * config.in: Regenerated.
6922 * configure: Likewise.
6924 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
6926 PR rtl-optimization/66168
6927 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
6928 can_move_invariant_reg.
6930 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
6933 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
6934 REG_EQUAL note when doing insert.
6936 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
6937 instead of "%d" for 'o' operand.
6939 2015-05-27 Nathan Sidwell <nathan@acm.org>
6942 * tree.c (build_pointer_type_for_mode): Canonical type does not
6943 inherit can_alias_all.
6944 (build_reference_type_for_mode): Likewise.
6946 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
6948 * expr.h (array_at_struct_end_p): Move to...
6949 (array_ref_element_size): Likewise.
6950 (component_ref_field_offset): Likewise.
6951 * tree.h (array_ref_element_size): ...here.
6952 (array_at_struct_end_p): Likewise.
6953 (component_ref_field_offset): Likewise.
6954 * expr.c (array_ref_element_size): Move to...
6955 (array_ref_low_bound): Likewise.
6956 (array_at_struct_end_p): Likewise.
6957 (array_ref_up_bound): Likewise.
6958 (component_ref_field_offset): Likewise.
6959 * tree.c (array_ref_element_size): ...here.
6960 (array_ref_low_bound): Likewise.
6961 (array_ref_up_bound): Likewise.
6962 (array_at_struct_end_p): Likewise.
6963 (component_ref_field_offset): Likewise.
6965 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
6966 Szabolcs Nagy <szabolcs.nagy@arm.com>
6968 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
6970 2015-05-27 Jason Merrill <jason@redhat.com>
6973 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
6974 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
6975 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
6977 2015-05-22 Aditya Kumar <hiraditya@msn.com>
6979 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
6982 * statistics.c (statistics_fini_pass): Print pass name.
6984 2015-05-27 Richard Biener <rguenther@suse.de>
6986 PR tree-optimization/66272
6988 2014-08-15 Richard Biener <rguenther@suse.de>
6990 PR tree-optimization/62031
6991 * tree-data-ref.c (dr_analyze_indices): Do not set
6992 DR_UNCONSTRAINED_BASE.
6993 (dr_may_alias_p): All indirect accesses have to go the
6994 formerly DR_UNCONSTRAINED_BASE path.
6995 * tree-data-ref.h (struct indices): Remove
6996 unconstrained_base member.
6997 (DR_UNCONSTRAINED_BASE): Remove.
6999 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
7001 * dwarf2out.c: Remove block_map.
7002 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
7003 (gen_lexical_block_die): Same.
7004 (dwarf2out_function_decl): Remove block_map use.
7005 (dwarf2out_c_finalize): Same.
7006 * tree-core.h (struct tree_block): Add die field.
7007 * tree.h (BLOCK_DIE): New.
7009 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7012 * expr.c (memory_load_overlap): New function.
7013 (emit_push_insn): When pushing partial args to the stack would
7014 clobber the register part load the overlapping part into a pseudo
7015 and put it into the hard reg after pushing. Change return type
7016 to bool. Add bool argument.
7017 * expr.h (emit_push_insn): Change return type to bool.
7019 * calls.c (expand_call): Cancel sibcall optimization when encountering
7020 partial argument on targets with ARGS_GROW_DOWNWARD and
7021 !STACK_GROWS_DOWNWARD.
7022 (emit_library_call_value_1): Update callsite of emit_push_insn.
7023 (store_one_arg): Likewise.
7025 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
7027 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
7029 2015-05-27 Martin Liska <mliska@suse.cz>
7031 * Makefile.in: Add additional dependencies related to memory report
7033 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
7034 * bitmap.c (struct bitmap_descriptor_d): Remove.
7035 (struct loc): Likewise.
7036 (struct bitmap_desc_hasher): Likewise.
7037 (bitmap_desc_hasher::hash): Likewise.
7038 (bitmap_desc_hasher::equal): Likewise.
7039 (get_bitmap_descriptor): Likewise.
7040 (bitmap_register): User new memory descriptor API.
7041 (register_overhead): Likewise.
7042 (bitmap_find_bit): Register nsearches and search_iter statistics.
7043 (struct bitmap_output_info): Remove.
7044 (print_statistics): Likewise.
7045 (dump_bitmap_statistics): Use new memory descriptor.
7046 * bitmap.h (struct bitmap_usage): New class.
7047 * genmatch.c: Extend header file inclusion.
7048 * genpreds.c: Likewise.
7049 * ggc-common.c (struct ggc_usage): New class.
7050 (struct ggc_loc_desc_hasher): Remove.
7051 (ggc_loc_desc_hasher::hash): Likewise.
7052 (ggc_loc_desc_hasher::equal): Likewise.
7053 (struct ggc_ptr_hash_entry): Likewise.
7054 (struct ptr_hash_hasher): Likewise.
7055 (ptr_hash_hasher::hash): Likewise.
7056 (ptr_hash_hasher::equal): Likewise.
7057 (make_loc_descriptor): Likewise.
7058 (ggc_prune_ptr): Likewise.
7059 (dump_ggc_loc_statistics): Use new memory descriptor.
7060 (ggc_record_overhead): Likewise.
7061 (ggc_free_overhead): Likewise.
7062 (final_cmp_statistic): Remove.
7063 (cmp_statistic): Likewise.
7064 (ggc_add_statistics): Liekwise.
7065 (ggc_prune_overhead_list): Likewise.
7066 * hash-map-traits.h: New file.
7067 * hash-map.h (struct default_hashmap_traits): Move the traits to a
7068 separate header file.
7069 * hash-set.h: Pass memory statistics info to ctor.
7070 * hash-table.c (void dump_hash_table_loc_statistics): New function.
7071 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
7072 (hash_table::~hash_table): Register memory release operation.
7073 (hash_table::alloc_entries): Handle memory allocation operation.
7074 (hash_table::expand): Likewise.
7075 * inchash.c (iterative_hash_hashval_t): Move implementation to header
7077 (iterative_hash_host_wide_int): Likewise.
7078 * inchash.h (class hash): Likewise.
7079 * mem-stats-traits.h: New file.
7080 * mem-stats.h: New file.
7081 (mem_location): Add new class.
7082 (mem_usage): Likewise.
7083 (mem_alloc_description): Likewise.
7084 * sese.c: Add new header file inclusision.
7085 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
7087 * tree-sra.c: Add new header file inclusision.
7088 * vec.c (struct vec_descriptor): Remove.
7089 (hash_descriptor): Likewise.
7090 (struct vec_usage): Likewise.
7091 (struct ptr_hash_entry): Likewise.
7092 (hash_ptr): Likewise.
7094 (vec_prefix::register_overhead): Use new memory descriptor API.
7095 (vec_prefix::release_overhead): Likewise.
7096 (add_statistics): Remove.
7097 (dump_vec_loc_statistics): Use new memory descriptor API.
7098 * vec.h (struct vec_prefix): Likewise.
7099 (va_heap::reserve): Likewise.
7100 (va_heap::release): Likewise.
7101 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
7103 2015-05-27 Richard Biener <rguenther@suse.de>
7105 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
7106 earlier and remove ??? comment.
7107 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
7108 and got called from loop analysis bail out. Always pass the SLP
7109 node to the vectorizable_* functions.
7110 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
7111 the premature SLP check here.
7112 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
7114 (vect_detect_hybrid_slp_1): Likewise.
7116 2015-05-26 Jeff Law <law@redhat.com>
7118 * combine.c (find_split_point): Verify that the shift count is a
7119 constant when choosing (plus (ashift ...)) as a split point.
7121 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
7122 No functional changes.
7124 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
7126 * ipa-polymorphic-call.c
7127 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
7128 case when call target is already known.
7130 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
7133 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
7134 take into account the case that operands[1] and operands[2]
7135 are the same register.
7137 2015-05-26 Michael Matz <matz@suse.de>
7141 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
7143 (vect_create_vectorized_demotion_stmts): Always set
7144 STMT_VINFO_VEC_STMT, also with SLP.
7145 (vectorizable_store): Handle strided group stores.
7147 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7150 * config/aarch64/aarch64.md
7151 (*adds_shift_imm_<mode>): New pattern.
7152 (*subs_shift_imm_<mode>): Likewise.
7153 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
7154 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
7155 (*add_uxt<mode>_shift2): Likewise.
7156 (*add_uxtsi_shift2_uxtw): Likewise.
7157 (*sub_uxt<mode>_shift2): Likewise.
7158 (*sub_uxtsi_shift2_uxtw): Likewise.
7160 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
7162 * config/rs6000/constraints.md (Y, U): Use match_test.
7164 2015-05-26 Christian Bruel <christian.bruel@st.com>
7167 * config/arm/arm.c (arm_option_check_internal)
7168 (arm_option_params_internal): Check opts->target_flags to set macros.
7169 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
7170 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
7171 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
7172 (builtin_define): Replaced with def_or_undef_macro.
7173 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
7174 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
7175 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
7176 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
7177 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
7178 (TARGET_ARM_FEATURE_LDREX_P)
7179 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
7180 * config/arm/arm-c.c (def_or_undef_macro): New function.
7181 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
7183 2015-05-26 Christian Bruel <christian.bruel@st.com>
7185 * c-common.h (builtin_define_with_int_value)
7186 (builtin_define_type_sizeof): Declare.
7187 * c-cppbuiltin.c (builtin_define_with_int_value)
7188 (builtin_define_type_sizeof): Externalize.
7189 (builtin_define_std): Cleanup declaration.
7190 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
7191 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
7192 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
7193 (builtin_define, builtin_assert): New macros.
7195 2015-05-26 Richard Biener <rguenther@suse.de>
7197 PR tree-optimization/66142
7198 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
7199 MEM_REFs for the same base address.
7201 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7204 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
7206 2015-05-26 Jason Merrill <jason@redhat.com>
7208 * configure.ac: Set CXXFLAGS for ISL test.
7209 * configure: Regenerate.
7211 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
7212 strstr and basename.
7213 * configure: Regenerate.
7215 2015-05-26 Richard Biener <rguenther@suse.de>
7217 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
7218 X % C -> X & (C - 1) for C being a power-of two to ...
7219 * match.pd: ... patterns.
7221 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
7223 * match.pd (swapped_tcc_comparison): New operator list.
7224 (-A CMP -B): New simplification.
7225 * fold-const.c (fold_comparison): Remove corresponding code.
7227 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
7229 * caller-save.c (init_caller_save): Base temporary register numbers
7230 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
7231 * cfgloopanal.c (init_set_costs): Likewise.
7232 * dojump.c (prefer_and_bit_test): Likewise.
7233 * expr.c (init_expr_target): Likewise.
7234 * ira.c (setup_prohibited_mode_move_regs): Likewise.
7235 * lower-subreg.c (init_lower_subreg): Likewise.
7236 * postreload.c (reload_cse_regs_1): Likewise.
7238 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
7240 * gensupport.h (compute_test_codes): Declare.
7241 * gensupport.c (compute_predicate_codes): Rename to...
7242 (compute_test_codes): ...this. Generalize error message.
7243 (process_define_predicate): Update accordingly.
7244 * genpreds.c (compute_maybe_allows): Delete.
7245 (add_constraint): Use compute_test_codes to determine whether
7246 something can accept a SUBREG, REG or MEM.
7248 2015-05-26 Torvald Riegel <triegel@redhat.com>
7250 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
7251 'memory model' to align with C++11; fix description of memory orders;
7254 2015-05-26 Richard Biener <rguenther@suse.de>
7256 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
7257 (vect_analyze_loop_operations): ... here. Remove slp parameter,
7258 detect whether we apply SLP. Remove call to
7259 vect_update_slp_costs_according_to_vf.
7260 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
7261 vect_update_slp_costs_according_to_vf from here. Dispatch
7262 to vect_slp_analyze_operations to analyze SLP stmts.
7263 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
7264 unused bb_vec_info parameter, adjust assert.
7265 (vect_slp_analyze_operations): Pass in the slp instance tree
7266 instead of bb_vec_info.
7267 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
7268 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
7270 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
7272 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
7273 Q_REGS. Expand comment.
7274 (REG_CLASS_NAMES): Ditto.
7275 (REG_CLASS_CONTENTS): Ditto.
7277 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
7280 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
7281 when LEGACY_INT_REGNO_P is processed.
7283 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
7285 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
7287 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7289 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
7290 register if not marked dead/unused, before return.
7292 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
7295 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
7296 is set; check for assembler name at LTO time.
7297 (type_in_anonymous_namespace): Remove hacks, check that all
7298 anonymous types are called "<anon>"
7299 (odr_type_p): Simplify; add check for "<anon>"
7300 (odr_subtypes_equivalent): Add odr_type_p check.
7301 * tree.c (need_assembler_name_p): Even anonymous namespace needs
7304 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
7306 * ipa-utils.h (method_class_type): Remove.
7307 * cgraphunit.c (walk_polymorphic_call_targets): Use
7308 TYPE_METHOD_BASETYPE.
7309 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
7310 on main variants only.
7311 (method_class_type): Remove.
7312 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
7313 (build_type_inheritance_graph): Likewise.
7314 * ipa-icf.c (sem_function::equals_wpa): Likewise.
7315 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
7316 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
7318 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
7320 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
7321 is_typedef_decl, typedef_variant_p): Constify.
7322 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
7323 is_typedef_decl, typedef_variant_p): Constify.
7325 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7327 * defaults.h (gen_tablejump): New function.
7328 (HAVE_tablejump): Add default value.
7332 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7334 * defaults.h (gen_store_multiple): New function.
7335 (HAVE_store_multiple): Add default value.
7336 * expr.c (move_block_from_reg): Adjust.
7338 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7340 * defaults.h (gen_load_multiple): New function.
7341 (HAVE_load_multiple): Add default value.
7342 * expr.c (move_block_to_reg): Adjust.
7344 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7346 * defaults.h (gen_mem_signal_fence): New function.
7347 (HAVE_mem_signal_fence): Add default value.
7350 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7352 * defaults.h (gen_memory_barrier): New function.
7353 (HAVE_memory_barrier): Add default value.
7356 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7358 * defaults.h (gen_mem_thread_fence): New function.
7359 (HAVE_mem_thread_fence): Add default definition.
7362 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7364 * combine.c (find_split_point): Check the value of HAVE_lo_sum
7365 instead of if it is defined.
7366 (combine_simplify_rtx): Likewise.
7367 * lra-constraints.c (process_address_1): Likewise.
7368 * config/darwin.c: Adjust.
7369 * genconfig.c (main): Always define HAVE_lo_sum.
7371 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7373 * genmatch.c (parser::parse_operation): Reject expanding
7374 operator-list inside 'for'.
7376 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7378 * genmatch.c (parser::parse_for): Reject iterator if used as
7381 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7383 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
7384 after end of id-list.
7386 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
7388 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
7389 we do not try to compute canonical type for type that does not need
7391 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
7393 * tree.h (type_with_alias_set_p): New.
7395 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
7397 * tree.c (gimple_canonical_types_compatible_p): Do not compare
7398 function attributes.
7399 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
7401 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
7403 * Makefile.in (check_gcc_parallelize): Delete.
7404 (lang_checks_parallelized): Update comment.
7406 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
7408 PR rtl-optimization/66237
7409 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
7410 location of an "as_a" cast.
7412 2015-05-22 Jeff Law <law@redhat.com>
7414 * config/pa/pa.md (non-canonical shift-add insns): Remove.
7415 (peepholes with non-canonical RTL sources): Remove.
7416 (peepholes for indexed stores of FP regs in integer modes): Match and
7417 generate canonical RTL.
7419 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
7421 PR tree-optimization/63387
7422 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
7423 ((x ord x) & (y ord y) -> (x ord y),
7424 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
7425 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
7426 vectors like scalars.
7428 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
7430 * convert.c (convert_to_integer, convert_to_vector): Include the
7431 types in the error message.
7433 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
7435 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
7438 2015-05-22 Jeff Law <law@redhat.com>
7440 * config/pa/pa.md (integer_indexed_store splitters): Use
7441 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
7442 insns -- adjusting the constant 2nd operand accordingly.
7444 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
7445 (plus (ashift X log2) Y) if it is a split point.
7447 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
7448 out of hppa_legitimize_address to handle both forms of a multiply
7450 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
7451 Always generate the ASHIFT variant as the result is not directly
7452 used in a MEM. Update comments and refactor slightly to improve
7455 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7458 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
7459 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
7460 (aarch64_composite_type_p): Return false if given type and mode are
7463 2015-05-22 Richard Biener <rguenther@suse.de>
7465 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
7467 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
7468 patterns when determining whether SLP is pure.
7469 (vect_is_slp_reduction): Remove check for pattern stmts.
7470 (vect_is_simple_reduction_1): Remove dead code.
7471 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
7472 (vect_get_and_check_slp_defs): Pass in the stmt number.
7473 Allow the first def in a reduction to be not a pattern stmt when
7474 the rest of the stmts def are patterns.
7475 (vect_build_slp_tree_1): Allow tcc_expression codes like
7476 SAD_EXPR and DOT_PROD_EXPR.
7477 (vect_build_slp_tree): Adjust.
7478 (vect_analyze_slp): Refactor and move BB vect error message ...
7479 (vect_slp_analyze_bb_1): ... here.
7481 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
7483 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
7484 for CSWTCH temporary.
7486 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7488 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
7489 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
7492 2015-05-22 Richard Biener <rguenther@suse.de>
7494 PR tree-optimization/66251
7495 * tree-vect-stmts.c (vectorizable_conversion): Properly
7496 set STMT_VINFO_VEC_STMT even for the SLP case.
7498 2015-05-22 Marek Polacek <polacek@redhat.com>
7500 * doc/extend.texi: Use @pxref instead of @xref.
7502 2015-05-22 hiraditya <hiraditya@msn.com>
7504 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
7507 2015-05-22 Richard Biener <rguenther@suse.de>
7509 PR tree-optimization/65701
7510 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7511 Move peeling cost models into one place. Peel for alignment
7512 for single loads only if an aligned load is cheaper than
7515 2015-05-22 Marek Polacek <polacek@redhat.com>
7518 * doc/extend.texi (Enumerator Attributes): New section.
7519 Document syntax of enumerator attributes.
7521 2015-05-22 Richard Biener <rguenther@suse.de>
7523 * tree-vect-loop.c (get_reduction_op): New function.
7524 (vect_model_reduction_cost): Use it, add reduc_index parameter.
7525 Make ready for BB reductions.
7526 (vect_create_epilog_for_reduction): Use get_reduction_op.
7527 (vectorizable_reduction): Init reduc_index to a valid value.
7528 Adjust vect_model_reduction_cost call.
7529 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
7530 operand for reduction defaults. Add SAD_EXPR support.
7531 Assert we have a neutral op for SLP reductions.
7532 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
7533 walking pattern stmt ops only recurse to SSA names.
7535 2015-05-22 Richard Biener <rguenther@suse.de>
7537 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
7538 assert with guard, remove check on detected reduction.
7539 (vect_recog_sad_pattern): Likewise.
7540 (vect_recog_widen_sum_pattern): Likewise.
7542 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7544 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
7545 __always_inline__ attribute.
7546 (vaesdq_u8): Likewise.
7547 (vaesmcq_u8): Likewise.
7548 (vaesimcq_u8): Likewise.
7549 (vsha1cq_u32): Likewise.
7550 (vsha1mq_u32): Likewise.
7551 (vsha1pq_u32): Likewise.
7552 (vsha1h_u32): Likewise.
7553 (vsha1su0q_u32): Likewise.
7554 (vsha1su1q_u32): Likewise.
7555 (vsha256hq_u32): Likewise.
7556 (vsha256h2q_u32): Likewise.
7557 (vsha256su0q_u32): Likewise.
7558 (vsha256su1q_u32): Likewise.
7559 (vmull_p64): Likewise.
7560 (vmull_high_p64): Likewise.
7562 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7564 * final.c (final_scan_insn): Don't check HAVE_peephole with the
7566 * output.h: Likewise.
7567 * genconfig.c (main): Alwways define HAVE_peephole.
7568 * genpeep.c: Don't emit checks of HAVE_peephole.
7570 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7572 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
7573 check HAVE_conditional_move with the preprocessor.
7575 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7577 * genconfig.c (main): Always define HAVE_conditional_move.
7578 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
7579 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
7582 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7584 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
7585 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
7586 and FRAME_POINTER_REGNUM with the preprocessor.
7588 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7590 * defaults.h: Add default for STACK_PUSH_CODE.
7591 * expr.c: Don't redefine STACK_PUSH_CODE.
7592 * recog.c: Likewise.
7594 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7596 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
7597 sched-deps.c: Use if instead of preprocessor checks with
7598 STACK_GROWS_DOWNWARD.
7600 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7602 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
7604 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
7605 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
7606 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
7607 * doc/tm.texi: Regenerate.
7609 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
7612 * config/i386/constraints.md (Bg): New constraint for GOT memory
7614 * config/i386/i386.md (*call_got_x32): New pattern.
7615 (*call_value_got_x32): Likewise.
7616 * config/i386/predicates.md (GOT_memory_operand): New predicate.
7618 2015-05-21 Jakub Jelinek <jakub@redhat.com>
7620 PR tree-optimization/66233
7621 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
7624 2015-05-21 Jeff Law <law@redhat.com>
7626 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
7627 than MULT for shadd sequences.
7629 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
7631 * alias.c (alias_stats): New static var.
7632 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
7633 (dump_alias_stats_in_alias_c): New function.
7634 * alias.h (dump_alias_stats_in_alias_c): Declare.
7635 * tree-ssa-alias.c (dump_alias_stats): Call it.
7637 2015-05-08 Michael Matz <matz@suse.de>
7639 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
7641 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
7642 (STMT_VINFO_STRIDED_P): ... this.
7643 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
7644 (vect_verify_datarefs_alignment): Likewise.
7645 (vect_enhance_data_refs_alignment): Likewise.
7646 (vect_analyze_data_ref_access): Likewise.
7647 (vect_analyze_data_refs): Accept strided stores.
7648 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
7649 (vect_model_load_cost): Adjust for macro rename.
7650 (vectorizable_mask_load_store): Likewise.
7651 (vectorizable_load): Likewise.
7652 (vectorizable_store): Open code strided stores.
7654 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7656 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
7659 2015-05-21 Richard Biener <rguenther@suse.de>
7662 * match.pd: Guard pattern optimzing (int)(float)int
7663 conversions to apply only on GIMPLE.
7665 2015-05-21 Jeff Law <law@redhat.com>
7667 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
7668 multiply-accumulate/shift-add insn generation.
7670 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
7673 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
7674 operands[1] are the same.
7676 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
7679 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
7680 build_distinct_type_copy to copy bounds.
7682 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
7684 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
7685 Change to unsigned int.
7687 2015-05-20 Jeff Law <law@redhat.com>
7689 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
7690 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
7691 (pa_shadd_constant_p): Allow constants for shadd insns rather
7692 than valid scaling constants for memory addresses.
7693 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
7694 * config/pa/predicates.md (mem_shadd_operand): New predicate.
7695 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
7696 (shift-add insns using ASHIFT): New patterns.
7698 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
7700 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
7702 (fix_up_fall_thru_edges): Likewise.
7703 (fix_crossing_conditional_branches): Likewise. Promote jump targets
7704 from to rtx_insn to rtx_code_label where feasible.
7705 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
7706 gen_move_insn (returned type changed to rtx_insn).
7707 * builtins.c (expand_errno_check): Fix arguments of
7708 do_compare_rtx_and_jump (now expects rtx_code_label).
7709 (expand_builtin_acc_on_device): Likewise.
7710 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
7711 invert_jump (now exprects rtx_jump_insn).
7712 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
7713 (construct_init_block): Use rtx_code_label.
7714 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
7715 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
7716 calling redirect_jump.
7717 (patch_jump_insn): Likewise.
7718 (redirect_branch_edge): Likewise.
7719 (force_nonfallthru_and_redirect): Likewise.
7720 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
7722 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
7723 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
7724 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
7725 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
7726 to store the value retured by gen_label_rtx.
7727 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
7729 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
7730 (split_branches): Fix calls of redirect_jump.
7731 * dojump.c (jumpifnot): Promote argument type from rtx to
7733 (jumpifnot_1): Likewise.
7735 (jumpif_1): Likewise.
7736 (do_jump_1): Likewise.
7737 (do_jump): Likewise. Use rtx_code_label when feasible.
7738 (do_jump_by_parts_greater_rtx): Likewise.
7739 (do_jump_by_parts_zero_rtx): Likewise.
7740 (do_jump_by_parts_equality_rtx): Likewise.
7741 (do_compare_rtx_and_jump): Likewise.
7742 * dojump.h: Update function prototypes.
7743 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
7745 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
7747 (emit_label_before): Likewise.
7748 (emit_jump_insn_after_noloc): Likewise.
7749 (emit_jump_insn_after_setloc): Likewise.
7750 (emit_jump_insn_after): Likewise
7751 (emit_jump_insn_before_setloc): Likewise.
7752 (emit_jump_insn_before): Likewise.
7753 (emit_label_before): Promote return type to rtx_code_label.
7754 (emit_label): Likewise.
7755 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
7756 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
7758 (emit_stack_restore): Likewise.
7759 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
7760 (do_cmp_and_jump): Likewise.
7761 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
7762 from rtx to rtx_code_label.
7763 (gen_move_insn_uncast): New function.
7764 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
7765 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
7766 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
7767 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
7768 invert_jump_1 and redirect_jump_1.
7769 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
7770 do_compare_rtx_and_jump.
7771 (expand_addsub_overflow): Likewise.
7772 (expand_neg_overflow): Likewise.
7773 (expand_mul_overflow): Likewise.
7774 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
7775 return value of gen_move_insn.
7776 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
7777 * loop-doloop.c (add_test): Use rtx_code_label.
7778 (doloop_modify): Likewise.
7779 (doloop_optimize): Likewise.
7780 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
7781 * lra-constraints.c (emit_spill_move): Remove cast of value returned
7783 (inherit_reload_reg): Add cast when calling dump_insn_slim.
7784 (split_reg): Likewise.
7785 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
7787 * optabs.c (expand_binop_directly): Remove casts of values returned by
7789 (expand_unop_direct): Likewise.
7790 (expand_abs): Likewise.
7791 (maybe_emit_unop_insn): Likewise.
7792 (maybe_gen_insn): Promote return type to rtx_insn.
7793 * optabs.h: Update prototype of maybe_gen_insn.
7794 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
7796 * recog.c (struct peep2_insn_data): Promote type of insn field to
7798 (peep2_reinit_state): Use NULL instead of NULL_RTX.
7799 (peep2_attempt): Remove casts of insn in peep2_insn_data.
7800 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
7801 * recog.h (struct insn_gen_fn): Promote return types of function
7802 pointers and operator ().from rtx to rtx_insn.
7803 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
7804 (fill_eager_delay_slots): Likewise.
7805 (relax_delay_slots): Likewise.
7806 (make_return_insns): Likewise.
7807 (dbr_schedule): Likewise.
7808 (optimize_skips): Likewise.
7809 (reorg_redirect_jump): Likewise.
7810 (fill_slots_from_thread): Likewise.
7811 * reorg.h: Update prototypes.
7812 * resource.c (find_dead_or_set_registers): Use dyn_cast to
7813 rtx_jump_insn instead of check. Use it's jump_target method.
7814 * rtl.h (rtx_jump_insn::jump_label): Define new method.
7815 (rtx_jump_insn::jump_target): Define new method.
7816 (rtx_jump_insn::set_jump_target): Define new method.
7817 * rtlanal.c (tablejump_p): Promote type of one local variable.
7818 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
7819 (sched_analyze_insn): Likewise.
7820 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
7821 (print_insn): Likewise.
7822 * stmt.c (label_rtx): Promote return type to rtx_insn.
7823 (force_label_rtx): Likewise.
7824 (jump_target_rtx): Define new function.
7825 (expand_label): Use it, get rid of one cast.
7826 (expand_naked_return): Promote rtx to rtx_code_label.
7827 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
7828 (expand_case): Use rtx_code_label instread of rtx where feasible.
7829 (expand_sjlj_dispatch_table): Likewise.
7830 (emit_case_nodes): Likewise.
7831 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
7832 * store-motion.c (insert_store): Make use of new return type of
7833 gen_move_insn and remove a cast.
7834 (replace_store_insn): Likewise.
7836 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
7838 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
7839 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
7841 2015-05-20 Jeff Law <law@redhat.com>
7843 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
7844 dispose of the jump thread path when the jump threading
7845 opportunity is cancelled.
7847 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
7849 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
7850 when printing the caret character.
7852 2015-05-20 Marek Polacek <polacek@redhat.com>
7854 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
7856 2015-05-20 Marek Polacek <polacek@redhat.com>
7858 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
7859 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
7860 * gimple-fold.c (canonicalize_bool): Likewise.
7861 (same_bool_result_p): Likewise.
7862 * tree-if-conv.c (parse_predicate): Likewise.
7864 2015-05-20 Marek Polacek <polacek@redhat.com>
7866 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
7867 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
7869 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7871 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
7872 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
7875 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
7877 * config/mips/mips.h (micromips_globals): Declare.
7879 2015-05-20 David Malcolm <dmalcolm@redhat.com>
7881 * timevar.def (TV_INITIALIZE_RTL): New.
7882 * toplev.c (initialize_rtl): Use an auto_timevar to account this
7883 function's time to TV_INITIALIZE_RTL.
7885 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
7887 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
7888 gimple_build_nop calls.
7889 (chkp_find_bounds_for_elem): Likewise.
7890 (chkp_get_zero_bounds): Likewise.
7891 (chkp_get_none_bounds): Likewise.
7892 (chkp_get_bounds_by_definition): Likewise.
7893 (chkp_generate_extern_var_bounds): Likewise.
7894 (chkp_get_bounds_for_decl_addr): Likewise.
7895 (chkp_get_bounds_for_string_cst): Likewise.
7897 2015-05-20 Bin Cheng <bin.cheng@arm.com>
7899 PR tree-optimization/65447
7900 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
7901 (dump_use, dump_uses): Support to dump sub use.
7902 (record_use): New parameters to support sub use. Remove call to
7904 (record_sub_use, record_group_use): New functions.
7905 (compute_max_addr_offset, split_all_small_groups): New functions.
7906 (group_address_uses, rewrite_use_address): New functions.
7907 (strip_offset): New declaration.
7908 (find_interesting_uses_address): Call record_group_use.
7909 (add_candidate): New assertion.
7910 (infinite_cost_p): Move definition forward.
7911 (add_costs): Check INFTY cost and return immediately.
7912 (get_computation_cost_at): Clear setup cost and dependent bitmap
7914 (determine_use_iv_cost_address): Compute cost for sub uses.
7915 (rewrite_use_address_1): Rename from old rewrite_use_address.
7916 (free_loop_data): Free sub uses.
7917 (tree_ssa_iv_optimize_loop): Call group_address_uses.
7919 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
7920 Jim Wilson <jim.wilson@linaro.org>
7922 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
7923 new fields loadv and storev.
7924 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
7925 Initialize loadv and storev.
7926 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
7927 (cortexa53_extra_costs): Likewise.
7928 (cortexa57_extra_costs): Likewise.
7929 (xgene1_extra_costs): Likewise.
7930 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
7933 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
7935 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
7937 (cortexa8_extra_costs): Likewise.
7938 (cortexa5_extra_costs): Likewise.
7939 (cortexa7_extra_costs): Likewise.
7940 (cortexa12_extra_costs): Likewise.
7941 (cortexa15_extra_costs): Likewise.
7942 (v7m_extra_costs): Likewise.
7944 2015-05-20 Jeff Law <law@redhat.com>
7946 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
7947 instead of open-coded version. Also delete the jump thread created
7948 within this function.
7950 2015-05-20 Alan Modra <amodra@gmail.com>
7952 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
7953 stack adjusting insn. Formatting.
7954 (rs6000_emit_prologue): Track stack adjusting insn, and use of
7955 r12. If possible, emit first -fsplit-stack arg pointer insn
7956 before stack adjust. Don't use r12 to save cr if split-stack.
7958 2015-05-20 Alan Modra <amodra@gmail.com>
7960 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
7962 (rs6000_supports_split_stack): New function.
7963 * gcc/config/rs6000/rs6000.c (machine_function): Add
7964 split_stack_arg_pointer.
7965 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
7966 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
7967 rather than virtual_incoming_args_rtx.
7968 (rs6000_va_start): Likewise.
7969 (split_stack_arg_pointer_used_p): New function.
7970 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
7971 (morestack_ref): New var.
7972 (gen_add3_const, rs6000_expand_split_stack_prologue,
7973 rs6000_internal_arg_pointer, rs6000_live_on_entry,
7974 rs6000_split_stack_space_check): New functions.
7975 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
7976 * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
7977 (UNSPECV_SPLIT_STACK_RETURN): Define.
7978 (split_stack_prologue, load_split_stack_limit,
7979 load_split_stack_limit_di, load_split_stack_limit_si,
7980 split_stack_return, split_stack_space_check): New expands and insns.
7981 * gcc/config/rs6000/rs6000-protos.h
7982 (rs6000_expand_split_stack_prologue): Declare.
7983 (rs6000_split_stack_space_check): Declare.
7985 2015-05-20 Alan Modra <amodra@gmail.com>
7987 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
7988 (direct_return): Test vrsave_size rather than vrsave_mask.
7989 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
7990 (rs6000_emit_epilogue): Likewise.
7992 2015-05-20 Alan Modra <amodra@gmail.com>
7994 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
7995 when not saving registers.
7996 (debug_stack_info): Adjust to omit printing unused offsets,
7998 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
8001 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8004 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
8005 value_type to const char *.
8007 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
8009 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
8010 to build a biarch toolchain again.
8012 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
8014 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
8015 or implicit declarations.
8016 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
8018 (get_odr_type): Check type has linkage before adding bases.
8019 (register_odr_type): Check that type has linkage before adding it.
8020 (type_known_to_have_no_deriavations_p): Rename to ..
8021 (type_known_to_have_no_derivations_p): This one.
8022 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
8023 (type_known_to_have_no_derivations_p): This one.
8024 * ipa-polymorphic-call.c
8025 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
8028 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
8030 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
8031 (layout_type): Use RECORD_OR_UNION_TYPE_P.
8033 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8035 * config/s390/s390.c (s390_vector_bool_type_p): New function.
8036 (s390_invalid_binary_op): New function.
8037 (TARGET_INVALID_BINARY_OP): Define macro.
8039 2015-05-19 David Sherwood <david.sherwood@arm.com>
8041 * loop-invariant.c (create_new_invariant): Don't calculate address cost
8042 if mode is not a scalar integer.
8043 (get_inv_cost): Increase computational cost for unused invariants.
8045 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8047 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
8048 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
8049 * config/s390/s390-builtin-types.def: New file.
8050 * config/s390/s390-builtins.def: New file.
8051 * config/s390/s390-builtins.h: New file.
8052 * config/s390/s390-c.c: New file.
8053 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
8054 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
8055 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
8056 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
8058 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
8060 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
8061 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
8062 variable definitions.
8063 (s390_const_operand_ok): New function.
8064 (s390_expand_builtin): Rewrite.
8065 (s390_init_builtins): New function.
8066 (s390_handle_vectorbool_attribute): New function.
8067 (s390_attribute_table): Add s390_vector_bool attribute.
8068 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
8069 (s390_branch_condition_mask): Generate masks for new modes.
8070 (s390_expand_vec_compare_cc): New function.
8071 (s390_mangle_type): Add mangling for vector bool types.
8072 (enum s390_builtin): Remove.
8073 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
8075 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
8076 s390_cpu_cpp_builtins.
8077 (REGISTER_TARGET_PRAGMAS): New macro.
8078 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
8079 (insn_cmp mode attribute): Add new CC modes.
8080 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
8081 (lcbb): New pattern definition.
8082 * config/s390/s390intrin.h: Include vecintrin.h.
8083 * config/s390/t-s390: New file.
8084 * config/s390/vecintrin.h: New file.
8085 * config/s390/vector.md: Include vx-builtins.md.
8086 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
8089 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8091 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
8093 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
8094 (s390_select_ccmode): Likewise.
8095 (s390_canonicalize_comparison): Swap operands if necessary.
8096 (s390_expand_vec_compare_scalar): Expand DFmode compare using
8097 single element vector instructions.
8098 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
8099 (s390_branch_condition_mask): Generate CC masks for the new modes.
8100 * config/s390/s390.md (v0, vf, vd): New mode attributes.
8101 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
8102 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
8103 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
8104 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
8105 (*extend<DSF:mode><BFP:mode>2): New insn definition.
8106 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
8107 (extend<DSF:mode><BFP:mode>2): Turn into expander.
8108 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
8109 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
8110 (sqrt<mode>2): Add vector instruction.
8112 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8114 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
8116 * config/s390/predicates.md (const0_operand, constm1_operand)
8117 (constable_operand): Accept vector operands.
8118 * config/s390/s390-modes.def: Add supported vector modes.
8119 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
8120 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
8121 (s390_bytemask_vector_p, s390_expand_vec_strlen)
8122 (s390_expand_vec_compare, s390_expand_vcond)
8123 (s390_expand_vec_init): Add prototypes.
8124 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
8125 (s390_vector_mode_supported_p): New function.
8126 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
8127 (s390_contiguous_bitmask_vector_p): New function.
8128 (s390_bytemask_vector_p): New function.
8129 (s390_split_ok_p): Vector regs don't work either.
8130 (regclass_map): Add VEC_REGS.
8131 (s390_legitimate_constant_p): Handle vector constants.
8132 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
8133 (legitimate_reload_vector_constant_p): New function.
8134 (s390_preferred_reload_class): Handle CONST_VECTOR.
8135 (s390_reload_symref_address): Likewise.
8136 (s390_secondary_reload): Vector memory instructions only support
8137 short displacements. Rename reload*_nonoffmem* to reload*_la*.
8138 (s390_emit_ccraw_jump): New function.
8139 (s390_expand_vec_strlen): New function.
8140 (s390_expand_vec_compare): New function.
8141 (s390_expand_vcond): New function.
8142 (s390_expand_vec_init): New function.
8143 (s390_dwarf_frame_reg_mode): New function.
8144 (print_operand): Handle addresses with 'O' and 'R' constraints.
8145 (NR_C_MODES, constant_modes): Add vector modes.
8146 (s390_output_pool_entry): Handle vector constants.
8147 (s390_hard_regno_mode_ok): Handle vector registers.
8148 (s390_class_max_nregs): Likewise.
8149 (s390_cannot_change_mode_class): New function.
8150 (s390_invalid_arg_for_unprototyped_fn): New function.
8151 (s390_function_arg_vector): New function.
8152 (s390_function_arg_float): Remove size variable.
8153 (s390_pass_by_reference): Handle vector arguments.
8154 (s390_function_arg_advance): Likewise.
8155 (s390_function_arg): Likewise.
8156 (s390_return_in_memory): Vector values are returned in a VR if
8158 (s390_function_and_libcall_value): Handle vector arguments.
8159 (s390_gimplify_va_arg): Likewise.
8160 (s390_call_saved_register_used): Consider the arguments named.
8161 (s390_conditional_register_usage): Disable v16-v31 for non-vec
8163 (s390_preferred_simd_mode): New function.
8164 (s390_support_vector_misalignment): New function.
8165 (s390_vector_alignment): New function.
8166 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
8167 (TARGET_VECTOR_MODE_SUPPORTED_P)
8168 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
8169 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8170 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
8171 (TARGET_VECTOR_ALIGNMENT): Define target macro.
8172 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
8173 (FIRST_PSEUDO_REGISTER): Increase value.
8174 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
8175 (VECTOR_REG_P): Define macros.
8176 (FIXED_REGISTERS, CALL_USED_REGISTERS)
8177 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
8178 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
8179 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
8180 Add vector registers.
8181 (CANNOT_CHANGE_MODE_CLASS): Call C function.
8182 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
8183 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
8185 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
8186 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
8187 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
8188 (VR*_REGNUM): New constants.
8189 (ALL): New mode iterator.
8190 (INTALL): Remove mode iterator.
8192 (movti): Implement TImode moves for VRs.
8193 Disable TImode splitter for VR targets.
8194 Implement splitting TImode GPR<->VR moves.
8195 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
8196 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
8197 reload<mode>_la_in, reload<mode>_la_out.
8198 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
8199 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
8200 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
8201 (mov<mode> SF SD): Prefer lder, lde for loading.
8202 Add lrl and strl instructions.
8203 Add vector instructions.
8204 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
8205 Call s390_expand_vec_strlen on z13.
8206 (*cc_to_int): Change predicate to nonimmediate_operand.
8207 (addti3): Rename to *addti3. New expander.
8208 (subti3): Rename to *subti3. New expander.
8209 * config/s390/vector.md: New file.
8211 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8213 * common/config/s390/s390-common.c (processor_flags_table): Add
8215 * config.gcc: Add z13.
8216 * config/s390/s390-opts.h (enum processor_type): Add
8218 * config/s390/s390.c (s390_adjust_priority): Check for
8220 (s390_reorg): Likewise.
8221 (s390_sched_reorder): Likewise.
8222 (s390_sched_variable_issue): Likewise.
8223 (s390_loop_unroll_adjust): Likewise.
8224 (s390_option_override): Likewise. Default to -mvx when available.
8225 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
8226 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
8227 (TARGET_VX_ABI): Define macros.
8229 (TARGET_DEFAULT): Add MASK_OPT_VX.
8230 * config/s390/s390.md ("cpu" attribute): Add z13.
8231 ("cpu_facility" attribute): Add vec.
8232 * config/s390/s390.opt (processor_type): Add z13.
8234 * doc/invoke.texi: Add z13 option for -march.
8236 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8238 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
8239 mode check to make sure that only scalar integer values are
8242 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
8244 * tree.c (verify_type_variant): Fix #undef.
8245 (gimple_canonical_types_compatible_p): Move here from lto.c
8246 (verify_type): Verify TYPE_CANONICAL compatibility.
8247 * tree.h (gimple_canonical_types_compatible_p): Declare.
8249 2015-05-19 Jakub Jelinek <jakub@redhat.com>
8252 * tree.h (OMP_TEAMS_COMBINED): Define.
8253 * gimplify.c (enum gimplify_omp_var_data): Add
8254 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
8255 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
8256 (omp_notice_variable): Accept both ORT_TEAMS
8257 and ORT_COMBINED_TEAMS. Don't recurse if
8258 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
8259 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
8261 (omp_no_lastprivate): New function.
8262 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
8263 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
8264 notice_outer and set appropriate bits, otherwise make
8265 sure default(none) combined constructs won't complain.
8266 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
8267 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
8268 omp_no_lastprivate either remove the clause or turn it
8269 into OMP_CLAUSE_PRIVATE.
8270 (gimplify_omp_for): Fix up handling of implicit
8271 lastprivate or linear iterators.
8272 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
8274 * omp-low.c (lower_omp_for_lastprivate): For combined
8275 for simd use fd.loop.n2 from the for rather than simd.
8277 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8279 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
8280 instead of gen_rtx_raw_REG.
8281 (cris_expand_epilogue): Likewise.
8282 * config/microblaze/microblaze.c (microblaze_classify_address):
8284 * config/sparc/sparc.md: Likewise.
8286 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
8288 * config/alpha/alpha.c (alpha_legitimize_reload_address)
8289 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
8290 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
8291 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
8292 Use CASE_CONST_SCALAR_INT.
8293 (print_operand) <case 'M'>: Use mode_width_operand to check the
8294 value of the constant.
8295 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
8296 * config/alpha/predicates.md (input_operand): Use general_operand
8297 instead of match_code as operand check.
8298 (symbolic_operand): Use match_code with subexpression digits.
8299 * config/alpha/constraints.md (Q): Ditto.
8301 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8303 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
8305 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8307 * config/s390/s390.c (s390_secondary_reload): Fix check for
8308 load/store relative.
8310 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8312 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
8313 alternative_mask to uint64_t.
8315 2015-05-19 Jakub Jelinek <jakub@redhat.com>
8317 PR tree-optimization/66187
8318 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
8319 Pass TYPE_SIGN to tree_int_cst_min_precision. If
8320 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
8322 2015-05-19 David Malcolm <dmalcolm@redhat.com>
8324 * diagnostic.c (diagnostic_report_current_module): Strengthen
8325 local "new_map" from const line_map * to
8326 const line_map_ordinary *.
8327 * genmatch.c (error_cb): Likewise for local "map".
8328 (output_line_directive): Likewise for local "map".
8329 * input.c (expand_location_1): Likewise for local "map".
8330 Pass NULL rather than &map to
8331 linemap_unwind_to_first_non_reserved_loc, since the value is never
8332 read from there, and the value written back not read from here.
8333 (is_location_from_builtin_token): Strengthen local "map" from
8334 const line_map * to const line_map_ordinary *.
8335 (dump_location_info): Strengthen locals "map" from
8336 line_map *, one to const line_map_ordinary *, the other
8337 to const line_map_macro *.
8338 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
8339 const line_map * to const line_map_macro *.
8340 (maybe_unwind_expanded_macro_loc): Add a call to
8341 linemap_check_macro when writing to the "map" field of the
8343 Introduce local const line_map_ordinary * "ord_map", using it in
8344 place of "map" in the part of the function where we know we have
8345 an ordinary map. Strengthen local "m" from const line_map * to
8346 const line_map_ordinary *.
8348 2015-05-19 Nick Clifton <nickc@redhat.com>
8351 * config/msp430/msp430.md (zero_extendhisi2): Add support for
8352 separate source and destination registers.
8354 2015-05-19 Richard Biener <rguenther@suse.de>
8356 PR tree-optimization/66165
8357 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
8358 for no load permutation.
8360 PR tree-optimization/66185
8361 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
8362 when building the SLP node from scalars.
8364 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
8365 Tristan Gingold <gingold@adacore.com>
8367 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
8368 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
8369 (expand_stack_restore): Call record_new_stack_level.
8370 (expand_stack_save): Do not call do_pending_stack_adjust.
8371 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
8372 * calls.c (expand_call): Call record_new_stack_level for alloca.
8373 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
8374 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
8375 (update_sjlj_context): New global function.
8376 * except.h (update_sjlj_context): Declare.
8377 * explow.c (record_new_stack_level): New global function.
8378 (allocate_dynamic_stack_space): Call record_new_stack_level.
8379 * explow.h (record_new_stack_level): Declare.
8380 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
8381 * cfgrtl.c (duplicate_insn_chain): Likewise.
8383 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8385 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
8386 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
8387 STACK_GROWS_DOWNWARD as normal if.
8388 (expand_call): Likewise.
8390 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
8393 * config/sh/sh.md (*round_int_even): New insn_and_split and
8394 accompanying new unnamed split.
8396 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8398 * bitmap.c (bitmap_set_range): Handle count==1 specially.
8399 (bitmap_clear_range): Likewise.
8400 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
8401 bitmap_set_range unconditionally.
8402 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
8403 * df-scan.c (df_mark_reg): Likewise.
8404 * haifa-sched.c (setup_ref_regs): Likewise.
8405 * sched-rgn.c (update_live_1): Likewise.
8407 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8409 * regs.h (END_HARD_REGNO): Delete.
8410 (END_REGNO): Move to...
8412 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
8413 * caller-save.c (mark_set_regs): Likewise.
8414 * combine.c (move_deaths, distribute_notes): Likewise.
8415 * cse.c (invalidate, invalidate_for_call): Likewise.
8416 * df-scan.c (df_ref_record): Likewise.
8417 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
8418 (record_last_reg_set_info): Likewise.
8419 * reg-stack.c (convert_regs_exit): Likewise.
8420 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
8421 * resource.c (update_live_status): Likewise.
8422 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
8424 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8426 * rtl.h (reg_info): Add an nregs field.
8427 (REG_NREGS): Use it.
8428 (SET_REGNO_RAW): Delete.
8429 (set_regno_raw): New function.
8430 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
8431 (END_REGNO): Redefine in terms of REG_NREGS.
8432 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
8434 * emit-rtl.c (set_mode_and_regno): Likewise.
8435 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
8436 instead of SET_REGNO_RAW.
8438 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8440 * rtl.h (PUT_MODE_RAW): New macro.
8441 (PUT_REG_NOTE_KIND): Use it.
8442 (set_mode_and_regno): Declare.
8443 (gen_raw_REG): Change regno to "unsigned int".
8444 (gen_rtx_REG): Change "unsigned" to "unsigned int".
8445 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
8446 use set_mode_and_regno to change the mode of registers.
8447 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
8448 * emit-rtl.c (set_mode_and_regno): New function.
8449 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
8450 * caller-save.c (reg_save_code): Use set_mode_and_regno.
8451 * expr.c (init_expr_target): Likewise.
8452 * ira.c (setup_prohibited_mode_move_regs): Likewise.
8453 * postreload.c (reload_cse_simplify_operands): Likewise.
8455 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8457 * caller-save.c (init_caller_save): Use word_mode and
8458 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
8459 * expr.c (init_expr_target): Likewise.
8460 * ira.c (setup_prohibited_mode_move_regs): Likewise.
8461 * postreload.c (reload_cse_regs_1): Likewise.
8463 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8465 * rtl.def (REG): Change format to "r".
8466 * rtl.h (rtunion): Remove rt_reg.
8467 (reg_info): New structure.
8468 (rtx_def): Add reg field to main union.
8469 (X0REGATTR): Delete.
8470 (REG_CHECK): New macro.
8471 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
8472 * rtl.c (rtx_format): Document "r".
8473 (rtx_code_size): Handle REG specially.
8474 * gengenrtl.c (special_format): Return true for formats
8476 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
8477 Deal with REG_ATTRS after the field loop.
8478 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
8479 * expmed.c (init_expmed): Call gen_raw_REG instead of
8481 * expr.c (init_expr_target): Likewise.
8482 * regcprop.c (maybe_mode_change): Likewise.
8483 * varasm.c (make_decl_rtl): Likewise.
8484 * final.c (leaf_renumber_regs_insn): Return early after
8486 * genemit.c (gen_exp): Handle 'r' fields.
8487 * genpeep.c (match_rtx): Likewise.
8488 * gensupport.c (subst_pattern_match): Likewise.
8489 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
8490 (alter_constraints, subst_dup): Likewise.
8491 * read-rtl.c (read_rtx_code): Likewise.
8492 * print-rtl.c (print_rtx): Likewise.
8493 * genrecog.c (find_operand, find_matching_operand): Likewise.
8494 (validate_pattern, match_pattern_2): Likewise.
8495 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
8496 (rtx_test::regno_field): New function.
8497 (operator ==, safe_to_hoist_p, transition_parameter_type)
8498 (parameter_type_string, print_parameter_value)
8499 (print_nonbool_test, print_test): Handle new enum values.
8500 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
8501 * lra-constraints.c (operands_match_p): Likewise.
8503 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8505 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
8506 Change type of new_regno to unsigned int.
8507 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
8508 new_regno to unsigned int.
8509 (df_ref_change_reg_with_loc): Remove old_regno parameter.
8510 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
8511 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
8512 (SET_REGNO_RAW): Add space after ",".
8514 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8516 * rtl.h (REG_NREGS): New macro
8517 * alias.c (record_set): Use it.
8518 * cfgcleanup.c (mark_effect): Likewise.
8519 * combine.c (likely_spilled_retval_1): Likewise.
8520 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
8521 (move_deaths, distribute_notes): Likewise.
8522 * cselib.c (cselib_record_set): Likewise.
8523 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
8524 * df-scan.c (df_mark_reg): Likewise.
8525 * dse.c (look_for_hardregs): Likewise.
8526 * dwarf2out.c (reg_loc_descriptor): Likewise.
8527 (multiple_reg_loc_descriptor): Likewise.
8528 * expr.c (write_complex_part, read_complex_part): Likewise.
8529 (emit_move_complex): Likewise.
8530 * haifa-sched.c (setup_ref_regs): Likewise.
8531 * ira-lives.c (mark_hard_reg_live): Likewise.
8532 * lra.c (lra_set_insn_recog_data): Likewise.
8533 * mode-switching.c (create_pre_exit): Likewise.
8534 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
8535 (reload_combine_recognize_pattern): Likewise.
8536 (reload_combine_note_use, move2add_record_mode): Likewise.
8537 (reload_cse_move2add): Likewise.
8538 * reg-stack.c (subst_stack_regs_pat): Likewise.
8539 * regcprop.c (kill_value, copy_value): Likewise.
8540 (copyprop_hardreg_forward_1): Likewise.
8541 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
8542 (build_def_use): Likewise.
8543 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
8544 (deps_analyze_insn): Likewise.
8545 * sched-rgn.c (check_live_1, update_live_1): Likewise.
8546 * sel-sched.c (count_occurrences_equiv): Likewise.
8547 * valtrack.c (dead_debug_insert_temp): Likewise.
8549 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
8551 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
8552 * dse.c (note_add_store): Likewise.
8553 * ira-lives.c (mark_hard_reg_dead): Likewise.
8554 * loop-invariant.c (mark_reg_store): Likewise.
8555 (mark_reg_death): Likewise.
8556 * postreload.c (reload_combine): Likewise.
8557 (reload_combine_note_store): Likewise.
8558 (reload_combine_note_use): Likewise.
8559 * recog.c (peep2_reg_dead_p): Likewise.
8561 2015-05-19 Alan Modra <amodra@gmail.com>
8563 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
8564 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
8565 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
8567 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
8568 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
8569 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
8570 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
8572 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
8574 * config/mips/mips.md (JOIN_MODE): New mode iterator.
8575 (join2_load_Store<JOIN_MODE:mode>): New pattern.
8576 (join2_loadhi): Likewise.
8577 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
8578 load-load and store-stores.
8579 * config/mips/mips.opt (mload-store-pairs): New option.
8580 (TARGET_LOAD_STORE_PAIRS): New macro.
8581 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
8582 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
8583 * config/mips/mips.c (mips_load_store_bonding_p): New function.
8585 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
8587 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
8589 * dojump.c (do_compare_rtx_and_jump): Likewise.
8590 * expmed.c (emit_store_flag_1): Likewise.
8591 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
8592 * final.c (sprint_ul): Use std::reverse for reversing a string.
8593 * fold-const.c (extract_muldiv_1): Use std::swap.
8594 * genmodes.c (emit_mode_int_n): Likewise.
8595 * ifcvt.c (dead_or_predicable): Likewise.
8596 * ira-build.c (ira_merge_live_ranges): Likewise.
8597 (swap_allocno_copy_ends_if_necessary): Likewise.
8598 * ira.c (ira_setup_alts): Likewise.
8599 * loop-iv.c (iv_analyze_expr): Likewise.
8600 (implies_p): Likewise.
8601 (canon_condition): Likewise.
8602 * lra-constraints.c (swap_operands): Likewise.
8603 * lra-lives.c (lra_merge_live_ranges): Likewise.
8604 * omega.c (swap): Remove.
8606 (omega_unprotect_1): Use std::swap.
8607 (omega_solve_geq): Likewise.
8608 * optabs.c (expand_binop_directly): Likewise.
8609 (expand_binop): Likewise.
8610 (emit_conditional_move): Likewise.
8611 (emit_conditional_add): Likewise.
8612 * postreload.c (reload_cse_simplify_operands): Likewise.
8613 * reg-stack.c (emit_swap_insn): Likewise.
8614 (swap_to_top): Likewise.
8615 (compare_for_stack_reg): Likewise.
8616 (subst_asm_stack_regs): Likewise.
8617 * reload.c (find_reloads): Likewise.
8618 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
8619 * sel-sched.c (invoke_reorder_hooks): Likewise.
8620 (create_block_for_bookkeeping): Likewise.
8621 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
8622 (lambda_matrix_right_hermite): Use std::swap.
8623 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
8624 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
8625 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
8626 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
8627 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
8628 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
8629 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
8630 * tree-vrp.c (compare_ranges): Likewise.
8631 * var-tracking.c (add_with_sets): Likewise.
8632 (vt_find_locations): Likewise.
8634 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
8636 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
8638 (FBSD_ENDFILE_SPEC): Likewise.
8639 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
8640 config/freebsd-spec.h.
8641 (ENDFILE_SPEC): Likewise.
8643 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
8644 Richard Henderson <rth@redhat.com>
8647 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
8648 Check for a memory location that is not a reference (using an AND)
8649 to an unaligned location here.
8650 * config/alpha/predicates.md (normal_memory_operand): Remove.
8652 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
8654 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
8655 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
8657 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
8659 * config/mips/mips.c (micromips_globals): New variable.
8660 (mips_set_compression_mode): Save and reinitialize target-dependent
8661 state for microMIPS.
8663 2015-05-18 Martin Liska <mliska@suse.cz>
8665 * dbgcnt.def: Add new counter.
8666 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
8668 2015-05-18 Martin Liska <mliska@suse.cz>
8670 * dbgcnt.def: Sort counters.
8671 * opts.c (common_handle_option): Do not compile if
8672 -fdbg-cnt-list is enabled.
8674 2015-05-18 Tom de Vries <tom@codesourcery.com>
8676 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
8677 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
8678 address operator to va_list operand.
8679 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
8681 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
8683 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
8684 * config/s390/s390.c (s390_gimplify_va_arg): Same.
8685 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
8687 2015-05-18 Tom de Vries <tom@codesourcery.com>
8689 * tree-ssa-tail-merge.c: Fix whitespace.
8691 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
8693 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
8694 cortex-a17, and cortex-a17.cortex-a7.
8696 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
8699 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
8701 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
8704 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
8705 QImode inner modes for TARGET_AVX512BW. Force mask operand
8706 to a register for AVX512F modes.
8708 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
8710 * toplev.c (emit_debug_global_declarations): Do not output debug info
8711 when doing slim LTO objects.
8713 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
8715 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
8716 odr_types_equivalent_p): Declare.
8717 (odr_type_p): Use gcc_checking_assert.
8718 (type_in_anonymous_namespace_p) Declare.
8719 (type_with_linkage_p): Declare.
8720 * common.opt (Wlto-type-mismatch): New warning.
8721 * ipa-devirt.c (compound_type_base): New function.
8722 (odr_or_derived_type_p): New function.
8723 (odr_types_equivalent_p): New function.
8724 (add_type_duplicate): Simplify.
8725 (type_with_linkage_p): Add hack to prevent false positives on C types
8726 (type_in_anonymous_namespace_p): Likewise.
8727 * tree.c (need_assembler_name_p): Use type_with_linkage.
8728 * tree.h (type_in_anonymous_namespace_p): Remove.
8729 * doc/invoke.texi (-Wlto-type-mismatch): Document
8731 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
8733 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
8734 (verify_type): Verify STRING_FLAG.
8736 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
8739 * tree-pretty-print.c (percent_K_format): Replace locus pointer
8740 with accessor function.
8741 * tree-diagnostic.c (diagnostic_report_current_function): Use
8742 diagnostic_location function.
8743 (maybe_unwind_expanded_macro_loc): Likewise.
8744 (virt_loc_aware_diagnostic_finalizer): Likewise.
8745 (default_tree_printer): Replace locus pointer with accessor function.
8746 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
8747 (diagnostic_set_info_translated): Initialize second location.
8748 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
8749 (diagnostic_show_locus): Handle two locations. Call
8750 diagnostic_print_caret_line.
8751 (diagnostic_print_caret_line): New.
8752 (default_diagnostic_starter): Use diagnostic_location function.
8753 (diagnostic_report_diagnostic): Use diagnostic_location function.
8754 (verbatim): Do not set text.locus.
8755 * diagnostic.h (struct diagnostic_info): Remove location field.
8756 (struct diagnostic_context): Make caret_chars an array of two.
8757 (diagnostic_location): New inline.
8758 (diagnostic_expand_location): Handle two locations.
8759 (diagnostic_same_line): New inline.
8760 (diagnostic_print_caret_line): Declare.
8761 (CARET_LINE_MARGIN): New constant.
8762 * pretty-print.c (pp_printf): Do not set text.locus.
8763 (pp_verbatim): Do not set text.locus.
8764 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
8765 (struct text_info): Replace locus pointer with locations
8766 array. Add accessor functions.
8768 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
8769 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8772 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
8773 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
8774 large constants in register instead of splitting them.
8776 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
8779 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
8780 replacements in memory addresses.
8781 (get_unaligned_address): Ditto.
8783 2015-05-16 James Bowman <james.bowman@ftdichip.com>
8785 * config/ft32/*: New files for FT32 port.
8786 * doc/install.texi: Add FT32 information.
8787 * doc/invoke.texi: Add FT32 information.
8788 * doc/md.texi: Add FT32 information.
8789 * doc/contrib.texi: Self added.
8791 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
8793 PR tree-optimization/64454
8794 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
8795 (-1 - A -> ~A): Remove unnecessary condition.
8797 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
8799 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
8800 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
8801 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
8803 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
8805 * ipa-chkp.h (chkp_wrap_function): New.
8806 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
8807 (chkp_wrap_function_name): New.
8808 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
8809 to get wrapper name.
8810 * lto-cgraph.c: Include ipa-chkp.h.
8811 (input_cgraph_1): Avoid alias chain for wrappers.
8813 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
8816 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
8817 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
8819 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8821 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
8822 (AARCH64_FL_SLOWMUL): Delete.
8823 (AARCH64_FL_CRC): Redefine to 1<<3.
8824 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
8826 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8828 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
8831 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
8833 * config/alpha/alpha.md (extendqidi2): Use general_operand
8834 instead of some_operand for operand[1] predicate.
8835 (extendhidi2): Ditto.
8836 (cbranchdi4): Use general_operand instead of some_operand
8837 for operand[1] and operands[2] predicates.
8839 * config/alpha/predicates.md (some_operand): Remove unused predicate.
8840 (some_ni_operand): Ditto.
8842 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
8844 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
8845 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
8846 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
8847 low part of the constant using alpha_emit_set_const_1.
8848 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
8850 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
8852 * varasm.c (output_constant_pool_1): Pass down alignment from
8853 constant pool entry's descriptor to output_constant_pool_2.
8854 (output_object_block): Add comment prior to call to
8855 output_constant_pool_1.
8857 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
8859 PR rtl-optimization/65862
8860 * target.def (ira_change_pseudo_allocno_class): New hook.
8861 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
8863 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
8864 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
8866 * ira-costs.c (find_costs_and_classes): Call the hook and change
8867 classes when it is necessary.
8868 * doc/tm.texi: Update.
8870 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
8872 * config/i386/i386.md (sibcall_memory): Check that register with
8873 callee address is not also used as one of the arguments, instead
8874 of checking that it is not live after the sibcall.
8875 (sibcall_pop_memory): Ditto.
8876 (sibcall_value_memory): Ditto.
8877 (sibcall_value_pop_memory): Ditto.
8879 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
8881 * generic-match-head.c (types_match): Handle non-types.
8882 * gimple-match-head.c (types_match): Likewise.
8883 * match.pd: Remove unnecessary TREE_TYPE for types_match.
8885 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
8887 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
8888 (csneg3<mode>_insn): Enable expansion of pattern.
8890 2015-05-14 Nick Clifton <nickc@redhat.com>
8892 * config/rl78/rl78.c (rl78_select_section): Select the correct
8893 default section based upon the category of the decl.
8895 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
8897 PR rtl-optimization/30967
8898 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
8899 destination mode for the cost of scc patterns.
8901 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
8903 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
8904 using SWIM248 mode iterator.
8905 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
8906 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
8907 for operand[2] constraint.
8908 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
8910 2015-05-13 Jakub Jelinek <jakub@redhat.com>
8913 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
8914 make sure it is never noreturn, even when the task body does not
8916 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
8917 right before GIMPLE_OMP_RETURN.
8918 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
8919 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
8920 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
8922 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8924 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
8925 * tree-ssa-math-opts.c: Include params.h
8926 (pow_synth_sqrt_info): New struct.
8927 (representable_as_half_series_p): New function.
8928 (get_fn_chain): Likewise.
8929 (print_nested_fn): Likewise.
8930 (dump_fractional_sqrt_sequence): Likewise.
8931 (dump_integer_part): Likewise.
8932 (expand_pow_as_sqrts): Likewise.
8933 (gimple_expand_builtin_pow): Use above to attempt to expand
8934 pow as series of square roots. Removed now unused variables.
8936 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
8938 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
8939 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
8940 Remove *p0 and *p1 arguments. Rewrite function.
8941 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
8942 (alpha_split_const_mov): Update calls to alpha_extract_integer and
8943 alpha_emit_set_long_const.
8944 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
8945 (alpha_output_mi_thunk_osf): Ditto.
8946 * config/alpha/alpha.md (movti): Do not check operands[1]
8949 2015-05-13 Richard Biener <rguenther@suse.de>
8951 PR tree-optimization/66129
8952 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
8954 (vect_schedule_slp_instance): Fix typo.
8956 2015-05-13 David Malcolm <dmalcolm@redhat.com>
8958 * common.opt (fdump-internal-locations): New option.
8959 * input.c: Include diagnostic-core.h.
8960 (get_end_location): New function.
8961 (write_digit): New function.
8962 (write_digit_row): New function.
8963 (dump_location_range): New function.
8964 (dump_labelled_location_range): New function.
8965 (dump_location_info): New function.
8966 * input.h (dump_location_info): New prototype.
8967 * toplev.c (compile_file): Handle flag_dump_locations.
8969 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
8971 * gimple-expr.h (is_gimple_constant): Reorder.
8972 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
8974 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
8976 * combine.c (simplify_set): When generating a CC set, if the
8977 source already is in the correct mode, do not wrap it in a
8978 compare. Simplify the rest of that code.
8980 2015-05-13 Richard Biener <rguenther@suse.de>
8982 PR tree-optimization/66123
8983 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
8986 2015-05-13 Richard Biener <rguenther@suse.de>
8989 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
8991 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
8993 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
8995 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
8996 * aclocal.m4: Regenerated with automake-1.11.6.
8998 2015-05-13 Tom de Vries <tom@codesourcery.com>
9000 PR tree-optimization/66010
9001 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
9002 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
9003 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
9004 and rval based on do_deref.
9006 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
9009 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
9010 link time constants into adress expressions and therefore set
9013 2015-05-13 Jakub Jelinek <jakub@redhat.com>
9016 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
9017 Use SWI248 iterator instead of SWI.
9018 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
9019 Use eq_attr "alternative" "0" instead of match_test in
9020 length_immediate attribute computation.
9021 (*mulvhi4, *mulvhi4_1): New define_insns.
9024 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
9025 SIGNED to get precision of non-negative value.
9027 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
9030 * function.c (diddle_return_value_1): Process bounds first.
9031 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
9034 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
9036 PR rtl-optimization/64616
9037 * loop-invariant.c (can_move_invariant_reg): New.
9038 (move_invariant_reg): Call above new function to decide whether
9039 instruction can just be moved, skipping creation of temporary
9042 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
9045 * i386.c (ix86_function_sseregparm): Only return -1 if local function
9046 with implied regparm is called from -mno-sse function.
9047 (init_cumulative_args): Output error if ix86_function_sseregparm
9048 return -1 and SSE register would be needed.
9049 (function_arg_advance_32): Likewise.
9050 (function_arg_32): Likewise.
9051 * i386.h (ix86_args): Add decl field.
9053 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
9056 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
9057 inlines across optimization boundary.
9059 2015-05-12 Jason Merrill <jason@redhat.com>
9061 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
9062 string literal and macro name.
9064 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
9066 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
9067 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
9068 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
9070 2015-05-12 David Malcolm <dmalcolm@redhat.com>
9072 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
9073 (-Wmisleading-indentation): New option.
9074 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
9076 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
9078 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
9079 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
9080 (alpha_extract_integer): Ditto.
9081 (alpha_legitimate_constant_p): Ditto.
9082 (alpha_split_tmode_pair): Ditto.
9083 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
9084 (alpha_expand_mov): Ditto.
9085 (print_operand): Remove handling of 'H' modifier.
9086 <case 'm'>: Remove CONST_DOUBLE handling.
9087 (summarize_insn): Handle CONST_WIDE_INT.
9088 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
9090 (movti): Handle CONST_WIDE_INT.
9091 * config/alpha/constraints.md ('H'): Remove constraint definition.
9092 ('G'): Do not match MODE_FLOAT class.
9093 * config/alpha/predicates.md (const0_operand): Also match
9095 (non_add_const_operand): Ditto.
9096 (non_zero_const_operand): Ditto.
9097 (some_operand): Ditto.
9098 (input_operand): Ditto. Handle CONST_WIDE_INT.
9099 (and_operand): Do not match const_double.
9100 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
9102 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
9105 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
9106 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
9107 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
9108 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
9109 is_mm_seq_cst, is_mm_sync): New accessor functions.
9110 * builtins.c (expand_builtin_sync_operation,
9111 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
9112 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
9113 (get_memmodel, expand_builtin_atomic_compare_exchange,
9114 expand_builtin_atomic_load, expand_builtin_atomic_store,
9115 expand_builtin_atomic_clear): Use new accessor routines.
9116 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
9117 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
9118 (maybe_emit_sync_lock_test_and_set): Use new accessors and
9119 MEMMODEL_SYNC_ACQUIRE.
9120 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
9121 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
9122 expand_atomic_store): Use new accessors.
9123 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
9124 * tsan.c (instrument_builtin_call): Update check for memory model beyond
9125 final enum to use MEMMODEL_LAST.
9126 * c-family/c-common.c: Use new accessor for memmodel_base.
9127 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
9129 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
9130 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
9131 mem_thread_fence, *dmb): Likewise.
9132 * config/alpha/alpha.c (alpha_split_compare_and_swap,
9133 alpha_split_compare_and_swap_12): Likewise.
9134 * config/arm/arm.c (arm_expand_compare_and_swap,
9135 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
9136 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
9137 atomic_loaddi): Likewise.
9138 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
9140 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
9141 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
9143 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
9144 atomic_store<mode>, atomic_compare_and_swap<mode>,
9145 atomic_exchange<mode>): Use new accessors.
9146 * config/mips/mips.c (mips_process_sync_loop): Likewise.
9147 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
9148 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
9149 rs6000_post_atomic_barrier): Add new cases.
9150 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
9151 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
9152 (atomic_load<mode>): Add new cases and use new accessors.
9153 (store_quadpti): Add new cases.
9154 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
9156 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
9157 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
9160 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
9162 * ipa-devirt.c (type_with_linkage_p): New function.
9163 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
9165 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
9166 (can_be_name_hashed_p): Simplify.
9167 (hash_odr_name): Check that type has linkage before checking if it is
9169 (types_same_for_odr): Likewise.
9170 (odr_name_hasher::equal): Likewise.
9171 (odr_subtypes_equivalent_p): Likewise.
9172 (warn_types_mismatch): Likewise.
9173 (get_odr_type): Likewise.
9174 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
9175 * ipa-utils.h (odr_type_p): Move offline.
9176 * tree.c (need_assembler_name_p): Fix handling of types
9178 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
9180 2015-05-12 David Malcolm <dmalcolm@redhat.com>
9182 * timevar.c (timevar_enable): Delete in favor of...
9183 (g_timer): New global.
9184 (struct timevar_def): Move to timevar.h inside class timer.
9185 (struct timevar_stack_def): Likewise.
9186 (timevars): Delete global in favor of field "m_timevars" within
9187 class timer in timevar.h
9188 (stack): Likewise, in favor of field "m_stack".
9189 (unused_stack_instances): Likewise, in favor of field
9190 "m_unused_stack_instances".
9191 (start_time): Likewise, in favor of field "m_start_time".
9192 (get_time): Eliminate check for timevar_enable.
9193 (timer::timer): New function, built from part of timevar_init.
9194 (timevar_init): Rewrite idempotency test from using
9195 "timevar_enable" bool to using dynamic allocation of "g_timer".
9196 Move rest of implementation into timer's constructor.
9197 (timevar_push_1): Rename to...
9198 (timer::push): ...this, adding "m_" prefixes to variables that
9199 are now fields of timer.
9200 (timevar_pop_1): Likewise, rename to...
9201 (timer::pop): ...this, and add "m_" prefixes.
9202 (timevar_start): Replace test for "timevar_enable" with one for
9203 "g_timer", and move bulk of implementation to...
9204 (timer::start): ...here, adding "m_" prefixes.
9205 (timevar_stop): Likewise, from here...
9206 (timer::stop): ...to here.
9207 (timevar_cond_start): Likewise, from here...
9208 (timer::cond_start): ...to here.
9209 (timevar_cond_stop): Likewise, from here...
9210 (timer::cond_stop): ...to here.
9211 (validate_phases): Rename to...
9212 (timer::validate_phases): ...this, and add "m_" prefixes. Make
9213 locals "total" and "tv" const.
9214 (timevar_print): Rename to...
9215 (timer::print): ...this, and add "m_" prefixes. Make locals
9216 "total" and "tv" const. Eliminate test for timevar_enable.
9217 * timevar.h (timevar_enable): Eliminate.
9218 (g_timer): New declaration.
9219 (timevar_push_1): Eliminate.
9220 (timevar_pop_1): Eliminate.
9221 (timevar_print): Eliminate.
9222 (class timer): New class.
9223 (timevar_push): Rewrite to use g_timer.
9224 (timevar_pop): Likewise.
9225 * toplev.c (toplev::~toplev): Likewise.
9227 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
9229 * arm-protos.h (arm_sched_autopref): Delete.
9230 (tune_params): Re-organize, use enums for flag values.
9231 (FUSE_OPS): New macro.
9232 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
9233 (ARM_PREFETCH_BENEFICIAL): Likewise.
9234 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
9235 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
9236 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
9237 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
9238 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
9239 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
9240 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
9241 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
9243 (arm_option_override, thumb2_reorg, arm_print_tune_info)
9244 (aarch_macro_fusion_pair_p): Update uses of current_tune.
9245 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
9247 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
9249 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
9252 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
9253 Sandra Loosemore <sandra@codesourcery.com>
9255 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
9257 (REG_CLASS_NAMES): Add "IJMP_REGS".
9258 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
9259 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
9260 use new "c" register constraint.
9261 * config/nios2/constraint.md (c): New register constraint
9262 corresponding to IJMP_REGS.
9264 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9266 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
9267 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
9268 define_splits): Delete, revamp, transmogrify into ...
9269 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
9270 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
9271 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
9274 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9276 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
9277 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
9279 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9281 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
9282 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
9283 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
9284 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
9285 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
9286 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
9287 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
9288 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
9289 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
9290 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
9291 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
9292 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
9293 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
9294 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
9295 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
9296 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
9297 and 30 corresponding splitters): Delete.
9299 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9301 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
9304 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9306 * combine.c (recog_for_combine_1): New function, factored out
9307 from recog_for_combine.
9308 (change_zero_ext): New function.
9309 (recog_for_combine): If recog fails, try again with the pattern
9310 modified by change_zero_ext; if that still fails, restore the
9313 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
9315 * combine.c (get_undo_marker): New function.
9316 (undo_to_marker): New function, largely factored out from ...
9317 (undo_all): ... this. Adjust.
9319 2015-05-12 Richard Biener <rguenther@suse.de>
9321 PR tree-optimization/66101
9322 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
9323 fixup if we turn a loop exit edge to a fallthru edge.
9325 2015-05-12 Richard Biener <rguenther@suse.de>
9327 PR tree-optimization/37021
9328 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
9329 (SLP_TREE_TWO_OPERATORS): New define.
9330 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
9331 SLP_TREE_TWO_OPERATORS.
9332 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
9334 (vect_build_slp_tree): Adjust.
9335 (vect_analyze_slp_cost_1): Likewise.
9336 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
9337 emitting two vector stmts and mixing the results.
9339 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
9341 * call.c (print_z_candidates): Remove dead code.
9343 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9345 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
9346 and zEC12_simple_fp.
9347 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
9350 2015-05-12 Tom de Vries <tom@codesourcery.com>
9352 PR tree-optimization/66010
9353 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
9355 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
9356 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
9357 va_lists are passed, and remove corresponding handling.
9358 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
9359 do_deref argument to ifn_va_arg.
9360 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
9363 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9366 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
9367 REG before taking its REGNO.
9369 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
9371 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
9372 rsp->sign_bit_copies and rsp->nonzero_bits into ...
9373 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
9374 present to get more accurate information about the number of sign bit
9375 copies and non zero bits.
9377 2015-05-12 Richard Biener <rguenther@suse.de>
9379 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
9380 do not allow unrolling.
9382 2015-05-11 Richard Henderson <rth@redhat.com>
9384 * config/i386/i386-modes.def (CCP): New.
9385 * config/i386/i386.c (put_condition_code): Handle it.
9386 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
9388 2015-05-11 Richard Henderson <rth@redhat.com>
9390 * target.def (md_asm_clobbers): Replace with...
9391 (md_asm_adjust): this.
9392 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
9393 (TARGET_MD_ASM_ADJUST): New.
9395 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
9396 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
9397 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
9399 * cfgexpand.c (check_operand_nalternatives): Accept vector of
9400 constraints instead of lists of outputs and inputs.
9401 (expand_asm_stmt): Save and restore input_location around the
9402 body of the function. Move asm data into vectors instead of
9403 building tree lists. Generate cleanup sequences as needed,
9404 rather than waiting til the end. Use new md_asm_adjust hook.
9406 * config/vxworks.c: Include vec.h before target.h.
9407 * gimple.c: Likewise.
9408 * incpath.c: Likewise.
9409 * mode-switching.c: Likewise.
9411 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
9412 (cris_md_asm_adjust): this.
9413 (TARGET_MD_ASM_CLOBBERS): Remove.
9414 (TARGET_MD_ASM_ADJUST): New.
9415 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
9416 (ix86_md_asm_adjust): this.
9417 (TARGET_MD_ASM_CLOBBERS): Remove.
9418 (TARGET_MD_ASM_ADJUST): New.
9419 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
9420 (mn10300_md_asm_adjust): this.
9421 (TARGET_MD_ASM_CLOBBERS): Remove.
9422 (TARGET_MD_ASM_ADJUST): New.
9423 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
9424 (rs6000_md_asm_adjust): this.
9425 (TARGET_MD_ASM_CLOBBERS): Remove.
9426 (TARGET_MD_ASM_ADJUST): New.
9427 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
9428 (visium_md_asm_adjust): this.
9429 (TARGET_MD_ASM_CLOBBERS): Remove.
9430 (TARGET_MD_ASM_ADJUST): New.
9432 2015-05-11 Richard Henderson <rth@redhat.com>
9434 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
9435 if noutputs is zero.
9436 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
9438 * cfgexpand.c (expand_asm_operands): Merge into...
9439 (expand_asm_stmt): ... here.
9441 * cfgexpand.c (expand_asm_operands): Don't call
9442 resolve_asm_operand_names.
9443 * stmt.c (resolve_asm_operand_names): Clarify block comment.
9445 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
9447 * dwarf2out.c (gen_member_die): Sanity check that we access
9448 TYPE_MAIN_VARIANT for TYPE_METHODS.
9449 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
9450 checking TYPE_METHODS.
9451 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
9453 (build_distinct_type_copy): Clear TYPE_METHODS.
9454 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
9455 (verify_type): Allow TYPE_METHODS to be error_mark_node.
9456 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
9458 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
9460 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
9461 (emit_pattern_before_setloc): Likewise.
9463 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
9465 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
9466 for define_peephole2s.
9467 (get_peephole2_pattern): New function.
9468 (main): Use it. Call validate_pattern.
9470 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9472 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
9473 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
9474 (Last callee saved reg is different for AVR_TINY architecture)
9476 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
9478 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
9479 when looking for memory references.
9481 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
9484 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
9485 via function pointers.
9487 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
9489 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
9490 indirect call by forcing address into a pseudo with -fno-plt.
9491 * common.opt (flag_plt): New option.
9492 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
9493 ([-fno-plt]): Document.
9495 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
9498 * config/rs6000/option-defaults.h: Add space between string literal
9501 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
9503 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
9504 accross ARM targets.
9506 2015-05-11 Christian Bruel <christian.bruel@st.com>
9508 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
9509 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
9511 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
9513 PR rtl-optimization/66076
9514 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
9515 Don't grow the heap array if it is already big enough from a
9518 2015-05-11 Christian Bruel <christian.bruel@st.com>
9520 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
9521 (is_called_in_ARM_mode): Remove.
9522 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
9523 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
9524 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
9525 arm_declare_function_name.
9527 2015-05-11 Christian Bruel <christian.bruel@st.com>
9529 * config/arm/arm.c (arm_option_override): Reoganized and split into :
9530 (arm_option_params_internal); New function.
9531 (arm_option_check_internal): New function.
9532 (arm_option_override_internal): New function.
9533 (thumb_code, thumb1_code): Remove.
9534 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
9535 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
9536 (thumb_code, thumb1_code): Remove.
9537 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
9539 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
9541 * config/alpha/alpha.c (alpha_emit_set_const_1)
9542 (alpha_emit_set_long_const, alpha_extract_integer)
9543 (alpha_legitimate_constant_p, alpha_split_const_mov)
9544 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
9545 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
9546 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
9548 * config/alpha/predicates.md (mode_mask_operand): Do not match
9550 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
9551 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
9552 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
9553 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
9554 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
9556 2015-05-11 Jakub Jelinek <jakub@redhat.com>
9559 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
9560 default_binds_local_p_2.
9561 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
9562 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
9564 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
9566 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
9568 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
9570 Patch by Richard Biener
9571 * coverage.c (coverage_obj_init): Delay building of type variant
9572 until the type is finished.
9574 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
9576 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
9577 mismatch between C and C++ type; compoare correctly ARG_TYPES
9578 for non-prototypes and output correctly parameter index for METHOD_TYPE.
9579 (odr_types_equivalent_p): Fix wording of warning about attributes;
9580 it is OK to match prototype and non-prototype.
9582 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
9584 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
9585 TYPE_ARG_TYPES list.
9586 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
9587 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
9589 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
9591 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
9592 * tree.h (is_lang_specific): Constify.
9594 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
9596 PR tree-optimization/64454
9597 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
9600 2015-05-08 Jason Merrill <jason@redhat.com>
9602 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
9603 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
9604 config/darwin.h, config/darwin9.h, config/elfos.h,
9605 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
9606 config/microblaze/microblaze.h, config/mips/mips.h,
9607 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
9608 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
9609 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
9610 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
9611 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
9612 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
9613 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
9614 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
9615 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
9616 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
9617 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
9618 between string literal and macro name.
9620 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9622 * jump.c: Change argument types to rtx_insn *.
9625 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9627 * lra-constraints.c: Change argument type to rtx_insn *.
9629 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9631 * df-problems.c: Change argument type to rtx_insn *.
9633 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9635 * combine.c: Change argument type to rtx_insn *.
9637 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9640 * rtlanal.c: Change argument type to rtx_insn *.
9642 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9644 * sched-deps.c: Change argument types to rtx_insn *.
9645 * sched-int.h: Adjust.
9647 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9649 * dwarf2cfi.c: Change argument type to rtx_insn *.
9651 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9653 * ira.c (decrease_live_ranges_number): Changetype of local
9654 variable to rtx_insn *.
9655 * recog.c: Change argument types to rtx_insn *.
9658 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9660 * reorg.c: Change argument types to rtx_insn *.
9662 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9664 * ira-color.c: Change argument types to rtx_insn *.
9665 * lra-eliminations.c: Likewise.
9668 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9670 * gcse.c: Change argument types to rtx_insn *.
9672 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9674 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
9676 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9678 * emit-rtl.c (emit_debug_insn_before): Change argument type to
9682 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9684 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
9687 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9689 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
9692 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9694 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
9697 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9699 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
9702 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9704 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
9708 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9710 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
9714 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9716 * except.c (can_nonlocal_goto): Change type of argument to
9720 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9722 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
9725 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9727 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
9728 * cfgrtl.c (can_delete_label_p): Adjust.
9731 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9733 * reorg.c (stop_search_p): Change argument to rtx_insn *.
9735 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9737 * except.c (make_reg_eh_region_note): Change argument to
9739 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
9742 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9744 * mode-switching.c (commit_mode_sets): Change type of local
9745 variable from rtx to rtx_insn *.
9747 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
9749 * doc/install.texi (--enable-languages): Add missing jit and lto info.
9750 Add ^ to grep command.
9751 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
9752 arg to last gimple_simplify declaration. Add missing gimple_build
9753 declaration for built-in function case with four tree args.
9755 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
9756 Szabolcs Nagy <szabolcs.nagy@arm.com>
9758 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
9759 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
9760 (GNU_USER_DYNAMIC_LINKERN32): Update.
9762 2015-05-08 Richard Biener <rguenther@suse.de>
9764 PR tree-optimization/66036
9765 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9766 Handle strided group loads.
9767 (vect_verify_datarefs_alignment): Likewise.
9768 (vect_enhance_data_refs_alignment): Likewise.
9769 (vect_analyze_group_access): Likewise.
9770 (vect_analyze_data_ref_access): Likewise.
9771 (vect_analyze_data_ref_accesses): Likewise.
9772 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
9773 (vectorizable_load): Likewise.
9775 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
9777 * config/rs6000/rs6000.md: Require operand inequality in one
9780 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
9781 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9783 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
9785 * config/rx/rx.md (movdi, movdf): Likewise.
9786 Likewise for define_peephole2s.
9788 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
9790 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
9791 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
9792 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
9793 vtst_u64): Rewrite using gcc vector extensions.
9795 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
9797 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
9798 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
9800 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
9802 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
9804 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
9806 * config/glibc-stdint.h (OPTION_MUSL): Define.
9807 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
9808 Change the definition based on OPTION_MUSL for 64 bit targets.
9809 * config/linux.h (OPTION_MUSL): Redefine.
9810 * config/alpha/linux.h (OPTION_MUSL): Redefine.
9811 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
9812 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
9814 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
9815 Szabolcs Nagy <szabolcs.nagy@arm.com>
9817 * config.gcc (LIBC_MUSL): New tm_defines macro.
9818 * config/linux.h (OPTION_MUSL): Define.
9819 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
9820 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
9821 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
9822 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
9823 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
9824 * config/linux.opt (mmusl): New option.
9825 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
9826 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
9827 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
9828 * configure: Regenerate.
9830 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
9831 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9834 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
9835 * config/i386/knetbsd-gnu64.h: New file.
9837 2015-05-08 Marek Polacek <polacek@redhat.com>
9840 * doc/invoke.texi: Document -Woverride-init-side-effects.
9842 2015-05-07 Marek Polacek <polacek@redhat.com>
9845 * doc/invoke.texi: Document -Wshift-negative-value.
9847 2015-05-06 Aditya Kumar <hiraditya@msn.com>
9849 * gcov-tool.c (do_merge): Refactore to remove int ret.
9850 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
9851 !type == FUNC to type != FUNC.
9852 * reload.h (struct target_reload): Changee to type of
9853 x_spill_indirect_levels from bool to unsigned char.
9855 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
9857 * rtl.h (always_void_p): New function.
9858 * gengenrtl.c (always_void_p): Likewise.
9859 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
9860 with code foo are always VOIDmode.
9861 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
9862 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
9863 compare-elim.c, config/aarch64/aarch64.c,
9864 config/aarch64/aarch64.md, config/alpha/alpha.c,
9865 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
9866 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
9867 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
9868 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
9869 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
9870 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
9871 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
9872 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
9873 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
9874 config/ia64/vect.md, config/iq2000/iq2000.c,
9875 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
9876 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
9877 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
9878 config/mep/mep.c, config/microblaze/microblaze.c,
9879 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
9880 config/mn10300/mn10300.c, config/msp430/msp430.c,
9881 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
9882 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
9883 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
9884 config/rs6000/altivec.md, config/rs6000/rs6000.c,
9885 config/rs6000/rs6000.md, config/rs6000/vector.md,
9886 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
9887 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
9888 config/sh/sh.md, config/sh/sh_treg_combine.cc,
9889 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
9890 config/spu/spu.md, config/stormy16/stormy16.c,
9891 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
9892 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
9893 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
9894 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
9895 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
9896 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
9897 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
9898 var-tracking.c: Update calls accordingly.
9900 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
9904 * varasm.c (function_mergeable_rodata_prefix): New function.
9905 (mergeable_string_section): Use it.
9906 (mergeable_constant_section): Use it.
9908 2015-05-07 Jeff Law <law@redhat.com>
9911 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
9912 simplifier to narrow arithmetic.
9913 * generic-match-head.c: (types_match, single_use): New functions.
9914 * gimple-match-head.c: (types_match, single_use): New functions.
9916 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9918 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
9921 2015-05-07 Richard Biener <rguenther@suse.de>
9923 PR tree-optimization/66002
9924 * passes.def: Schedule another pass_merge_phi after ifcombine, right
9927 2015-05-07 Marek Polacek <polacek@redhat.com>
9928 Martin Uecker <uecker@eecs.berkeley.edu>
9930 * doc/invoke.texi: Document -fsanitize=bounds-strict.
9931 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
9932 into SANITIZE_NONDEFAULT.
9933 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
9935 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
9938 * config/alpha/alpha.c (alpha_override_options_after_change): New.
9939 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
9940 (alpha_override_options): Move align_loops, align_jumps and
9941 align_functions handling into alpha_override_options_after_change.
9943 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
9944 Chris Jones <chrisj@nvidia.com>
9945 Joshua Conner <jconner@nvidia.com>
9947 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
9948 linking of crtfastmath.o.
9949 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
9951 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
9953 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
9954 (cstore<mode>4_unsigned_imm): New expander.
9955 (cstore<mode>4): Remove empty constraint strings. Use the new
9958 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
9961 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
9964 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
9966 * config/aarch64/geniterators.sh: Use standard BRE in sed.
9968 2015-05-06 Alan Modra <amodra@gmail.com>
9971 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
9972 (UNSPEC_NOP): Define.
9973 (reload_vsx_from_gpr<mode>): Add missing DONE.
9974 (reload_gpr_from_vsx<mode>): Likewise.
9975 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
9976 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
9978 2015-05-06 Christian Bruel <christian.bruel@st.com>
9981 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
9982 align_jumps, align_functions into aarch64_override_options_after_change.
9984 2015-05-06 Richard Biener <rguenther@suse.de>
9986 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
9987 vect_transform_slp_perm_load to check if we support a permutation
9988 for basic-block vectorization.
9990 2015-05-06 Nick Clifton <nickc@redhat.com>
9992 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
9993 used, even if it is not being used as a frame pointer.
9995 2015-05-05 Jason Merrill <jason@redhat.com>
9997 * dwarf2out.c (gen_member_die): Don't emit anything for an
9998 anonymous class constructor.
10000 2015-05-05 David Malcolm <dmalcolm@redhat.com>
10002 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
10003 that it reflects the block structure.
10004 (afdo_propagate_edge): Likewise.
10005 (afdo_calculate_branch_prob): Likewise.
10006 (afdo_annotate_cfg): Likewise.
10007 * cfgcleanup.c (equal_different_set_p): Likewise.
10008 (try_crossjump_to_edge): Likewise.
10009 * cgraph.c (cgraph_node::verify_node): Likewise.
10010 * cgraphunit.c (expand_all_functions): Likewise.
10011 * config/i386/i386.c (ix86_expand_copysign): Likewise.
10012 (exact_dependency_1): Likewise.
10013 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
10014 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
10015 * gensupport.c (process_define_subst): Likewise.
10016 * lto-wrapper.c (merge_and_complain): Likewise.
10017 * tree-if-conv.c (if_convertible_bb_p): Likewise.
10018 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
10019 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
10020 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
10021 * tree-vect-loop.c (vectorizable_reduction): Likewise.
10022 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
10023 * tree-vect-stmts.c (vectorizable_shift): Likewise.
10024 * tree-vrp.c (vrp_finalize): Likewise.
10025 * tree.c (variably_modified_type_p): Likewise.
10027 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
10029 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
10030 on darwin12 and later.
10031 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
10032 file to pass -rdynamic on darwin12 and later.
10033 * config/darwin.opt (rdynamic): Add.
10035 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
10037 * doc/extend.texi (C Extensions): Update menu for moved Variable
10038 Attributes and Type Attributes sections.
10040 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
10043 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
10044 if rep_8byte stringop strategy was specified for 32-bit target.
10046 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
10049 * config/i386/i386.md (vector convert to float spltiter): Check for
10050 xmm16+, when splitting scalar float conversion.
10051 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
10053 2015-05-05 Nick Clifton <nickc@redhat.com>
10055 * config/msp430/msp430-opts.h (enum msp430_regions): New.
10056 * config/msp430/msp430.c (msp430_override_options): Complain if
10057 -mcode-region or -mdata-region is used on a non MSP430X.
10058 (msp430_section_attr): New function. Checks lower, upper and
10060 (msp430_attribute_table): Add lower, upper and either.
10061 (gen_prefix): New function. Generates a prefix for a section
10063 (msp430_select_section): New function - handles the choice of
10064 section for an object. Takes into account memory region
10065 attributes and options.
10066 (msp430_function_section): Use gen_prefix.
10067 (TARGET_SECTION_TYPE_FLAGS): Define.
10068 (msp430_section_type_flags): New function.
10069 (TARGET_ASM_UNIQUE_SECTION): Define.
10070 (msp430_unique_section): New function.
10071 (msp430_output_aligned_decl_common): New function.
10072 (msp430_do_not_relax_short_jumps): New function.
10073 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
10075 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10076 * config/msp430/msp430-protos.h
10077 (msp430_do_not_relax_short_jumps): New prototype.
10078 (msp430_output_aligned_decl_common): New prototype.
10079 * config/msp430/msp430.md (length): New attribute.
10080 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
10081 then use a long code sequence for short jumps.
10082 * config/msp430/msp430.opt (mcode-region): New.
10083 (mdata-region): New.
10084 * doc/invoke.texi: Document new options.
10085 * doc/extend.texi: Document new attributes.
10087 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
10089 * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
10090 (tune_params): Add field branch_costs.
10091 (aarch64_branch_cost): Declare.
10092 * gcc/config/aarch64.c (generic_branch_cost): New.
10093 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
10094 (cortexa53_tunings): Likewise.
10095 (cortexa57_tunings): Likewise.
10096 (thunderx_tunings): Likewise.
10097 (xgene1_tunings): Likewise.
10098 (aarch64_branch_cost): Define.
10099 * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
10101 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
10103 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
10104 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
10105 * config/i386/i386.md: Ditto.
10106 * config/i386/winnt.c: Ditto.
10108 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
10110 * doc/extend.texi (__atomic Builtins): Move implementation details
10111 to the end of the description, rewrite opening paragraphs, state
10112 difference with __sync builtins, state C11/C++11 assumptions,
10113 weaken itemized descriptions, add explanation of memory model
10114 behaviour, expand description of compare-exchange, simplify text.
10116 2015-05-05 Renlin Li <renlin.li@arm.com>
10118 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
10120 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
10122 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
10123 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
10124 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
10125 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
10126 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
10127 * configure: Regenerate.
10128 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
10129 * doc/install.texi (aarch64*-*-*): Document new
10130 --enable-fix-cortex-a53-843419 option.
10131 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
10132 and -mno-fix-cortex-a53-843419 options.
10134 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
10137 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
10139 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
10141 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
10142 fix overactive TYPE_MIN_VALUE check and add FIXME for type
10143 compatibility problems.
10145 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
10147 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
10149 (cbranchsi4_reg): New.
10150 * config/microblaze/microblaze.c
10151 (microblaze_expand_conditional_branch_reg): New.
10152 * config/microblaze/microblaze-protos.h
10153 (microblaze_expand_conditional_branch_reg): New prototype.
10155 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
10157 * config/microblaze/microblaze.md (peephole2): New.
10159 2015-05-04 Jeff Law <law@redhat.com>
10162 2015-05-04 Jeff Law <law@redhat.com>
10164 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
10165 simplifier to narrow arithmetic.
10166 * generic-match-head.c: (types_match, single_use): New functions.
10167 * gimple-match-head.c: (types_match, single_use): New functions.
10169 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
10172 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
10173 (split_branches): Likewise.
10175 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
10177 * common.opt (fdelete-null-pointer-checks): Init to -1.
10178 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
10179 override flag_delete_null_pointer_checks default.
10180 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
10181 behavior re address zero. Better document target-specific behavior.
10182 (-fisolate-errneous-paths-dereference): Mention relationship to
10183 -fdelete-null-pointer-checks.
10185 2015-05-04 Jakub Jelinek <jakub@redhat.com>
10187 PR tree-optimization/65984
10188 * ubsan.c: Include tree-cfg.h.
10189 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
10190 stmt_could_throw_p test, rename can_throw variable to ends_bb.
10192 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
10194 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
10195 to CONST_DOUBLE_P predicate.
10196 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
10197 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
10198 allow only operands that satisfy standard_sse_constant_p predicate.
10199 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
10200 to CONST_DOUBLE_P predicate.
10202 2015-05-04 Jeff Law <law@redhat.com>
10204 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
10205 simplifier to narrow arithmetic.
10206 * generic-match-head.c: (types_match, single_use): New functions.
10207 * gimple-match-head.c: (types_match, single_use): New functions.
10209 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
10211 * config/arm/arm.c: Restore bootstrap.
10213 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
10215 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
10216 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
10217 as CONST_WIDE_INT, not CONST_DOUBLE.
10218 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
10219 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
10220 (ix86_find_base_term): Do not check for CONST_DOUBLE.
10221 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
10222 (ix86_build_signbit_mask): Rewrite using wide ints.
10223 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
10224 (ix86_rtx_costs): Handle CONST_WIDE_INT.
10225 (find_constant): Ditto.
10226 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
10227 using gen_int_mode.
10228 * config/i386/predicates.md (x86_64_immediate_operand)
10229 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
10230 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
10231 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
10232 (const0_operand): Also match const_wide_int.
10233 (constm1_operand): Ditto.
10234 (const1_operand): Ditto.
10236 2015-05-04 Richard Biener <rguenther@suse.de>
10238 PR tree-optimization/65965
10239 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
10240 store groups at gaps.
10242 2015-05-04 Richard Biener <rguenther@suse.de>
10244 PR tree-optimization/65935
10245 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
10246 then make sure to apply that swapping to the IL.
10248 2015-05-04 Jakub Jelinek <jakub@redhat.com>
10250 * Makefile.in (PATCHLEVEL_c): New variable.
10251 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
10252 expand the same way as if DEVPHASE_c was non-empty.
10254 2015-05-04 Kai Tietz <ktietz@redhat.com>
10257 * lto-wrapper.c (run_gcc): Open filename
10260 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
10262 * doc/extend.texi (Variable Attributes, Type Attributes): Move
10263 sections up in file, to immediately after the Function Attributes
10266 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
10268 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
10270 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10272 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
10273 (insert_partition_copy_on_edge): Adjust.
10274 (insert_rtx_to_part_on_edge): Likewise.
10275 (insert_part_to_rtx_on_edge): Likewise.
10277 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10279 * function.c (set_return_jump_label): Change type of argument to
10281 * function.h (set_return_jump_label): Adjust.
10283 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10285 * reload.h (struct reg_equivs_t): Change type of init to
10287 * ira.c (fix_reg_equiv_init): Adjust.
10288 * reload1.c (eliminate_regs_1): Likewise.
10289 (init_eliminable_invariants): Likewise.
10291 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10293 * cselib.c (fp_setter_insn): Take a rtx_insn *.
10294 * cselib.h (fp_setter_insn): Adjust.
10296 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10298 * recog.c (struct validate_replace_src_data): Change type of
10299 insn field to rtx_insn *.
10300 (validate_replace_src_group): Change type of argument to rtx_insn *.
10301 * recog.h (validate_replace_src_group): Adjust.
10303 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10305 * haifa-sched.c: Change the type of some variables to rtx_insn *.
10306 * sched-deps.c: Likewise.
10307 * sched-int.h: Likewise.
10308 * sched-rgn.c: Likewise.
10309 * sel-sched.c: Likewise.
10311 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10314 * config/i386/i386.c: Change the type of some arguments to
10316 * config/arm/arm.c: Likewise.
10318 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10320 * lra-constraints.c: Change type of some arguments to rtx_insn *.
10322 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10324 * regcprop.c (kill_autoinc_value): Change type of argument to
10327 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10329 * genrecog.c (print_subroutine): Adjust.
10330 * recog.c (get_bool_attr_mask_uncached): Likewise.
10331 * recog.h (struct recog_data_d): Change the type of insn to
10334 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10336 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
10338 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10340 * df-problems.c (df_set_note): Change type of argument to
10343 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10345 * builtins.c (expand_builtin_trap): Change type of local
10346 variable to rtx_insn *.
10347 (add_sched_insns_for_speculation): Likewise.
10348 (ix86_emit_save_regs): Likewise.
10349 (get_scratch_register_on_entry): Likewise.
10350 (ix86_emit_restore_reg_using_pop): Likewise.
10351 (ix86_emit_leave): Likewise.
10352 (ix86_emit_restore_regs_using_mov): Likewise.
10353 (ix86_expand_epilogue): Likewise.
10355 (rl78_alloc_physical_registers_umul): Likewise.
10356 * cselib.c (discard_useless_locs): Likewise.
10357 (cselib_invalidate_regno): Likewise.
10358 (cselib_invalidate_mem): Likewise.
10359 * function.c (expand_function_start): Likewise.
10360 (emit_use_return_register_into_block): Likewise.
10361 * gcse.c: Likewise.
10362 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
10363 * ifcvt.c (noce_get_alt_condition): Likewise.
10364 * loop-doloop.c (doloop_condition_get): Likewise.
10365 * lra-constraints.c (inherit_in_ebb): Likewise.
10366 * modulo-sched.c (sms_schedule_by_order): Likewise.
10367 * recog.c (next_insn_tests_no_inequality): Likewise.
10368 * reorg.c (emit_delay_sequence): Likewise.
10369 (update_reg_dead_notes): Likewise.
10370 (fix_reg_dead_note): Likewise.
10371 (fill_slots_from_thread): Likewise.
10372 (delete_computation): Likewise.
10374 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
10376 * doc/extend.texi (Variable Attributes): Add menu and proper
10377 @nodes to subsections. Move Microsoft Windows attributes to
10378 their own subsection.
10379 (Type Attributes): Reorganize introduction to remove duplicate
10380 list of attributes. Add menu and proper @nodes to subsections.
10381 Alphabetize the main table of common attributes.
10383 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
10385 * match.pd: New simplification patterns.
10386 (x + (x & 1)) -> ((x + 1) & ~1)
10387 (x & ~(x & y)) -> ((x & ~y))
10388 (x | ~(x | y)) -> ((x | ~y))
10390 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10392 * target.def (attribute_table): Mention that struct attribute_spec
10393 is defined in tree-core.h rather than tree.h
10394 * doc/tm.texi: Regenerate.
10396 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
10398 * genrecog.c (test): Rename to rtx_test. Update rest of file
10401 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
10403 PR translation/65959
10404 * params.h (DEFPARAM): Rename msgid to nocmsgid.
10406 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
10408 * gcc/config/aarch64/aarch64-protos.h (tune_params):
10409 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
10410 * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
10411 Return value depending on target.
10412 (generic_tunings): Initialize new target settings.
10413 (cortexa53_tunings): Likewise.
10414 (cortexa57_tunings): Likewise.
10415 (thunderx_tunings): Likewise.
10416 (xgene1_tunings): Likewise.
10418 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
10420 * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
10421 Make Cortex-A53 shift costs more accurate.
10423 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10425 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
10428 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
10430 * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
10431 Calculate cost of op0 and op1 in PLUS and MINUS cases.
10433 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10435 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10436 Add cost of op0 in the compare-with-fpzero case.
10438 2015-04-30 David Malcolm <dmalcolm@redhat.com>
10440 * builtins.c (fold_builtin_1): Remove spurious second
10442 * cgraph.h (symtab_node::get_availability): Likewise.
10443 * opts.c (common_handle_option): Remove spurious second semicolon.
10444 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
10445 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
10447 2015-04-30 Caroline Tice <cmtice@google.com>
10449 PR gcov-profile/65929
10450 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
10451 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
10452 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
10453 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
10454 * doc/tm.texi: Regenerate.
10455 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
10456 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
10457 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
10458 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
10460 2015-04-30 Marek Polacek <polacek@redhat.com>
10462 * varasm.c (handle_cache_entry): Fix logic.
10464 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10466 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
10467 (*extrsi5_insn_uxtw_alt): Likewise.
10468 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
10469 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
10472 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10474 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
10477 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10479 * config/aarch64/aarch64.md
10480 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
10481 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
10482 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
10483 appropriately. Handle alternative EON form.
10485 2015-04-30 Renlin Li <renlin.li@arm.com>
10487 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
10488 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
10490 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
10493 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
10494 -fstrict-aliasing boundaries.
10496 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10498 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
10499 and [SU]MNEGL patterns.
10501 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10503 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
10504 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
10505 combined arithmetic-shift ops. Properly handle all shift and extend
10506 operations that can occur in combination with PLUS/MINUS.
10507 Rename maybe_fma to compound_p.
10508 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
10509 arithmetic and shift operations.
10511 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10513 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
10514 rather than arith_shift cost when costing ADD/MINUS of an
10517 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
10520 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
10523 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
10525 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
10526 are for the same position.
10528 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
10530 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
10532 (vectorize_loops): Use it.
10534 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
10536 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
10537 for aggregate types.
10538 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
10539 type to be non_ODR.
10540 * tree.c (need_assembler_name_p): Compute mangled name for
10541 non-fundamental types and integer types.
10543 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
10545 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
10547 * expr.c (expand_expr_real_2): Likewise.
10549 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
10551 * tree.c (build_common_builtin_nodes): Do not build
10552 __builtin_alloca_with_align as equivalent of library alloca.
10554 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
10556 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
10557 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
10559 * tree.c: Include print-tree.h and ipa-utils.h
10560 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
10561 (free_lang_data_in_cgraph): Call verify_type.
10562 (verify_type_variant): New function.
10563 (verify_type): New function.
10564 * tree.h (verify_type): Declare.
10566 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
10568 * config/mips/mips-cpus.def: (mips4): Change default processor
10569 from PROCESSOR_R8000 to PROCESSOR_R10000.
10571 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
10573 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
10574 la/jalr instead of jal.
10576 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
10579 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
10580 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
10581 (setcc+movzbl peephole2): Check also clobbered reg.
10582 (setcc+andl peephole2): Ditto.
10584 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
10587 * config/nvptx/mkoffload.c (target_ilp32): New variable.
10588 (main): Set it depending on "-foffload-abi=[...]".
10589 (compile_native, main): Use it to pass "-m32" or "-m64" to the
10592 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
10595 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
10596 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
10597 Flip lane index back at assembly time for bigendian.
10599 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
10601 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
10602 * gimplify.c (gimplify_omp_workshare): Use it.
10604 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
10606 * Makefile.in (build/genrecog.o): Depend on inchash.h.
10607 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
10609 * genrecog.c: Rewrite most of the code except for the third page.
10611 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
10613 * inchash.h, inchash.c: Include bconfig.h for build objects.
10614 * Makefile.in (build/inchash.o): New rule.
10616 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
10619 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
10620 number in type attribute expression.
10622 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
10624 * loop-iv.c (canon_condition): Generalize to all types of integer
10627 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
10629 * gimple-walk.c: Prune duplicate or unneeded includes.
10630 (walk_gimple_asm): Only call parse_input_constraint or
10631 parse_output_constraint if their findings are used.
10632 Honour parse_input_constraint and parse_output_constraint
10635 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
10637 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
10639 2015-04-29 Tom de Vries <tom@codesourcery.com>
10641 PR tree-optimization/65893
10642 * passes.def (pass_all_optimizations): Move pass_stdarg to after
10645 2015-04-29 Richard Biener <rguenther@suse.de>
10647 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
10648 compute GROUP_SIZE for basic-block SLP.
10649 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
10650 take into account gaps.
10651 (vect_get_mask_element): Properly reject references to previous
10653 (vect_transform_slp_perm_load): Likewise.
10655 2015-04-29 Christian Bruel <christian.bruel@st.com>
10658 * config/i386/i386.c (ix86_default_align): New function.
10659 (ix86_override_options_after_change): Call ix86_default_align.
10660 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
10661 (ix86_override_options_after_change): New function.
10663 2015-04-28 Jeff Law <law@redhat.com>
10665 * tree-ssa-dom.c (record_equality); Fix comment typos.
10667 2015-04-28 Tom de Vries <tom@codesourcery.com>
10669 PR tree-optimization/65887
10670 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
10672 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
10674 * doc/extend.texi (Declaring Attributes of Functions): Split into
10675 subsections by target. Alphabetize the table of common attributes.
10676 Rewrite some of the introductory text to reflect the new structure.
10677 Update some cross-references to point to the new subsections.
10678 (Attribute Syntax): Put paragraph about "__" naming here. Remove
10679 duplicate copies in the discussion of function, label, and type
10682 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
10685 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
10687 2015-04-28 Jason Merrill <jason@redhat.com>
10690 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
10691 (finalize_type_size): Respect TYPE_USER_ALIGN.
10692 (layout_type) [ARRAY_TYPE]: Likewise.
10694 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
10696 * config/arm/arm.md (*arm_movt): Fix type attribute.
10697 (*cmpsi_shiftsi): Likewise.
10698 (*cmpsi_shiftsi_swp): Likewise.
10699 (*movsicc_insn): Likewise.
10700 (*cond_move): Likewise.
10701 (*if_plus_move): Likewise.
10702 (*if_move_plus): Likewise.
10703 (*if_arith_move): Likewise.
10704 (*if_move_arith): Likewise.
10705 (*if_shift_move): Likewise.
10706 (*if_move_shift): Likewise.
10707 (*arm_movtas_ze): Likewise.
10708 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
10709 redundancy and type attribute.
10710 (*thumb2_movsi_insn): Fix type attribute.
10711 (*thumb2_addsi_short): Likewise.
10712 (thumb2_addsi3_compare0): Likewise.
10713 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
10714 attributes accordingly.
10716 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
10719 * function.c (pad_to_arg_alignment): Add parentheses.
10721 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
10723 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
10724 libgcc/config/frv/elf-lib.h.
10726 2015-04-28 Tom de Vries <tom@codesourcery.com>
10728 * tree-call-cdce.c: Fix example in header comment.
10730 2015-04-28 Richard Biener <rguenther@suse.de>
10732 PR tree-optimization/62283
10733 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
10734 fails fatally and we are vectorizing a basic-block simply
10735 cause the child to be constructed piecewise.
10736 (vect_analyze_slp_cost_1): Adjust.
10737 (vect_detect_hybrid_slp_stmts): Likewise.
10738 (vect_bb_slp_scalar_cost): Likewise.
10739 (vect_get_constant_vectors): For piecewise constructed
10740 constants place them after the last def.
10741 (vect_get_slp_defs): Adjust.
10742 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
10743 externals for basic-block vectorization.
10745 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
10748 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
10750 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
10751 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
10752 (AARCH64_TUNE_FMA_STEERING): Likewise.
10753 * config/aarch64/aarch64-cores.def: Set
10754 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
10755 FMUL/FMADD instructions.
10756 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
10757 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
10758 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
10759 * config/aarch64/cortex-a57-fma-steering.h: New file.
10760 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
10762 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
10764 * gensupport.c (std_preds): Add missing codes to address_operand entry.
10766 2015-04-28 Richard Biener <rguenther@suse.de>
10768 PR tree-optimization/65851
10769 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
10770 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
10771 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
10772 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
10773 (ccp_visit_phi_node): Adjust.
10774 (evaluate_stmt): For simplifications to SSA names return its
10775 lattice value if that isn't VARYING. Return immediately when
10776 simplified to a constant.
10777 (visit_assignment): Adjust.
10778 (ccp_visit_stmt): Likewise.
10780 2015-04-28 Tom de Vries <tom@codesourcery.com>
10782 PR tree-optimization/65818
10783 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
10786 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10788 * calls.c (save_fixed_argument_area): Don't check
10789 ARGS_GROW_DOWNWARD with the preprocessor.
10790 (restore_fixed_argument_area): Likewise.
10791 (mem_overlaps_already_clobbered_arg_p): Likewise.
10792 (check_sibcall_argument_overlap): Likewise.
10793 (expand_call): Likewise.
10794 (emit_library_call_value_1): Likewise.
10795 (store_one_arg): Likewise.
10796 * function.c (assign_parms): Likewise.
10797 (locate_and_pad_parm): Likewise.
10798 (pad_to_arg_alignment): Likewise.
10799 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
10801 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10803 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
10804 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
10805 * calls.c (save_fixed_argument_area): Don't chekc if
10806 ARGS_GROW_DOWNWARD is defined.
10807 (restore_fixed_argument_area): Likewise.
10808 (mem_overlaps_already_clobbered_arg_p): Likewise.
10809 (check_sibcall_argument_overlap): Likewise.
10810 (expand_call): Likewise.
10811 (emit_library_call_value_1): Likewise.
10812 (store_one_arg): Likewise.
10813 * function.c (assign_parms): Likewise.
10814 (locate_and_pad_parm): Likewise.
10815 (pad_to_arg_alignment): Likewise.
10816 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
10818 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10820 * defaults.h (gen_epilogue): New function.
10821 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
10823 * cfgrtl.c (cfg_layout_finalize): Likewise.
10824 * df-scan.c: Likewise.
10825 * function.c (thread_prologue_and_epilogue_insns): Likewise.
10826 (reposition_prologue_and_epilogue_notes): Likewise.
10827 * reorg.c (find_end_label): Likewise.
10828 * toplev.c: Likewise.
10830 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10832 * bb-reorder.c (HAVE_return): Don't check if its undefined.
10833 * defaults.h (gen_simple_return): New function.
10834 (gen_simple_return): Likewise.
10835 (HAVE_return): Add default definition to false.
10836 (HAVE_simple_return): Likewise.
10837 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
10838 HAVE_return and HAVE_simple_return are defined.
10839 * function.c (gen_return_pattern): Likewise.
10840 (convert_jumps_to_returns): Likewise.
10841 (thread_prologue_and_epilogue_insns): Likewise.
10842 * reorg.c (find_end_label): Likewise.
10843 (dbr_schedule): Likewise.
10844 * shrink-wrap.c: Likewise.
10845 * shrink-wrap.h: Likewise.
10847 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10849 * defaults.h (EPILOGUE_USES): Add default definition of false.
10850 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
10851 * resource.c (init_resource_info): Likewise.
10853 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10855 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
10857 * dwarf2out.c (field_byte_offset): REmove check if
10858 PCC_BITFIELD_TYPE_MATTERS is defined.
10859 * stor-layout.c (layout_decl): Likewise.
10860 (update_alignment_for_field): Likewise.
10861 (place_field): Likewise.
10863 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10865 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
10867 * regrename.c (check_new_reg_p): Remove check if
10868 HARD_REGNO_RENAME_OK is defined.
10869 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
10871 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10873 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
10874 * cse.c (fold_rtx): Likewise.
10875 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
10876 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
10877 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
10878 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
10879 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
10880 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
10881 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
10882 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
10883 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
10884 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
10886 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
10887 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
10888 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
10889 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
10890 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
10891 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
10892 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
10893 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
10894 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
10895 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
10896 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
10897 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
10898 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
10899 * doc/tm.texi: Regenerate.
10900 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
10901 either true or false.
10903 2015-04-27 Jeff Law <law@redhat.com>
10905 PR tree-optimization/65217
10906 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
10907 of them has a single use, make sure it is the LHS of the implied
10910 2015-04-28 Alan Modra <amodra@gmail.com>
10913 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
10914 (offsettable_ok_by_alignment): Use minimum of decl and toc
10915 pointer alignment. Replace dead code with assertion.
10916 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
10917 case if size exceeds toc pointer alignment.
10918 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
10919 (rs6000_emit_move): Likewise.
10920 * configure.ac: Add linker toc pointer alignment check.
10921 * configure: Regenerate.
10922 * config.in: Regenerate.
10924 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
10926 * config.gcc: Add h8300-*-linux.
10927 * config/h8300/linux.h: New.
10928 * config/h8300/t-linux: New.
10929 * config/h8300/h8300.c (h8300_option_override): Normal mode
10930 is not supported for h8300-*-linux.
10931 (h8300_file_start): Target priority change.
10932 (get_shift_alg): Likewise.
10933 (h8300_shift_need_scratch_p): Likewise.
10934 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
10935 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
10937 2015-04-27 Caroline Tice <cmtice@google.com>
10939 * final.c (final_scan_insn): Output cold_function_name as function
10941 * varasm.c (cold_function_name): Make global.
10942 (assemble_start_function): Re-set cold_function_name.
10943 (assemble_end_function): Output cold partition size.
10944 * varasm.h (cold_function_name): Declare global.
10946 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
10948 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
10949 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
10951 (*movxi_internal_avx512f): Ditto.
10952 (define_split): Check for xmm16+, when splitting scalar float_extend.
10953 (*extendsfdf2_mixed): Use "v" constraint.
10954 (define_split): Check for xmm16+, when splitting scalar float_truncate.
10955 (*truncdfsf_fast_sse): Use "v" constraint.
10956 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
10957 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
10958 (define_peephole2): Check for xmm16+, when converting scalar
10960 (define_peephole2): Check for xmm16+, when converting scalar
10962 (*fop_<mode>_comm_mixed): Use "v" constraint.
10963 (*fop_<mode>_comm_sse): Ditto.
10964 (*fop_<mode>_1_mixed): Ditto.
10965 (*sqrt<mode>2_sse): Ditto.
10966 (*ieee_s<ieee_maxmin><mode>3): Ditto.
10968 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10970 * combine.c (simplify_if_then_else): Use std::swap instead
10971 of manually swapping.
10972 (known_cond): Likewise.
10973 (simplify_comparison): Likewise.
10975 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
10978 * config/rs6000/htm.md: Remove all define_expands.
10979 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
10980 UNSPECV_HTM_TABORTWCI): Remove.
10981 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
10982 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
10983 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
10984 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
10985 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
10986 tabortwci_internal): Remove define_insns.
10987 (tabort<wd>c, tabort<wd>ci): New define_insns.
10988 (tabort): Use gpc_reg_operand.
10989 (tcheck): Remove operand.
10990 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
10991 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
10993 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
10994 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
10995 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
10996 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
10997 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
10998 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
10999 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
11000 (tcheck): Remove builtin argument.
11001 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
11003 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
11004 tabortdc and tabortdci builtins when not in 64-bit mode.
11005 Modify code to handle the loss of the HTM define_expands.
11006 Emit code to copy the CR register to TARGET.
11007 (htm_init_builtins): Modify code to handle the loss of the HTM
11009 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
11010 (RS6000_BTC_64BIT): Likewise.
11011 (RS6000_BTC_CR): New macro.
11012 * doc/extend.texi: Update documentation for htm builtins.
11014 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11016 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
11017 of manually swapping.
11018 (simplify_associative_operation): Likewise.
11019 (simplify_binary_operation): Likewise.
11020 (simplify_plus_minus): Likewise.
11021 (simplify_relational_operation): Likewise.
11022 (simplify_ternary_operation): Likewise.
11024 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
11026 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
11027 (xs_hi_nonmemory_operand): Remove error.
11028 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
11029 general_operand rather than xs_hi_general_operand.
11031 2015-04-27 Richard Biener <rguenther@suse.de>
11033 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
11034 (record_equivalences_from_stmt): Valueize rhs.
11035 (record_equality): Canonicalize x and y order via
11036 tree_swap_operands_p. Do not swap operands for same loop depth.
11038 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
11042 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
11043 Add hint how to use own spec file.
11045 2015-04-27 Jakub Jelinek <jakub@redhat.com>
11047 PR tree-optimization/65875
11048 * tree-vrp.c (update_value_range): If in is_new case setting
11049 old_vr to VR_VARYING, also set new_vr to it. Remove
11050 old_vr->type == VR_VARYING test.
11051 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
11052 SSA_PROP_INTERESTING if update_value_range returned true,
11053 but new range is VR_VARYING.
11055 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
11057 * combine.c (sign_extend_short_imm): New.
11058 (set_nonzero_bits_and_sign_copies): Use above new function for sign
11059 extension of src short immediate.
11060 (reg_nonzero_bits_for_combine): Likewise for tem.
11062 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
11064 * stor-layout.c (self_referential_component_ref_p): New predicate.
11065 (copy_self_referential_tree_r): Use it.
11066 (self_referential_size): Punt for simple operations directly involving
11067 self-referential component references.
11068 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
11070 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
11072 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
11074 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
11076 * vec.h (vec): Make splice arguments const. Update definitions
11079 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
11081 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
11084 2015-04-26 Tom de Vries <tom@codesourcery.com>
11086 PR tree-optimization/65826
11087 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
11089 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
11091 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
11092 (*madd3<mode>): Ditto.
11093 (*msub4<mode>): Ditto.
11094 (*msub3<mode>): Ditto.
11095 (*nmadd4<mode>): Ditto.
11096 (*nmadd3<mode>): Ditto.
11097 (*nmadd4<mode>_fastmath): Ditto.
11098 (*nmadd3<mode>_fastmath): Ditto.
11099 (*nmsub4<mode>): Ditto.
11100 (*nmsub3<mode>): Ditto.
11101 (*nmsub4<mode>_fastmath): Ditto.
11102 (*nmsub3<mode>_fastmath): Ditto.
11104 2015-04-24 Jason Merrill <jason@redhat.com>
11107 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
11108 down when building TYPE_CANONICAL.
11109 (build_pointer_type_for_mode): Likewise.
11111 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
11113 * genrecog.c (validate_pattern): Check matching constraint refers
11114 to a lower numbered operand.
11116 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11119 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
11120 save to independent variables use the Save attribute. This will
11121 allow these options to be modified with the #pragma/attribute
11123 (-mallow-movmisalign): Likewise.
11124 (-mallow-df-permute): Likewise.
11125 (-msched-groups): Likewise.
11126 (-malways-hint): Likewise.
11127 (-malign-branch-targets): Likewise.
11128 (-mvectorize-builtins): Likewise.
11129 (-msave-toc-indirect): Likewise.
11131 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
11132 can be set via the #pragma/attribute target support.
11133 (rs6000_opt_vars): Likewise.
11134 (rs6000_inner_target_options): If VSX was set, also set
11135 -mno-avoid-indexed-addresses.
11137 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11139 * config/arm/iterators.md (shiftable_ops): Rename to...
11140 (SHIFTABLE_OPS): ... This. Update use in comments.
11141 (ior_xor): Rename to...
11142 (IOR_XOR): ... This.
11143 (vqh_ops): Rename to...
11144 (VQH_OPS): ... This.
11145 (vqhs_ops): Rename to...
11146 (VQHS_OPS): ... This.
11147 (rshifts): Rename to...
11148 (RSHIFTS): ... This.
11149 (returns): Rename to...
11150 (RETURNS): ... This.
11151 * config/arm/arm.md: Update uses of the above.
11152 * config/arm/neon.md: Likewise.
11154 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11156 * config.host (case ${host}): Add aarch64*-*-linux case.
11157 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
11158 fields to all the cores.
11159 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
11160 Add MCPU_MTUNE_NATIVE_SPECS.
11161 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
11162 field to all extensions.
11163 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
11164 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
11165 Adjust definition of AARCH64_OPT_EXTENSION.
11166 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
11167 (MCPU_MTUNE_NATIVE_SPECS): Define.
11168 * config/aarch64/driver-aarch64.c: New file.
11169 * config/aarch64/x-arch64: New file.
11170 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
11173 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
11174 Wei Mi <wmi@google.com>
11176 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
11177 * config/i386/i386.c (extract_base_offset_in_addr): New function.
11178 (ix86_operands_ok_for_move_multiple): Ditto.
11179 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
11180 (movlpd/movhpd to movupd peephole2): Ditto.
11182 2015-04-24 Marek Polacek <polacek@redhat.com>
11185 * input.h (from_macro_expansion_at): Define.
11188 * doc/invoke.texi: Update description of -Wlogical-op.
11190 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
11192 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
11193 ternary operator in fprintf and harmonize spacing.
11195 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
11197 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
11198 Mark operand1 commutative.
11200 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
11202 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
11203 input operands in memory.
11204 (*vec_concatv2si_sse4_1): Ditto.
11205 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
11206 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
11208 (vec_extract_hi_v32hi): Ditto.
11209 (vec_extract_hi_v64hi): Ditto.
11210 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
11212 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
11213 Steven Bosscher <steven@gcc.gnu.org>
11215 PR rtl-optimization/34503
11216 * cprop.c (cprop_reg_p): New.
11217 (hash_scan_set): Use above function to check if register can be
11219 (find_avail_set): Return up to two sets, one whose source is a
11220 register and one whose source is a constant. Sets are returned in an
11221 array passed as parameter rather than as a return value.
11222 (cprop_insn): Use a do while loop rather than a goto. Try each of the
11223 sets returned by find_avail_set, starting with the one whose source is
11224 a constant. Use cprop_reg_p to check if register can be propagated.
11225 (do_local_cprop): Use cprop_reg_p to check if register can be
11227 (implicit_set_cond_p): Likewise.
11229 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
11231 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
11232 (sem_function::equals): IGNORED_NODES parameter is now unused;
11233 update call of equals_private.
11234 (sem_function::equals_private): Do not call equals_wpa; skip
11235 gimple body matching if there is no body.
11236 (sem_function::init): Add logic to hash tthunk info.
11237 (sem_function::parse): Also parse thunks.
11238 * ipa-icf.h (equals_private): Update declaration.
11240 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11242 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
11243 asterisk from name so this can be generated directly.
11244 (*altivec_stvx_<mode>_internal): Likewise.
11245 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
11246 that this is never called during or after reload/lra.
11247 (rs6000_frame_related): Remove split_reg
11248 argument and logic that references it.
11249 (emit_frame_save): Remove last parameter from call to
11250 rs6000_frame_related.
11251 (rs6000_emit_prologue): Remove last parameter from eight calls to
11252 rs6000_frame_related. Force generation of stvx instruction for
11253 Altivec register saves. Remove split_reg handling, which is no
11255 (rs6000_emit_epilogue): Force generation of lvx instruction for
11256 Altivec register restores.
11258 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11260 * config/rs6000/rs6000.opt (mcrypto): Change option description to
11261 match category changes in ISA 2.07B.
11263 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11265 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
11267 (cmp_op, cmp_type): New code attributes.
11268 (NEON_VCMP, NEON_VACMP): New int iterators.
11269 (cmp_op_unsp): New int attribute.
11270 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
11271 (neon_vceq<mode>): Delete.
11272 (neon_vc<cmp_op><mode>_insn): New pattern.
11273 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
11274 (neon_vcgeu<mode>): Delete.
11275 (neon_vcle<mode>): Likewise.
11276 (neon_vclt<mode>: Likewise.
11277 (neon_vcage<mode>): Likewise.
11278 (neon_vcagt<mode>): Likewise.
11279 (neon_vca<cmp_op><mode>): New define_expand.
11280 (neon_vca<cmp_op><mode>_insn): New pattern.
11281 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
11283 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
11285 * tree.h (attribute_value_equal): Declare.
11286 * tree.c (attribute_value_equal): Export.
11288 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
11290 * ipa-icf.c (sem_item::compare_attributes): New function.
11291 (sem_item::compare_referenced_symbol_properties): Compare variable
11293 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
11294 (sem_function::param_used_p): New function.
11295 (sem_function::equals_wpa): Fix attribute comparsion; match
11296 parameter type codes; do not compare paremter flags when
11297 they are not used; compare edge flags; compare indirect calls.
11298 (sem_item::update_hash_by_addr_refs): Hash reference type.
11299 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
11300 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
11301 reference use type.
11302 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
11303 * ipa-icf.h (compare_attributes, param_used_p): Declare.
11305 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
11307 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
11309 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
11310 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
11311 (sem_item::compare_referenced_symbol_properties): New.
11312 (sem_item::hash_referenced_symbol_properties): New.
11313 (sem_item::compare_cgraph_references): Rename to ...
11314 (sem_item::compare_symbol_references): ... this one; use
11315 compare_referenced_symbol_properties.
11316 (sem_function::equals_wpa): Do not compare
11317 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
11318 DECL_IS_OPERATOR_NEW; compare pointer sizes.
11319 (sem_item::update_hash_by_addr_refs): Call
11320 hash_referenced_symbol_properties.
11321 (sem_item::update_hash_by_local_refs): Cleanup.
11322 (sem_function::merge): Do not mix up symbol properties.
11323 (sem_variable::equals_wpa): Use compare_symbol_references.
11324 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
11325 (sem_item::hash_referenced_symbol_properties): New.
11326 (sem_item::compare_symbol_references): New.
11327 (sem_item::compare_cgraph_references): Remove.
11329 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
11332 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
11333 Emit size of local.
11335 2015-04-23 Nick Clifton <nickc@redhat.com>
11337 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
11338 ATTRIBUTE_UNUSED to x parameter.
11339 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
11341 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11343 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
11344 TARGET_CRYPTO to TARGET_P8_VECTOR>
11345 (crypto_vpermxor_<mode>): Likewise.
11346 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
11347 (BU_CRYPTO_3A): Likewise.
11348 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
11349 (BU_CRYPTO_OVERLOAD_3A): New #define.
11350 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
11351 (VPMSUMH): Likewise.
11352 (VPMSUMW): Likewise.
11353 (VPMSUMD): Likewise.
11354 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
11355 (VPERMXOR_V4SI): Likewise.
11356 (VPERMXOR_V8HI): Likewise.
11357 (VPERMXOR_V16QI): Likewise.
11358 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
11359 BU_CRYPTO_OVERLOAD_2A.
11360 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
11361 BU_CRYPTO_OVERLOAD_3A.
11362 * config/rs6000/rs6000.opt (mcrypto): Change description of
11365 2015-04-23 Richard Biener <rguenther@suse.de>
11367 * passes.def: Remove copy propagation passes run directly after CCP.
11368 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
11370 (ccp_visit_phi_node): Rework to handle first executable edge
11373 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
11375 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
11376 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
11377 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
11378 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
11379 (thumb_legimitimize_reload_address): Remove.
11380 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
11382 (thumb_legimitimize_reload_address): Remove.
11384 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11386 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
11388 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11390 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
11392 (store_multiple): Likewise.
11394 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11396 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
11397 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
11398 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
11399 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
11400 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
11401 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
11402 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
11403 Specify issue_rate value.
11404 (arm_issue_rate): Look up issue rate from tuning structs. Remove
11405 large switch statement.
11406 (arm_marvell_pj4_tune): New struct.
11407 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
11410 2015-04-23 Richard Biener <rguenther@suse.de>
11412 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
11413 (vect_find_last_store_in_slp_instance): Rename to ...
11414 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
11415 (vect_analyze_slp_cost_1): Use vector_load for constant defs
11416 and vec_construct for external defs when estimating prologue cost.
11417 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
11418 Compute costs here only when vectorizing loops.
11419 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
11420 have been determined.
11421 (vect_schedule_slp_instance): Simplify vectorized code placement
11422 and prepare for in-BB external defs.
11423 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
11424 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
11425 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
11427 (vect_model_load_cost): Likewise.
11428 (vectorizable_store): Instead add it here.
11429 (vectorizable_load): Likewise.
11430 (vect_is_simple_use): Dump def type textually.
11432 2015-04-23 Richard Biener <rguenther@suse.de>
11434 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
11435 * cfgloop.c (verify_loop_structure): Verify the root loop node.
11436 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
11437 instead of get_eh_region_from_lp_number.
11438 * loop-init.c (fix_loop_structure): If we removed a loop, reset
11441 2015-04-23 Anton Blanchard <anton@samba.org>
11443 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
11444 need for -mprofile-kernel to save LR to stack.
11446 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11448 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
11450 (insn_is_swappable_p): Return 1 for a convert from double to
11451 single precision when all of its uses are splats of BE element
11454 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
11456 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
11458 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11461 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
11462 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
11463 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
11465 (rs6000_builtin_mask_for_load): Return 0 for targets with
11466 efficient unaligned VSX accesses so that the vectorizer will use
11467 direct unaligned loads.
11468 (rs6000_builtin_support_vector_misalignment): Always return true
11469 for targets with efficient unaligned VSX accesses.
11470 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
11471 stores on targets with efficient unaligned VSX accesses is almost
11472 always the same as the cost of an aligned load or store, so model
11474 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
11475 unaligned vectors if we have efficient unaligned VSX accesses.
11476 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
11477 undocumented option.
11479 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11482 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
11484 * config.gcc (LIBC_MUSL): New tm_defines macro.
11485 * config/linux.h (OPTION_MUSL): Define.
11486 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11487 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11488 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11490 * config/linux.opt (mmusl): New option.
11491 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11492 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11494 * configure: Regenerate.
11496 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
11498 * config.gcc (LIBC_MUSL): New tm_defines macro.
11499 * config/linux.h (OPTION_MUSL): Define.
11500 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
11501 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
11502 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
11504 * config/linux.opt (mmusl): New option.
11505 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
11506 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
11508 * configure: Regenerate.
11510 2015-04-22 Yury Gribov <y.gribov@samsung.com>
11512 * doc/invoke.texi (-fsanitize-sections): Update description.
11513 * asan.c (set_sanitized_sections): Parse incoming arg.
11514 (section_sanitized_p): Support wildcards.
11516 2015-04-22 Tom de Vries <tom@codesourcery.com>
11518 PR tree-optimization/65823
11519 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
11520 equality between ap_copy and ap.
11522 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11525 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
11527 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11530 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
11532 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11535 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
11536 remove already contained t-files.
11538 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11540 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
11541 Remove unneeded forward declarations.
11542 (suitable_for_tail_call_opt_p): Commentary typo fix.
11544 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11546 * varasm.c (emit_bss): Remove redundant guard.
11548 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11550 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
11552 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11554 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
11556 2015-04-22 Hale Wang <hale.wang@arm.com>
11557 Terry Guo <terry.guo@arm.com>
11559 PR rtl-optimization/64818
11560 * combine.c (can_combine_p): Don't combine user-specified
11561 register if it is in an asm input.
11563 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
11566 * passes.def (early_optimizations): Add pass_dse.
11568 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11570 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
11571 * reorg.c (redundant_insn): Remove ifdef
11572 INSN_REFERENCES_ARE_DELAYED.
11573 * resource.c (mark_referenced_resources): Likewise.
11575 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11577 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
11578 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
11579 * resource.c (mark_set_resources): Likewise.
11581 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11583 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
11584 * cfgcleanup.c (flow_find_cross_jump): Likewise.
11585 (flow_find_head_matching_sequence): Likewise.
11586 (try_head_merge_bb): Likewise.
11587 * combine.c (can_combine_p): Likewise.
11588 (try_combine): Likewise.
11589 (distribute_notes): Likewise.
11590 * df-problems.c (can_move_insns_across): Likewise.
11591 * final.c (final): Likewise.
11592 * gcse.c (insert_insn_end_basic_block): Likewise.
11593 * ira.c (find_moveable_pseudos): Likewise.
11594 * reorg.c (try_merge_delay_insns): Likewise.
11595 (fill_simple_delay_slots): Likewise.
11596 (fill_slots_from_thread): Likewise.
11597 * sched-deps.c (sched_analyze_2): Likewise.
11599 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11601 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
11602 PIC_OFFSET_TABLE_REGNUM.
11604 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11606 * alias.c (init_alias_target): Remove ifdef
11607 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
11608 * df-scan.c (df_insn_refs_collect): Likewise.
11609 (df_get_regular_block_artificial_uses): Likewise.
11610 (df_get_eh_block_artificial_uses): Likewise.
11611 (df_get_entry_block_def_set): Likewise.
11612 (df_get_exit_block_use_set): Likewise.
11613 * emit-rtl.c (gen_rtx_REG): Likewise.
11614 * ira.c (ira_setup_eliminable_regset): Likewise.
11615 * reginfo.c (init_reg_sets_1): Likewise.
11616 * regrename.c (rename_chains): Likewise.
11617 * reload1.c (reload): Likewise.
11618 (eliminate_regs_in_insn): Likewise.
11619 * resource.c (mark_referenced_resources): Likewise.
11620 (init_resource_info): Likewise.
11622 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11624 * defaults.h (MASK_RETURN_ADDR): New definition.
11625 * except.c (expand_builtin_extract_return_addr): Remove ifdef
11628 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11630 * defaults.h (RETURN_ADDR_OFFSET): New definition.
11631 * except.c (expand_builtin_extract_return_addr): Remove ifdef
11632 RETURN_ADDR_OFFSET.
11633 (expand_builtin_frob_return_addr): Likewise.
11635 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11637 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
11638 (try_redirect_by_replacing_jump): Likewise.
11639 (rtl_tidy_fallthru_edge): Likewise.
11640 * combine.c (insn_a_feeds_b): Likewise.
11641 (find_split_point): Likewise.
11642 (simplify_set): Likewise.
11643 * cprop.c (cprop_jump): Likewise.
11644 * cse.c (cse_extended_basic_block): Likewise.
11645 * df-problems.c (can_move_insns_across): Likewise.
11646 * function.c (emit_use_return_register_into_block): Likewise.
11647 * haifa-sched.c (sched_init): Likewise.
11648 * ira.c (find_moveable_pseudos): Likewise.
11649 * loop-invariant.c (find_invariant_insn): Likewise.
11650 * lra-constraints.c (curr_insn_transform): Likewise.
11651 * postreload.c (reload_combine_recognize_const_pattern):
11653 * reload.c (find_reloads): Likewise.
11654 * reorg.c (delete_scheduled_jump): Likewise.
11655 (steal_delay_list_from_target): Likewise.
11656 (steal_delay_list_from_fallthrough): Likewise.
11657 (redundant_insn): Likewise.
11658 (fill_simple_delay_slots): Likewise.
11659 (fill_slots_from_thread): Likewise.
11660 (delete_computation): Likewise.
11661 * sched-rgn.c (add_branch_dependences): Likewise.
11663 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11665 * genconfig.c (main): Always define HAVE_cc0.
11666 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
11668 * cfgcleanup.c (flow_find_cross_jump): Likewise.
11669 (flow_find_head_matching_sequence): Likewise.
11670 (try_head_merge_bb): Likewise.
11671 * cfgrtl.c (rtl_merge_blocks): Likewise.
11672 (try_redirect_by_replacing_jump): Likewise.
11673 (rtl_tidy_fallthru_edge): Likewise.
11674 * combine.c (do_SUBST_MODE): Likewise.
11675 (insn_a_feeds_b): Likewise.
11676 (combine_instructions): Likewise.
11677 (can_combine_p): Likewise.
11678 (try_combine): Likewise.
11679 (find_split_point): Likewise.
11681 (simplify_set): Likewise.
11682 (distribute_notes): Likewise.
11683 * cprop.c (cprop_jump): Likewise.
11684 * cse.c (cse_extended_basic_block): Likewise.
11685 * df-problems.c (can_move_insns_across): Likewise.
11686 * final.c (final): Likewise.
11687 (final_scan_insn): Likewise.
11688 * function.c (emit_use_return_register_into_block): Likewise.
11689 * gcse.c (insert_insn_end_basic_block): Likewise.
11690 * haifa-sched.c (sched_init): Likewise.
11691 * ira.c (find_moveable_pseudos): Likewise.
11692 * loop-invariant.c (find_invariant_insn): Likewise.
11693 * lra-constraints.c (curr_insn_transform): Likewise.
11694 * optabs.c (prepare_cmp_insn): Likewise.
11695 * postreload.c (reload_combine_recognize_const_pattern):
11697 * reload.c (find_reloads): Likewise.
11698 (find_reloads_address_1): Likewise.
11699 * reorg.c (delete_scheduled_jump): Likewise.
11700 (steal_delay_list_from_target): Likewise.
11701 (steal_delay_list_from_fallthrough): Likewise.
11702 (try_merge_delay_insns): Likewise.
11703 (redundant_insn): Likewise.
11704 (fill_simple_delay_slots): Likewise.
11705 (fill_slots_from_thread): Likewise.
11706 (delete_computation): Likewise.
11707 (relax_delay_slots): Likewise.
11708 * sched-deps.c (sched_analyze_2): Likewise.
11709 * sched-rgn.c (add_branch_dependences): Likewise.
11711 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11713 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
11714 that is trivially ded on non cc0 targets.
11715 (simplify_set): Likewise.
11716 (mark_used_regs_combine): Likewise.
11717 * cse.c (new_basic_block): Likewise.
11718 (fold_rtx): Likewise.
11719 (cse_insn): Likewise.
11720 (cse_extended_basic_block): Likewise.
11721 (set_live_p): Likewise.
11722 * rtlanal.c (canonicalize_condition): Likewise.
11723 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
11725 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11727 * conditions.h: Define macros even if HAVE_cc0 is undefined.
11728 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
11729 * final.c: Likewise.
11730 * jump.c: Likewise.
11731 * recog.c: Likewise.
11732 * recog.h: Declare functions even when HAVE_cc0 is undefined.
11733 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
11735 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11737 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
11738 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
11739 * builtins.c (expand_builtin): Remove check if
11740 EH_RETURN_DATA_REGNO is defined.
11741 * df-scan.c (df_bb_refs_collect): Likewise.
11742 (df_get_exit_block_use_set): Likewise.
11743 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
11744 * ira-lives.c (process_bb_node_lives): Likewise.
11745 * lra-lives.c (process_bb_lives): Likewise.
11747 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
11749 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
11750 FIRST_PSEUDO_REG): New.
11751 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
11752 (ARG_POINTER_REGNUM): Define to ARGP_REG.
11753 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
11754 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
11755 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
11756 (FIRST_INT_REG): New.
11757 (LAST_INT_REG): New.
11758 (FIRST_*_REG): Define using *_REG.
11759 (LAST_*_REG): Ditto.
11760 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
11761 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
11762 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
11764 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11766 * expmed.c: (synth_mult): Only assume overlapping
11767 shift with previous steps in alg_sub_t_m2 case.
11769 2015-04-21 Richard Biener <rguenther@suse.de>
11771 PR tree-optimization/65650
11772 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
11773 transitions involving copies.
11774 (set_lattice_value): Adjust for copy lattice state.
11775 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
11776 if that doesn't dominate the merge point.
11777 (bit_value_unop): Adjust what we treat as varying mask.
11778 (bit_value_binop): Likewise.
11779 (bit_value_assume_aligned): Likewise.
11780 (evaluate_stmt): When we simplified to a SSA name record a copy
11781 instead of dropping to varying.
11782 (visit_assignment): Simplify.
11784 * gimple-match.h (gimple_simplify): Add another callback.
11785 * gimple-fold.c (fold_stmt_1): Adjust caller.
11786 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
11787 for the 2nd callback.
11788 * gimple-match-head.c (gimple_simplify): Add a callback that is
11789 used to valueize the stmt operands and use it that way.
11791 2015-04-21 Richard Biener <rguenther@suse.de>
11793 PR tree-optimization/65788
11794 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
11796 2015-04-21 Richard Biener <rguenther@suse.de>
11798 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
11799 vec_construct cost by vec_stmt_cost.
11801 2015-04-21 Richard Biener <rguenther@suse.de>
11803 * cfghooks.h (create_basic_block): Replace with two overloads
11804 for RTL and GIMPLE.
11805 (split_block): Likewise.
11806 * cfghooks.c (split_block): Rename to ...
11807 (split_block_1): ... this.
11808 (split_block): Add two type-safe overloads for RTL and GIMPLE.
11809 (split_block_after_labels): Call split_block_1.
11810 (create_basic_block): Rename to ...
11811 (create_basic_block_1): ... this.
11812 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
11813 (create_empty_bb): Call create_basic_block_1.
11814 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
11815 split_block_after_labels.
11816 * omp-low.c (expand_parallel_call): Likewise.
11817 (expand_omp_target): Likewise.
11818 (simd_clone_adjust): Likewise.
11819 * tree-chkp.c (chkp_get_entry_block): Likewise.
11820 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
11821 create_basic_block overload.
11822 (cgraph_node::expand_thunk): Likewise.
11823 * tree-cfg.c (make_blocks): Likewise.
11824 (handle_abnormal_edges): Likewise.
11825 * tree-inline.c (copy_bb): Likewise.
11827 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11829 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
11831 (*xor_one_cmplsidi3_ze): Likewise.
11833 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
11835 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
11836 use df_remove_problem rather than manually removing problems, leaving
11837 holes in df->problems_in_order[].
11839 2015-04-21 Tom de Vries <tom@codesourcery.com>
11841 PR tree-optimization/65802
11842 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
11844 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11846 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
11848 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
11849 at '.'. Assert that there's enough space for everything.
11851 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
11853 PR tree-optimization/64950
11855 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
11858 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
11861 2015-04-20 Shiva Chen <shiva0217@gmail.com>
11863 PR rtl-optimization/64916
11864 * cfgcleanup.c (values_equal_p): New function.
11865 (can_replace_by): Use it.
11867 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
11870 * doc/invoke.texi ([-Wnarrowing]): Update.
11872 2015-04-20 Jeff Law <law@redhat.com>
11874 PR tree-optimization/65658
11875 * tree-ssa-threadupdate.c (redirection_block_p): Remove
11876 redundant test for GIMPLE_ASSIGN in last change.
11878 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
11880 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
11881 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
11882 (legitimize_tls_address): Ditto.
11883 (ix86_expand_move): Ditto.
11884 (ix86_expand_binary_operator): Remove reload_in_progress checks.
11885 (ix86_expand_unary_operator): Ditto.
11886 * config/i386/predicates.md (index_register_operand): Ditto.
11888 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
11890 * reorg.c (try_merge_delay_insns): Improve correctness checking
11891 for targets with multiple delay slots.
11893 2015-04-20 Jeff Law <law@redhat.com>
11895 PR tree-optimization/65658
11896 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
11899 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
11901 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
11902 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
11905 2015-04-20 Jakub Jelinek <jakub@redhat.com>
11908 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
11910 2015-04-20 Richard Biener <rguenther@suse.de>
11912 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
11913 * gimple-fold.c (gimple_build_valueize): New function.
11914 (gimple_build): Always use gimple_build_valueize as valueize hook.
11916 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
11919 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
11920 and overwrite variable parts if <= 1/2 the elements are variable.
11922 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
11924 PR rtl-optimization/65805
11925 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
11926 Don't use difference of offset and previous offset if
11927 update_sp_offset is non-zero.
11928 (eliminate_regs_in_insn): Ditto.
11929 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
11930 lra_eliminate_regs_1 call.
11931 * lra-constraints.c (get_equiv_with_elimination): Ditto.
11933 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
11935 * hash-table.h: Remove version of hash_table that stored value_type *.
11936 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
11937 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
11938 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
11939 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
11940 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
11941 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
11942 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
11943 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
11944 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
11945 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
11946 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
11947 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
11948 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
11949 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
11950 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
11951 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
11953 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11954 Jakub Jelinek <jakub@redhat.com>
11957 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
11958 subsequent SH_NONE operand does not overwrite an existing *special
11960 (adjust_extract): Handle case where a vec_extract operation is
11961 wrapped in a PARALLEL.
11963 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
11966 * config/i386/i386.c (ix86_binds_local_p): Define only if
11967 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
11969 2015-04-17 Jeff Law <law@redhat.com>
11971 PR tree-optimization/47679
11972 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
11973 * tree-ssa-scopedtables.c: New file.
11974 * tree-ssa-scopedtables.h: New file.
11975 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
11976 (const_and_copies): Change name/type.
11977 (record_const_or_copy): Move into tree-ssa-scopedtables.c
11978 (record_const_or_copy_1): Similarly.
11979 (restore_vars_to_original_value): Similarly.
11980 (pass_dominator::execute): Create and destroy const_and_copies table.
11981 (thread_across_edge): Update passing of const_and_copies.
11982 (record_temporary_equivalence): Use method calls rather than
11983 manipulating const_and_copies directly.
11984 (record_equality, cprop_into_successor_phis): Similarly.
11985 (dom_opt_dom_walker::before_dom_children): Similarly.
11986 (dom_opt_dom_walker::after_dom_children): Similarly.
11987 (eliminate_redundant_computations): Similarly.
11988 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
11989 (record_temporary_equivalence): Likewise.
11990 (invalidate_equivalences): Likewise.
11991 (record_temporary_equivalences_from_phis): Update due to type
11992 change of const_and_copies. Use method calls rather than
11993 manipulating the stack directly.
11994 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
11995 (thread_through_normal_block, thread_across_edge): Likewise.
11996 (thread_across_edge): Likewise.
11997 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
11998 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
12000 (identify_jump_threads): Update due to type change of equiv_stack.
12001 (finalize_jump_threads): Delete the equiv_stack when complete.
12003 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
12005 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
12006 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
12007 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
12009 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
12012 * config.gcc: Exit with a comment when we do not have a major version
12013 number for the FreeBSD target.
12015 2015-04-17 Jakub Jelinek <jakub@redhat.com>
12018 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
12019 maybe_allows_mem bitfields.
12020 (maybe_allows_none_start, maybe_allows_none_end,
12021 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
12022 maybe_allows_mem_end): New variables.
12023 (compute_maybe_allows): New function.
12024 (add_constraint): Use it to initialize maybe_allows_reg and
12025 maybe_allows_mem fields.
12026 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
12027 is_address constraints such that those that allow neither mem nor
12028 reg come first, then those that only allow reg but not mem, then
12029 those that only allow mem but not reg, then the rest.
12030 (write_allows_reg_mem_function): New function.
12031 (write_tm_preds_h): Call it.
12032 * stmt.c (parse_output_constraint, parse_input_constraint): Use
12033 the generated insn_extra_constraint_allows_reg_mem function
12034 instead of always setting *allows_reg = true; *allows_mem = true;
12035 for unknown extra constraints.
12037 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
12040 * output.h (default_binds_local_p_3): New.
12041 * varasm.c (default_binds_local_p_3): Make it public. Take an
12042 argument to indicate if common symbol may be local. If common
12043 symbol may be local, treat non-external variable as defined
12045 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
12046 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
12047 * config/i386/i386.c (ix86_binds_local_p): New.
12048 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
12049 ix86_binds_local_p.
12051 2015-04-17 Jakub Jelinek <jakub@redhat.com>
12054 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
12055 trying mem_loc_descriptor on XEXP (rtl, 0).
12057 2015-04-17 Martin Liska <mliska@suse.cz>
12059 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
12060 Release symbol_compare_collection.
12061 * ipa-reference.c: Add TODO that a vector should be released.
12063 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
12066 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
12067 to new AVR-LibC file layout (bug #44574).
12068 (*avrlibc_devicelib): Same.
12069 * config/avr/avr-mcus.def: Adjust comments.
12070 * config/avr/avr.opt (nodevicelib): Adjust help.
12072 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
12074 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
12076 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
12079 * gimplify.c (gimplify_init_constructor): Always emit a
12080 side-effecting constructor.
12082 2015-04-17 Tom de Vries <tom@codesourcery.com>
12084 PR tree-optimization/64950
12085 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
12086 in cfun->curr_properties.
12087 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
12088 if we generate an IFN_VA_ARG.
12089 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
12090 function if PROP_gimple_lva is not set in src function.
12092 2015-04-17 Tom de Vries <tom@codesourcery.com>
12093 Michael Matz <matz@suse.de>
12095 PR tree-optimization/64950
12096 * gimple-iterator.c (update_modified_stmts): Remove static.
12097 * gimple-iterator.h (update_modified_stmts): Declare.
12098 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
12099 (gimplify_va_arg_internal): New function.
12100 (gimplify_va_arg_expr): Use IFN_VA_ARG.
12101 * gimplify.h (gimplify_va_arg_internal): Declare.
12102 * internal-fn.c (expand_VA_ARG): New unreachable function.
12103 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
12104 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
12105 (expand_ifn_va_arg): New function.
12106 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
12107 (pass_stdarg::execute): Call expand_ifn_va_arg.
12108 (pass_data_lower_vaarg): New pass_data.
12109 (pass_lower_vaarg): New gimple_opt_pass.
12110 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
12111 (make_pass_lower_vaarg): New function.
12112 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
12113 properties_required field.
12114 * passes.def (all_passes): Add pass_lower_vaarg.
12115 * tree-pass.h (PROP_gimple_lva): Add define.
12116 (make_pass_lower_vaarg): Declare.
12118 2015-04-17 Tom de Vries <tom@codesourcery.com>
12120 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
12121 * calls.c (call_expr_flags): Same.
12123 2015-04-17 Tom de Vries <tom@codesourcery.com>
12125 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
12126 (pass_stdarg::execute): ... here.
12128 2015-04-17 Tom de Vries <tom@codesourcery.com>
12129 Michael Matz <matz@suse.de>
12131 * tree-cfg.c (make_blocks_1): Factor out of ...
12132 (make_blocks): ... here.
12133 (make_edges_bb): Factor out of ...
12134 (make_edges): ... here.
12135 (gimple_find_sub_bbs): New function.
12136 * tree-cfg.h (gimple_find_sub_bbs): Declare.
12138 2015-04-17 Tom de Vries <tom@codesourcery.com>
12140 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
12142 2015-04-17 Yury Gribov <y.gribov@samsung.com>
12144 * asan.c (set_sanitized_sections): New function.
12145 (section_sanitized_p): Ditto.
12146 (asan_protect_global): Optionally sanitize user-defined
12148 * asan.h (set_sanitized_sections): Declare new function.
12149 * common.opt (fsanitize-sections): New option.
12150 * doc/invoke.texi (-fsanitize-sections): Document new option.
12151 * opts-global.c (handle_common_deferred_options): Handle new
12154 2015-04-17 Jakub Jelinek <jakub@redhat.com>
12157 * dwarf2out.c (loc_list_from_tree): Return NULL
12158 for DEBUG_EXPR_DECL.
12160 2015-04-17 Christian Bruel <christian.bruel@st.com>
12162 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
12165 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
12167 * ira-color.c (setup_left_conflict_sizes_p): Do not process
12168 node itself when computing left conflict subnode size.
12170 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
12172 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
12173 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
12174 *fop_<mode>_1_sse using enabled attribute. Use
12175 register_mixssei387nonimm_operand operand 1 predicate. Change
12176 alternative 3 constraints from "x" to "v".
12178 2015-04-16 Richard Biener <rguenther@suse.de>
12180 PR tree-optimization/65774
12181 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
12182 bit-value tracking on.
12184 2015-04-16 Richard Biener <rguenther@suse.de>
12186 PR tree-optimization/64277
12187 * tree-vrp.c (check_array_ref): Fix anti-range handling,
12188 simplify upper bound handling.
12189 (search_for_addr_array): Simplify.
12190 (check_array_bounds): Handle ADDR_EXPRs here.
12191 (check_all_array_refs): Simplify.
12193 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
12195 * config/i386/i386.c (print_reg): Rewrite function.
12197 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12199 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
12200 Invert the condition.
12202 2015-04-16 Renlin Li <renlin.li@arm.com>
12204 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
12205 simplifications for UNSIGNED_FLOAT.
12207 2015-04-16 Nick Clifton <nickc@redhat.com>
12209 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
12211 (enum rl78_cpu_type): New.
12212 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
12213 (umulhi3_shift_virt): Remove m constraint from operand 1.
12214 (umulqihi3_virt): Likewise.
12215 * config/rl78/rl78.c (rl78_option_override): Add code to process
12216 -mcpu and -mmul options.
12217 (rl78_alloc_physical_registers): Add code to handle divhi and
12218 divsi valloc attributes.
12219 (set_origin): Likewise.
12220 * config/rl78/rl78.h (RL78_MUL_G14): Define.
12221 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
12222 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
12224 (ASM_SPEC): Pass -mcpu on to assembler.
12225 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
12226 (mulqi3_rl78): Likewise.
12227 (mulhi3_g13): Likewise.
12228 (mulhi3): Generate the G13 or G14 versions of the insn directly.
12229 (mulsi3): Likewise.
12230 (mulhi3_g14): Add clobbers of AX and BC.
12231 (mulsi3_g14): Likewise.
12232 (mulsi3_g13): Likewise.
12233 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
12234 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
12235 * config/rl78/rl78.opt (mmul): Initialise value to
12237 (mcpu): New option.
12238 (m13, m14, mrl78): New option aliases.
12239 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
12240 (MULTILIB_DIRNAMES): Add g13 and g14.
12241 * doc/invoke.texi: Document -mcpu and -mmul options.
12243 2015-04-16 Richard Biener <rguenther@suse.de>
12245 * tree-ssa-ccp.c (likely_value): See if we have operands that
12246 are marked as never simulate again and return CONSTANT in this
12248 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
12249 not have any operands that will be simulated again as
12250 not being simulated again.
12252 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
12254 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
12255 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
12256 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
12258 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
12260 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
12261 *float<SWI48:mode><MODEF:mode>2_sse.
12262 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
12264 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
12267 2015-04-15 Tom de Vries <tom@codesourcery.com>
12270 * function.c (push_dummy_function): New function.
12271 (init_dummy_function_start): Use push_dummy_function.
12272 (pop_dummy_function): New function. Factored out of ...
12273 (expand_dummy_function_end): ... here.
12274 * function.h (push_dummy_function, pop_dummy_function): Declare.
12275 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
12276 pop_dummy_function.
12277 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
12279 2015-04-15 Jeff Law <law@redhat.com>
12281 PR tree-optimization/47679
12282 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
12283 need for forward declaration in upcoming changes.
12284 (record_conditions, record_edge_info): Likewise.
12286 PR rtl-optimization/42522
12287 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
12288 SIGN_EXTRACT as a whole object rather than simplifying
12291 2015-04-15 Jakub Jelinek <jakub@redhat.com>
12294 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
12295 and GIMPLE_PREDICT use break instead of return true. For
12296 GIMPLE_EH_DISPATCH, compare dispatch region.
12298 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
12300 * doc/extend.texi (__sync Builtins): Simplify some text. Update
12301 details about the implementation. Make clear preference for
12302 __atomic builtins. Reduce possibility of future change.
12304 2015-04-15 Nick Clifton <nickc@redhat.com>
12306 * config/rx/rx.opt (mallow-string-insns): New option.
12307 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
12308 builtin if string instructions are denied.
12309 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
12310 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
12312 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
12313 * config/rx/rx.md (movstr): Enable pattern only if string
12314 instructions are allowed.
12315 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
12316 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
12317 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
12318 (MULTILIB_DIRNAMES): Add no-strings.
12319 * doc/invoke.texi: Document -mno-allow-string-insns.
12321 2015-04-15 Alan Modra <amodra@gmail.com>
12325 PR middle-end/36043
12326 * calls.c (load_register_parameters): Don't load past end of
12327 mem unless suitably aligned.
12329 2015-04-15 Nick Clifton <nickc@redhat.com>
12331 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
12332 decrement instruction as being frame related.
12333 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
12335 If zero extending a function address enclose the operation in
12337 (rl78_preferred_reload_class): New function.
12338 (TARGET_PREFERRED_RELOAD_CLASS): Define.
12339 * config/rl78/rl78.md: Remove useless constraints in expanders.
12340 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
12341 (mulhi3_rl78): Likewise.
12342 (mulhi3_g13): Likewise.
12343 (mulsi3_rl78): Likewise.
12344 (es_addr): Move to before the multiply patterns.
12346 2015-04-15 Alan Modra <amodra@gmail.com>
12348 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
12349 and sequence_stack. Add seq.
12350 (seq_stack): Delete.
12351 * function.c (prepare_function_start): Don't access x_last_insn.
12352 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
12353 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
12354 * emit_rtl.c (start_sequence, push_topmost_sequence,
12355 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
12356 sequence accessors.
12357 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
12358 remove_insn): Likewise. Simplify.
12359 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
12360 and pop_topmost_sequence.
12361 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
12363 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
12365 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
12368 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
12371 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
12373 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
12374 (LEGACY_INT_REGNO_P): Ditto.
12375 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
12376 (ANY_MASK_REG_P): Remove.
12377 (BND_REG_P): Rename from ANY_BND_REG_P.
12378 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
12379 legacy integer registers. Do not handle MMX_REG_P in a special way.
12380 Merge 64byte and 32byte SSE handling.
12382 2015-04-14 Nick Clifton <nickc@redhat.com>
12384 * expr.c (expand_assignment): Force an address offset computation
12385 into a register before changing its mode.
12386 (expand_expr_real_1): Likewise.
12388 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
12390 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
12391 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
12392 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
12393 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
12394 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
12395 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
12396 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
12397 and __aarch64_vget_lane_any.
12399 2015-04-14 Jakub Jelinek <jakub@redhat.com>
12401 PR rtl-optimization/65761
12402 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
12403 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
12405 2015-04-14 Richard Biener <rguenther@suse.de>
12407 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
12408 (graphite_can_represent_scev): Use POINTER_TYPE_P.
12410 2015-04-14 Richard Biener <rguenther@suse.de>
12412 PR tree-optimization/65758
12413 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
12415 (ccp_lattice_meet): Likewise.
12416 (bit_value_unop): Likewise.
12417 (bit_value_binop): Likewise.
12418 (bit_value_assume_aligned): Likewise.
12420 2015-04-14 Christian Bruel <christian.bruel@st.com>
12422 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
12425 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
12427 PR tree-optimization/63387
12428 * match.pd ((x unord x) | (y unord y) -> (x unord y),
12429 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
12431 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
12433 * config/i386/predicates.md (any_QIreg_operand): Rename from
12434 q_regs_operand. Do not process subregs.
12435 (QIreg_operand): Use QI_REGNO_P predicate.
12436 (ext_QIreg_operand): Ditto.
12437 (ext_register_operand): Ditto.
12438 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
12439 (AND splitters): Ditto.
12440 (AND with -65536 splitter): Add SWI48 mode for operand 0.
12441 (AND with -256 splitter): Use any_QIreg_operand predicate and
12442 SWI248 mode for operand 0.
12443 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
12444 mode for operand 0.
12445 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
12447 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
12449 * doc/plugins.texi: Rewrite first introductory paragraph.
12451 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
12453 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
12454 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
12456 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
12458 * ipa-profie.c (ipa_profile): Check number of parameters
12459 and possible polymorphic call targets before
12462 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
12464 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
12465 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
12467 2015-04-13 Richard Biener <rguenther@suse.de>
12469 PR tree-optimization/65204
12470 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
12471 takens for bit-CCP.
12473 2015-04-13 Richard Biener <rguenther@suse.de>
12476 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
12477 and cond_not_taken_branch_cost to 4 and 2.
12478 (bdver2_cost): Likewise.
12479 (bdver3_cost): Likewise.
12480 (bdver4_cost): Likewise.
12482 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
12484 * hash-table.h (hash_table constructor): Add mem stats.
12485 (alloc_entries): Likewise.
12487 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
12489 * ipa-cp.c (ipcp_driver): Relase prev_edge.
12490 * passes.c (execute_one_pass): Only add transform if pass has one.
12492 2015-04-12 Joseph Myers <joseph@codesourcery.com>
12494 * config/i386/i386.c (ix86_option_override_internal): Don't set
12495 -fprefetch-loop-arrays if optimizing for size.
12497 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
12498 Gerald Pfeifer <gerald@pfeifer.com>
12500 * doc/contrib.texi (Contributors): Add Martin Jambor and
12503 2015-04-12 Jakub Jelinek <jakub@redhat.com>
12505 * BASE-VER: Set to 6.0.0.
12507 PR tree-optimization/65747
12508 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
12509 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
12511 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
12513 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
12514 sentence. Improve grammar.
12516 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
12518 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
12520 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
12523 * ipa-inline-transform.c (speculation_removed): Remove static var.
12524 (check_speculations): New function.
12525 (clone_inlined_nodes): Do not check spculations.
12526 (inline_call): Call check_speculations.
12527 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
12528 consider non-invariants.
12530 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
12531 Martin Liska <mliska@suse.cz>
12534 * ipa-icf.c (sem_item::compare_cgraph_references): function and
12535 variable can not match.
12536 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
12537 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
12539 2015-04-11 Jakub Jelinek <jakub@redhat.com>
12541 PR tree-optimization/65735
12542 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
12543 Remove visited_phis argument, add visited_bbs, avoid recursing into the
12544 same bb rather than just into the same phi node.
12545 (thread_through_normal_block): Adjust caller.
12547 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
12549 * doc/contrib.texi (Contributors): Add Ira Rosen.
12551 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
12553 * gcov.c (find_source): Fix miswording in error message.
12554 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
12555 (ix86_expand_sse_comi_round): Fix typo in error message.
12557 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
12559 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
12561 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
12563 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
12565 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
12568 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
12569 Print bad_spills_num and insn_pseudos_num.
12571 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12574 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
12575 when creating +1 values for SImode.
12577 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
12580 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
12583 2015-04-10 Jakub Jelinek <jakub@redhat.com>
12584 Iain Sandoe <iain@codesourcery.com>
12587 * configure: Regenerate.
12589 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
12592 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
12594 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
12596 * doc/contrib.texi (Contributors): Add John Marino.
12598 2015-04-09 Jakub Jelinek <jakub@redhat.com>
12600 PR tree-optimization/65709
12601 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
12602 TREE_TYPE (TREE_TYPE (t)).
12604 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
12607 * lra-int.h (lra_bad_spill_regno_start): New.
12608 * lra.c (lra_bad_spill_regno_start): New.
12609 (lra): Set up lra_bad_spill_regno_start. Set up
12610 lra_constraint_new_regno_start unconditionally.
12611 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
12614 2015-04-09 Marek Polacek <polacek@redhat.com>
12615 Jakub Jelinek <jakub@redhat.com>
12617 PR middle-end/65554
12618 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
12619 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
12622 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
12624 PR rtl-optimization/65693
12625 * combine.c (is_parallel_of_n_reg_sets): Move outside of
12628 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
12631 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
12632 device specs file if "device-specs%s" didn't resolve to a path.
12634 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
12637 * config/i386/i386.c (fixup_modeless_constant): New.
12638 (ix86_expand_args_builtin): Fixup modeless constant operand.
12639 (ix86_expand_round_builtin): Ditto.
12640 (ix86_expand_special_args_builtin): Ditto.
12641 (ix86_expand_builtin): Ditto.
12643 2015-04-09 Jakub Jelinek <jakub@redhat.com>
12646 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
12647 any pow2 integer in between 2 and 0x80000000U inclusive.
12649 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
12651 PR rtl-optimization/65693
12652 * combine.c (is_parallel_of_n_reg_sets): Change first argument
12653 from an rtx_insn * to an rtx.
12654 (try_combine): Adjust both callers. Use it once more.
12656 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
12658 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
12659 (chkp_make_static_const_bounds): Search existing
12660 symbol by assembler name. Use make_decl_one_only.
12661 (chkp_get_zero_bounds_var): Remove node search which
12662 is now performed in chkp_make_static_const_bounds.
12663 (chkp_get_none_bounds_var): Likewise.
12665 2015-04-08 Michael Witten <mfwitten@gmail.com>
12667 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
12670 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12672 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
12674 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
12676 * doc/extend.texi (__sync Builtins): Fix grammar.
12678 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12680 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
12682 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12684 * varasm.c (emit_local): Move definition of align.
12686 2015-04-08 Julian Brown <julian@codesourcery.com>
12688 * config/nvptx/mkoffload.c (process): Support variable mapping.
12690 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
12692 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
12694 (alpha_write_one_linkage): Correct typo.
12696 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
12698 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
12700 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
12702 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
12704 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
12706 * tree-chkp.h (chkp_insert_retbnd_call): New.
12707 * tree-chkp.c (chkp_insert_retbnd_call): New.
12708 * ipa-split.c (insert_bndret_call_after): Remove.
12709 (split_function): Use chkp_insert_retbnd_call.
12710 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
12711 bounds for instrumented functions.
12713 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
12716 * calls.c (initialize_argument_information): When producing tail
12717 call also turn SSA_NAMES passed by references to original PARM_DECLs
12719 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
12722 * lra-remat.c (do_remat): Process input and non-input insn
12723 registers separately.
12725 2015-04-07 Jakub Jelinek <jakub@redhat.com>
12728 * valtrack.c (debug_lowpart_subreg): New function.
12729 (dead_debug_insert_temp): Use it.
12731 PR middle-end/65680
12732 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
12733 into signed HOST_WIDE_INT the same as negative bit_offset.
12735 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
12737 * ipa-comdats.c (ipa_comdats): Visit all thunks
12738 to set proper comdat group.
12740 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12743 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
12744 on constants for NEON VSTRUCT modes.
12746 2015-04-07 Jakub Jelinek <jakub@redhat.com>
12747 Iain Sandoe <iain@codesourcery.com>
12750 * configure: Regenerate.
12752 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12755 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
12756 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
12757 that LFD is used to load double constants instead of LFS. Add
12758 defaults for all costs structures. Add comments for missing
12759 initialization fields.
12760 (size32_cost): Likewise.
12761 (size64_cost): Likewise.
12762 (rs64a_cost): Likewise.
12763 (mpccore_cost): Likewise.
12764 (ppc403_cost): Likewise.
12765 (ppc405_cost): Likewise.
12766 (ppc440_cost): Likewise.
12767 (ppc476_cost): Likewise.
12768 (ppc601_cost): Likewise.
12769 (ppc603_cost): Likewise.
12770 (ppc604_cost): Likewise.
12771 (ppc604e_cost): Likewise.
12772 (ppc620_cost): Likewise.
12773 (ppc630_cost): Likewise.
12774 (ppccell_cost): Likewise.
12775 (ppc750_cost): Likewise.
12776 (ppc7450_cost): Likewise.
12777 (ppc8540_cost): Likewise.
12778 (ppce300c2c3_cost): Likewise.
12779 (ppce500mc_cost): Likewise.
12780 (ppce500mc64_cost): Likewise.
12781 (ppce5500_cost): Likewise.
12782 (ppce6500_cost): Likewise.
12783 (titan_cost): Likewise.
12784 (power4_cost): Likewise.
12785 (power6_cost): Likewise.
12786 (power7_cost): Likewise.
12787 (power8_cost): Likewise.
12788 (ppca2_cost): Likewise.
12789 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
12791 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
12792 instead of XXLOR to copy SFmode to clear out dirty bits created
12793 when SFmode denormals are generated.
12794 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
12795 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
12797 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
12799 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
12800 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
12801 * config/aarch64/aarch64-tune.md: Regenerate.
12803 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
12805 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
12806 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
12807 * config/arm/arm-cores.def (exynos-m1): New core.
12808 * config/arm/arm-tune.md: Regenerate.
12809 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
12810 * config/arm/bpabi.h: Likewise.
12812 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
12814 * ipa-cp (set_single_call_flag): Remove too
12815 restrictive assert.
12817 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
12819 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
12820 GOMP_offload_unregister from the destructor.
12822 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
12824 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
12825 flags for instrumentation thunk.
12826 (chkp_produce_thunks): Likewise.
12828 2015-04-05 Martin Liska <mliska@suse.cz>
12831 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
12832 has computed data structure.
12833 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
12835 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
12837 * invoke.texi (inline-unit-growth): Increase growth to 20%
12838 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
12840 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
12843 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
12845 (lra_rematerialization_iter): New.
12846 * lra.c (lra): Initialize lra_rematerialization_iter.
12847 Stop updating lra_constraint_new_regno_start after switching of
12848 inheritance and rematerialization.
12849 * lra-remat.c (lra_rematerialization_iter): New.
12850 (lra_remat): Add printing pass iteration. Do rematerialization
12851 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
12853 2015-04-04 Richard Biener <rguenther@suse.de>
12855 PR tree-optimization/64909
12856 PR tree-optimization/65660
12857 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
12858 to take a cost vector for scalar iteration cost.
12859 (vect_get_single_scalar_iteration_cost): Likewise.
12860 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
12861 Compute the scalar iteration cost into a cost vector.
12862 (vect_get_known_peeling_cost): Use the scalar cost vector to
12863 account for the cost of the peeled iterations.
12864 (vect_estimate_min_profitable_iters): Likewise.
12865 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
12868 2015-04-04 Alan Modra <amodra@gmail.com>
12872 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
12873 0.0 constant unless TARGET_VSX.
12874 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
12877 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
12880 * ipa-inline-transform.c (inline_call): Skip sanity check to work
12883 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
12886 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
12887 speculative indirect edges to avoid ordering issue.
12889 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
12892 * ipa-inline.c (edge_badness): Add combined size to the denominator.
12894 2015-04-03 Jakub Jelinek <jakub@redhat.com>
12896 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
12897 TYPE_ARTIFICIAL on the .omp_data* types.
12899 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
12901 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
12902 instrumentation thunks.
12904 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
12906 * config/i386/i386.c (ix86_expand_call): Avoid nested
12907 PARALLEL in returned call value.
12909 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
12911 * lto-cgraph.c (input_cgraph_1): Always link instrumented
12912 assembler name with original one.
12914 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
12916 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
12918 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
12920 Revert parts of r216820.
12921 * config/i386/i386.md (movqi_internal): Correct type calculation
12922 for alternatives 3 and 5.
12924 2015-04-02 Jakub Jelinek <jakub@redhat.com>
12926 PR preprocessor/61977
12927 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
12928 predefine __vector/__bool/__pixel macros nor context sensitive
12929 macros for CLK_ASM.
12930 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
12932 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
12934 * config/pa/pa.c (pa_output_move_double): Directly handle register
12935 indexed memory operand. Simplify handling of scaled register indexed
12938 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
12941 * config/i386/linux-common.h (MPX_SPEC): New.
12942 (CHKP_SPEC): Add MPX_SPEC.
12943 * doc/invoke.texi (-fcheck-pointer-boudns): Document
12944 possible issues with '-z bndplt' support in linker.
12946 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
12948 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
12949 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
12950 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
12951 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
12952 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
12954 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
12956 * config/i386/sync.md (UNSPEC_MOVA): Remove.
12957 (atomic_load<mode>): Change operand 0 predicate to
12958 nonimmediate_operand and fix up the destination when needed.
12960 (atomic_loaddi_fpu): Use UNSPEC_LDA.
12961 (atomic_store<mode>): Change operand 1 predicate to
12962 nonimmendate_operand and move the source to register when needed.
12964 (atomic_store<mode>_1): Use UNSPEC_STA.
12965 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
12966 Fix moves from memory operand. Use UNSPEC_STA.
12968 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
12970 * expmed.c (strict_volatile_bitfield_p): Check that the access will
12971 not cross a MODESIZE boundary.
12972 (store_bit_field, extract_bit_field): Added assertions in the
12973 strict volatile bitfields code path.
12975 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
12978 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
12979 Increase args array size by one to avoid buffer overflow.
12981 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
12983 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
12985 * ipa-inline.c (edge_badness): Add wrapper penalty.
12986 (sum_callers): Move up.
12987 (inline_small_functions): Set single_caller.
12988 * ipa-inline.h (inline_summary): Add single_caller.
12989 * ipa-split.c (split_function): Set split_part.
12990 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
12991 * cgraph.h (cgraph_node): Add split_part.
12993 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
12996 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
12997 Do not split operands 0 and operands 2 to halfmode.
12998 (atomic_compare_and_swap<mode>): Update for
12999 atomic_compare_and_swap<dwi>_doubleword changes.
13001 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
13003 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
13004 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
13005 no caching is done.
13007 2015-03-31 Martin Liska <mliska@suse.cz>
13010 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
13011 has already filled up function summary.
13012 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
13014 2015-03-31 Richard Biener <rguenther@suse.de>
13016 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
13019 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
13021 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
13023 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
13024 (s390_asm_output_function_label): Adapt to new signature of
13025 s390_function_num_hotpatch_hw
13026 Optimise the code generating assembler output.
13027 Add comments to assembler file.
13029 2015-03-31 Richard Biener <rguenther@suse.de>
13031 PR middle-end/65626
13032 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
13033 of the noreturn call so it is last and cleanup_control_flow_bb
13034 can do the CFG part.
13036 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
13039 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
13040 same_comdat_group for external symbols.
13041 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
13042 infinite same_comdat_group traversal loop.
13044 2015-03-31 Jakub Jelinek <jakub@redhat.com>
13047 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
13048 automatically to $headers.
13050 2015-03-30 Jakub Jelinek <jakub@redhat.com>
13053 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
13054 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
13056 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
13058 * ipa-prop.c (param_type_may_change_p): Likewise.
13059 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
13060 (remove_unused_scope_block_p): Add in_ctor_dtor_block
13061 argument. Before inlining, preserve
13062 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
13063 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
13065 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
13067 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
13070 * ipa-inline.c (edge_badness): Base denominator on callee's
13073 2015-03-27 Martin Jambor <mjambor@suse.cz>
13076 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
13077 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
13078 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
13079 node_calling_single_call.
13080 * ipa-cp.c (count_callers): New function.
13081 (set_single_call_flag): Likewise.
13082 (initialize_node_lattices): Count callers and set single_flag_call if
13084 (incorporate_penalties): New function.
13085 (good_cloning_opportunity_p): Use it, dump new flags.
13086 (propagate_constants_topo): Set node_within_scc flag if appropriate.
13087 * doc/invoke.texi (ipa-cp-recursion-penalty,
13088 ipa-cp-single-call-pentalty): Document.
13090 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
13093 * symtab.c (symtab_node::get_partitioning_class): Register vars
13095 * varpool.c (symbol_table::output_variables) Do not assemble unefined
13096 decls for non-symbols.
13098 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
13101 * output.h (default_binds_local_p_2): New.
13102 * varasm.c (default_binds_local_p_2): Renamed to ...
13103 (default_binds_local_p_3): This. Don't return true on protected
13104 data symbol if protected data may be external.
13105 (default_binds_local_p): Use default_binds_local_p_3.
13106 (default_binds_local_p_1): Likewise.
13107 (default_binds_local_p_2): New.
13108 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
13109 default_binds_local_p_2 if TARGET_MACHO is undefined.
13111 2015-03-27 Jakub Jelinek <jakub@redhat.com>
13114 * config/i386/i386.c (legitimize_pic_address): If base
13115 is SYMBOL_REF or LABEL_REF using %rip addressing, force
13116 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
13118 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
13121 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
13124 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
13127 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
13128 of optimized out indirect call.
13129 (redirect_to_unreachable): Always build symbol table node for
13130 BUILT_IN_UNREACHABLE
13132 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
13135 * ira-costs.c (record_reg_classes): Process all constraint string
13138 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
13140 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
13144 * config/c6x/constraints.md (S3): New constraint.
13145 * config/c6x/c6x.md (real_jump): Use it.
13147 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13149 PR middle-end/65595
13150 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
13151 do redirection if the call is not optimized out.
13153 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
13156 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
13157 (fchkp-check-incomplete-type): Add LTO.
13158 (fchkp-zero-input-bounds-for-main): Likewise.
13159 (fchkp-first-field-has-own-bounds): Likewise.
13160 (fchkp-narrow-bounds): Likewise.
13161 (fchkp-narrow-to-innermost-array): Likewise.
13162 (fchkp-use-static-bounds): Likewise.
13163 (fchkp-use-static-const-bounds): Likewise.
13164 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
13166 2015-03-27 Marek Polacek <polacek@redhat.com>
13168 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
13170 2015-03-27 Marek Polacek <polacek@redhat.com>
13173 * ubsan.c (ubsan_create_edge): New function.
13174 (instrument_bool_enum_load): Call it.
13175 (instrument_nonnull_arg): Likewise.
13176 (instrument_nonnull_return): Likewise.
13177 (instrument_object_size): Likewise.
13179 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13181 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
13184 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13187 * lto-streamer.h (class lto_location_cache): New.
13188 (struct data_in): Add location_cache.
13189 (lto_input_location): Update prototype.
13190 (stream_input_location_now): New.
13191 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
13192 pointer to location.
13193 (stream_input_location): Update.
13194 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
13195 (warn_odr): Apply location cache before warning.
13196 (lto_input_location): Update prototype.
13197 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
13198 Use stream_input_location_now.
13199 * lto-streamer-in.c (lto_location_cache::current_cache): New static
13201 (lto_location_cache::cmp_loc): New function.
13202 (lto_location_cache::apply_location_cache): New function.
13203 (lto_location_cache::accept_location_cache): New function.
13204 (lto_location_cache::revert_location_cache): New function.
13205 (lto_location_cache::input_location): New function.
13206 (lto_input_location): Do location caching.
13207 (stream_input_location_now): New function.
13208 (input_eh_region, input_struct_function_base): Use
13209 stream_input_location_now.
13210 (lto_data_in_create): use new.
13211 (lto_data_in_delete): Use delete.
13212 * tree-streamer-in.c (unpack_ts_block_value_fields,
13213 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
13214 lto_input_ts_exp_tree_pointers): Update for cached location api.
13216 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13219 * passes.def: Add pass_nothrow.
13220 * ipa-pure-const.c: (pass_data_nothrow): New.
13221 (pass_nothrow): New.
13222 (pass_nothrow::execute): New.
13223 (make_pass_nothrow): New.
13224 * tree-pass.h (make_pass_nothrow): Declare.
13226 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13228 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
13229 edge to change by speculation resolution or redirection.
13230 (edge_set_predicate): Likewise.
13231 (inline_summary_t::duplicate): Likewise.
13232 (remap_edge_summaries): Likewise.
13234 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13236 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
13238 (can_inline_edge_p): Relax option matching for always inline functions.
13240 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
13243 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
13244 Check operand 4 and operand 0 for equality.
13245 (avx512f_vextract<shuffletype>32x4_1_maskm):
13246 Check operand 6 and operand 0 for equality.
13247 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
13249 (vec_extract_hi_<mode>_maskm): Ditto.
13251 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13253 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
13254 dead calls back to live.
13255 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
13257 (cgraph_node::verify_node): ... here; verify only callee edges,
13259 * cif-code.def (CILK_SPAWN): New code.
13261 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
13263 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
13264 (edge_set_predicate): Use it to mark unreachable edges.
13265 (inline_summary_t::duplicate): Remove unnecesary code.
13266 (remap_edge_summaries): Likewise.
13267 (dump_inline_summary): Report contains_cilk_spawn.
13268 (compute_inline_parameters): Compute contains_cilk_spawn.
13269 (inline_read_section, inline_write_summary): Stream
13270 contains_cilk_spawn.
13271 * ipa-inline.c (can_inline_edge_p): Do not touch
13272 DECL_STRUCT_FUNCTION that may not be available;
13273 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
13274 remove check for callee_fun->can_throw_non_call_exceptions and
13275 replace it by optimization attribute check; check for flag_exceptions.
13276 * ipa-inline-transform.c (inline_call): Maintain
13277 DECL_FUNCTION_PERSONALITY
13278 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
13280 2015-03-26 Jakub Jelinek <jakub@redhat.com>
13282 PR tree-optimization/65551
13283 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
13284 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
13286 2015-03-26 Richard Biener <rguenther@suse.de>
13288 PR middle-end/65555
13289 * tree-cfg.c (verify_gimple_call): Do not require a call to
13290 have no LHS if it wasn't recognized as control altering yet.
13292 2015-03-26 Jakub Jelinek <jakub@redhat.com>
13294 PR tree-optimization/64715
13295 * passes.def: Add another instance of pass_object_sizes before ccp1.
13296 * tree-object-size.c (pass_object_sizes::execute): In
13297 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
13298 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
13299 __bos result and the computed constant. Remove redundant
13300 checks, obsoleted by gimple_call_builtin_p test.
13302 * var-tracking.c (variable_tracking_main_1): Don't track
13303 variables for targetm.no_register_allocation targets.
13305 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
13307 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
13308 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
13310 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
13313 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
13314 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
13315 0.0 is correctly setup.
13316 (extenddftf2_internal): Likewise.
13318 2015-03-25 Sebastian Pop <s.pop@samsung.com>
13320 PR tree-optimization/65177
13321 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
13323 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
13324 edges not adjacent on the path to the original code.
13326 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
13329 * doc/install.texi (Building a native compiler): Document new
13330 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
13331 configuration assumes that the host supports the linker plugin.
13333 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
13336 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
13337 chain for generated call.
13339 2015-03-25 Richard Biener <rguenther@suse.de>
13341 * passes.c (pass_manager::execute_early_local_passes): Guard
13342 execution of pass_chkp_instrumentation_passes with
13343 flag_check_pointer_bounds.
13344 (pass_chkp_instrumentation_passes::gate): Likewise.
13346 2015-03-25 Martin Liska <mliska@suse.cz>
13348 PR tree-optimization/65538
13349 * symbol-summary.h (function_summary::~function_summary):
13350 Relese memory for allocated summaries.
13351 (function_summary::release): New function.
13353 2015-03-25 Jakub Jelinek <jakub@redhat.com>
13356 * lto-streamer-out.c (DFS::worklist): New struct.
13357 (DFS::worklist_vec): New data member.
13358 (DFS::next_dfs_num): Remove.
13359 (DFS::DFS): Rewritten using worklist instead of recursion,
13360 using most of code from DFS::DFS_write_tree.
13361 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
13362 pass it to DFS_write_tree calls.
13363 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
13364 quick initial checks push it into worklist_vec and return.
13366 2015-03-25 Richard Biener <rguenther@suse.de>
13368 PR middle-end/65519
13369 * genmatch.c (expr::gen_transform): Re-write to avoid
13370 using gimple_build.
13372 2015-03-25 Bin Cheng <bin.cheng@arm.com>
13374 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
13376 2015-03-25 Bin Cheng <bin.cheng@arm.com>
13378 * config/arm/arm.opt (print_tune_info): New option.
13379 * config/arm/arm.c (arm_print_tune_info): New function.
13380 (arm_file_start): Call arm_print_tune_info.
13381 * config/arm/arm-protos.h (struct tune_params): Add comment.
13382 * doc/invoke.texi (@item -mprint-tune-info): New item.
13383 (-mtune): mention it in ARM Option Summary.
13385 2015-03-25 DJ Delorie <dj@redhat.com>
13387 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
13390 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
13391 Martin Liska <mliska@suse.cz>
13393 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
13394 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
13395 (sem_item::add_type): New function.
13396 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
13397 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
13398 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
13399 (sem_function::equals_wpa): Fix typo.
13400 * ipa-icf.h (sem_item::add_type): New function.
13401 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
13404 2015-03-24 Jakub Jelinek <jakub@redhat.com>
13406 PR tree-optimization/65533
13407 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
13408 with swapped operands, call vect_free_slp_tree on
13409 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
13412 2015-03-24 Richard Biener <rguenther@suse.de>
13414 PR middle-end/65517
13415 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
13416 for fixup if necessary.
13418 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
13420 * doc/extend.texi (Function Attributes): Add @cindex entries
13421 for all attributes and regularize their format. Delete text
13422 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
13423 information about "eightbit_data", "tiny_data", and "model"
13424 variable attributes to the Variable Attributes section. Fix
13425 some obvious typos and copy-editing issues.
13426 (Variable Attributes, Type Attributes): Likewise add/fix
13427 @cindex entries for all attributes.
13429 2015-03-23 Jakub Jelinek <jakub@redhat.com>
13432 * tree-chkp.c (chkp_build_returned_bound): Ignore
13433 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
13435 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
13438 * config/sh/predicates.md (simple_mem_operand,
13439 displacement_mem_operand): Add test for reg.
13440 (short_displacement_mem_operand): Test for displacement_mem_operand
13441 before invoking sh_disp_addr_displacement.
13442 * config/sh/constraints.md (Sdd, Sra): Simplify.
13443 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
13444 Remove redundant displacement_mem_operand tests.
13446 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
13449 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
13450 the same -mmcu=MCU more than once.
13452 2015-03-23 Jakub Jelinek <jakub@redhat.com>
13455 * ipa-devirt.c: Remove duplicate demangle.h include.
13458 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
13460 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
13461 REG_POINTER on *destptr after adjusting it for prologue size.
13464 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
13465 ultimate_alias_target ()->order ints instead of
13466 ultimate_alias_target () pointers.
13468 2015-03-23 Richard Biener <rguenther@suse.de>
13470 PR tree-optimization/65518
13471 * tree-vect-stmts.c (vectorizable_load): Reject single-element
13472 interleaving cases we generate absymal code for.
13474 2015-03-23 Richard Biener <rguenther@suse.de>
13476 PR tree-optimization/65494
13477 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
13479 (vect_analyze_slp_instance): But do that here, always and once.
13481 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13483 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
13484 adding T or multiplying by T+1 and subracting T.
13486 2015-03-22 Jeff Law <law@redhat.com>
13488 PR rtl-optimization/64317
13489 * Makefile.in (OBJS): Add gcse-common.c
13490 * gcse.c: Include gcse-common.h
13491 (struct modify_pair_s): Move structure definition to gcse-common.h
13492 (compute_transp): Move function to gcse-common.c.
13493 (canon_list_insert): Similarly.
13494 (record_last_mem_set_info): Break out some code and put it into
13495 gcse-common.c. Call into the new common code.
13496 (compute_local_properties): Pass additional arguments to compute_transp.
13497 * postreload-gcse.c: Include gcse-common.h and df.h
13498 (modify_mem_list_set, blocks_with_calls): New variables.
13499 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
13500 (get_bb_avail_insn): Pass in the expression index too.
13501 (alloc_mem): Allocate memory for the new bitmaps and lists.
13502 (free_mem): Free memory for the new bitmaps and lists.
13503 (insert_expr_in_table): Record a bitmap index for each entry we
13505 (record_last_mem_set_info): Call into common code in gcse-common.c.
13506 (get_bb_avail_insn): If no available insn was found in the requested
13507 BB. If BB has a single predecessor, see if the expression is
13508 transparent in BB and available in that single predecessor.
13509 (compute_expr_transp): New wrapper for compute_transp.
13510 (eliminate_partially_redundant_load): Pass expression's bitmap_index
13511 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
13512 (gcse_after_reload_main): If there are elements in the hash table,
13513 then compute transparency for all the elements in the hash table.
13514 * gcse-common.h: New file.
13515 * gcse-common.c: New file.
13517 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
13519 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
13521 (System Headers): Likewise.
13523 (Traditional macros): Likewise.
13524 (Invocation): Likewise.
13525 (Option Index): Likewise.
13526 * doc/cppopts.texi (-M): Likewise.
13527 (-finput-charset): Likewise.
13528 (--help): Likewise.
13529 * doc.invoke.texi (AVR Options): Likewise.
13530 (V850 Options): Likewise.
13532 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
13535 * ipa-devirt.c: Include demangle.h
13536 (odr_type_d): Add field rtti_broken.
13537 (odr_subtypes_equivalent_p): Do not require name to match.
13538 (compare_virtual_tables): Fix typo; if type already has ODR violation,
13539 bypass the tests; be ready for function referneces in vtables that are
13540 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
13541 (warn_odr): Give up for nameless types.
13542 (warn_types_mismatch): Report mismatch in mangled names;
13543 report mismatch in anonymous namespaces; look into component types to
13544 give useful error; report when mismatch is dragged in from other ODR
13546 (odr_types_equivalent_p): Match types for being polymorphic; avoid
13547 duplicated diagnostics.
13548 (add_type_duplicate): Reorder checks so more informative ones come
13549 first; fix typo; do not output "the extra base is defined here" when
13551 (BINFO_N_BASE_BINFOS): Relax sanity check.
13553 2015-03-22 Martin Liska <mliska@suse.cz>
13554 Jakub Jelinek <jakub@redhat.com>
13556 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
13557 masks that can potentially include a builtin.
13558 (ix86_add_new_builtins): Introduce fast filter for isa values
13559 that cannot trigger builtin inclusion.
13561 2015-03-22 Martin Liska <mliska@suse.cz>
13563 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
13564 (sem_item::update_hash_by_local_refs): Likewise.
13565 (sem_variable::get_hash): Empty line is fixed.
13566 (sem_item_optimizer::execute): Include adding of hash references.
13567 (sem_item_optimizer::update_hash_by_addr_refs): New function.
13568 (sem_item_optimizer::build_hash_based_classes): Use local hash.
13569 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
13570 (sem_item::update_hash_by_local_refs): Likewise.
13572 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
13575 * ipa-comdats.c (enqueue_references): Walk through thunks.
13576 (ipa_comdats): Likewise.
13577 (set_comdat_group_1): New function.
13579 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
13582 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
13585 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
13586 Gerald Pfeifer <gerald@pfeifer.com>
13588 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
13590 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
13591 Sandra Loosemore <sandra@codesourcery.com>
13593 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
13594 function parameter declaration.
13595 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
13596 Update arguments to nios2_adjust_call_address().
13597 (sibcall_internal): Rename from *sibcall.
13598 (sibcall_value_internal): Rename from *sibcall_value.
13599 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
13600 (nios2_large_got_address): Add target temp reg parameter.
13601 (nios2_got_address): Adjust call to nios2_large_got_address, add
13602 force_reg around it.
13603 (nios2_load_pic_address): Add target temp reg parameter, replace call
13604 to nios2_got_address with corresponding code.
13605 (nios2_legitimize_constant_address): Update call to
13606 nios2_load_pic_address.
13607 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
13608 to use temp reg for PIC loading purposes.
13609 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
13610 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13611 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
13613 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
13615 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
13616 usage of "the @option{...}".
13617 (-Wopenmp-simd): Likewise.
13618 (-fsanitize-recover): Likewise.
13619 (-fsanitize-undefined-trap-on-error): Likewise.
13621 (tracer-dynamic-coverage-feedback): Likewise.
13622 (reorder-block-duplicate-feedback): Likewise.
13623 (loop-unroll-jam-size): Likewise.
13626 (-mabs=legacy): Likewise.
13627 (-mupper-regs-df): Likewise.
13628 (-mupper-regs-sf): Likewise.
13629 (-mpointers-to-nested-functions): Likewise.
13631 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
13633 * doc/extend.texi (Cilk Plus Builtins): Add markup.
13635 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
13637 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
13638 additional index entries and cross-references.
13639 (-fchkp-check-incomplete-type): Likewise.
13640 (-fchkp-first-field-has-own-bounds): Likewise.
13641 (-fchkp-narrow-to-innermost-array): Likewise.
13642 (-fchkp-use-fast-string-functions): Likewise.
13643 (-fchkp-use-nochk-string-functions): Likewise.
13644 (-fchkp-use-static-const-bounds): Likewise.
13645 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
13646 (-fchkp-instrument-marked-only): Likewise.
13647 (-fchkp-use-wrappers): Likewise.
13648 (-static-libmpx): Likewise.
13649 (-static-libmpxwrappers): Likewise.
13650 * doc/extend.texi (bnd_legacy): Likewise.
13651 (bnd_instrument): Likewise.
13652 (bnd_variable_size): Likewise.
13653 (Pointer Bounds Checker builtins): Likewise.
13655 2015-03-21 Tom de Vries <tom@codesourcery.com>
13657 PR tree-optimization/65458
13658 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
13659 * cgraph.h (cgraph_node): Add parallelized_function field.
13660 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
13661 (input_overwrite_node): Read parallelized_function field.
13662 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
13663 parallelized_function on cgraph_node for child_fn.
13664 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
13665 Remove include of gt-tree-parloops.h.
13666 (parallelized_functions): Remove static variable.
13667 (parallelized_function_p): Rewrite using parallelized_function field of
13669 (create_loop_fn): Remove adding to parallelized_functions.
13670 * Makefile.in (GTFILES): Remove tree-parloops.c
13672 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
13674 PR rtl-optimization/64366
13675 * lra.c (lra_update_insn_regno_info): Consider regs in
13676 CALL_INSN_FUNCTION_USAGE memory.
13678 2015-03-20 Richard Biener <rguenther@suse.de>
13680 PR middle-end/64715
13681 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
13682 for type comparison and gcc_checking_assert.
13683 (chrec_fold_plus_poly_poly): Likewise.
13684 (chrec_fold_multiply_poly_poly): Likewise.
13685 (chrec_convert_1): Likewise.
13686 * gimplify.c (gimplify_expr): Remove premature folding of
13687 &X + CST to &MEM[&X, CST].
13689 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
13691 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
13693 (ipa_inline): Recompute inline_failed codes.
13694 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
13695 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
13698 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
13700 PR rtl-optimization/60851
13701 * recog.c (constrain_operands): Accept a pseudo register before reload
13702 for LRA enabled targets.
13704 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
13707 * config/rs6000/predicates.md (easy_fp_constant): Remove special
13708 -ffast-math handling that kept non-0 constants live in the RTL
13709 until reload. Remove logic testing the number of instructions it
13710 took to create a constant in a GPR that was never used, due to a
13711 test for soft-float earlier.
13712 (memory_fp_constant): Delete, no longer used.
13714 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
13715 alternatives for loading non-0 constants into GPRs for hard
13716 floating point that is no longer needed due to changes in
13717 easy_fp_constant. Add support for loading 0.0 into GPRs.
13718 (mov<mode>_hardfloat32): Likewise.
13719 (mov<mode>_hardfloat64): Likewise.
13720 (mov<mode>_64bit_dm): Likewise.
13721 (movtd_64bit_nodm): Likewise.
13722 (pre-reload move FP constant define_split): Delete define_split,
13723 since it is no longer used.
13724 (extenddftf2_internal): Remove GHF constraints that are not valid
13727 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
13729 PR rtl-optimization/63491
13730 * lra-constraints.c (check_and_process_move): Use src instead of
13731 sreg. Remove some dead code.
13733 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
13736 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
13737 (sem_variable::merge): Likewise.
13739 2015-03-19 Martin Liska <mliska@suse.cz>
13742 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
13743 all fields of cgraph_thunk_info.
13745 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
13747 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
13748 clone instrumented thunks.
13750 2015-03-19 Richard Biener <rguenther@suse.de>
13753 2015-03-10 Richard Biener <rguenther@suse.de>
13755 PR middle-end/63155
13756 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
13757 * tree-ssa-coalesce.c: Include timevar.h.
13758 (attempt_coalesce): Handle graph being NULL.
13759 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
13760 Split out abnormal coalescing to ...
13761 (perform_abnormal_coalescing): ... this function.
13762 (coalesce_ssa_name): Perform abnormal coalescing without computing
13764 (verify_ssa_coalescing_worker): New function.
13765 (verify_ssa_coalescing): Likewise.
13767 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13768 Jakub Jelinek <jakub@redhat.com>
13771 * tsan.c (instrument_gimple): Clear tail call flag on
13774 2015-03-19 Jakub Jelinek <jakub@redhat.com>
13777 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
13778 call in the return bb.
13779 (find_split_points): Add RETURN_BB argument, don't call
13781 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
13782 if true append TSAN_FUNC_EXIT internal call after the call to
13783 the split off function.
13784 (execute_split_functions): Call find_return_bb here.
13785 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
13786 Adjust find_split_points and split_function calls.
13788 2015-03-18 DJ Delorie <dj@redhat.com>
13790 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
13791 (iorqi3_virt): Likewise.
13793 2015-03-18 Tom de Vries <tom@codesourcery.com>
13795 * tree-parloops.c (parallelize_loops): Make static.
13796 * tree-parloops.h (parallelize_loops): Remove extern declaration.
13798 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
13800 PR middle-end/64491
13802 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
13804 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
13805 condition would be removed due to undefined behaviour.
13807 2015-03-18 Martin Liska <mliska@suse.cz>
13810 * cgraph.c (cgraph_node::get_create): Remove unnecessary
13811 xstrdup_for_dump wrapper.
13812 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
13814 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
13815 with xstrdup_for_dump.
13816 (sem_variable::equals): Likewise.
13817 (sem_item_optimizer::read_section): Use symtab_node::name instead of
13819 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
13820 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
13821 symtab_node::asm_name with xstrdup_for_dump.
13822 (congruence_class::dump): Use symtab_node::name instead of
13824 * ipa-icf.h (symtab_node::name): Remove.
13825 (symtab_node::asm_name): Likewise.
13827 2015-03-18 Jakub Jelinek <jakub@redhat.com>
13829 PR tree-optimization/65450
13830 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
13832 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
13833 it instead of duplicate_ssa_name_ptr_info.
13836 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
13838 2015-03-18 Richard Biener <rguenther@suse.de>
13840 * tree-data-ref.h (struct access_matrix): Remove.
13841 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
13842 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
13843 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
13844 (am_vector_index_for_loop): Likewise.
13845 (struct data_reference): Remove access_matrix member.
13846 (DR_ACCESS_MATRIX): Remove.
13847 (lambda_vector_new): Add comment.
13848 (lambda_matrix_new): Use XOBNEWVEC.
13850 2015-03-18 Richard Biener <rguenther@suse.de>
13852 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
13853 (pass_ch::execute): Cleanup the CFG only if we did sth.
13854 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
13856 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13858 * expmed.c (synth_mult): Use std::swap instead of manually
13859 swapping algorithms.
13861 2015-03-18 Jakub Jelinek <jakub@redhat.com>
13864 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
13866 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
13869 * config/avr/avr.opt (-nodevicelib): New option.
13870 * doc/invoke.texi (AVR Options): Document it.
13871 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
13872 libgcc.a, libc.a, libm.a.
13873 * config/avr/specs.h: Same.
13874 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
13875 which don't (directly) depend on the device. Print more help.
13876 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
13877 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
13878 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
13880 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
13881 for specs file name.
13882 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
13883 * config/avr/avr-mcus.def: Adjust initializers and comments.
13885 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
13887 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
13888 DECL_ONE_ONLY to check if decl is one only.
13889 * ipa-split.c (consider_split): Limit splitt of one only functions.
13891 2015-03-16 Jakub Jelinek <jakub@redhat.com>
13893 PR tree-optimization/65427
13894 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
13896 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
13898 2015-03-16 Marek Polacek <polacek@redhat.com>
13900 * cgraph.h (add_new_static_var): Remove declaration.
13901 * varpool.c (add_new_static_var): Remove function.
13903 2015-03-16 Jakub Jelinek <jakub@redhat.com>
13905 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
13906 instead of vec<tree> * with vec_alloc and release for args.
13909 PR middle-end/65431
13910 * omp-low.c (delete_omp_context): Only splay_tree_delete
13911 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
13912 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
13914 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
13917 * cfgexpand.c (align_base): New function.
13918 (alloc_stack_frame_space): Call it.
13919 (expand_stack_vars): Align prev_frame to be sure
13920 data->asan_vec elements aligned properly.
13922 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
13924 PR middle-end/65409
13925 * expr.c (store_field): Do not do a direct block copy if the source is
13926 a PARALLEL with BLKmode.
13928 2015-03-16 Tom de Vries <tom@codesourcery.com>
13930 PR middle-end/65414
13932 2015-03-12 Tom de Vries <tom@codesourcery.com>
13934 PR rtl-optimization/64895
13935 * lra-lives.c (check_pseudos_live_through_calls): Use
13936 actual_call_used_reg_set instead of call_used_reg_set, if available.
13938 2015-03-16 Alan Modra <amodra@gmail.com>
13941 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
13942 Modify Z->r bswapdi splitter to use dest in place of scratch.
13943 In r->Z and Z->r bswapdi splitter rename word_high, word_low
13944 to word1, word2 and rearrange logic to suit.
13945 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
13946 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
13947 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
13948 Add one '?' on r->r. Modify Z->r splitter to avoid need for
13951 2015-03-14 Jakub Jelinek <jakub@redhat.com>
13953 PR tree-optimization/65369
13954 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
13955 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
13956 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
13958 PR tree-optimization/65418
13959 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
13960 are casts in the first PLUS_EXPR operand, ensure tbias and
13961 *totallowp are in the inner type.
13963 PR rtl-optimization/65401
13964 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
13965 argument. If true, adjust_address_nv of x with big-endian
13966 correction for the mode widening to GET_MODE (y).
13967 (make_field_assignment): Don't do MEM mode widening here.
13968 Use MEM_P instead of GET_CODE == MEM.
13970 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
13972 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
13973 the external decls.
13975 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13978 * config/arm/arm.c (arm_gen_constant, AND case): Use
13979 ARM_SIGN_EXTEND when constructing AND mask.
13981 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13983 * graph.c (print_graph_cfg): Make function names visible and append
13984 parenthesis to it. Also make groups of basic blocks belonging to the
13985 same function visible.
13987 2015-03-12 Richard Biener <rguenther@suse.de>
13989 PR middle-end/44563
13990 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
13991 to avoid quadratic behavior with inline expansion splitting blocks.
13992 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
13993 with the successor if the predecessor will be merged with it.
13994 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
13995 entry block with its successor.
13997 2015-03-13 Richard Biener <rguenther@suse.de>
13999 PR middle-end/44563
14000 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
14001 (cleanup_tree_cfg_1): Do not call it.
14002 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
14003 (fixup_noreturn_call): Mark the stmt as control altering.
14004 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
14006 (pass_data_fixup_cfg): Produce a dump file.
14007 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
14008 (need_noreturn_fixup): New global.
14009 (pass_dominator::execute): Fixup queued noreturn calls.
14010 (optimize_stmt): Queue calls that became noreturn for fixup.
14011 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
14012 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
14013 (el_to_fixup): New global.
14014 (eliminate_dom_walker::before_dom_childre): Queue calls that
14015 became noreturn for fixup.
14016 (eliminate): Fixup queued noreturn calls.
14017 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
14018 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
14019 (substitute_and_fold_dom_walker::before_dom_children): Queue
14020 alls that became noreturn for fixup.
14021 (substitute_and_fold): Fixup queued noreturn calls.
14023 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
14025 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
14026 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
14027 are building; for methods check ODR type of class they belong to if
14028 they may lead to a polymorphic call.
14029 (sem_function::compare_polymorphic_p): Be bit smarter about testing
14030 when function may lead to a polymorphic call.
14031 (sem_function::compare_type_list): Remove.
14032 (sem_variable::equals): Update use of compatible_types_p.
14033 (sem_variable::parse_tree_refs): Remove.
14034 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
14036 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
14038 (func_checker::compatible_polymorphic_types_p): Break out from ...
14039 (unc_checker::compatible_types_p): ... here.
14040 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
14042 (unc_checker::compatible_types_p): Update.
14043 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
14046 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14048 PR rtl-optimization/65235
14049 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
14050 When first element of vec_concat is const_int, calculate its size
14051 using second element.
14053 2015-03-12 Richard Biener <rguenther@suse.de>
14055 PR middle-end/65270
14056 * fold-const.c (operand_equal_p): Fix ordering of resetting
14057 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
14059 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
14061 * config/s390/s390.c (s390_reorg): Move code to output nops after label
14063 (s390_asm_output_function_label): Likewise.
14064 * config/s390/s390.c (s390_asm_output_function_label):
14065 Fix function label alignment with -mhtopatch.
14066 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
14067 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
14068 ("nop_2_byte"): New define_insn.
14069 ("nop_4_byte"): Likewise.
14070 ("nop_6_byte"): Likewise.
14071 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
14072 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
14074 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
14077 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
14080 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
14083 * toplev.c (process_options): Restrict Pointer Bounds Checker
14084 usage with Address Sanitizer.
14086 2015-03-12 Richard Biener <rguenther@suse.de>
14088 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
14090 * omp-low.c (expand_omp_taskreg): Split block before removing
14092 (expand_omp_target): Likewise.
14093 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
14094 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
14095 stmt to split_block.
14097 2015-03-12 Tom de Vries <tom@codesourcery.com>
14099 PR rtl-optimization/64895
14100 * lra-lives.c (check_pseudos_live_through_calls): Use
14101 actual_call_used_reg_set instead of call_used_reg_set, if available.
14103 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
14105 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
14106 (cgraph_node::remove): Likewise.
14107 (cgraph_node::get_untransformed_body): Likewise.
14108 * varpool.c (varpool_node::remove): Likewise.
14109 (varpool_node::get_constructor): Add sanity check.
14111 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
14113 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
14115 (-fabi-compat-version): Likewise.
14116 (-ffriend-injection): Likewise.
14117 (-Wdeclaration-after-statement): Likewise.
14118 (-fomit-frame-pointer): Likewise.
14119 (-ftree-coalesce-inlined-vars): Likewise.
14120 (-fvisibility=): Likewise.
14121 * doc/extend.texi (Typeof): Likewise.
14122 (Zero Length): Likewise.
14123 (Escaped Newlines): Likewise.
14124 (Compound Literals): Likewise.
14125 (Function Attributes): Likewise.
14126 (Label Attributes): Likewise.
14127 (Type Attributes): Likewise.
14128 (Function Names): Likewise.
14129 (Other Builtins): Likewise.
14130 (Function Specific Option Pragmas): Likewise.
14131 (C++ Interface): Likewise.
14133 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
14135 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
14137 2015-03-11 Marek Polacek <polacek@redhat.com>
14139 PR tree-optimization/65388
14140 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
14142 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
14145 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
14146 * configure: Regenerate.
14147 * config.in: Regenerate.
14148 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
14149 [-mn-flash]: Document it.
14150 [__AVR_ARCH__]: Document avrtiny.
14152 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
14153 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
14154 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
14156 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14158 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
14160 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14163 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
14164 allow reloads of PLUS in floating point/VSX registers.
14166 2015-03-11 Junmo Park <junmoz.park@samsung.com>
14168 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
14169 crypto_sha256_fast.
14170 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
14172 2015-03-11 Richard Biener <rguenther@suse.de>
14174 PR tree-optimization/65310
14175 * tree-sra.c (build_ref_for_offset): Also preserve larger
14178 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
14180 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
14182 2015-03-10 Jakub Jelinek <jakub@redhat.com>
14185 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
14187 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
14189 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
14191 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
14192 (sem_function::equals_wpa): ... here.
14194 2015-03-10 Marek Polacek <polacek@redhat.com>
14195 Jakub Jelinek <jakub@redhat.com>
14198 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
14199 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
14202 2015-03-10 Jakub Jelinek <jakub@redhat.com>
14205 * config/rs6000/t-linux: For powerpc64* target set
14206 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
14208 2015-03-10 Richard Biener <rguenther@suse.de>
14210 PR middle-end/44563
14211 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
14212 for redirect_all_calls.
14214 2015-03-10 Marek Polacek <polacek@redhat.com>
14216 * gdbinit.in (pcfun): Define and document.
14218 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
14220 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
14221 of libgomp-plugin.h.
14222 (find_target_compiler): Support a case when the path to gcc is
14223 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
14224 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
14225 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
14227 (main): Use GCC_INSTALL_NAME as target_driver_name.
14228 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
14230 (mkoffload.o): Remove obsolete include path and defines.
14231 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
14233 2015-03-10 Richard Biener <rguenther@suse.de>
14235 PR middle-end/63155
14236 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
14237 * tree-ssa-coalesce.c: Include timevar.h.
14238 (attempt_coalesce): Handle graph being NULL.
14239 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
14240 Split out abnormal coalescing to ...
14241 (perform_abnormal_coalescing): ... this function.
14242 (coalesce_ssa_name): Perform abnormal coalescing without computing
14244 (verify_ssa_coalescing_worker): New function.
14245 (verify_ssa_coalescing): Likewise.
14247 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
14250 * config.gcc (extra_options) [avr]: Remove.
14251 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
14252 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
14253 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
14255 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
14256 (-mmcu=): Add Var and MissingArgError properties.
14258 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
14259 * config/avr/t-multilib: Regenerate.
14260 * config/avr/specs.h: New file.
14261 * config/avr/driver-avr.c: New file.
14262 * config/avr/genopt.sh: Remove file.
14263 * config/avr/avr-tables.opt: Remove file.
14264 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
14265 * config/avr/avr-c.c: Same.
14266 * avr-arch.h: Same.
14267 (avr_current_device): Remove proto.
14268 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
14269 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
14270 (EXTRA_SPEC_FUNCTIONS): Define.
14271 (avr_devicespecs_file): New specs function proto.
14272 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
14273 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
14274 (avr_current_device): Remove definition and usage.
14275 (avr_set_core_architecture): New static function.
14276 (avr_option_override): Use it.
14277 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
14278 (mcu_name): New static array.
14279 (comparator, avr_archs_str, avr_mcus_str): New static functions.
14280 (avr_inform_devices, avr_inform_core_architectures): New functions.
14281 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
14282 (avrlibc.h) [WITH_AVRLIBC]: Include.
14283 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
14284 (print_mcu): Rewrite from scratch.
14285 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
14286 Forward to avr-specific specs defined in device-specs file.
14287 * config/avr/t-avr (driver-avr.o): New rule.
14288 (avr-devices.o): Depend on avr-arch.h.
14289 (avr-mcus): No more depend on avr-tables.opt.
14290 (avr-tables.opt): Remove rule.
14291 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
14293 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
14295 * c-family/c.opt (fchkp-use-wrappers): New.
14296 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
14297 (chkp_wrap_function): New.
14298 (chkp_build_instrumented_fndecl): Support wrapped
14300 * doc/invoke.texi (-fcheck-pointer-bounds): New.
14301 (-fchkp-check-incomplete-type): New.
14302 (-fchkp-first-field-has-own-bounds): New.
14303 (-fchkp-narrow-bounds): New.
14304 (-fchkp-narrow-to-innermost-array): New.
14305 (-fchkp-optimize): New.
14306 (-fchkp-use-fast-string-functions): New.
14307 (-fchkp-use-nochk-string-functions): New.
14308 (-fchkp-use-static-bounds): New.
14309 (-fchkp-use-static-const-bounds): New.
14310 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
14311 (-fchkp-check-read): New.
14312 (-fchkp-check-write): New.
14313 (-fchkp-store-bounds): New.
14314 (-fchkp-instrument-calls): New.
14315 (-fchkp-instrument-marked-only): New.
14316 (-fchkp-use-wrappers): New.
14317 (-static-libmpx): New.
14318 (-static-libmpxwrappers): New.
14320 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
14322 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
14323 (CHKP_SPEC): Add wrappers library.
14324 * c-family/c.opt (static-libmpxwrappers): New.
14326 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
14328 * config/i386/linux-common.h (LIBMPX_LIBS): New.
14329 (LIBMPX_SPEC): New.
14331 * gcc.c (CHKP_SPEC): New.
14332 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
14333 * c-family/c.opt (static-libmpx): New.
14335 2015-03-10 Richard Biener <rguenther@suse.de>
14337 PR middle-end/44563
14338 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
14340 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
14341 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
14342 (cgraph_add_edge_to_call_site_hash): Likewise.
14343 (cgraph_node::get_edge): Likewise.
14344 (cgraph_edge::set_call_stmt): Likewise.
14345 (cgraph_edge::remove_caller): Likewise.
14347 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
14349 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
14350 (callee_saved_gpr_regs_size): ... this.
14351 (callee_saved_regs_first_regno): Rename to ...
14352 (callee_saved_first_gpr_regno): ... this.
14353 (callee_saved_regs_last_regno) Rename to ...
14354 (callee_saved_last_gpr_regno): ... this.
14355 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
14357 (nds32_initial_elimination_offset): Likewise.
14358 (nds32_expand_prologue): Likewise.
14359 (nds32_expand_epilogue): Likewise.
14360 (nds32_expand_prologue_v3push): Likewise.
14361 (nds32_expand_epilogue_v3pop): Likewise.
14362 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
14363 Adjust renamed variables.
14364 (nds32_output_stack_pop): Likewise.
14366 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
14368 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
14371 2015-03-10 Jakub Jelinek <jakub@redhat.com>
14373 PR rtl-optimization/65321
14374 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
14376 * var-tracking.c (use_narrower_mode): Likewise.
14378 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
14380 PR tree-optimization/65355
14381 * varasm.c (notice_global_symbol): Do not produce RTL.
14382 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
14384 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
14385 check for section anchors.
14387 2015-03-10 Alan Modra <amodra@gmail.com>
14390 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
14391 to be single-arch by default. Set cpu_is_64bit for powerpc64
14392 given --with-cpu=native.
14393 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
14394 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
14396 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
14397 rs6000_isa_flags rather than TARGET_64BIT.
14399 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
14400 Kaz Kojima <kkojima@gcc.gnu.org>
14402 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
14404 2015-03-09 Jakub Jelinek <jakub@redhat.com>
14407 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
14408 on a TREE_BINFO, instead use BINFO_TYPE.
14410 2015-03-09 Richard Biener <rguenther@suse.de>
14412 PR middle-end/65270
14413 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
14414 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
14415 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
14416 of that. When comparing dereferences compare alignment.
14417 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
14419 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
14421 * ipa-inline-analysis.c (check_callers): Check
14422 node->can_remove_if_no_direct_calls_and_refs_p.
14423 (growth_likely_positive): Reorganize to call
14424 can_remove_if_no_direct_calls_p later.
14425 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
14426 will_be_removed_from_program_if_no_direct_calls_p): Add
14427 will_inline parameter.
14428 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
14429 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
14430 Handle inliner case correctly.
14432 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
14434 PR tree-optimization/63743
14435 * cfgexpand.c (reorder_operands): Also reorder if only second operand
14436 had its definition forwarded by TER.
14438 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
14441 * ipa-utils.h (types_odr_comparable): Add strict argument.
14442 * ipa-devirt.c: Fix whitespace;
14443 (odr_hasher): Remove.
14444 (odr_name_hasher, odr_vtable_hasher): New hashers.
14445 (can_be_name_hashed_p): New predicate.
14446 (hash_type_name): remove.
14447 (hash_odr_name): New.
14448 (odr_name_hasher::hash): new.
14449 (can_be_vtable_hashed_p): New.
14450 (hash_odr_vtable): New.
14451 (odr_vtable_hasher::hash): New.
14452 (types_same_for_odr): Add strict parameter.
14453 (types_odr_comparable): Likewise.
14454 (odr_name_hasher::equal): New.
14455 (odr_vtable_hasher::equal): New.
14456 (odr_name_hasher::remove): New.
14457 (odr_hash_type): Change to hash_table<odr_name_hasher>.
14458 (odr_vtable_hash_type): New.
14459 (odr_vtable_hash): New.
14460 (odr_subtypes_equivalent_p): Do strict comparsion.
14461 (add_type_duplicate): Merge type names; cleanup; avoid type
14463 (register_odr_type): Initialize vtable hash.
14464 (build_type_inheritance_graph): Likewise
14465 (get_odr_type): Reorg to use two hashes.
14466 (dump_possible_polymorphic_call_targets): Move sanity check after debug
14468 (ipa_devirt): Dump type_inheritance_graph.
14469 (types_same_for_odr): Add strict mode.
14471 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
14474 * cgraph.h (symtab_node): Add definition_alignment,
14475 can_increase_alignment_p and increase_alignment.
14476 * symtab.c (symtab_node::can_increase_alignment_p,
14477 increase_alignment_1, symtab_node::increase_alignment,
14478 symtab_node::definition_alignment): New.
14479 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
14480 can_increase_alignment_p.
14481 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
14482 * tree-vect-stmts.c (ensure_base_align): Likewise.
14483 * varasm.c (function_section_1): Use definition_alignment.
14484 (assemble_start_function): Likewise.
14485 (emit_local): likewise.
14486 (build_constant_desc): Likewsie.
14487 (output_constant_def_contents): Likewise.
14488 (place_block_symbol): Likewise.
14489 (output_object_block): Likewise.
14491 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
14494 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
14495 when outputting debug.
14497 2015-03-07 Marek Polacek <polacek@redhat.com>
14498 Martin Uecker <uecker@eecs.berkeley.edu>
14501 * doc/invoke.texi: Update description of -fsanitize=bounds.
14503 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
14505 * tree-ssa-phiopt.c (neg_replacement): Remove.
14506 (tree_ssa_phiopt_worker): Remove negate optimization.
14508 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
14511 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
14513 2015-03-06 Richard Biener <rguenther@suse.de>
14515 PR middle-end/64928
14516 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
14517 and liveout_obstack members.
14518 (calculate_live_on_exit): Remove.
14519 (calculate_live_ranges): Change declaration.
14520 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
14521 (new_tree_live_info): Adjust.
14522 (calculate_live_ranges): Delete livein when not wanted.
14523 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
14524 Deal with partly deleted live info.
14525 (loe_visit_block): Remove temporary bitmap by using
14526 bitmap_ior_and_compl_into.
14527 (live_worklist): Adjust accordingly.
14528 (calculate_live_on_exit): Make static.
14529 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
14530 we do not need livein.
14532 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
14534 * real.c (real_from_string): Fix typo in assertion.
14536 2015-03-06 Alex Velenko <alex.velenko@arm.com>
14538 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
14541 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
14543 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
14545 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
14548 * lra-assigns.c (find_hard_regno_for): Rename to
14549 find_hard_regno_for_1. Add a new parameter.
14550 (find_hard_regno_for): New function using find_hard_regno_for_1.
14552 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
14554 PR rtl-optimization/65067
14555 * expmed.c (store_bit_field, extract_bit_field): Reworked the
14556 strict volatile bitfield handling.
14558 2015-03-05 Martin Liska <mliska@suse.cz>
14561 * ipa-icf.c (sem_variable::equals): Compare variables types.
14563 2015-03-05 Richard Henderson <rth@redhat.com>
14566 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
14567 correctly check weak symbol binding.
14569 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
14571 PR middle-end/65315
14572 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
14575 2015-03-05 Martin Liska <mliska@suse.cz>
14577 * ipa-inline.c (inline_small_functions): Set default value to
14578 prevent warning during bootstrap.
14579 * tree.h: Add pragma guard that ignores false positives during
14582 2015-03-05 Richard Biener <rguenther@suse.de>
14584 PR tree-optimization/65310
14585 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
14586 Properly preserve alignment of the base of the access.
14588 2015-03-05 Richard Biener <rguenther@suse.de>
14591 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
14592 Compare dependence info.
14594 2015-03-05 Richard Biener <rguenther@suse.de>
14596 PR middle-end/65233
14597 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
14599 (walk_ssa_copies): Revert last chage. Instead do not walk
14600 SSA names registered for SSA update.
14602 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
14605 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
14606 vtable references for their containing type.
14607 (sem_function::equals_wpa): Compare TYPE_RESTRICT
14608 and type attributes.
14610 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
14612 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
14613 before negating it.
14614 * stor-layout.c (finalize_record_size): Revert latest change.
14616 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
14618 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
14620 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
14622 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
14623 for correct comdat handling.
14624 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
14626 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
14627 (used_from_object_file_p_worker): Remove.
14628 (cgraph_node::only_called_directly_or_alised): Add
14629 used_from_object_file_p.
14630 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
14631 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
14632 can_remove_if_no_direct_calls_and_refs_p.
14634 2015-03-04 Nick Clifton <nickc@redhat.com>
14636 * config/rl78/rl78.h (enum reg_class): Remove real registers from
14637 General register class.
14638 * config/rl78/rl78-real.md: Replace general register constraints
14639 with real+virtual register constraints.
14641 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14643 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
14644 from checking for -mhtm option.
14646 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
14648 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
14649 (struct ipa_sra_check_caller_data): Add has_thunk field.
14650 (ipa_sra_check_caller): Check for thunk.
14651 (ipa_sra_preliminary_function_checks): Give up on function with
14653 (ipa_early_sra): Use call_for_symbol_and_aliases.
14655 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
14658 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
14659 called for __stack_chk_guard symbol.
14661 2015-03-03 DJ Delorie <dj@redhat.com>
14663 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
14665 (*addhi3_real): Likewise.
14666 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
14667 pattern to match incrementing memory.
14668 * config/rl78/predicates.md (rl78_1_2_operand): New.
14669 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
14670 it's the same and only mem.
14671 (rl78_alloc_physical_registers_op2): If there's effectively only
14672 one MEM, transcode it into HL.
14673 (rl78_far_p): Reject addresses that aren't legitimate.
14675 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
14677 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
14680 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
14682 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
14684 Implement call0 ABI for xtensa
14685 * config/xtensa/constraints.md ("a" constraint): Include stack
14686 pointer in case of call0 ABI.
14687 ("q" constraint): Make empty in case of call0 ABI.
14688 ("D" constraint): Include stack pointer in case of call0 ABI.
14689 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
14690 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
14692 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
14694 (xtensa_regno_to_class): Make it a local variable in the
14695 function xtensa_regno_to_class.
14696 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
14697 macro, function prototype and implementation.
14698 (reg_nonleaf_alloc_order): Make it a local variable in the
14699 function order_regs_for_local_alloc.
14700 (xtensa_conditional_register_usage): New function.
14701 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
14702 (xtensa_valid_move): Allow direct moves to stack pointer
14703 register in call0 ABI.
14704 (xtensa_setup_frame_addresses): Only spill register windows in
14706 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
14707 call0 ABI respectively.
14708 (xtensa_function_arg_1): Only mark a7 register for copying in
14710 (xtensa_call_save_reg): New function.
14711 (compute_frame_size): Add space for callee saved register
14712 storage to the frame size in call0 ABI.
14713 (xtensa_expand_prologue): Generate code to set up stack frame
14714 and save callee-saved registers in call0 ABI.
14715 (xtensa_expand_epilogue): New function.
14716 (xtensa_set_return_address): New function.
14717 (xtensa_return_addr): Calculate return address in call0 ABI.
14718 (xtensa_builtin_saveregs): Only mark a7 register for copying and
14719 emit copying code in windowed ABI.
14720 (order_regs_for_local_alloc): Add preferred register allocation
14721 order for non-leaf function in call0 ABI.
14722 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
14723 (xtensa_asm_trampoline_template): Add trampoline generation for
14725 (xtensa_trampoline_init): Add trampoline initialization for
14727 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
14729 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
14730 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
14731 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
14732 ABI call-used registers.
14733 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
14734 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
14736 (REG_CLASS_CONTENTS): Include all registers into the preferred
14737 reload registers set, adjust the set in the
14738 xtensa_conditional_register_usage.
14739 (xtensa_regno_to_class): Drop variable declaration.
14740 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
14742 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
14744 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
14745 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
14746 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
14747 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
14748 location in call0 ABI.
14749 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
14750 stack adjustment size when handling exception.
14751 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
14752 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
14754 ("return" pattern): Generate ret.n/ret in call0 ABI.
14755 ("epilogue" pattern): Expand epilogue.
14756 ("nonlocal_goto" pattern): Use default in call0 ABI.
14757 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
14758 emit eh_set_a0_* depending on ABI.
14759 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
14760 ("eh_set_a0_call0", "blockage"): New patterns.
14762 2015-03-03 Martin Liska <mliska@suse.cz>
14765 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
14767 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
14770 * config/rs6000/rs6000-tables.opt: Regenerate table.
14772 2015-03-03 Renlin Li <renlin.li@arm.com>
14774 * doc/md.texi (@item ^): Change ? into ^.
14776 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
14778 * doc/tm.texi: Regenerated.
14780 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
14782 * builtins.c (expand_builtin_return_addr): Add
14783 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
14784 surrounding #ifdef.
14785 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
14787 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
14789 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
14791 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
14794 2015-03-03 Martin Jambor <mjambor@suse.cz>
14795 Eric Botcazou <ebotcazou@adacore.com>
14797 * tree-sra.c (ipa_sra_check_caller_data): New type.
14798 (has_caller_p): Removed.
14799 (ipa_sra_check_caller): New function.
14800 (ipa_sra_preliminary_function_checks): Use it.
14802 2015-03-03 Martin Liska <mliska@suse.cz>
14804 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
14805 instead of if branch.
14807 2015-03-03 Martin Liska <mliska@suse.cz>
14810 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
14812 2015-03-23 Jeff Law <law@redhat.com>
14814 PR tree-optimization/65241
14815 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
14816 hash table if INSERT is true.
14818 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
14821 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
14823 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
14826 * config/avr/avr.c (context.h, tree-pass.h): Include them.
14827 (avr_pass_data_recompute_notes): New static variable.
14828 (avr_pass_recompute_notes): New class.
14829 (avr_register_passes): New static function.
14830 (avr_option_override): Call it.
14832 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
14834 Fix various problems with specs file generation.
14837 * config.gcc (extra_gcc_objs) [avr]: Remove.
14838 * config/avr/driver-avr.c: Remove file.
14839 * config/avr/t-avr (driver-avr.o): Remove rule.
14840 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
14841 INCLUDES to build. Depend on TM_H.
14842 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
14843 build warnings. Fix non-matching types and non-existing %-codes.
14845 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
14846 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
14847 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
14848 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
14849 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
14850 (LIBGCC_SPEC): Remove definitions.
14852 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
14854 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
14855 to create a register in testing mode.
14857 2015-03-03 Martin Liska <mliska@suse.cz>
14858 Jan Hubicka <hubicka@ucw.cz>
14861 * cgraph.c (cgraph_node::has_thunk_p): New function.
14862 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
14863 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
14864 (sem_function::merge): Assert is changed.
14866 2015-03-03 Martin Liska <mliska@suse.cz>
14867 Martin Jambor <mjambor@suse.cz>
14870 * ipa-icf.c (sem_item_optimizer::execute): Change function
14871 return value to boolean.
14872 (sem_item_optimizer::merge_classes): Likewise.
14873 (ipa_icf_driver): Return TODO_remove_functions in case there's
14874 a merge operation processed.
14875 * ipa-icf.h: Change function return value to boolean.
14877 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
14880 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
14881 processor type for 64-bit little endian PowerPC.
14883 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
14884 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
14885 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
14886 printing built-in mask so it does not pass NULL pointers.
14888 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
14891 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
14894 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
14895 !ISA_HAS_FP_CONDMOVE.
14897 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
14899 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
14902 2015-03-02 Ulrich Drepper <drepper@gmail.com>
14904 * doc/invoke.texi (Options for Code Generation Conventions):
14905 Fix URL of DSO paper.
14907 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
14910 * ipa-inline.c (check_callers): Looks for recursion.
14911 (inline_to_all_callers): Give up on uninlinable or recursive edges.
14912 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
14913 summary of inline clones.
14914 (do_estimate_growth_1): Fix recursion check.
14916 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
14919 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
14922 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
14923 Aldy Hernandez <aldyh@redhat.com>
14926 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
14927 when checking TYPE_BINFO.
14929 2015-03-02 Richard Biener <rguenther@suse.de>
14932 * ipa-icf-gimple.c: Include builtins.h.
14933 (func_checker::compare_memory_operand): Compare base alignment.
14935 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
14938 * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
14939 are never passed by reference.
14941 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
14944 * tree-chkp.c (chkp_check_lower): Don't check against
14945 zero bounds for already instrumented functions.
14946 (chkp_check_upper): Likewise.
14947 (chkp_fini): Clean pass local data to avoid wrong reusage.
14949 2015-02-28 Martin Liska <mliska@suse.cz>
14950 Jan Hubicka <hubicka@ucw.cz>
14952 * ipa-icf.c (sem_variable::equals): Improve debug output;
14953 get variable constructor.
14954 (sem_variable::parse): Do not filter out too early; give up on
14955 volatile and register vars.
14956 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
14958 * ipa-icf.h (sem_variable::init): Do not set ctor.
14959 (sem_variable::ctor): Remove.
14961 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
14963 PR middle-end/65233
14964 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
14966 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
14968 * ipa-icf.c: Include stor-layout.h
14969 (sem_function::compare_cgraph_references): Rename to ...
14970 (sem_item::compare_cgraph_references): ... this one.
14971 (sem_variable::equals_wpa): New function
14972 (sem_variable::equals): Do not check stuff already verified by
14974 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
14975 * ipa-icf.h (sem_item): Add compare_cgraph_references.
14976 (sem_function): Remove compare_cgraph_references.
14977 (sem_variable): Turns equals_wpa into non-inline.
14979 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
14981 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
14982 (sem_item::add_expr): New function.
14983 (sem_function::hash_stmt): Handle operands of most statements.
14984 (sem_variable::get_hash): Hash the actual constructor.
14985 * ipa-icf.h (sem_item): Add add_expr.
14986 (sem_function): Update prototype of hash_stmt
14988 2015-02-28 Martin Liska <mliska@suse.cz>
14989 Jan Hubicka <hubicka@ucw.cz>
14992 * ipa-icf-gimple.c (func_checker::compare_function_decl):
14994 (func_checker::compare_variable_decl): Skip symtab vars.
14995 (func_checker::compare_cst_or_decl): Update.
14996 * ipa-icf.c (sem_function::parse): Do not consider aliases.
14997 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
14998 use correct symtab predicates.
14999 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
15000 (sem_variable::parse): Update comment.
15001 (sem_item_optimizer::build_graph): Consider ultimate aliases
15004 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15006 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
15009 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15011 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
15012 (sem_variable::merge) Likewise.
15014 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15016 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
15017 target; also match flag_ipa_devirt.
15019 2015-03-01 Martin Liska <mliska@suse.cz>
15020 Jan Hubicka <hubicka@ucw.cz>
15022 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
15023 Validate variable alignment.
15024 * ipa-icf.c (sem_function::equals_private): Be more precise
15025 about non-common function attributes.
15026 (sem_variable::equals): Likewise.
15028 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15031 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
15032 across COMDAT group boundary.
15034 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15037 * ipa-icf.c (clear_decl_rtl): New function.
15038 (sem_function::merge): Clear RTL before forming alias.
15039 (sem_variable::merge): Clear RTL before forming alias.
15041 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
15044 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
15046 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
15048 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
15051 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
15053 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
15054 a typo in the description.
15056 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
15059 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
15060 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
15061 * lra-constraints.c: Include "params.h".
15062 (EBB_PROBABILITY_CUTOFF): Use
15063 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
15064 (lra_inheritance): Use '<' instead of '<=' for
15065 EBB_PROBABILITY_CUTOFF.
15066 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
15069 2015-02-27 Martin Liska <mliska@suse.cz>
15071 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
15072 vector length condition.
15074 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
15076 * doc/extend.texi (x86 transactional memory intrinsics):
15077 Reorganize discussion of _xbegin. Clarify that the return
15078 value is a bit mask. Expand example and move to end of section.
15080 2015-02-26 Jakub Jelinek <jakub@redhat.com>
15081 Aldy Hernandez <aldyh@redhat.com>
15083 PR rtl-optimization/65220
15084 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
15086 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
15089 * lra-remat.c (update_scratch_ops): New.
15090 (do_remat): Call it.
15091 * lra.c (lra_register_new_scratch_op): New. Take code from ...
15092 (remove_scratches): ... here.
15093 * lra-int.h (lra_register_new_scratch_op): New prototype.
15095 2015-02-27 Marek Polacek <polacek@redhat.com>
15098 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
15099 -Wformat-signedness anymore.
15101 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15103 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
15105 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
15107 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15109 * config/s390/s390.c (enum s390_builtin):
15110 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
15111 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
15112 (s390_init_builtins): Generate new builtin functions.
15113 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
15114 (s390_sfpc, s390_efpc): New pattern definitions.
15116 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15118 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
15119 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
15120 (s390_builtin_decls): New array.
15121 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
15122 (s390_builtin_decl): New function.
15123 (TARGET_BUILTIN_DECL): Define macro.
15125 2015-02-27 Richard Biener <rguenther@suse.de>
15127 PR middle-end/63175
15128 * builtins.c (get_object_alignment_2): Make sure to re-apply
15129 the ANDed mask after recursing to its operand gets us a new
15130 misalignment bit position.
15132 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
15133 Martin Liska <mliska@suse.cz>
15136 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
15137 Use address_matters_p.
15138 (redirect_all_callers, set_addressable): New functions.
15139 (sem_function::merge): Reorganize and fix merging issues.
15140 (sem_variable::merge): Likewise.
15141 (sem_variable::compare_sections): Remove.
15142 * common.opt (fmerge-all-constants, fmerge-constants): Remove
15144 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
15146 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
15148 (address_matters_1): New function.
15149 (symtab_node::address_matters_p): New function.
15150 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
15151 check for merged flag.
15152 * cgraph.h (address_matters_p): Declare.
15153 (symtab_node::address_taken_from_non_vtable_p): Remove.
15154 (symtab_node::address_can_be_compared_p): New method.
15155 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
15156 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
15158 (comdat_can_be_unshared_p_1) Use address_matters_p.
15159 (update_vtable_references): Fix formating.
15160 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
15161 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
15162 * cgraphclones.c: Preserve merged and icf_merged flags.
15164 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
15166 * doc/extend.texi (Function Attributes): Fix spelling and typos.
15167 (Label Attributes): Likewise.
15168 (Cilk Plus Builtins): Likewise.
15169 (ARC SIMD Built-in Functions): Likewise.
15170 (ARM C Language Extensions (ACLE)): Likewise.
15171 (PowerPC Built-in Functions): Likewise.
15172 (PowerPC Hardware Transactional Memory Built-in Functions):
15175 2015-02-26 Jakub Jelinek <jakub@redhat.com>
15177 PR tree-optimization/65216
15178 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
15179 new stmt and new SSA_NAME for lhs whenever the arguments have
15180 changed and weren't just swapped. Fix comment typo.
15182 PR tree-optimization/65215
15183 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
15184 for PDP endian targets.
15185 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
15186 Fix up formatting issues.
15187 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
15188 size is smaller than the original, adjust MEM_REF offset by the
15189 difference of sizes. Use is_gimple_mem_ref_addr instead of
15190 is_gimple_min_invariant test to avoid adding address temporaries.
15192 2015-02-26 Martin Liska <mliska@suse.cz>
15193 Jan Hubicka <hubicka@ucw.cz>
15196 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
15197 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
15198 (sem_item_optimizer::process_cong_reduction): Include division by
15199 sensitive references.
15200 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
15201 * ipa-ref.c (ipa_ref::address_matters_p): New function.
15202 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
15204 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
15207 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
15209 * config/avr/avr.c: Same.
15210 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
15211 Refuse any constant address not in 0..0xbf.
15212 * config/avr/avr.md (*mov<mode>, *movsf): Remove
15213 tiny_valid_direct_memory_access_range from insn conditions.
15214 (mov<mode>): Don't special-case expansion of avrtiny addresses.
15216 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
15219 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
15220 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
15221 * config/sh/predicates.md (const_logical_operand): New predicate.
15222 * config/sh/sh.md: Add new peephole2 patterns.
15224 2015-02-26 Marek Polacek <polacek@redhat.com>
15227 * ipa-inline.c (early_inliner): Recompute inline parameters.
15229 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15232 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
15233 instructions with TImode operands are included in the analysis.
15235 2015-02-26 Sebastian Pop <s.pop@samsung.com>
15237 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
15238 of an EDGE_FSM_THREAD.
15240 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
15242 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
15244 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
15247 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
15249 2015-02-26 Sebastian Pop <s.pop@samsung.com>
15251 PR tree-optimization/65048
15252 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
15253 (thread_through_all_blocks): Call valid_jump_thread_path.
15254 Remove invalid FSM jump-thread paths.
15256 2015-02-26 Jakub Jelinek <jakub@redhat.com>
15258 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
15259 (ipa_write_optimization_summaries): Likewise.
15260 * tree-streamer.h: Include data-streamer.h.
15261 (streamer_mode_table): Declare extern variable.
15262 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
15263 * lto-streamer-out.c (lto_output_init_mode_table,
15264 lto_write_mode_table): New functions.
15265 (produce_asm_for_decls): Call lto_write_mode_table when streaming
15267 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
15268 (lto_create_simple_input_block): Add mode_table argument to the
15269 lto_input_block constructors.
15270 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
15272 * data-streamer-in.c (string_for_index): Likewise.
15273 * ipa-inline-analysis.c (inline_read_section): Likewise.
15274 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
15275 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
15276 * lto-streamer-in.c (lto_read_body_or_constructor,
15277 lto_input_toplevel_asms): Likewise.
15278 (lto_input_mode_table): New function.
15279 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
15280 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
15281 Use bp_pack_machine_mode.
15282 * real.h (struct real_format): Add name field.
15283 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
15284 (class lto_input_block): Add mode_table member.
15285 (lto_input_block::lto_input_block): Add mode_table_ argument,
15286 initialize mode_table.
15287 (struct lto_file_decl_data): Add mode_table field.
15288 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
15289 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
15290 unpack_ts_decl_common_value_fields,
15291 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
15292 * tree-streamer.c (streamer_mode_table): New variable.
15293 * real.c (ieee_single_format, mips_single_format,
15294 motorola_single_format, spu_single_format, ieee_double_format,
15295 mips_double_format, motorola_double_format,
15296 ieee_extended_motorola_format, ieee_extended_intel_96_format,
15297 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
15298 ibm_extended_format, mips_extended_format, ieee_quad_format,
15299 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
15300 decimal_single_format, decimal_double_format, decimal_quad_format,
15301 ieee_half_format, arm_half_format, real_internal_format): Add name
15303 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
15305 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
15308 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
15309 reordering for selective scheduling.
15311 2015-02-26 Terry Guo <terry.guo@arm.com>
15313 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
15314 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
15315 (arm_arch_no_volatile_ce): Declare new global variable.
15316 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
15317 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
15318 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
15319 (TARGET_NO_VOLATILE_CE): New macro.
15320 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
15321 volatile memory access in IT block
15323 2015-02-25 Kai Tietz <ktietz@redhat.com>
15325 PR tree-optimization/61917
15326 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
15327 that reduc_def_stmt is null.
15329 2015-02-25 Martin Liska <mliska@suse.cz>
15331 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
15332 hard register variables.
15334 2015-02-25 Kai Tietz <ktietz@redhat.com>
15337 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
15338 (symtab::noninterposable_alias): Likewise.
15340 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
15343 * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
15345 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
15347 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
15350 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
15351 as split condition; force split via '#' in output pattern.
15353 2015-02-25 Richard Biener <rguenther@suse.de>
15354 Kai Tietz <ktietz@redhat.com>
15356 PR tree-optimization/61917
15357 * tree-vect-loop.c (vectorizable_reduction): Allow
15358 vect_internal_def without reduction to exit graceful.
15360 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
15363 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
15364 only with NONDEBUG_INSN_P.
15366 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
15368 Use variadic macros with avr-log.c.
15370 * config/avr/avr-protos.h (avr_vdump): New prototype.
15371 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
15372 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
15373 * config/avr/avr-log.c: Adjust comments.
15374 (avr_vdump): New function.
15375 (avr_vadump): Pass caller as 2nd argument instead of format string.
15376 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
15377 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
15379 2015-02-25 Jakub Jelinek <jakub@redhat.com>
15382 * target.def (target_option_stream_in): New target hook.
15383 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
15384 targetm.target_option.post_stream_in if non-NULL.
15385 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
15386 * doc/tm.texi: Updated.
15387 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
15389 (TARGET_OPTION_POST_STREAM_IN): Redefine.
15391 2015-02-24 Jeff Law <law@redhat.com>
15394 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
15395 of operand 0 and operand 2.
15396 (zero_cost_loop_end, loop_end): Similarly.
15398 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
15400 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
15403 2015-02-24 DJ Delorie <dj@redhat.com>
15405 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
15406 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
15407 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
15408 instead of hardcoding SImode.
15410 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
15412 * omp-low.c (create_omp_child_function): Tag entrypoint
15413 functions with a special attribute.
15415 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
15418 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
15420 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
15422 PR rtl-optimization/65123
15423 * lra-remat.c (operand_to_remat): Check hard regs in insn
15426 2015-02-24 Nick Clifton <nickc@redhat.com>
15428 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
15431 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
15434 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
15435 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
15436 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
15437 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
15438 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
15439 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
15440 (BUILT_IN_GOACC_PARALLEL): Specify as
15441 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
15442 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
15443 * builtin-types.def
15444 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
15445 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
15446 Remove function types.
15447 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
15448 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
15449 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
15450 New function types.
15452 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
15454 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
15456 2015-02-24 Jakub Jelinek <jakub@redhat.com>
15458 PR tree-optimization/65170
15459 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
15460 if val[1] < 0, clear also val[2] and return 3.
15462 2015-02-24 Alan Modra <amodra@gmail.com>
15465 * config/rs6000/rs6000.c (get_memref_parts): Only return true
15466 when *base is a reg. Handle nested plus addresses. Simplify
15469 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
15471 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
15472 use natural alignment when optimizing for size.
15474 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
15477 * config/sh/sh.md (movsicc_true+3): Remove peephole.
15478 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
15479 * config/sh/sh.c (replace_n_hard_rtx): Remove.
15481 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
15484 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
15485 too big for a wide_int. Implement missing wrapping operation.
15487 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
15490 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
15491 instead of const_int 4294901760.
15493 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
15495 * config/avr/t-avr: Fix typo in comment.
15497 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
15499 * doc/rtl.texi (fma): Clarify documentation.
15501 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
15504 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
15505 over input_location.
15507 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
15509 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
15510 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
15511 restrict alignments to absolute_biggest_alignment.
15512 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
15514 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
15515 * doc/tm.texi: Regenerate.
15516 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
15518 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
15521 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
15523 2015-02-20 Richard Biener <rguenther@suse.de>
15525 PR tree-optimization/65136
15526 * tree-ssa-propagate.c: Include cfgloop.h.
15527 (replace_phi_args_in): Avoid replacing loop latch edge PHI
15528 arguments with constants.
15530 2015-02-20 Jakub Jelinek <jakub@redhat.com>
15531 Martin Liska <mliska@suse.cz>
15534 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
15535 don't try to create_thunk if stdarg_p. If
15536 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
15537 redirect_callers if possible.
15538 (sem_item_optimizer::execute): Call unregister_hooks here...
15539 (ipa_icf_driver): ... instead of here.
15541 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15543 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
15544 Mark operand 0 as earlyclobber in 2nd alternative.
15545 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
15546 Write negated shift amount into QI lowpart operand 0 and use it
15548 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
15550 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
15552 * cgraph.h (clone_function_name_1): Declare.
15553 * cgraphclones.c (clone_function_name_1): New function.
15554 (clone_function_name): Use it.
15555 * lto-partition.c: Include "stringpool.h".
15556 (must_not_rename, maybe_rewrite_identifier)
15557 (validize_symbol_for_target): New static functions.
15558 (privatize_symbol_name): Use must_not_rename.
15559 (promote_symbol): Call validize_symbol_for_target.
15560 (lto_promote_cross_file_statics): Likewise.
15561 (lto_promote_statics_nonwpa): Likewise.
15563 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
15566 * config/avr/avr.md (pushhi_insn): New insn.
15567 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
15569 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
15570 Jakub Jelinek <jakub@redhat.com>
15572 * tree-streamer.c (preload_common_nodes): Don't preload
15573 TI_VA_LIST* for offloading.
15574 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
15577 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
15579 * config/pa/pa.c (pa_emit_move_sequence): Always force
15580 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
15583 * config/pa/pa.c (pa_reloc_rw_mask): New function.
15584 (TARGET_ASM_RELOC_RW_MASK): Define.
15585 (pa_cannot_force_const_mem): Revert previous change.
15587 2015-02-19 Martin Jambor <mjmabor@suse.cz>
15588 Jan Hubicka <hubicka@ucw.cz>
15591 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
15592 across jump functions.
15594 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
15596 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
15598 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
15600 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
15602 2015-02-19 Richard Henderson <rth@redhat.com>
15604 PR middle-end/65074
15605 * varasm.c (default_binds_local_p_2): Don't test node->definition;
15606 test DECL_EXTERNAL independent of symtab_node.
15608 2015-02-19 Jakub Jelinek <jakub@redhat.com>
15611 * varpool.c (varpool_node::get_constructor): Return early
15612 if this->lto_file_data is NULL.
15614 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
15616 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
15617 (rank_for_schedule_debug): Update.
15618 (ready_sort): Make static. Move sorting logic to ...
15619 (ready_sort_debug, ready_sort_real): New static functions.
15620 (schedule_block): Sort both debug insns and real insns in preparation
15621 for ready list trimming. Improve debug output.
15622 * sched-int.h (ready_sort): Remove global declaration.
15624 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
15626 * ipa-icf.c (sem_function::equals_private): Adjust.
15627 (sem_function::bb_dict_test): Take a vec<int> * instead of
15629 * ipa-icf.h (bb_dict_test): Likewise.
15631 2015-02-18 Jakub Jelinek <jakub@redhat.com>
15633 PR gcov-profile/64634
15634 * tree-eh.c (frob_into_branch_around): Fix up typos
15635 in function comment.
15636 (lower_catch): Put eh_seq resulting from EH lowering of
15637 the cleanup sequence after the cleanup rather than before it.
15639 2015-02-18 Tom de Vries <tom@codesourcery.com>
15641 * common.opt (fstdarg-opt): New option.
15642 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
15643 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
15644 (@item -fstdarg-opt): New item.
15646 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
15649 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
15650 for common symbols.
15652 2015-02-18 Jakub Jelinek <jakub@redhat.com>
15654 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
15656 (ALL_HOST_OBJS): Add mkoffload.o.
15657 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
15659 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
15661 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
15662 (compare_virtual_tables): Be smarter about skipping typeinfos;
15663 do sane output on virtual table table mismatch.
15664 (warn_odr): Be ready for forward declarations of enums;
15665 output sane info on base mismatch and virtual table mismatch.
15666 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
15667 when only one type is polymorphic.
15668 (get_odr_type): Fix hashtable corruption.
15669 (dump_odr_type): Dump mangled names.
15671 2015-02-18 Richard Biener <rguenther@suse.de>
15673 PR tree-optimization/65063
15674 * tree-predcom.c (determine_unroll_factor): Return 1 if we
15675 have replaced looparound PHIs.
15677 2015-02-18 Martin Liska <mliska@suse.cz>
15679 * lto-streamer.c (lto_streamer_init): Encapsulate
15680 streamer_check_handled_ts_structures with checking macro.
15682 2015-02-18 Jakub Jelinek <jakub@redhat.com>
15685 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
15686 section if !implicit_section.
15687 (cgraph_node::create_version_clone_with_body): Likewise.
15688 * trans-mem.c (ipa_tm_create_version): Likewise.
15690 2015-02-18 Richard Biener <rguenther@suse.de>
15692 PR tree-optimization/62217
15693 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
15696 2015-02-18 Marek Polacek <polacek@redhat.com>
15699 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
15700 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
15701 is in range [-16K, -1]. Don't issue run-time error if
15702 (ptr > ptr + offset).
15704 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
15706 * doc/install.texi (nvptx-*-none): New section.
15707 * doc/invoke.texi (Nvidia PTX Options): Likewise.
15708 * config/nvptx/nvptx.opt: Update.
15710 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
15711 (access_check): New functions, copied from
15712 config/i386/intelmic-mkoffload.c.
15713 (main): For non-installed testing, look in all COMPILER_PATHs for
15716 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
15718 2015-02-18 Andrew Pinski <apinski@cavium.com>
15719 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15721 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
15722 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
15724 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
15726 * ipa-visibility.c (function_and_variable_visibility): Only
15727 check locality if node is not already local.
15728 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
15729 call_for_symbol_and_aliases instead of
15730 call_for_symbol_thunks_and_aliases.
15731 (ipa_inline): Likewise.
15732 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
15733 first walk aliases.
15734 * ipa.c (symbol_table::remove_unreachable_nodes): Use
15735 call_for_symbol_and_aliases.
15736 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
15737 (ipa_propagate_frequency_1): Use it; use opt_for_fn
15738 (ipa_propagate_frequency): Update.
15739 (ipa_profile): Add opt_for_fn gueards.
15741 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
15743 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
15744 * doc/invoke.texi (SH options): Document it.
15745 * config/sh/sh.c (sh_insn_length_adjustment): Check
15746 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
15748 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
15750 * common.opt (fipa-cp-alignment): New.
15751 * ipa-cp.c (ipcp_store_alignment_results): Check
15752 flag_ipa_cp_alignment.
15753 * opts.c (default_options_table): Enable -fipa-cp-alignment for
15755 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
15756 * doc/invoke.texi: Document -fipa-cp-alignment.
15758 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
15761 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
15762 to nil. Adjust comments.
15764 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
15766 * ipa-visibility.c (function_and_variable_visibility): Only
15767 check locality if node is not already local.
15768 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
15769 call_for_symbol_and_aliases instead of
15770 call_for_symbol_thunks_and_aliases.
15771 (ipa_inline): Likewise.
15772 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
15773 first walk aliases.
15774 * ipa.c (symbol_table::remove_unreachable_nodes): Use
15775 call_for_symbol_and_aliases.
15776 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
15777 (ipa_propagate_frequency_1): Use it; use opt_for_fn
15778 (ipa_propagate_frequency): Update.
15779 (ipa_profile): Add opt_for_fn guards.
15781 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
15783 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
15784 skipping of "strange" tokens.
15786 2015-02-17 Jeff Law <law@redhat.com>
15788 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
15791 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
15793 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
15794 as forcing a HARD_DEP between instructions, thereby
15795 disallowing rewriting to break dependencies.
15797 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
15799 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
15800 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
15801 variables in boundary that have no inlitalizer encoded and are
15803 * varasm.c (default_binds_local_p_2): External definitions do not
15804 count as definitions here.
15806 2015-02-16 Jeff Law <law@redhat.com>
15808 PR tree-optimization/64823
15809 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
15811 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
15812 threading through blocks with PHIs, but no statements.
15813 (thread_through_normal_block): Distinguish between blocks where
15814 we did not process all the statements and blocks with no statements.
15816 2015-02-16 Jakub Jelinek <jakub@redhat.com>
15817 James Greenhalgh <james.greenhalgh@arm.com>
15820 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
15821 section if not linkonce. Fix up formatting.
15822 (cgraph_node::create_version_clone_with_body): Copy section.
15823 * trans-mem.c (ipa_tm_create_version): Likewise.
15825 2015-02-16 Richard Biener <rguenther@suse.de>
15827 PR tree-optimization/65077
15828 * tree-ssa-structalias.c (get_constraint_for_1): Handle
15829 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
15830 (find_func_aliases): Allow float values to carry pointers again.
15832 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
15834 * doc/install.texi (Specific): Reorder targets list to put
15835 aarch64 in alphabetical order. Add a link to aarch64*-*-*
15838 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
15839 David Edelsohn <dje.gcc@gmail.com>
15842 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
15843 mapping class to external variable or function reference.
15844 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
15847 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
15850 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
15851 ASM_WEAKEN_DECL if defined.
15853 2015-02-16 Richard Biener <rguenther@suse.de>
15856 * varasm.c (default_file_start): For LTO produced units
15857 emit <artificial> as file directive.
15859 2015-02-16 Richard Biener <rguenther@suse.de>
15861 PR tree-optimization/63593
15862 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
15863 stmts and releasing SSA names until...
15864 (execute_pred_commoning): ... after processing all chains.
15866 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
15869 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
15870 external functions.
15872 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
15874 * doc/bugreport.texi: Adjust section titles throughout the file
15875 to use "Title Case".
15876 * doc/extend.texi: Likewise.
15877 * doc/gcov.texi: Likewise.
15878 * doc/implement-c.texi: Likewise.
15879 * doc/implement-cxx.texi: Likewise.
15880 * doc/invoke.texi: Likewise.
15881 * doc/objc.texi: Likewise.
15882 * doc/standards.texi: Likewise.
15883 * doc/trouble.texi: Likewise.
15885 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
15887 * cgraph.h (symtab_node::has_aliases_p): Simplify.
15888 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
15889 * tree.c (lookup_binfo_at_offset): Make static.
15890 (get_binfo_at_offset): Do not shadow offset; add explanatory
15893 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
15895 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
15896 for all floading point loads and stores except those using a register
15898 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
15901 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
15903 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
15904 (do_estimate_growth_1): Record if any uninlinable edge was seen.
15905 (estimate_growth): Handle uninlinable edges correctly.
15906 (check_callers): New.
15907 (growth_likely_positive): Handle aliases correctly.
15909 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
15911 * ipa-chkp.c: Use iterate_direct_aliases.
15912 * symtab.c (resolution_used_from_other_file_p): Move inline.
15913 (symtab_node::create_reference): Fix formating.
15914 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
15915 (symtab_node::iterate_reference): Move inline.
15916 (symtab_node::iterate_referring): Move inline.
15917 (symtab_node::iterate_direct_aliases): Move inline.
15918 (symtab_node::used_from_object_file_p_worker): Inline into ...
15919 (symtab_node::used_from_object_file_p): ... this one; move inline.
15920 (symtab_node::call_for_symbol_and_aliases): Move inline;
15921 use iterate_direct_aliases.
15922 (symtab_node::call_for_symbol_and_aliases_1): New method.
15923 (cgraph_node::call_for_symbol_and_aliases): Move inline;
15924 use iterate_direct_aliases.
15925 (cgraph_node::call_for_symbol_and_aliases_1): New method.
15926 (varpool_node::call_for_node_and_aliases): Rename to ...
15927 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
15928 use iterate_direct_aliases.
15929 (varpool_node::call_for_symbol_and_aliases_1): New method.
15930 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
15931 (ipa_discover_readonly_nonaddressable_var): Update.
15932 * ipa-devirt.c: Fix formating.
15933 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
15935 (cgraph_node::call_for_symbol_and_aliases): Move inline.
15936 (cgraph_node::call_for_symbol_and_aliases_1): New function..
15937 * cgraph.h (used_from_object_file_p_worker): Remove.
15938 (resolution_used_from_other_file_p): Move inline.
15939 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
15940 (symtab_node::iterate_reference): Move inline.
15941 (symtab_node::iterate_referring): Move inline.
15942 (symtab_node::iterate_direct_aliases): Move inline.
15943 (symtab_node::used_from_object_file_p_worker): Inline into ...
15944 (symtab_node::used_from_object_file_p): Move inline.
15945 * tree-emutls.c (ipa_lower_emutls): Update.
15946 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
15947 (varpool_node::call_for_node_and_aliases): Remove.
15949 2015-02-14 Jakub Jelinek <jakub@redhat.com>
15951 PR tree-optimization/62209
15952 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
15953 op == range->exp, insert seq and gimplified code after labels
15954 instead of after the phi.
15956 2015-02-13 Jeff Law <law@redhat.com>
15959 Revert my change for tree-optimization/64823.
15961 2015-02-13 Jakub Jelinek <jakub@redhat.com>
15963 PR tree-optimization/65053
15964 * tree-ssa-phiopt.c (value_replacement): When moving assign before
15965 cond, either reset VR on lhs or set it to phi result VR.
15967 2015-02-13 Jeff Law <law@redhat.com>
15969 PR tree-optimization/64823
15970 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
15971 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
15972 threading through blocks with PHIs, but no statements.
15973 (thread_through_normal_block): Distinguish between blocks where
15974 we did not process all the statements and blocks with no statements.
15976 PR rtl-optimization/47477
15977 * match.pd (convert (plus/minus (convert @0) (convert @1): New
15978 simplifier to narrow arithmetic.
15980 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
15983 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
15984 polymorphic call info when type is not known to be preserved.
15986 2015-02-13 Maritn Jambor <mjambor@suse.cz>
15989 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
15990 (inline_call): Use it.
15992 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
15994 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
15995 GOMP_DEVICE_NVIDIA_PTX.
15997 2015-02-13 Jakub Jelinek <jakub@redhat.com>
16000 * stmt.c (emit_case_nodes): Use void_type_node instead of
16001 NULL_TREE as LABEL_DECL type.
16003 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
16005 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
16007 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
16008 symbolic references to data to be forced to constant memory on the
16011 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
16013 PR tree-optimization/65002
16014 * tree-cfg.c (pass_data_fixup_cfg): Don't update
16016 * tree-sra.c (some_callers_have_no_vuse_p): New.
16017 (ipa_early_sra): Reject functions whose callers
16018 assume function is read only.
16020 2015-02-13 Richard Biener <rguenther@suse.de>
16023 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
16024 for LTO produced CUs.
16026 2015-02-13 Bin Cheng <bin.cheng@arm.com>
16028 PR tree-optimization/64705
16029 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
16030 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
16031 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
16032 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
16033 expand_simple_operations.
16035 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
16036 Richard Henderson <rth@redhat.com>
16039 * cgraphunit.c (cgraph_node::finalize_function): Set definition
16040 before notice_global_symbol.
16041 (varpool_node::finalize_decl): Likewise.
16042 * varasm.c (default_binds_local_p_2): Rename from
16043 default_binds_local_p_1, add weak_dominate argument. Use direct
16044 returns instead of assigning to local variable. Unify varpool and
16045 cgraph paths via symtab_node. Reject undef weak variables before
16046 testing visibility. Reorder tests for simplicity.
16047 (default_binds_local_p): Use default_binds_local_p_2.
16048 (default_binds_local_p_1): Likewise.
16049 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
16051 (default_elf_asm_output_external): Emit visibility when specified.
16053 2015-02-13 Alan Modra <amodra@gmail.com>
16055 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
16056 code setting up r11 for out-of-line fp restore.
16058 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
16060 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
16061 (muser-mode): Likewise.
16063 2015-02-13 Alan Modra <amodra@gmail.com>
16065 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
16066 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
16068 2015-02-12 David Howells <dhowells@redhat.com>
16070 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
16072 * tree-ssa-uninit.c (dump_predicates): Likewise.
16073 * opts.c (print_filtered_help): Likewise.
16075 2015-02-12 Jakub Jelinek <jakub@redhat.com>
16077 * dwarf2out.c (output_die): Use "%s", name instead of name to
16078 avoid -Wformat-security warning.
16080 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
16081 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
16082 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
16083 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
16085 2015-02-12 Jason Merrill <jason@redhat.com>
16087 * common.opt (-flifetime-dse): New.
16089 2015-02-12 Jakub Jelinek <jakub@redhat.com>
16092 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
16094 PR tree-optimization/65014
16095 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
16096 use original second operand of arg0 or arg1 instead of
16097 that adjusted by STRIP_NOPS.
16099 2015-02-11 Jeff Law <law@redhat.com>
16102 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
16103 that needs to be queued, just queue it for a single cycle.
16105 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
16107 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
16108 bodies of thunks; comment on why.
16109 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
16110 symbols are extern.
16112 2015-02-11 Richard Henderson <rth@redhat.com>
16115 * tree-eh.c (mark_reachable_handlers): Mark source and destination
16116 regions of __builtin_eh_copy_values.
16118 2015-02-11 Jakub Jelinek <jakub@redhat.com>
16120 PR middle-end/65003
16121 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
16122 ultimate alias is MEM with SYMBOL_REF satisfying
16123 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
16124 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
16126 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
16128 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
16129 "diagnostic-core.h".
16130 (main): Initialize progname, and call diagnostic_initialize.
16132 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
16133 instead of __OPENMP_TARGET__.
16135 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
16136 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
16137 hard-coding PTX_ID.
16139 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
16141 * doc/sourcebuild.texi (pie_enabled): Document.
16143 2015-02-11 Martin Liska <mliska@suse.cz>
16146 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
16147 a return value for call to a function that is noreturn.
16149 2015-02-11 Richard Biener <rguenther@suse.de>
16152 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
16155 2015-02-11 Andrew Pinski <apinski@cavium.com>
16158 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16159 Change the first argument type to size_type_node and add another
16161 (aarch64_simd_expand_builtin): Handle the new argument to
16162 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
16163 print an out when the first two arguments are not
16164 nonzero integer constants.
16165 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
16166 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
16168 2015-02-11 Jakub Jelinek <jakub@redhat.com>
16171 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
16172 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
16173 (ix86_set_current_function): Rewritten.
16174 (ix86_add_new_builtins): Temporarily clear current_target_pragma
16175 when creating builtin fndecls.
16177 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
16180 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
16182 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
16183 have no comdat group.
16184 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
16185 (lto_output_varpool_node): Always output alias info.
16186 (output_refs): Output refs of boundary aliases, too.
16187 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
16188 (output_symtab): Output call eges in thunks in boundary.
16189 (get_alias_symbol): Remove.
16190 (input_node, input_varpool_node): Do not special case weakrefs.
16191 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
16192 alias and thunks targets in the boundary; do not take removed symbols
16193 from their comdat groups.
16194 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
16195 (cgraph_node::global_info): Remove.
16196 (cgraph_node::rtl_info): Look through aliases and thunks.
16197 * cgrpah.h (global_info): Remove.
16198 (non_local_p): Remove.
16200 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
16201 Sandra Loosemore <sandra@codesourcery.com>
16203 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
16204 to inline asm. List dialects in proper order.
16206 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
16207 Sandra Loosemore <sandra@codesourcery.com>
16209 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
16211 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
16213 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
16214 modified) reference to Solaris.
16216 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
16218 * doc/extend.texi (Extended Asm): Fix typos.
16220 2015-02-10 Jakub Jelinek <jakub@redhat.com>
16223 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
16225 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
16228 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
16229 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
16230 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
16231 * config/sh/constraints.md (Ara, Add): New constraints.
16232 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
16234 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
16235 atomic_mem_operand_0. Don't use force_reg on the memory address.
16236 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
16237 Sra constraint. Convert to insn_and_split. Add workaround for
16239 (atomic_compare_and_swap<mode>_hard): Copy to
16240 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
16241 Use atomic_mem_operand_0 predicate.
16242 (atomic_compare_and_swap<mode>_soft_gusa,
16243 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
16244 AraAdd constraints.
16245 (atomic_compare_and_swap<mode>_soft_tcb,
16246 atomic_compare_and_swap<mode>_soft_imask,
16247 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
16248 atomic_mem_operand_0 predicate and SraSdd constraints.
16249 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
16251 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
16252 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
16253 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
16254 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
16255 force_reg on the memory address.
16256 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
16257 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
16258 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
16259 atomic_mem_operand_1 predicate and Sra constraint.
16260 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
16261 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
16262 Use atomic_mem_operand_1 predicate.
16263 (atomic_<fetchop_name><mode>_hard): Copy to
16264 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
16265 Use atomic_mem_operand_1 predicate.
16266 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
16267 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
16268 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
16269 insn_and_split. Use atomic_mem_operand_1 predicate.
16270 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
16271 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
16272 Use atomic_mem_operand_1 predicate.
16273 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
16274 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
16275 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
16276 in generated insn with original mem operand before emitting the insn.
16277 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
16278 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
16279 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
16280 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
16281 Use atomic_mem_operand_1 predicate and AraAdd constraints.
16282 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
16283 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
16284 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
16285 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
16286 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
16287 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
16288 atomic_not_fetch<mode>_soft_tcb,
16289 atomic_<fetchop_name>_fetch<mode>_soft_imask,
16290 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
16291 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
16292 Use atomic_mem_operand_1 predicate and SraSdd constraints.
16294 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
16296 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
16297 and 3 earlyclobber operands.
16299 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
16301 * common.opt (fstack-reuse): Mark as optimization.
16303 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
16306 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
16308 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
16310 PR tree-optimization/64326
16311 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
16313 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
16315 PR gcov-profile/61889
16316 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
16318 2015-02-10 Richard Biener <rguenther@suse.de>
16320 PR tree-optimization/64995
16321 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
16322 value we use is final.
16323 (visit_reference_op_store): Always valueize op.
16324 (visit_use): Properly valueize vuses.
16326 2015-02-10 Richard Biener <rguenther@suse.de>
16328 PR tree-optimization/64909
16329 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
16330 pass a scalar-stmt count estimate to the cost model.
16331 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
16333 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
16335 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
16336 enabled by default together with var-tracking.
16338 2015-02-10 Nick Clifton <nickc@redhat.com>
16340 * config/rl78/rl78.c: Remove DIV attribute code accidentally
16341 included in previous rl78 commit.
16343 2015-02-10 Richard Biener <rguenther@suse.de>
16345 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
16346 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
16347 return the bitpack.
16349 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
16351 PR gcov-profile/61889
16352 * config.in: regenerate.
16353 * configure.in: Likewise.
16354 * configure.ac: Check for ftw.h.
16355 * gcov-tool.c: Check for ftw.h before using nftw.
16357 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
16360 * ipa-visibility.c (update_visibility_by_resolution_info): Only
16361 assert when not in lto mode.
16363 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
16365 * ira-color.c (setup_left_conflict_sizes_p): Simplify
16366 initialization/assignment of conflict_size.
16368 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
16371 * ipa-cp.c (gather_caller_stats): Skip thunks.
16372 (propagate_constants_topo): Skip aliases.
16374 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
16377 * config/sh/sh.c (sh_option_override): Don't change
16378 -freorder-blocks-and-partition to -freorder-blocks even when
16379 unwinding is enabled.
16380 (sh_can_follow_jump): Return false if the followee jump is
16381 a crossing jump when -freorder-blocks-and-partition is specified.
16382 * config/sh/sh.md (*jump_compact_crossing): New insn.
16384 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
16385 Kaz Kojima <kkojima@gcc.gnu.org>
16388 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
16389 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
16390 (sh_can_redirect_branch): Rename to ...
16391 (sh_can_follow_jump): ... this. Constify argument types.
16392 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
16393 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
16394 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
16395 * doc/tm.texi: Regenerate.
16397 2015-02-09 Jakub Jelinek <jakub@redhat.com>
16400 * builtins.c (expand_builtin): Call targetm.expand_builtin
16401 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
16403 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16406 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
16408 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16411 * ipa-icf.c (set_local): New function.
16412 (sem_function::merge): Use it.
16414 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16416 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
16417 (add_type_duplicate): Fix comparison of BINFOs.
16419 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16421 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
16422 on getting VOID pointer.
16424 2015-02-09 Jakub Jelinek <jakub@redhat.com>
16427 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
16430 2015-02-09 Richard Biener <rguenther@suse.de>
16432 * genmatch.c (replace_id): Copy expr_type.
16434 2015-02-09 Richard Biener <rguenther@suse.de>
16436 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
16437 (streamer_write_tree_bitfields): Declare.
16438 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
16439 properly unpack padding.
16440 (unpack_value_fields): Inline ...
16441 (streamer_read_tree_bitfields): ... here.
16442 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
16443 and properly add padding bits.
16444 (streamer_pack_tree_bitfields): Fold into ...
16445 (streamer_write_tree_bitfields): ... this new function,
16446 exposing the bitpack object.
16447 * lto-streamer-out.c (lto_write_tree_1): Call
16448 streamer_write_tree_bitfields.
16450 2015-02-09 Richard Biener <rguenther@suse.de>
16452 PR tree-optimization/54000
16453 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
16454 (struct ivopts_data): Add loop_loc member.
16455 (tree_ssa_iv_optimize_loop): Dump loop location.
16456 (create_new_ivs): Likewise, also dump number of IVs generated.
16458 2015-02-09 Martin Liska <mliska@suse.cz>
16460 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
16461 just if not yet registered.
16462 (ipa_icf_generate_summary): Register callgraph hooks.
16464 2015-02-08 Andrew Pinski <apinski@cavium.com>
16466 * config/aarch64/aarch64.c (gty_dummy): Delete.
16468 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16471 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
16472 (cgraph_node::local_p): Remove thunk related FIXME.
16474 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16477 * i386.c (ix86_function_regparm): Look through aliases to see if callee
16478 is local and optimized.
16479 (ix86_function_sseregparm): Likewise; also use target's SSE math
16480 settings; error out instead of silently generating wrong code
16482 (init_cumulative_args): Look through aliases.
16484 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16487 * ipa-split.c (execute_split_functions): Split if function has aliases.
16489 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
16492 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
16493 aliases before trying to expand it.
16494 (cgraph_node::expand_thunk): Fix formating.
16496 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
16498 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
16499 (Using Assembly Language with C): Expand introduction.
16500 (Basic Asm): Copy-edit. Add more information about uses of
16502 (Extended Asm): Copy-edit. Document new escape syntax and
16504 (Global Reg Vars): Copy-edit.
16505 (Local Reg Vars): Likewise.
16507 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
16511 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
16512 (DBX_CONTIN_CHAR): Define.
16514 2015-02-06 Sebastian Pop <s.pop@samsung.com>
16515 Brian Rzycki <b.rzycki@samsung.com>
16517 PR tree-optimization/64878
16518 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
16519 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
16520 Stop recursion at loop phi nodes after having visited a loop phi node.
16522 2015-02-06 Jakub Jelinek <jakub@redhat.com>
16524 * toplev.c (process_options): Change flag_ipa_ra before creating
16525 optimization_{default,current}_node.
16528 * cgraphunit.c (cgraph_node::expand_thunk): If
16529 restype is not is_gimple_reg_type nor the thunk_fndecl
16530 returns aggregate_value_p, set restmp to a temporary variable
16531 instead of resdecl.
16533 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
16535 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
16537 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
16540 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
16541 add a general secondary reload handler for SDmode, unless we have
16542 both read/write support for SDmode.
16544 2015-02-06 Jakub Jelinek <jakub@redhat.com>
16546 PR middle-end/64937
16547 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
16548 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
16549 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
16550 1 before, push it to abstract_vec.
16551 (dwarf2out_abstract_function): Adjust caller. Don't call
16552 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
16553 DECL_ABSTRACT_P flags for all abstract_vec elts.
16555 2015-02-06 Renlin Li <renlin.li@arm.com>
16557 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
16559 * tree-ssa.c (execute_update_addresses_taken): Likewise.
16561 2015-02-06 Jeff Law <law@redhat.com>
16564 * config/h8300/h8300.c (push): New argument "in_prologue".
16565 Pass "in_prologue" along to "F".
16566 (h8300_push_pop): Corresponding changes.
16567 (h8300_expand_prologue): Likewise.
16568 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
16570 2015-02-06 Jakub Jelinek <jakub@redhat.com>
16572 PR rtl-optimization/64957
16574 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
16575 IOR rather than for AND.
16577 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
16580 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
16581 of shift-add and (add + shift) operations. Rename local variable.
16583 2015-02-05 Jeff Law <law@redhat.com>
16586 * config/h8300/constraints.md (U): Correctly dectect
16587 "eightbit_data" memory addresses.
16588 * config/h8300/h8300.c (eightbit_constant_address_p): Also
16589 handle (const (plus (symbol_ref (x)))) where x is declared
16590 as an 8-bit data memory address.
16591 * config/h8300/h8300.md (call, call_value): Correctly detect
16592 "funcvec" functions.
16595 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
16596 24 to 28 bits for the H8/300.
16598 2015-02-06 Alan Modra <amodra@gmail.com>
16601 * config/rs6000/rs6000.c (chain_already_loaded): New function.
16602 (rs6000_call_aix): Use it.
16604 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
16606 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
16609 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
16611 * config/h8300/constraints.md ("U" constraint): Use strict
16612 variant of REG_OK_FOR_BASE_P after reload has started.
16614 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
16616 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
16617 define to zero if !TARGET_NEON.
16618 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
16620 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16621 Trevor Saunders <tsaunders@mozilla.com>
16624 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
16626 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16629 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
16630 when removing varpool nodes.
16632 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16635 * varpool.c (varpool_node::remove): Fix order of variables.
16637 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16640 * ipa-inline.c (inline_small_functions): Fix ordering issue between
16641 speculation resolution and key updates.
16643 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16645 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
16646 about not letting any speculative edges unupdated.
16648 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16651 * gcov-io.c (gcov_var): Export.
16653 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16655 PR middle-end/64922
16656 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
16657 edges that become speculative.
16659 2015-02-04 Jakub Jelinek <jakub@redhat.com>
16661 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
16662 or DW_LANG_Fortran08.
16663 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
16665 (gen_compile_unit_die): Handle "GNU Fortran2003" and
16666 "GNU Fortran2008" language strings.
16667 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
16668 * langhooks.h (lang_GNU_Fortran): New prototype.
16669 * langhooks.c (lang_GNU_Fortran): New function.
16670 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
16673 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
16675 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
16676 (RTX_OK_FOR_OLO10_P): Likewise.
16678 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
16680 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
16682 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
16684 PR middle-end/64922
16685 * gimple.c: Include gimple-ssa.h.
16686 (maybe_remove_unused_call_args): New function.
16687 * gimple.h (maybe_remove_unused_call_args): Declare.
16688 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
16689 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
16690 * gimple-fold.c (gimple_fold_call): Likewise.
16692 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
16694 PR rtl-optimization/64905
16695 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
16696 pointer alignment if it isn't needed.
16698 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
16700 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
16701 cortex-a72.cortex-a53.
16702 * config/aarch64/aarch64-tune.md: Regenerate.
16703 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
16705 2015-02-04 Nick Clifton <nickc@redhat.com>
16707 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
16710 2015-02-04 Jakub Jelinek <jakub@redhat.com>
16712 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
16713 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
16714 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
16716 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
16717 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
16718 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
16719 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
16720 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
16721 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
16722 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
16723 * tree-core.h (enum built_in_function): In between
16724 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
16725 for builtins that use DEF_BUILTIN_CHKP macro.
16727 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
16730 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
16731 operands for tcc_comparison exprs. Fix typos.
16734 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
16735 of two XORs that have an intervening AND or IOR.
16738 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
16739 simplification of XOR of AND to not allocate new rtx before
16740 committing to a simplification.
16742 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16744 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
16745 manual swaps in all peepholes.
16747 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16749 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
16750 of manual swapping implementation.
16751 (aarch64_expand_vec_perm_const_1): Likewise.
16753 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
16755 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
16756 (generic_addrcost_table): Remove NAMED_PARAM.
16757 (cortexa57_addrcost_table): Likewise.
16758 (xgene1_addrcost_table): Likewise.
16759 (generic_regmove_table): Likewise.
16760 (cortexa53_regmove_table): Likewise.
16761 (xgene1_regmove_table): Likewise.
16762 (generic_vector_table): Likewise.
16763 (cortexa57_vector_table): Likewise.
16764 (xgene1_vector_table): Likewise.
16765 (generic_tunings): Likewise.
16766 (cortexa53_tunings): Likewise.
16767 (cortexa57_tunings): Likewise.
16768 (xgene1_tunings): Likewise.
16770 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
16772 * config/arm/arm-cores.def: Add cortex-a72 and
16773 cortex-a72.cortex-a53.
16774 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
16775 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
16776 * config/arm/arm-tune.md: Regenerate.
16777 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
16778 "cortex-a72.cortex-a53".
16779 * doc/invoke.texi (ARM Options/-mtune): Likewise.
16781 2015-02-04 Nick Clifton <nickc@redhat.com>
16784 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
16786 (nonimmediate_di_operand): Likewise.
16788 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
16789 prefixes of known F5 using MSP430 MCUs.
16791 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16793 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
16794 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
16795 instead of __builtin_sqrt.
16797 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
16799 * varasm.c (do_assemble_alias): Follow transparent alias
16801 (default_assemble_visibility): Follow transparent alias
16802 chain for decl name.
16804 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
16806 PR middle-end/62103
16807 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
16808 to compute size of referenced value in the constant case.
16810 2015-02-03 Jakub Jelinek <jakub@redhat.com>
16812 PR rtl-optimization/64756
16813 * cse.c (invalidate_dest): New function.
16814 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
16815 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
16816 invalidate and do not record it.
16818 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
16821 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
16822 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
16823 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
16824 atomic_nand<mode>_soft_tcb): New insns.
16825 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
16826 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
16827 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
16828 Split into atomic_not_fetchsi_hard if operands[0] is unused.
16829 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
16830 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
16831 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
16832 atomic_not<mode>_hard if operands[0] is unused.
16833 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
16834 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
16835 if operands[0] is unused.
16836 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
16837 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
16838 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
16839 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
16841 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
16842 into atomic_not<mode>_soft_tcb if operands[0] is unused.
16843 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
16844 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
16845 if operands[0] is unused.
16846 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
16847 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
16848 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
16849 atomic_nand_fetchsi_hard if operands[0] is unused.
16850 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
16851 atomic_nand<mode>_hard if operands[0] is unused.
16852 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
16853 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
16854 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
16855 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
16856 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
16857 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
16858 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
16859 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
16860 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
16861 atomic_not<mode>_hard if operands[0] is unused.
16862 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
16863 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
16865 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
16866 into atomic_not<mode>_soft_tcb if operands[0] is unused.
16867 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
16868 atomic_nand<mode>_hard if operands[0] is unused.
16869 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
16870 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
16872 2015-02-03 David Malcolm <dmalcolm@redhat.com>
16875 * Makefile.in (GCC_OBJS): Add gcc-main.o.
16876 * gcc-main.c: New file, containing "main" taken from gcc.c.
16877 * gcc.c (do_self_spec): Free decoded_options.
16878 (class driver): Move declaration to gcc.h.
16879 (main): Move declaration and implementation to new file
16881 (driver_get_configure_time_options): New function.
16882 * gcc.h (class driver): Move this declaration here, from
16884 (driver_get_configure_time_options): New declaration.
16886 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
16888 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
16889 cross-module inlining.
16890 * cgraph.h (cgraph_node): Add flag merged.
16891 * ipa-icf.c (sem_function::merge): Maintain it.
16893 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
16895 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
16896 instead of OBJECT_P.
16898 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
16901 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
16902 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
16903 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
16904 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
16906 2015-02-03 Jakub Jelinek <jakub@redhat.com>
16909 * combine.c (reg_n_sets_max): New variable.
16910 (can_change_dest_mode, reg_nonzero_bits_for_combine,
16911 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
16912 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
16913 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
16914 (rest_of_handle_combine): Initialize reg_n_sets_max.
16916 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
16918 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
16919 if some always_inline was inlined, apply changes before inlining
16922 2015-02-02 David Malcolm <dmalcolm@redhat.com>
16925 * config/arm/arm.c (arm_option_override): Set
16926 arm_selected_arch/cpu/tune to NULL on entry.
16928 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
16929 Andrew Pinski <pinskia@gcc.gnu.org>
16930 Jakub Jelinek <jakub@gcc.gnu.org>
16933 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
16934 integer typing for small model. Use IN_RANGE.
16936 2015-02-02 Richard Biener <rguenther@suse.de>
16938 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
16939 * tree-vrp.c (vrp_valueize_1): Likewise.
16941 2015-02-02 Alan Modra <amodra@gmail.com>
16943 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
16944 than mem for toc_restore.
16945 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
16946 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
16947 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
16949 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
16952 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
16953 explicit default options.
16955 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
16958 * ipa-utils.c (ipa_merge_profiles): Add release argument.
16959 * ipa-icf.c (sem_function::merge): Do not release body when merging.
16960 * ipa-utils.h (ipa_merge_profiles): Update prototype.
16962 2015-02-01 Jakub Jelinek <jakub@redhat.com>
16965 * cfgexpand.c (deep_ter_debug_map): New variable.
16966 (avoid_deep_ter_for_debug): New function.
16967 (expand_debug_expr): If TERed SSA_NAME is in
16968 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
16969 instead of trying to expand SSA_NAME's def stmt.
16970 (expand_debug_locations): When expanding debug bind
16971 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
16972 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
16974 (pass_expand::execute): Call avoid_deep_ter_for_debug on
16975 all debug bind stmts. Delete deep_ter_debug_map after
16976 expand_debug_location if non-NULL and clear it.
16978 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
16981 * config/sh/sync.md (atomic_fetch_notsi_hard,
16982 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
16983 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
16984 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
16985 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
16986 atomic_not_fetch<mode>_soft_imask): New insns.
16988 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16990 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
16991 (rank_for_schedule_debug): Split from ...
16992 (rank_for_schedule): ... this.
16993 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
16994 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
16996 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
16998 * doc/md.texi (Machine Constraints): Alphabetize table by target.
16999 * doc/extend.texi (x86 Variable Attributes): Move section to
17000 correct alphabetization after renaming.
17001 (x86 Type Attributes): Likewise.
17002 (Target Builtins): Re-alphabetize menu.
17003 (x86 Built-in Functions): Move section to correct alphabetization
17005 (x86 transactional memory intrinsics): Likewise.
17006 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
17007 and x86 Windows Options in table and menu.
17008 (x86 Options): Move section to correct alphabetization after
17010 (x86 Windows Options): Likewise.
17012 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
17014 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
17015 preferred names of the architecture and its 32- and 64-bit
17017 * doc/invoke.texi: Likewise.
17018 * doc/md.texi: Likewise.
17020 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
17023 * config/i386/predicates.md (address_no_seg_operand): Reject
17024 non-CONST_INT_P operands in invalid mode.
17026 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
17028 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
17029 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
17030 * config/i386/predicates.md (address_no_seg_operand): Call
17031 address_operand with VOIDmode.
17032 (vsib_address_operand): Ditto.
17033 (address_mpx_no_base_operand): Ditto.
17034 (address_mpx_no_index_operand): Ditto.
17036 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
17039 * lra-constraints.c (original_subreg_reg_mode): New.
17040 (simplify_operand_subreg): Try to simplify subreg of const. Use
17041 original_subreg_reg_mode for it.
17042 (swap_operands): Update original_subreg_reg_mode.
17043 (curr_insn_transform): Set up original_subreg_reg_mode.
17045 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
17048 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
17050 (process_alt_operands): Use it.
17051 (curr_insn_transform): Check the optional reload pseudo class is
17054 2015-01-30 Joseph Myers <joseph@codesourcery.com>
17056 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
17057 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
17059 * toplev.h (init_asm_output): Update comment on use of
17060 UNKNOWN_LOCATION with fatal_error.
17061 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
17062 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
17063 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
17064 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
17065 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
17066 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
17067 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
17068 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
17069 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
17070 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
17071 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
17072 fatal_error changed to pass input_location as first argument.
17074 2015-01-30 Martin Liska <mliska@suse.cz>
17076 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
17077 in #pragma GCC diagnostic guards.
17079 2015-01-30 Richard Biener <rguenther@suse.de>
17081 PR tree-optimization/64829
17082 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
17083 not add a widening conversion pattern but hand off extra
17084 widenings to callers.
17085 (vect_recog_widen_mult_pattern): Handle extra widening produced
17086 by vect_handle_widen_op_by_const.
17087 (vect_recog_widen_shift_pattern): Likewise.
17088 (vect_pattern_recog_1): Remove excess vertical space in dumping.
17089 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
17090 (vect_init_vector_1): Likewise.
17091 (vect_get_vec_def_for_operand): Likewise.
17092 (vect_finish_stmt_generation): Likewise.
17093 (vectorizable_load): Likewise.
17094 (vect_analyze_stmt): Likewise.
17095 (vect_is_simple_use): Likewise.
17097 2015-01-29 Jeff Law <law@redhat.com>
17099 * combine.c (try_combine): Fix typo in comment.
17101 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
17104 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
17105 (rs6000_stack_info): Add assert.
17106 (rs6000_output_savres_externs): New function, split off from...
17107 (rs6000_output_function_prologue): ... here. Do not call it for
17110 2015-01-29 Jeff Law <law@redhat.com>
17113 * combine.c (try_combine): If I0 is a memory load and I3 a store
17114 to a related address, increase the "goodness" of doing a 4-insn
17115 combination with I0-I3.
17116 (make_field_assignment): Handle SUBREGs in the ior+and case.
17118 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
17120 PR tree-optimization/64746
17121 * tree-if-conv.c (mask_exists): New function.
17122 (predicate_mem_writes): Save created mask with given size for further
17124 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
17125 (ifcvt_repair_bool_pattern): Collect all statements that are root
17126 of bool pattern and use iterative algorithm to remove multiple uses
17127 of predicates, display number of required iterations.
17129 2015-01-29 Richard Biener <rguenther@suse.de>
17131 PR tree-optimization/64853
17132 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
17133 stmt will get simulated again.
17134 * tree-ssa-ccp.c (valueize_op_1): Likewise.
17136 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17138 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
17139 return_in_pc. Remove redundant assignments.
17140 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
17141 (arm_expand_epilogue): Don't compare boolean with true in if condition.
17143 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
17145 * config/i386/i386.c (ix86_mode_after): Make static.
17147 2015-01-29 Richard Biener <rguenther@suse.de>
17149 PR tree-optimization/64844
17150 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
17151 dump cost model analysis.
17152 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17153 Do not register adjusted load/store costs here.
17155 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
17156 Uros Bizjak <ubizjak@gmail.com>
17158 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
17159 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
17160 using x86_use_pseudo_pic_reg.
17161 * config/i386/i386.c (ix86_conditional_register_usage): Remove
17162 support for fixed PIC register.
17163 (ix86_use_pseudo_pic_reg): Not static any more.
17165 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
17167 PR middle-end/64805
17168 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
17169 to avoid error in cgraph node verification.
17171 2015-01-29 Marek Polacek <polacek@redhat.com>
17173 * doc/standards.texi: Reflect that the default for C is gnu11.
17175 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
17178 * reorg.c (switch_text_sections_between_p): New function.
17179 (relax_delay_slots): Call it when testing if the jump insn
17180 is removable. Use targetm.can_follow_jump when testing if
17181 the conditional branch can follow an unconditional jump.
17183 2015-01-27 Caroline Tice <cmtice@google.com>
17185 Committing VTV Cywin/Ming patch for Patrick Wollgast
17186 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
17187 if -fvtable-verify=preinit/std is used.
17188 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
17189 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
17190 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
17191 if -fvtable-verify=preinit/std is used.
17192 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
17193 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
17194 if -fvtable-verify=preinit/std is used.
17195 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
17196 * config/i386/mingw32.h (LIB_SPEC): Likewise.
17197 * varasm.c (assemble_variable): Add code to properly set the comdat
17198 section and name for the .vtable_map_vars section in case the
17199 target is PE or COFF.
17201 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
17204 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
17205 make sane BB profile.
17206 (cgraph_node::expand_thunk): Make sane BB profile.
17207 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
17208 * cgraph.h (init_lowered_empty_function): Update prototype.
17209 * config/i386/i386.c (make_resolver_func): Update call.
17210 * predict.c (gate): Disable branch prediction pass if
17211 profile is already there.
17213 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
17215 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
17216 * opth-gen.awk: Likewise.
17217 * common.opt: Mark flag_fp_contract_mode as Optimization.
17219 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
17221 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
17222 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
17224 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
17227 * config/sh/predicates.md (atomic_arith_operand,
17228 atomic_logical_operand): Remove.
17229 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
17230 (atomic_arith_operand_0): New predicate.
17231 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
17232 Use atomic_arith_operand_0 for input values.
17233 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
17234 atomic_compare_and_swap<mode>_soft_gusa,
17235 atomic_compare_and_swap<mode>_soft_tcb,
17236 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
17237 arith_reg_operand instead of register_operand.
17238 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
17239 atomic_arith_operand_0 for newval input.
17240 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
17241 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
17242 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
17243 arith_reg_operand instead of register_operand.
17244 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
17245 fetchop_predicate_1, fetchop_constraint_1_llcs,
17246 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
17247 fetchop_constraint_1_imask): New code iterator attributes.
17248 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
17249 register_operand. Use fetchop_predicate_1.
17250 (atomic_fetch_<fetchop_name>si_hard,
17251 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
17252 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
17253 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
17254 and arith_reg_operand instead of register_operand. Use
17255 fetchop_predicate_1, fetchop_constraint_1_gusa.
17256 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
17257 and arith_reg_operand instead of register_operand. Use
17258 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
17260 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
17261 and arith_reg_operand instead of register_operand. Use
17262 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
17264 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
17265 register_operand. Use atomic_logical_operand_1.
17266 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
17267 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
17268 arith_reg_operand instead of register_operand.
17269 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
17270 Use arith_reg_dest and arith_reg_operand instead of register_operand.
17271 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
17272 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
17273 register_operand. Use fetchop_predicate_1.
17274 (atomic_<fetchop_name>_fetchsi_hard,
17275 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
17276 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
17277 fetchop_constraint_1_llcs.
17278 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
17279 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
17280 fetchop_constraint_1_gusa.
17281 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
17282 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
17283 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
17284 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
17285 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
17286 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
17287 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
17288 register_operand. Use atomic_logical_operand_1.
17289 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
17290 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
17291 arith_reg_operand instead of register_operand.
17292 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
17293 arith_reg_operand instead of register_operand. Use logical_operand
17294 and K08. Adjust asm sequence to allow R0 usage.
17295 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
17296 arith_reg_operand instead of register_operand. Use logical_operand
17299 2015-01-28 Jakub Jelinek <jakub@redhat.com>
17302 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
17303 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
17304 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
17305 only get_full_len HOST_WIDE_INTs from get_val () array rather than
17306 all bits in *val_wide.
17308 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
17310 * varpool.c (tls_model_names): Fix names.
17311 (varpool_node::dump): Dump tls- prefix for tls models.
17313 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
17314 Bernd Schmidt <bernds@codesourcery.com>
17315 Nathan Sidwell <nathan@codesourcery.com>
17317 * config/nvptx/mkoffload.c: New file.
17318 * config/nvptx/t-nvptx: Add build rules for it.
17319 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
17320 (extra_programs): Add mkoffload.
17321 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
17323 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
17325 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
17327 PR middle-end/64809
17328 * cfgexpand.c (reorder_operands): Skip debug gimples.
17330 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
17332 PR tree-optimization/64277
17333 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
17334 range info when possible to refine estimation.
17336 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
17338 PR tree-optimization/64718
17339 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
17340 be a 16bit unsigned integer when n->range is 16.
17341 (bswap_replace): Convert src to that type if necessary for all bswap
17342 sizes. Fix rotation right notation in nearby comment. Use bswap_type
17343 set in pass_optimize_bswap::execute ().
17345 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
17347 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
17348 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
17349 integer and floating point variants.
17350 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
17352 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
17354 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
17355 for all vector modes.
17357 2015-01-28 Jakub Jelinek <jakub@redhat.com>
17360 * doc/sourcebuild.texi (comdat_group): Document.
17362 2015-01-28 Terry Guo <terry.guo@arm.com>
17364 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
17366 2015-01-27 David Malcolm <dmalcolm@redhat.com>
17368 * toplev.c (print_version): Add param "show_global_state", and
17369 only print GGC and plugin information if it is true.
17370 (init_asm_output): Pass in "true" for the new param when calling
17372 (process_options): Likewise.
17373 (toplev::main): Likewise.
17374 * toplev.h (print_version): Add new param to decl.
17376 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
17380 * tree.c (lookup_binfo_at_offset): New function.
17381 (get_binfo_at_offset): Use it.
17383 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
17386 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
17387 on vtable being vtable.
17389 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
17391 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
17392 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
17393 -mhotpatch= option.
17394 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
17395 -mno-hotpatch options. Change syntax of -mhotpatch= option.
17396 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
17398 (s390_hotpatch_trampoline_halfwords_max): Renamed.
17399 (s390_hotpatch_hw_max): New name.
17400 (s390_hotpatch_trampoline_halfwords): Renamed.
17401 (s390_hotpatch_hw_before_label): New name.
17402 (get_hotpatch_attribute): Removed.
17403 (s390_hotpatch_hw_after_label): New name.
17404 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
17406 (s390_attribute_table): Ditto.
17407 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
17408 (s390_function_num_hotpatch_hw): New name.
17409 Remove special handling of inline functions and hotpatching.
17410 Return number of nops before and after the function label.
17411 (s390_can_inline_p): Removed.
17412 (s390_asm_output_function_label): Emit a configurable number of nops
17413 after the function label.
17414 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
17415 (TARGET_CAN_INLINE_P) Removed.
17416 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
17418 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17419 Jiong Wang <jiong.wang@arm.com>
17421 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
17423 (cb<optab><mode>1): Likewise.
17424 * config/aarch64/iterators.md (bcond): New define_code_attr.
17426 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17428 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
17431 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17433 * config/s390/s390.c (s390_register_move_cost): Increase costs for
17436 2015-01-27 Richard Biener <rguenther@suse.de>
17438 * tree-vrp.c (update_value_range): Intersect the range with
17439 old recorded SSA name range information.
17441 2015-01-27 Nick Clifton <nickc@redhat.com>
17443 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
17444 BC, DE and HL registers directly, not via AX.
17445 When decrementing the stack pointer by a large amount, transfer SP
17446 into AX and perform the subtraction there.
17447 (rl78_expand_epilogue): Perform the inverse of the above
17450 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17452 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
17454 2015-01-27 Jakub Jelinek <jakub@redhat.com>
17455 Yury Gribov <y.gribov@samsung.com>
17458 * ubsan.c (ubsan_source_location): Refactor code.
17459 (ubsan_type_descriptor): Update type size. Refactor code.
17461 2015-01-27 Richard Biener <rguenther@suse.de>
17463 PR tree-optimization/56273
17464 PR tree-optimization/59124
17465 PR tree-optimization/64277
17466 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
17467 from the first VRP pass.
17469 2015-01-27 Jakub Jelinek <jakub@redhat.com>
17472 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
17473 handle the first argument in the same loop as all the other arguments.
17475 PR rtl-optimization/61058
17476 * jump.c (cleanup_barriers): Update basic block boundaries
17477 if BLOCK_FOR_INSN is non-NULL on PREV.
17479 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
17481 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
17482 bounds narrowing, already instrumented calls and calls to
17483 not instrumentable functions.
17485 2015-01-27 Jakub Jelinek <jakub@redhat.com>
17487 PR tree-optimization/64807
17488 * wide-int.cc (wi::divmod_internal): Clear
17489 b_dividend[dividend_blocks_needed].
17491 2015-01-26 DJ Delorie <dj@redhat.com>
17493 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
17494 volatile memory references.
17496 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
17499 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
17501 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
17502 shifts if it already fits into K08.
17504 2015-01-26 Jakub Jelinek <jakub@redhat.com>
17507 * ipa-inline.c (inline_small_functions): Print "unknown" even
17508 if edge->call_stmt is non-NULL, but has builtins or unknown
17511 PR middle-end/64421
17512 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
17513 with asterisk, skip the first character.
17515 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
17518 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
17521 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
17524 * config/i386/i386.md (*movdi_internal): Also check operand 0
17525 to determine TYPE_LEA operand.
17526 (*movsi_internal): Ditto.
17528 2015-01-26 Jakub Jelinek <jakub@redhat.com>
17530 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
17531 OPTION_MASK_QUAD_MEMORY_ATOMIC.
17533 2015-01-26 Renlin Li <renlin.li@arm.com>
17535 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
17537 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
17540 2015-01-26 Richard Biener <rguenther@suse.de>
17542 PR middle-end/64764
17543 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
17544 combining two BIT_AND_EXPR predicates.
17546 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
17549 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
17551 2015-01-26 Terry Guo <terry.guo@arm.com>
17553 * config/arm/arm.c (arm_file_start): Update the assignment of
17554 Tag_ABI_HardFP_use.
17556 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
17558 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
17560 config/arm/arm.md: Include the new Cortex-A57 model.
17561 (generic_sched): Don't use generic_sched when tuning for
17564 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
17565 Uros Bizjak <ubizjak@gmail.com>
17567 * config/i386/i386.c (get_builtin_code_for_version): Add
17568 support for BMI and BMI2 multiversion functions.
17570 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17572 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
17573 (extract_bit_field): Likewise.
17574 (extract_low_bits): Likewise.
17575 (expand_mult): Likewise.
17576 (expand_mult_highpart_adjust): Likewise.
17578 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
17580 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
17581 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
17582 * config/i386/i386.c (processor_model): Add
17583 M_INTEL_COREI7_BROADWELL.
17584 (arch_names_table): Add "broadwell".
17586 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
17595 * config/sh/sh-protos.h
17596 (sh_extending_set_of_reg::can_use_as_unextended_reg,
17597 sh_extending_set_of_reg::use_as_unextended_reg,
17598 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
17599 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
17600 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
17601 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
17602 (sh_treg_insns): New class.
17603 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
17604 (scope_counter): New class.
17605 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
17606 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
17607 sh_extending_set_of_reg::can_use_as_unextended_reg,
17608 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
17609 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
17610 sh_split_treg_set_expr): New functions.
17611 (addsubcosts): Handle treg_set_expr.
17612 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
17613 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
17614 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
17615 (sh_insn_operands_modified_between_p): Make non-static.
17616 * config/sh/predicates.md (zero_extend_movu_operand): Allow
17617 simple_mem_operand in addition to displacement_mem_operand.
17618 (zero_extend_operand): Don't allow zero_extend_movu_operand.
17619 (treg_set_expr, treg_set_expr_not_const01,
17620 arith_reg_or_treg_set_expr): New predicates.
17621 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
17622 arith_or_int_operand instead of logical_operand. Convert to
17623 insn_and_split. Try to optimize constant operand in splitter.
17624 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
17625 (*tstqi_t_zero): Delete.
17626 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
17627 (tstsi_t_and_not): Delete.
17628 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
17629 Convert to insn_and_split.
17630 (unnamed split, tstsi_t_zero_extract_xor,
17631 tstsi_t_zero_extract_subreg_xor_little,
17632 tstsi_t_zero_extract_subreg_xor_big): Delete.
17633 (*tstsi_t_shift_mask): New insn_and_split.
17634 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
17635 to recombine with surrounding insns when splitting.
17636 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
17637 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
17638 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
17639 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
17640 (*cbranch_div0s: Delete.
17641 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
17642 Try to recombine with surrounding insns when splitting. Add operand
17644 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
17645 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
17646 *addc_r_r_msb, *addc_2r_msb): Delete.
17647 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
17649 (*addc_negreg_t): New insn_and_split.
17650 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
17651 Try to recombine with surrounding insns when splitting.
17652 Add operand order variants.
17653 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
17654 insn_and_split patterns.
17655 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
17656 surrounding insns when splitting.
17657 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
17658 (*rotcl): Likewise. Add zero_extract variant.
17659 (*ashrsi2_31): New insn_and_split.
17660 (*negc): Convert to insn_and_split. Use treg_set_expr.
17661 (*zero_extend<mode>si2_disp_mem): Update comment.
17662 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
17664 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
17665 with surrounding insns when splitting.
17666 (any_treg_expr_to_reg): New insn_and_split.
17667 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
17668 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
17669 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
17670 *zero_extract_2): New single bit zero extract patterns.
17671 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
17672 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
17673 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
17674 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
17676 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
17677 register_operand for set source.
17679 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
17681 * i386.opt (prefetch_sse): New targetsave.
17682 * i386.c (ix86_function_specific_save): Save prefetch_sse.
17683 (ix86_function_specific_restore): Restore prefetch_sse and initialize
17684 ix86_cost/ix86_tune_cost.
17686 2015-01-23 David Malcolm <dmalcolm@redhat.com>
17688 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17689 Support the JIT by using 0 as the language type.
17691 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
17694 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
17695 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
17696 (mark_regno_live, process_bb_lives): Pass new parameter value to
17697 make_hard_regno_born.
17699 2015-01-23 Jakub Jelinek <jakub@redhat.com>
17701 PR rtl-optimization/63637
17702 PR rtl-optimization/60663
17703 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
17704 if elt->cost is MAX_COST for ASM_OPERANDS.
17705 (find_sets_in_insn): Fix up comment typo.
17706 (cse_insn): Don't set src_volatile for all non-volatile
17707 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
17708 or with "memory" clobber. Set elt->cost to MAX_COST
17709 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
17710 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
17712 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
17714 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
17717 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
17719 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
17720 libgcc/config/i386/elf-lib.h.
17722 2015-01-23 Jakub Jelinek <jakub@redhat.com>
17725 * gcc.c (print_configuration): Don't print a blank line at the end
17727 (run_attempt): ... but here unstead.
17729 PR middle-end/64734
17730 * omp-low.c (scan_sharing_clauses): Don't ignore
17731 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
17732 on target data/update constructs.
17734 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
17737 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
17738 (DEBUG_RELOAD): Removed define.
17739 (m32c_limit_reload_class): Enable traces with if DEBUG0.
17740 (m32c_function_arg): Added a type cast.
17741 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
17742 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
17743 * config/m32c/bitops.md (andqi3_16): Likewise.
17744 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
17745 (push_a01_l): Likewise.
17747 2015-01-23 David Malcolm <dmalcolm@redhat.com>
17750 * main.c (main): Construct toplev instances with init_signals=true.
17751 * toplev.c (general_init): Add param "init_signals", and use it to
17752 conditionalize the calls to signal and host_hooks.extra_signals.
17753 (toplev::toplev): Add param "init_signals".
17754 (toplev::main): When invoking general_init, pass m_init_signals
17755 to control whether signal-handlers are installed.
17756 * toplev.h (toplev::toplev): Add param "init_signals".
17757 (toplev::m_init_signals): New field.
17759 2015-01-23 David Malcolm <dmalcolm@redhat.com>
17762 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
17763 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
17764 latter may be affected by the former (e.g. on i686).
17766 2015-01-23 Martin Liska <mliska@suse.cz>
17768 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
17769 false positive during profiledbootstrap.
17771 2015-01-23 Tom de Vries <tom@codesourcery.com>
17774 * lto-opts.c (lto_write_options): Output non-explicit conservative
17776 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
17777 (append_compiler_options): Pass -fopenacc through.
17779 2015-01-23 Tom de Vries <tom@codesourcery.com>
17782 * lto-opts.c (lto_write_options): Output non-explicit conservative
17784 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
17785 (append_compiler_options): Pass -fopenmp through.
17787 2015-01-23 Jakub Jelinek <jakub@redhat.com>
17790 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
17793 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
17794 * diagnostic.def (DK_ICE_NOBT): New kind.
17795 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
17796 like DK_ICE, but never print backtrace.
17797 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
17798 (internal_error_no_backtrace): New function.
17799 * gcc.c (execute): Use internal_error_no_backtrace instead of
17802 2015-01-22 Jeff Law <law@redhat.com>
17805 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
17806 improve code density for small immediate to memory case.
17807 (insv): Better handle bitfield assignments when the field is
17808 being set to all ones.
17809 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
17812 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17813 Jakub Jelinek <jakub@redhat.com>
17815 PR middle-end/64729
17816 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
17817 for !TARGET_LIBC_PROVIDES_SSP version and
17818 -fstack-protector-{all,strong,explicit} otherwise.
17819 * config/freebsd.h (LINK_SSP_SPEC): Handle
17820 -fstack-protector-{strong,explicit}.
17822 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
17823 H.J. Lu <hongjiu.lu@intel.com>
17826 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
17829 2015-01-22 Wei Mi <wmi@google.com>
17831 PR rtl-optimization/64557
17832 * dse.c (record_store): Call get_addr for mem_addr.
17833 (check_mem_read_rtx): Likewise.
17835 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
17837 * fold-const.c (const_binop): Add early return for non-tcc_binary.
17839 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
17841 * toplev.c (init_local_tick): Process the failure when read
17842 fails for random_seed.
17844 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
17845 'pretty_name' to avoid memory overflow.
17847 2015-01-22 Richard Biener <rguenther@suse.de>
17849 PR middle-end/64728
17850 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
17851 abnormal coalescing on undefined SSA names.
17853 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
17857 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
17859 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
17861 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
17863 PR middle-end/63325
17864 * fold-const.c (fold_checksum_tree): Don't include value of
17865 expr->decl_with_vis.symtab_node in the checksum.
17867 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17869 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
17871 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
17874 * gcc.c (insert_comments): New function.
17875 (try_generate_repro): Call it.
17876 (append_text): Removed.
17878 2015-01-22 Richard Biener <rguenther@suse.de>
17880 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
17881 with IL incompatible options. Properly honor user optimize
17884 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
17886 PR rtl-optimization/64682
17887 * combine.c (distribute_notes): When moving a death note for
17888 a register that is set in the new I2, make sure to put it
17889 before that new I2.
17891 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
17893 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
17894 not TARGET_DEFAULT.
17896 2015-01-21 Jakub Jelinek <jakub@redhat.com>
17899 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
17900 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
17901 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
17904 * doc/invoke.texi (-fsanitize=vptr): Document.
17906 PR rtl-optimization/62078
17907 * dse.c: Include cfgcleanup.h.
17908 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
17909 anything call purge_all_dead_edges and cleanup_cfg at the end
17912 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
17914 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
17917 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
17919 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
17922 2015-01-21 David Sherwood <david.sherwood@arm.com>
17923 Tejas Belagod <Tejas.Belagod@arm.com>
17925 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
17926 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
17927 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
17930 2015-01-21 David Sherwood <david.sherwood@arm.com>
17931 Tejas Belagod <Tejas.Belagod@arm.com>
17933 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
17934 (aarch64_reverse_mask): New decls.
17935 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
17936 (insn_count): New mode_attr.
17937 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
17938 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
17939 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
17940 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
17941 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
17942 (aarch64_simd_st4): New patterns.
17943 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
17944 (aarch64_reverse_mask): New functions.
17946 2015-01-21 Richard Sandiford <richard.sandiford@arm.com>
17948 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
17950 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
17951 addressing modes for BE.
17952 (aarch64_print_operand): Add 'R' specifier.
17953 (aarch64_simd_disambiguate_copy): Delete.
17954 (aarch64_simd_emit_reg_reg_move): New function.
17955 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
17956 in define_splits for structural moves.
17957 (mov<mode>): Use less restrictive predicates.
17958 (*aarch64_mov<mode>): Simplify and only allow for LE.
17959 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
17961 2015-01-21 Alan Hayward <alan.hayward@arm.com>
17963 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
17965 2015-01-21 Richard Henderson <rth@redhat.com>
17968 * ccmp.c (used_in_cond_stmt_p): Remove.
17969 (expand_ccmp_expr): Don't use it.
17971 2015-01-21 Nick Clifton <nickc@redhat.com>
17973 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
17976 2015-01-21 Richard Biener <rguenther@suse.de>
17978 PR middle-end/64313
17979 * tree-core.h (builtin_info, builtin_info_type): Turn from
17980 an object with two arrays into an array of an object with
17981 decl and two flags, implicit_p and declared_p.
17982 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
17983 set_builtin_decl, set_builtin_decl_implicit_p,
17984 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
17985 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
17986 * builtins.c (builtin_info): Adjust.
17987 * gimplify.c (gimplify_addr_expr): References to builtins
17988 that have been declared by the user makes them eligible for
17989 use by the compiler. Call set_builtin_decl_implicit_p on them.
17991 2015-01-20 Jeff Law <law@redhat.com>
17994 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
17995 allow pc-relative addresses in operand predicates or constraints.
17997 2015-01-21 Bin Cheng <bin.cheng@arm.com>
17999 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
18000 neon on aarch32 processors for stringops.
18002 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18005 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
18007 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18010 * ipa-inline.c: Include lto-streamer.h
18011 (report_inline_failed_reason): Output source file differences and
18012 flags on optimization/target node mismatch.
18013 (can_inline_edge_p): Consider caller to be the outer inline function;
18014 be less restrictive about matching opimize and optimize_size attributes.
18015 (inline_account_function_p): Break out from ...
18016 (inline_small_functions): ... here.
18017 * ipa-inline-transform.c (clone_inlined_nodes): Use
18018 inline_account_function_p.
18019 (inline_call): Use optimize attribution; use inline_account_function_p.
18020 (inline_transform): Use opt_for_fn.
18021 * ipa-inline.h (inline_account_function_p): Declare.
18023 2015-01-20 Jakub Jelinek <jakub@redhat.com>
18026 * dwarf2out.c (decl_piece_node): Don't put bitsize into
18027 mode if bitsize <= 0.
18028 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
18029 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
18030 sizes and positions.
18032 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
18034 * config/nios2/nios2.c (nios2_asm_file_end): Implement
18035 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
18037 (TARGET_ASM_FILE_END): Define.
18039 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18041 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
18042 (struct tune_params): Use the enum.
18043 * arm.c (arm_*_tune): Update.
18044 (arm_option_override): Update.
18046 2015-01-20 Richard Biener <rguenther@suse.de>
18049 * ipa-reference.c (add_static_var): Inline ...
18050 (analyze_function): ... here after splitting out from ...
18051 (is_proper_for_analysis): ... this.
18053 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
18056 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
18057 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
18058 replace the conditional with it's true branch.
18059 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
18060 (arm_lra_p): Remove.
18062 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
18064 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
18066 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18068 * config/tilegx/mul-tables.c: Move symtab.h include after
18069 coretypes.h include.
18070 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
18071 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
18072 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
18073 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
18074 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
18076 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
18080 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
18082 PR rtl-optimization/64081
18083 * loop-iv.c (def_pred_latch_p): New function.
18084 (latch_dominating_def): Allow specific cases with non-single
18086 (iv_get_reaching_def): Likewise.
18087 (check_complex_exit_p): New function.
18088 (check_simple_exit): Use check_complex_exit_p to allow certain cases
18089 with exits not executing on any iteration.
18091 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18094 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
18095 to set branch cost.
18097 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18100 * i386.c (gate): Check flag_expensive_optimizations and
18102 (ix86_option_override_internal): Drop optimize_size condition
18103 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
18104 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
18105 MASK_PREFER_AVX128.
18106 (ix86_avx256_split_vector_move_misalign,
18107 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
18108 * sse.md (all uses of TARGET_PREFER_AVX128): Add
18109 optimize_insn_for_speed_p check.
18111 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
18113 * config/mips/mips.h (FP_ASM_SPEC): New define.
18114 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
18117 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
18120 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
18121 nullptr for insn when reaching the first insn.
18122 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
18123 (sh_insn_operands_modified_between_p): Add nullptr check.
18124 (sh_find_extending_set_of_reg): Fix log message. Don't accept
18125 sign extending mem load if the insn contains any UNSPEC or
18128 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18130 * params.def (inline-unit-growth): Drop to 15%.
18131 * invoke.texi (inline-unit-growth): Document change.
18133 2015-01-19 Martin Liska <mliska@suse.cz>
18136 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
18137 function for second argument of OBJ_TYPE_REF.
18139 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18142 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
18143 whether function is an alias.
18145 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
18147 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
18150 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
18152 PR rtl-optimization/64671
18153 * lra-remat.c (operand_to_remat): Don't consider jump and call
18156 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
18159 * config/rs6000/default64.h: Include rs6000-cpus.def.
18160 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
18161 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
18162 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
18164 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
18166 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
18167 pseudo-op to specify assembler dialect.
18169 2015-01-19 Martin Liska <mliska@suse.cz>
18172 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
18173 Handle safe potentially removed nodes during filtering.
18175 2015-01-19 Martin Liska <mliska@suse.cz>
18177 * doc/extend.texi (no_icf): Add new attribute description.
18178 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
18179 where the pass attempts to merge a function with no_icf attribute.
18181 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18184 * doc/md.texi (ARM Options): Document register constraints.
18186 2015-01-19 Jiong Wang <jiong.wang@arm.com>
18187 Andrew Pinski <apinski@cavium.com>
18190 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
18191 (ashl<mode>3): Don't expand if operands[2] is not constant.
18193 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18196 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
18197 Match xor-and-xor RTL pattern.
18199 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
18201 PR rtl-optimization/64081
18202 * loop-iv.c (def_pred_latch_p): New function.
18203 (latch_dominating_def): Allow specific cases with non-single
18205 (iv_get_reaching_def): Likewise.
18206 (check_complex_exit_p): New function.
18207 (check_simple_exit): Use check_complex_exit_p to allow certain cases
18208 with exits not executing on any iteration.
18210 2015-01-19 Jakub Jelinek <jakub@redhat.com>
18212 * common.opt (fgraphite): Fix a typo.
18214 2015-01-19 Felix Yang <felix.yang@huawei.com>
18216 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
18218 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
18219 uminp, smax_nanp, smin_nanp): New builtins.
18220 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
18221 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
18222 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
18223 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
18224 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
18225 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
18226 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
18227 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
18228 vpminnms_f32): Rewrite using builtin functions.
18230 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
18233 * omp-low.c (offload_symbol_decl): Remove variable.
18234 (get_offload_symbol_decl): Remove function.
18235 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
18236 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
18237 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
18238 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
18239 BUILT_IN_GOACC_UPDATE don't pass it at all.
18241 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
18243 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
18246 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
18248 * ipa-chkp.c (chkp_produce_thunks): Add early param
18249 to split thunks production into two passes. Keep
18250 'always_inline' function bodies after the first pass.
18251 (pass_data_ipa_chkp_early_produce_thunks): New.
18252 (pass_ipa_chkp_early_produce_thunks): New.
18253 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
18254 chkp_produce_thunks signature.
18255 (make_pass_ipa_chkp_early_produce_thunks): New.
18256 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
18257 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
18258 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
18260 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
18262 * cgraph.c (cgraph_node::dump): Dump profile flags.
18264 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
18267 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
18268 reg appear first in the parallel.
18270 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
18272 * ipa-reference.c (set_reference_optimization_summary,
18273 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
18275 (ignore_module_statics): New static var.
18276 (propagate_bits): If ipa-reference is disabled, do not look into local
18278 (analyze_function): Disable analysis when ipa_reference is disabled.
18279 (generate_summary): Do not dump when reference is disabled;
18280 collect vars accessed from functions with ipa-reference disabled.
18281 (get_read_write_all_from_node): When ipa-reference is disabled, use the
18283 (gate): Enable for LTO.
18284 (ignore_edge_p): New function.
18285 (propagate): Skip functions w/o ipa-reference analysis.
18286 * optc-save-gen.awk: Handle optimize_debug correctly.
18287 * opth-gen.awk: Likewise.
18288 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
18289 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
18290 fira-share-save-slots, fira-share-spill-slots,
18291 fmodulo-sched-allow-regmoves, fpartial-inlining,
18292 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
18293 ftracer, ftree-parallelize-loops, fassociative-math,
18294 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
18296 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
18297 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
18299 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
18302 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
18305 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
18307 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
18309 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
18311 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
18312 Remove duplicate option listings.
18314 2015-01-18 Felix Yang <felix.yang@huawei.com>
18316 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
18317 (autofdo_source_profile::get_callsite_total_count,
18318 function_instance::get_function_instance_by_decl,
18319 string_table::get_index, string_table::get_index_by_decl,
18320 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
18321 Fix comment typos. Reformatting and minor code rearrangement.
18323 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
18325 * config/rs6000/rs6000.md (probe_stack): Delete.
18326 (probe_stack_address): New.
18328 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
18330 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
18331 to test for 32-bit ABIs, not !TARGET_POWERPC64.
18333 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
18335 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
18336 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
18337 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
18339 (rs6000_libcall_value): Use the new function.
18341 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
18343 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
18345 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
18347 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
18348 implement a more precise life analysis for it during backward scan.
18350 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
18352 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
18354 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
18356 PR rtl-optimization/52773
18357 * calls.c (emit_library_call_value): When pushing arguments use
18358 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
18359 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
18360 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
18362 2015-01-17 Jeff Law <law@redhat.com>
18364 PR rtl-optimization/32790
18365 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
18366 not ZERO_EXTEND in SET_DESTs.
18368 2015-01-17 Alan Modra <amodra@gmail.com>
18370 * cprop.c (do_local_cprop): Revert last change.
18372 2015-01-16 DJ Delorie <dj@redhat.com>
18373 Nick Clifton <nickc@redhat.com>
18375 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
18376 (addhi3_real): Likewise. Fix [HL+0] syntax.
18377 (subqi3_real): Likewise.
18378 (subhi3_real): Likewise.
18379 (cbranchqi4_real): Likewise. Allow saddr,#imm.
18380 (cbranchhi4_real): Likewise.
18381 (cbranchhi4_real_inverted): Likewise.
18382 (cbranchsi4_real_lt): Likewise.
18383 (cbranchsi4_real_ge): Likewise.
18384 (cbranchsi4_real_ge): Likewise.
18385 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
18386 (sub<mode>3_virt): Likewise.
18387 (cbranchqi4_virt): Likewise.
18388 (cbranchhi4_virt): Likewise.
18389 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
18390 always use '[reg+imm]' even when imm is zero.
18391 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
18392 (rl78_general_operand): New.
18393 (rl78_nonimmediate_operand): New.
18394 (rl78_nonfar_operand): Use them.
18395 (rl78_nonfar_nonimm_operand): Likewise.
18396 (rl78_stack_based_mem): Fix.
18397 * config/rl78/constraints.md (Ibqi): New.
18402 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
18403 (iorqi3): Likewise.
18404 (xorqi3): Likewise.
18405 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
18407 * config/rl78/constrains (Qs8): New constraint.
18408 * config/rl78/rl78.c (rl78_flags_already_set): New function.
18409 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
18410 * config/rl78/rl78-real.md (update_Z): New attribute.
18411 Update patterns to set it.
18412 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
18413 shorter compare and branch sequence can be used.
18414 (cbranchhi4_real): Likewise.
18415 (cbranchhi4_real_inverted): Likewise.
18417 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
18418 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
18420 * config/rl78/rl78.c (rl78_get_name_encoding): New.
18421 (rl78_option_override): Allow -mes0 only if C.
18422 (characterize_address): Support subregs of symbol_refs.
18423 (rl78_addr_space_address_mode): Move. Add __near.
18424 (rl78_far_p): Likewise.
18425 (rl78_addr_space_pointer_mode): Likewise.
18426 (rl78_as_legitimate_address): Likewise.
18427 (rl78_addr_space_subset_p): Likewise.
18428 (rl78_addr_space_convert): Likewise.
18429 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
18430 symbols with -mes0.
18431 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
18433 (rl78_alloc_physical_registers_op1): Change logic to prefer
18434 symbol[BC] addressing.
18435 (frodata_section): New.
18436 (rl78_asm_init_sections): Initialize it.
18437 (rl78_select_section): Put __far readonly symbols in .frodata.
18438 (rl78_make_type_far): New.
18439 (rl78_insert_attributes): Force all readonly symbols to be
18441 (rl78_asm_out_integer): New.
18442 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
18443 * config/rl78/rl78.opt (-mes0): New.
18445 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
18446 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
18447 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
18448 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
18449 (rl78_saddr_p): New.
18450 (rl78_output_aligned_common): New.
18451 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
18452 (rl78_handle_saddr_attribute): New.
18453 (rl78_handle_naked_attribute): New.
18454 (rl78_attribute_table): Add saddr.
18455 (rl78_print_operand_1): Don't print '!' on saddr operands.
18456 (rl78_print_operand_1): Strip encodings.
18458 (rl78_strip_name_encoding): New.
18459 (rl78_attrlist_to_encoding): New.
18460 (rl78_encode_section_info): New.
18461 (rl78_asm_init_sections): New.
18462 (rl78_select_section): New.
18463 (rl78_output_labelref): New.
18464 (rl78_output_aligned_common): New.
18465 (rl78_asm_out_integer): New.
18466 (rl78_asm_ctor_dtor): New.
18467 (rl78_asm_constructor): New.
18468 (rl78_asm_destructor): New.
18470 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
18471 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
18472 (transcode_memory_rtx): Update.
18473 (rl78_expand_epilogue): Use A_REG instead of 0.
18475 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18477 * config/arm/arm-protos.h (struct tune_params): New field
18478 sched_autopref_queue_depth.
18479 * config/arm/arm.c (sched-int.h): Include header.
18480 (arm_first_cycle_multipass_dfa_lookahead_guard,)
18481 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
18482 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
18483 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
18484 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
18485 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
18486 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
18487 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
18488 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
18489 * config/arm/t-arm (arm.o): Update.
18490 * haifa-sched.c (update_insn_after_change): Update.
18491 (rank_for_schedule): Use auto-prefetcher model, if requested.
18492 (autopref_multipass_init): New static function.
18493 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
18494 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
18495 variable for debug dumps.
18496 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
18497 (autopref_multipass_dfa_lookahead_guard): New global function that
18498 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
18499 (init_h_i_d): Update.
18500 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
18501 * sched-int.h (enum autopref_multipass_data_status): New const enum.
18502 (autopref_multipass_data_): Structure for auto-prefetcher data.
18503 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
18504 (struct _haifa_insn_data:autopref_multipass_data): New field.
18505 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
18506 (autopref_multipass_dfa_lookahead_guard): Declare.
18508 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18510 * rtlanal.c (get_base_term): Handle SCRATCH.
18512 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18514 * config/aarch64/aarch64.c
18515 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
18516 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
18518 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
18519 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
18521 2015-01-17 Alan Modra <amodra@gmail.com>
18523 * cprop.c (do_local_cprop): Disallow replacement of fixed
18526 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18529 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
18532 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
18534 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
18535 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
18537 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18539 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
18540 * config/arm/thumb1.md: ... Here.
18542 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
18544 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
18545 TImode for TARGET_32BIT.
18547 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
18549 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
18550 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
18552 (rs6000_abi_word_mode): New function.
18554 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
18556 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
18557 instead of UNITS_PER_WORD to describe the size of stack slots.
18559 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
18561 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
18562 as rs6000_promote_function_mode. Move comment to there.
18563 (rs6000_promote_function_mode): New function.
18565 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
18567 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
18568 -mpowerpc64 is active.
18570 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
18572 PR middle-end/64353
18573 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
18576 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
18578 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
18579 introduced in revision 219724.
18581 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18582 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18585 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
18586 destination is not a GP reg.
18587 (*movdi_aarch64): Likewise.
18589 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
18592 * config/rs6000/default64.h: Revert ISA change.
18594 2015-01-16 Richard Biener <rguenther@suse.de>
18596 PR middle-end/64614
18597 * tree-ssa-uninit.c: Include tree-cfg.h.
18598 (MAX_SWITCH_CASES): New define.
18599 (convert_control_dep_chain_into_preds): Handle switch statements.
18600 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
18601 (normalize_one_pred_1): Do not split bit-manipulations.
18604 2015-01-16 Richard Biener <rguenther@suse.de>
18606 PR tree-optimization/64568
18607 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
18608 complex load rewriting for TARGET_MEM_REFs.
18610 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
18612 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
18614 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
18617 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
18619 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
18620 (aarch64_lra_p): Remove.
18622 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
18625 * ipa-chkp.h (chkp_instrumentable_p): New.
18626 * ipa-chkp.c: Include tree-inline.h.
18627 (chkp_instrumentable_p): New.
18628 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
18629 Fix processing of not instrumentable functions.
18630 (chkp_versioning): Use chkp_instrumentable_p. Warn about
18631 not instrumentable functions.
18632 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
18633 chkp_instrumentable_p.
18634 * tree-inline.h (copy_forbidden): New.
18635 * tree-inline.c (copy_forbidden): Not static anymore.
18637 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18639 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
18642 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
18644 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
18645 type OP_OUT to OP_INOUT.
18647 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
18649 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
18650 (high x) y) to y if x and y have the same base.
18652 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
18654 * config/arm/cortex-a57.md: New.
18655 * config/aarch64/aarch64.md: Include it.
18656 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
18657 * config/aarch64/aarch64-tune.md: Regenerate.
18659 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
18662 * ccmp.c (expand_ccmp_next): New function.
18663 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
18664 and compare insn sequence.
18665 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
18666 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
18667 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
18668 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
18669 (*ccmp_ior): Changed to ccmp_ior<mode>.
18670 (cmp<mode>): New pattern.
18671 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
18673 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
18675 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
18677 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
18678 _mm256_bsrli_epi128): New.
18679 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
18681 2015-01-15 Jiong Wang <jiong.wang@arm.com>
18683 * expmed.c (store_bit_field_using_insv): Improve warning message.
18684 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
18686 2015-01-15 Jiong Wang <jiong.wang@arm.com>
18688 PR rtl-optimization/64011
18689 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
18690 there is partial overflow.
18692 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
18694 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
18696 (nds32_expand_epilogue_v3pop): Likewise.
18697 * config/nds32/nds32.md (sibcall): Define this for sibling call
18699 (sibcall_register): Likewise.
18700 (sibcall_immediate): Likewise.
18701 (sibcall_value): Likewise.
18702 (sibcall_value_register): Likewise.
18703 (sibcall_value_immediate): Likewise.
18704 (sibcall_epilogue): Likewise.
18705 (epilogue): Pass false to indicate this is not a sibcall epilogue.
18706 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
18707 (nds32_expand_epilogue_v3pop): Likewise.
18709 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
18711 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
18712 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
18713 (return_internal): New.
18714 (return): Define this named pattern.
18715 (simple_return): Define this named pattern.
18716 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
18717 pattern instead of unspec_volatile_func_return.
18718 (nds32_expand_epilogue_v3pop): Likewise.
18719 (nds32_can_use_return_insn): New function.
18721 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
18723 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
18724 * config/nds32/nds32.md (pop25return): New.
18725 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
18726 pop25return pattern.
18728 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
18730 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
18731 -mforbid-fp-as-gp, and -mex9 options.
18733 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
18735 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
18736 remove -mgp-direct option.
18738 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
18740 * doc/invoke.texi (--param early-inlining-insns): Update default value.
18741 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
18743 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
18745 * ipa-inline.c (inline_small_functions): Work around hints
18748 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
18751 * doc/invoke.texi (Option Summary): Document new Nios II
18753 (Nios II Options): Likewise.
18754 * config/nios2/nios2.opt: Add -mgpopt= option support.
18755 Modify existing -mgpopt and -mno-gpopt options to be aliases.
18756 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
18757 * config/nios2/nios2.c (nios2_option_override): Adjust
18758 -mgpopt defaulting.
18759 (nios2_in_small_data_p): Return true for explicit small data
18760 sections even with -G0.
18761 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
18764 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
18767 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
18769 (inline_call): Fix removal of aliases.
18771 2015-01-15 Jakub Jelinek <jakub@redhat.com>
18773 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
18774 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
18775 * opts.c (common_handle_option): Add -fsanitize=vptr.
18776 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
18777 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
18778 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
18779 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
18780 (ubsan_expand_vptr_ifn): New prototype.
18781 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
18782 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
18783 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
18784 expand_LOOP_VECTORIZED): Make argument nameless, remove
18786 (expand_UBSAN_VPTR): New function.
18787 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
18789 (UBSAN_VPTR): New internal function.
18790 * sanopt.c (tree_map_traits): Renamed to ...
18791 (sanopt_tree_map_traits): ... this.
18792 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
18793 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
18794 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
18795 (maybe_optimize_ubsan_vptr_ifn): New function.
18796 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
18797 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
18799 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
18800 internal calls like pure functions for aliasing, even when they
18801 have other side-effects that prevent making them ECF_PURE.
18802 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
18803 (ubsan_expand_vptr_ifn): New function.
18805 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
18807 PR rtl-optimization/64110
18808 * stmt.c (parse_output_constraint): Process '^' and '$'.
18809 (parse_input_constraint): Ditto.
18810 * lra-constraints.c (process_alt_operands): Process the new
18812 * ira-costs.c (record_reg_classes): Process the new constraint
18814 * genoutput.c (indep_constraints): Add '^' and '$'.
18815 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
18816 * doc/md.texi: Add description of the new constraints.
18818 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
18819 Bernd Schmidt <bernds@codesourcery.com>
18820 Cesar Philippidis <cesar@codesourcery.com>
18821 James Norris <jnorris@codesourcery.com>
18822 Tom de Vries <tom@codesourcery.com>
18823 Ilmir Usmanov <i.usmanov@samsung.com>
18824 Dmitry Bocharnikov <dmitry.b@samsung.com>
18825 Evgeny Gavrin <e.gavrin@samsung.com>
18826 Jakub Jelinek <jakub@redhat.com>
18828 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
18829 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
18830 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
18831 New function types.
18832 * builtins.c: Include "gomp-constants.h".
18833 (expand_builtin_acc_on_device): New function.
18834 (expand_builtin, is_inexpensive_builtin): Handle
18835 BUILT_IN_ACC_ON_DEVICE.
18836 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
18838 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
18840 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
18841 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
18842 i386/intelmic-offload.h.
18843 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
18844 to libgomp and its dependencies.
18845 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
18846 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
18847 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
18848 * config/ia64/hpux.h (LIB_SPEC): Likewise.
18849 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18850 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
18851 * doc/generic.texi: Update for OpenACC changes.
18852 * doc/gimple.texi: Likewise.
18853 * doc/invoke.texi: Likewise.
18854 * doc/sourcebuild.texi: Likewise.
18855 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
18856 GF_OMP_FOR_KIND_OACC_LOOP.
18857 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
18858 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
18859 GF_OMP_TARGET_KIND_OACC_UPDATE,
18860 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
18862 * gimple.c: Update comments for OpenACC changes.
18863 * gimple.def: Likewise.
18864 * gimple.h: Likewise.
18865 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
18866 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
18867 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
18868 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
18869 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
18871 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
18872 * gimplify.c: Include "gomp-constants.h".
18873 Update comments for OpenACC changes.
18874 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
18875 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
18876 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
18877 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
18878 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
18879 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
18880 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
18881 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
18882 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
18884 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
18885 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
18886 OMP_CLAUSE_SET_MAP_KIND.
18887 (gimplify_oacc_cache): New function.
18888 (gimplify_omp_for): Handle OACC_LOOP.
18889 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
18891 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
18892 OACC_EXIT_DATA, OACC_UPDATE.
18893 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
18894 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
18895 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
18896 (gimplify_body): Consider flag_openacc next to flag_openmp.
18897 * lto-streamer-out.c: Include "gomp-constants.h".
18898 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
18899 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
18900 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
18901 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
18902 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
18903 (BUILT_IN_ACC_ON_DEVICE): New builtins.
18904 * omp-low.c: Include "gomp-constants.h".
18905 Update comments for OpenACC changes.
18906 (struct omp_context): Add reduction_map, gwv_below, gwv_this
18908 (extract_omp_for_data, use_pointer_for_field, install_var_field)
18909 (new_omp_context, delete_omp_context, scan_sharing_clauses)
18910 (create_omp_child_function, scan_omp_for, scan_omp_target)
18911 (check_omp_nesting_restrictions, lower_reduction_clauses)
18912 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
18913 Update for OpenACC changes.
18914 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
18915 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
18916 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
18917 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
18918 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
18919 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
18921 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
18922 Handle GF_OMP_FOR_KIND_OACC_LOOP.
18923 (expand_omp_target, lower_omp_target): Handle
18924 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
18925 GF_OMP_TARGET_KIND_OACC_UPDATE,
18926 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
18927 GF_OMP_TARGET_KIND_OACC_DATA.
18928 (pass_expand_omp::execute, execute_lower_omp)
18929 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
18931 (offload_symbol_decl): New variable.
18932 (oacc_get_reduction_array_id, oacc_max_threads)
18933 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
18934 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
18935 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
18936 (oacc_gimple_assign, oacc_initialize_reduction_data)
18937 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
18939 (is_targetreg_ctx): Remove function.
18940 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
18941 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
18942 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
18943 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
18944 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
18945 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
18946 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
18947 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
18948 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
18949 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
18950 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
18951 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
18952 * tree-core.h: Update comments for OpenACC changes.
18953 (enum omp_clause_map_kind): Remove.
18954 (struct tree_omp_clause): Change type of map_kind member from enum
18955 omp_clause_map_kind to unsigned char.
18956 * tree-inline.c: Update comments for OpenACC changes.
18957 * tree-nested.c: Likewise. Include "gomp-constants.h".
18958 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
18959 (convert_tramp_reference_stmt, convert_gimple_call): Update for
18960 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
18961 OMP_CLAUSE_SET_MAP_KIND.
18962 * tree-pretty-print.c: Include "gomp-constants.h".
18963 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
18964 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
18965 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
18966 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
18967 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
18968 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
18969 instead of OMP_CLAUSE_MAP_*.
18970 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
18971 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
18972 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
18973 * tree-streamer-in.c: Include "gomp-constants.h".
18974 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
18975 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
18976 * tree-streamer-out.c: Include "gomp-constants.h".
18977 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
18979 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
18980 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
18981 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
18982 * tree.c (omp_clause_num_ops): Update accordingly.
18983 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
18985 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
18986 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
18987 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
18988 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
18989 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
18990 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
18991 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
18992 (OMP_CLAUSE_SET_MAP_KIND): New macro.
18993 * varpool.c (varpool_node::get_create): Consider flag_openacc next
18995 * config/i386/intelmic-offload.h: New file.
18996 * config/nvptx/offload.h: Likewise.
18998 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19000 * explow.h: Remove duplicate contents.
19001 * dojump.h: Likewise.
19003 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
19005 * arm.c (arm_xgene_tune): Add default initializer for instruction
19008 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
19012 * ipa.c (symbol_table::remove_unreachable_nodes):
19013 Do not put abstract origins into boundary.
19015 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
19017 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
19018 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
19020 2015-01-15 Steve Ellcey <sellcey@mips.com>
19022 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
19023 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
19024 builtins.def, and chkp-builtins.def.
19026 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
19028 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
19031 2015-01-15 Richard Biener <rguenther@suse.de>
19033 PR tree-optimization/61743
19034 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
19035 information on PHIs for some simple cases.
19037 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19039 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
19041 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
19042 * config/arm/arm-cores.def (xgene1): New entry.
19043 * config/arm/arm-tables.opt: Regenerate.
19044 * config/arm/arm-tune.md: Regenerate.
19045 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
19047 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
19049 * tree-if-conv.c: Include hash-map.h.
19050 (aggressive_if_conv): New variable.
19051 (fold_build_cond_expr): Add simplification of non-zero condition.
19052 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
19053 destination block is not always executed.
19054 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
19055 than two predecessors if AGGRESSIVE_IF_CONV is true.
19056 (if_convertible_stmt_p): Fix commentary.
19057 (all_preds_critical_p): New function.
19058 (has_pred_critical_p): New function.
19059 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
19060 BB can have more than two predecessors and all incoming edges can be
19062 (predicate_bbs): Skip predication for loop exit block, use build2_loc
19063 to compute predicate for true edge.
19064 (find_phi_replacement_condition): Delete this function.
19065 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
19066 Allow interchange PHI arguments if EXTENDED is false.
19067 Change check that block containing reduction statement candidate
19068 is predecessor of phi-block since phi may have more than two arguments.
19069 (phi_args_hash_traits): New helper structure.
19070 (struct phi_args_hash_traits): New type.
19071 (phi_args_hash_traits::hash): New function.
19072 (phi_args_hash_traits::equal_keys): New function.
19073 (gen_phi_arg_condition): New function.
19074 (predicate_scalar_phi): Add handling of phi nodes with more than two
19075 arguments, delete COND and TRUE_BB arguments, insert body of
19076 find_phi_replacement_condition to predicate ordinary phi nodes.
19077 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
19078 delete call of find_phi_replacement_condition and invoke
19079 predicate_scalar_phi with two arguments.
19080 (insert_gimplified_predicates): Add assert that non-predicated block
19081 don't have statements to insert.
19082 (ifcvt_split_critical_edges): New function.
19083 (ifcvt_split_def_stmt): Likewise.
19084 (ifcvt_walk_pattern_tree): Likewise.
19085 (stmt_is_root_of_bool_pattern): Likewise.
19086 (ifcvt_repair_bool_pattern): Likewise.
19087 (ifcvt_local_dce): Likewise.
19088 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
19089 is copy of inner or outer loop force_vectorize field, invoke
19090 ifcvt_split_critical_edges, ifcvt_local_dce and
19091 ifcvt_repair_bool_pattern for aggressive if-conversion.
19093 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
19095 * config/aarch64/aarch64.md: Include xgene1.md.
19096 * config/aarch64/xgene1.md: New file.
19098 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
19100 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
19101 xgene1 (APM XGene-1) core definition.
19102 * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
19103 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
19104 * doc/invoke.texi: Document -mcpu=xgene1.
19106 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19108 * dojump.h: New header file.
19109 * explow.h: Likewise.
19110 * expr.h: Remove includes.
19111 Move expmed.c prototypes to expmed.h.
19112 Move dojump.c prototypes to dojump.h.
19113 Move alias.c prototypes to alias.h.
19114 Move explow.c prototypes to explow.h.
19115 Move calls.c prototypes to calls.h.
19116 Move emit-rtl.c prototypes to emit-rtl.h.
19117 Move varasm.c prototypes to varasm.h.
19118 Move stmt.c prototypes to stmt.h.
19119 (saved_pending_stack_adjust): Move to dojump.h.
19120 (adjust_address): Move to explow.h.
19121 (adjust_address_nv): Move to emit-rtl.h.
19122 (adjust_bitfield_address): Likewise.
19123 (adjust_bitfield_address_size): Likewise.
19124 (adjust_bitfield_address_nv): Likewise.
19125 (adjust_automodify_address_nv): Likewise.
19126 * explow.c (expr_size): Move to expr.c.
19127 (int_expr_size): Likewise.
19128 (tree_expr_size): Likewise.
19129 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19130 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
19131 * genemit.c (main): Generate includes statistics.h, real.h,
19132 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
19134 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
19135 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
19136 explow.h, emit-rtl.h, stmt.h.
19137 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
19138 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
19139 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
19140 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
19141 emit-rtl.h, varasm.h, stmt.h.
19142 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
19143 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
19144 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
19145 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
19146 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19147 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
19148 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
19149 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
19150 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
19151 tm.h tree.h varasm.h vec.h wide-int.h.
19152 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19153 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
19154 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
19155 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
19156 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
19157 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
19158 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
19159 * loop-iv.c: Likewise.
19160 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
19161 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
19162 statistics.h stmt.h tree.h varasm.h wide-int.h.
19163 * lra-constraints.c: Likewise.
19164 * lra-eliminations.c: Likewise.
19165 * lra-lives.c: Likewise.
19166 * lra-remat.c: Likewise.
19167 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19168 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
19169 statistics.h stmt.h tree.h varasm.h wide-int.h.
19170 * hw-doloop.c: Likewise.
19171 * ira-color.c: Likewise.
19172 * ira-emit.c: Likewise.
19173 * loop-doloop.c: Likewise.
19174 * loop-invariant.c: Likewise.
19175 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19176 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
19177 statistics.h stmt.h tree.h varasm.h wide-int.h.
19178 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
19179 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
19180 statistics.h stmt.h tree.h varasm.h wide-int.h.
19181 * combine-stack-adj.c: Likewise.
19184 * ifcvt.c: Likewise.
19185 * ira-costs.c: Likewise.
19186 * jump.c: Likewise.
19187 * lra-coalesce.c: Likewise.
19188 * lra-spills.c: Likewise.
19189 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19190 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
19191 stmt.h varasm.h wide-int.h.
19192 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19193 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
19195 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
19196 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
19197 statistics.h stmt.h varasm.h wide-int.h.
19198 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
19199 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
19200 varasm.h wide-int.h.
19201 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
19202 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19203 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
19204 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
19205 statistics.h stmt.h.
19206 * config/tilepro/tilepro.c: Likewise.
19207 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
19208 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
19209 * config/pdp11/pdp11.c: Likewise.
19210 * config/xtensa/xtensa.c: Likewise.
19211 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
19212 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
19214 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19215 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
19216 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
19217 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19218 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
19219 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
19220 * rtl-chkp.c: Likewise.
19221 * tree-chkp-opt.c: Likewise.
19222 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
19223 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
19224 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
19225 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19226 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
19227 statistics.h stmt.h.
19228 * tree-vect-data-refs.c: Likewise.
19229 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
19230 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19231 rtl.h statistics.h stmt.h varasm.h.
19232 * internal-fn.c: Likewise.
19233 * ipa-icf-gimple.c: Likewise.
19234 * lto-section-out.c: Likewise.
19235 * tree-data-ref.c: Likewise.
19236 * tree-nested.c: Likewise.
19237 * tree-outof-ssa.c: Likewise.
19238 * tree-predcom.c: Likewise.
19239 * tree-pretty-print.c: Likewise.
19240 * tree-scalar-evolution.c: Likewise.
19241 * tree-ssa-strlen.c: Likewise.
19242 * tree-vect-loop.c: Likewise.
19243 * tree-vect-patterns.c: Likewise.
19244 * tree-vect-slp.c: Likewise.
19245 * tree-vect-stmts.c: Likewise.
19246 * tsan.c: Likewise.
19247 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19248 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
19250 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
19251 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19252 statistics.h stmt.h varasm.h.
19253 * loop-unroll.c: Likewise.
19254 * ubsan.c: Likewise.
19255 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
19256 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
19258 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19259 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
19260 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
19261 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
19262 statistics.h stmt.h.
19263 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
19264 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
19265 statistics.h stmt.h varasm.h.
19266 * gimple-match-head.c: Likewise.
19267 * lto-cgraph.c: Likewise.
19268 * lto-section-in.c: Likewise.
19269 * lto-streamer-in.c: Likewise.
19270 * lto-streamer-out.c: Likewise.
19271 * tree-affine.c: Likewise.
19272 * tree-cfg.c: Likewise.
19273 * tree-cfgcleanup.c: Likewise.
19274 * tree-if-conv.c: Likewise.
19275 * tree-into-ssa.c: Likewise.
19276 * tree-ssa-alias.c: Likewise.
19277 * tree-ssa-copyrename.c: Likewise.
19278 * tree-ssa-dse.c: Likewise.
19279 * tree-ssa-forwprop.c: Likewise.
19280 * tree-ssa-live.c: Likewise.
19281 * tree-ssa-math-opts.c: Likewise.
19282 * tree-ssa-pre.c: Likewise.
19283 * tree-ssa-sccvn.c: Likewise.
19284 * tree-tailcall.c: Likewise.
19285 * tree-vect-generic.c: Likewise.
19286 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19287 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
19288 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19289 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
19290 * varasm.c: Likewise.
19291 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19292 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
19294 * init-regs.c: Likewise.
19296 * omp-low.c: Likewise.
19297 * stack-ptr-mod.c: Likewise.
19298 * tree-ssa-reassoc.c: Likewise.
19299 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19300 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
19302 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19303 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
19304 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19305 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
19306 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19307 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
19308 * tree-ssa-phiopt.c: Likewise.
19309 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19310 fixed-value.h hashtab.h real.h statistics.h stmt.h.
19311 * config/fr30/fr30.c: Likewise.
19312 * config/frv/frv.c: Likewise.
19313 * expr.c: Likewise.
19314 * final.c: Likewise.
19315 * optabs.c: Likewise.
19316 * passes.c: Likewise.
19317 * simplify-rtx.c: Likewise.
19318 * stmt.c: Likewise.
19319 * toplev.c: Likewise.
19320 * var-tracking.c: Likewise.
19321 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19322 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19323 * lower-subreg.c: Likewise.
19324 * postreload-gcse.c: Likewise.
19326 * reginfo.c: Likewise.
19327 * store-motion.c: Likewise.
19328 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19329 fixed-value.h hashtab.h real.h stmt.h varasm.h.
19330 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19331 fixed-value.h hashtab.h statistics.h stmt.h.
19332 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19333 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
19334 * except.c: Likewise.
19335 * explow.c: Likewise.
19336 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19337 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
19339 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19340 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
19341 * tree-ssa-structalias.c: Likewise.
19342 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19343 fixed-value.h insn-config.h real.h statistics.h.
19344 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19345 fixed-value.h insn-config.h real.h statistics.h stmt.h.
19346 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19347 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
19348 * cfgbuild.c: Likewise.
19349 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19350 fixed-value.h real.h rtl.h statistics.h stmt.h.
19351 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19352 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19353 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19354 fixed-value.h real.h statistics.h stmt.h.
19355 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19356 fixed-value.h real.h statistics.h stmt.h varasm.h.
19357 * cprop.c: Likewise.
19358 * modulo-sched.c: Likewise.
19359 * postreload.c: Likewise.
19360 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
19361 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
19362 statistics.h stmt.h varasm.h.
19363 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
19364 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19365 rtl.h statistics.h stmt.h varasm.h.
19366 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
19367 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
19369 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
19370 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
19372 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
19373 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
19375 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
19376 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19377 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19378 function.h real.h statistics.h stmt.h varasm.h.
19379 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19380 insn-config.h real.h statistics.h stmt.h.
19381 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19382 statistics.h stmt.h.
19383 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
19384 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
19385 statistics.h stmt.h varasm.h.
19386 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
19387 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
19388 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19389 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
19390 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
19391 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
19392 statistics.h stmt.h varasm.h.
19393 * ipa-polymorphic-call.c: Likewise.
19394 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
19395 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19396 statistics.h stmt.h.
19397 * config/c6x/c6x.c: Likewise.
19398 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
19399 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19400 statistics.h stmt.h varasm.h.
19401 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
19402 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
19404 * ipa-split.c: Likewise.
19405 * tree-eh.c: Likewise.
19406 * tree-ssa-dce.c: Likewise.
19407 * tree-ssa-loop-niter.c: Likewise.
19408 * tree-vrp.c: Likewise.
19409 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
19410 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
19412 * config/nds32/nds32-fp-as-gp.c: Likewise.
19413 * config/nds32/nds32-intrinsic.c: Likewise.
19414 * config/nds32/nds32-isr.c: Likewise.
19415 * config/nds32/nds32-md-auxiliary.c: Likewise.
19416 * config/nds32/nds32-memory-manipulation.c: Likewise.
19417 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19418 * config/nds32/nds32-predicates.c: Likewise.
19419 * config/nds32/nds32.c: Likewise.
19420 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
19421 fixed-value.h hashtab.h real.h statistics.h.
19422 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
19423 fixed-value.h hashtab.h real.h statistics.h stmt.h.
19424 * config/arm/arm.c: Likewise.
19425 * config/avr/avr.c: Likewise.
19426 * config/bfin/bfin.c: Likewise.
19427 * config/h8300/h8300.c: Likewise.
19428 * config/i386/i386.c: Likewise.
19429 * config/ia64/ia64.c: Likewise.
19430 * config/iq2000/iq2000.c: Likewise.
19431 * config/m32c/m32c.c: Likewise.
19432 * config/m32r/m32r.c: Likewise.
19433 * config/m68k/m68k.c: Likewise.
19434 * config/mcore/mcore.c: Likewise.
19435 * config/mep/mep.c: Likewise.
19436 * config/mips/mips.c: Likewise.
19437 * config/mn10300/mn10300.c: Likewise.
19438 * config/moxie/moxie.c: Likewise.
19439 * config/pa/pa.c: Likewise.
19440 * config/rl78/rl78.c: Likewise.
19441 * config/rx/rx.c: Likewise.
19442 * config/s390/s390.c: Likewise.
19443 * config/sh/sh.c: Likewise.
19444 * config/sparc/sparc.c: Likewise.
19445 * config/spu/spu.c: Likewise.
19446 * config/stormy16/stormy16.c: Likewise.
19447 * config/v850/v850.c: Likewise.
19448 * config/vax/vax.c: Likewise.
19449 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
19450 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19451 * config/msp430/msp430.c: Likewise.
19452 * predict.c: Likewise.
19453 * value-prof.c: Likewise.
19454 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
19455 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
19456 * config/microblaze/microblaze.c: Likewise.
19457 * config/nios2/nios2.c: Likewise.
19458 * config/rs6000/rs6000.c: Likewise.
19459 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19460 insn-config.h real.h rtl.h statistics.h stmt.h.
19461 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19462 insn-config.h real.h statistics.h stmt.h.
19463 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
19464 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
19465 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
19466 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19467 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
19468 fixed-value.h real.h statistics.h stmt.h.
19469 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
19470 fixed-value.h statistics.h stmt.h.
19471 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
19474 2015-01-15 Jakub Jelinek <jakub@redhat.com>
19476 * gengtype.c (create_user_defined_type): Workaround
19477 -Wmaybe-uninitialized false positives.
19478 * cse.c (fold_rtx): Likewise.
19479 * loop-invariant.c (gain_for_invariant): Likewise.
19481 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
19483 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
19484 set the memory attributes in all cases but clear MEM_EXPR if need be.
19486 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
19488 PR tree-optimization/64434
19489 * cfgexpand.c (reorder_operands): New function.
19490 (expand_gimple_basic_block): Insert call of reorder_operands if
19493 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
19495 * config/mips/micromips.md (*swp): Remove explicit parallel.
19496 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
19497 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
19498 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
19499 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
19500 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
19501 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
19502 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
19503 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
19504 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
19505 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
19506 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
19507 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
19508 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
19509 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
19510 (mips_wrdsp): Likewise.
19511 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
19513 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
19514 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
19515 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
19516 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
19517 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
19518 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
19519 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
19520 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
19521 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
19523 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
19525 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
19526 (mips_print_operand): Support 'y' to print exact log2 in decimal
19528 * config/mips/mips.h (ISA_HAS_LSA): New define.
19529 (ISA_HAS_DLSA): Likewise.
19530 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
19531 * config/mips/predicates.md (const_immlsa_operand): New predicate.
19533 2015-01-15 Martin Liska <mliska@suse.cz>
19536 * optc-save-gen.awk: Add support for array types.
19538 2015-01-15 Richard Biener <rguenther@suse.de>
19540 PR middle-end/64365
19541 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
19542 for MEM_REF access functions with the same base can never partially
19545 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
19547 * common.opt: New option -fstack-protector-explicit.
19548 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
19549 (stack_protect_decl_phase): Handle stack_protect attribute for
19550 explicit stack protection requests.
19551 (expand_used_vars): Similarly.
19552 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
19553 * doc/extend.texi: Add documentation for "stack_protect" attribute.
19554 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
19556 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
19559 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
19561 (sh_extending_set_of_reg): New struct.
19562 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
19563 sh_remove_reg_dead_or_unused_notes): New Declarations.
19564 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
19565 sh_find_extending_set_of_reg, sh_split_tst_subregs,
19566 sh_extending_set_of_reg::use_as_extended_reg): New functions.
19567 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
19568 convert to insn_and_split and use new function sh_split_tst_subregs.
19570 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
19572 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
19574 (Optimization Options): Move -fuse-ld documentation to...
19575 (Link Options): ...here.
19577 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
19579 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
19581 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
19582 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
19583 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
19584 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
19585 instead of ZR for the memory operand of LL/SC.
19586 (compare_and_swap_12, sync_add<mode>): Likewise.
19587 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
19588 (sync_new_<optab>_12, sync_nand_12): Likewise.
19589 (sync_old_nand_12, sync_new_nand_12): Likewise.
19590 (sync_sub<mode>, sync_old_add<mode>): Likewise.
19591 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
19592 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
19593 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
19594 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
19595 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
19596 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
19597 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
19598 * doc/md.texi (ZC): Update description.
19600 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
19602 * builtins.c (expand_builtin_atomic_exchange): Remove error when
19603 memory model is CONSUME.
19604 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
19605 expand_builtin_atomic_store): Change invalid memory model errors to
19607 (expand_builtin_atomic_clear): Change invalid model errors to warnings
19608 and issue warning for CONSUME.
19610 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
19612 * lto-cgraph: Update function comments for
19613 lto_symtab_encoder_encode_*.
19615 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
19617 * Makefile.in (site.exp): Do not set ENABLE_LTO.
19619 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
19621 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
19622 * lto-cgraph.c (select_what_to_stream): Remove argument, use
19623 lto_stream_offload_p instead.
19624 * lto-streamer.h (select_what_to_stream): Remove argument.
19625 * passes.c (ipa_write_summaries): Likewise.
19626 * tree-pass.h (ipa_write_summaries): Likewise.
19628 2015-01-14 Richard Biener <rguenther@suse.de>
19630 PR tree-optimization/59354
19631 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
19632 groups larger than the slp group size as having gaps.
19634 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
19636 PR middle-end/59448
19637 * builtins.c (get_memmodel): Promote consume to acquire always.
19639 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
19642 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
19645 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
19648 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
19650 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
19651 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
19652 AVX512VBMI, as it implies AVX512BW.
19654 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
19657 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
19658 (vec_unpacks_hi_v16sf): Ditto.
19660 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19662 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
19665 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19667 * doc/invoke.texi (mapcs): Mention deprecation.
19668 (mapcs-frame): Likewise.
19670 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
19673 * config/arm/arm.c (callee_saved_reg_p): Define.
19674 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
19675 register is callee saved instead of !call_used_regs[reg].
19676 (thumb1_compute_save_reg_mask): Likewise.
19678 2015-01-14 Hale Wang <hale.wang@arm.com>
19680 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
19683 2015-01-14 Richard Biener <rguenther@suse.de>
19686 * tree-inline.c (insert_debug_decl_map): Check destination
19687 function MAY_HAVE_DEBUG_STMTS.
19688 (insert_init_debug_bind): Likewise.
19689 (insert_init_stmt): Remove redundant check.
19690 (remap_gimple_stmt): Drop debug stmts if the destination
19691 function has var-tracking assignments disabled.
19693 2015-01-14 Martin Liska <mliska@suse.cz>
19695 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
19696 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
19698 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19701 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
19702 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
19704 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
19706 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
19707 level from an ARCH; do not inject the default.
19708 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
19709 MIPS_ISA_LEVEL_SPEC.
19710 (MIPS_ISA_NAN2008_SPEC): Update comment.
19711 (BASE_DRIVER_SELF_SPECS): Likewise.
19712 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
19713 MIPS_DEFAULT_ISA_LEVEL_SPEC.
19714 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
19715 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
19716 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
19718 2015-01-14 Richard Biener <rguenther@suse.de>
19720 PR tree-optimization/64493
19721 PR tree-optimization/64495
19722 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
19723 assign the proper vectorized PHI to the inner loop exit PHIs.
19725 2015-01-14 Joey Ye <joey.ye@arm.com>
19727 * config/arm/arm.c (arm_compute_save_reg_mask):
19728 Do not save lr in case of tail call.
19729 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
19731 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
19733 * tree-vrp.c (check_array_ref): Emit more warnings
19734 for warn_array_bounds >= 2.
19735 * common.opt: New option -Warray-bounds=.
19736 * doc/invoke.texi: Document -Warray-bounds=.
19738 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
19740 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
19741 (mforbid-fp-as-gp): Remove.
19743 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
19744 (nds32_symbol_load_store_p): Remove.
19745 (nds32_fp_as_gp_check_available): Clean up implementation.
19746 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
19748 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
19749 fp-as-gp and ex9 cases.
19751 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
19753 * tree-profile.c (init_ic_make_global_vars): Drop workaround
19754 for bintuils bug 14342.
19755 (init_ic_make_global_vars): Likewise.
19756 (gimple_init_edge_profiler): Likewise.
19757 (gimple_gen_ic_func_profiler): Likewise.
19759 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19761 * ipa-inline.c (inline_small_functions): Swap the operands in
19764 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
19767 * ipa-inline-analysis.c (node_growth_cache): Remove.
19768 (initialize_growth_caches): Do not initialize it.
19769 (free_growth_caches): Do not free it.
19770 (do_estimate_growth): Rename to ...
19771 (estimate_growth): ... this one; drop growth cache code.
19772 (growth_likely_positive): Always go the heuristics way.
19773 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
19774 (reset_edge_caches): Do not reset node growth.
19775 (heap_edge_removal_hook): Do not maintain cache.
19776 (inline_small_functions): Likewise; strenghten sanity check.
19777 (ipa_inline): Do not maintain caches.
19778 * ipa-inline.h (node_growth_cache): Remove.
19779 (do_estimate_growth): Remove to ...
19780 (estimate_growth): this one; remove inline version.
19781 (reset_node_growth_cache): Remove.
19783 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
19786 * ipa-inline.c (inline_small_functions): Update callee keys after
19787 resolving speculation
19788 (inline_small_functions): Always check monotonicity of the queue.
19790 2015-01-13 Marek Polacek <polacek@redhat.com>
19792 PR middle-end/64391
19793 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
19795 2015-01-13 Jakub Jelinek <jakub@redhat.com>
19797 PR rtl-optimization/64286
19798 * ree.c (combine_reaching_defs): Move part of comment earlier,
19799 remove !SCALAR_INT_MODE_P check.
19800 (add_removable_extension): Don't add vector mode
19801 extensions if all uses of the source register aren't the same
19804 2015-01-13 Renlin Li <renlin.li@arm.com>
19806 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
19807 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
19809 2015-01-13 Martin Liska <mliska@suse.cz>
19811 * ipa-icf.c (sem_function::equals_private): Call new functions
19812 cl_target_option_print_diff and cl_optimization_print_diff.
19813 * optc-save-gen.awk (cl_target_option_print_diff): New function.
19814 (cl_optimization_print_diff): Likewise.
19815 * opth-gen.awk: Likewise.
19817 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
19819 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
19820 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
19821 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
19822 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
19823 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
19824 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
19826 2015-01-13 Andrew Pinski <apinski@cavium.com>
19828 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
19829 instead of src mode.
19831 2015-01-13 Richard Biener <rguenther@suse.de>
19834 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
19837 2015-01-13 Andrew Pinski <apinski@cavium.com>
19839 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
19841 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
19843 2015-01-13 Jakub Jelinek <jakub@redhat.com>
19845 PR middle-end/63974
19846 * cfgexpand.c (expand_computed_goto): Don't call
19847 convert_memory_address here.
19849 2015-01-13 Richard Biener <rguenther@suse.de>
19851 PR tree-optimization/64406
19852 * tree-loop-distibution.c (pass_loop_distribution::execute):
19853 Reset the SCEV hashtable if we distributed anything.
19855 2015-01-13 Richard Biener <rguenther@suse.de>
19857 PR tree-optimization/64404
19858 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
19859 SLP types for CSEd loads.
19861 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
19863 PR tree-optimization/64436
19864 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
19865 merge of two symbolic numbers for a bitwise OR to ...
19866 (perform_symbolic_merge): This. Also fix computation of the range and
19867 end of the symbolic number corresponding to the result of a bitwise OR.
19869 2015-01-13 Richard Biener <rguenther@suse.de>
19871 PR tree-optimization/64568
19872 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
19873 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
19875 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19877 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
19878 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
19880 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19882 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
19883 target-specific symbol_ref flag.
19884 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
19885 resides in rodata section.
19886 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
19887 (nds32_encode_section_info): New function.
19889 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19891 * config/nds32/nds32.md (call): Use pseudo instruction bal which
19892 clobbers TA_REGNUM if large code model is specified.
19893 (call_register): Likewise.
19894 (call_immediate): Likewise.
19895 (call_value): Likewise.
19896 (call_value_register): Likewise.
19897 (call_value_immediate): Likewise.
19899 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19901 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
19902 (TARGET_CMODEL_MEDIUM): New macro.
19903 (TARGET_CMODEL_LARGE): New macro.
19904 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
19905 code model setting in assembly code.
19907 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19909 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
19910 Remove MASK_GP_DIRECT flag.
19911 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
19912 one of the multilib default options.
19913 * config/nds32/nds32.opt (mgp-direct): Remove.
19914 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
19915 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
19917 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
19919 * config/nds32/nds32.opt (mcmodel): Add new option.
19920 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
19921 to describe code model.
19923 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
19926 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
19928 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
19930 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
19931 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
19932 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
19933 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
19934 __builtin_sh_set_fpscr.
19936 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
19938 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
19939 after a funtion name just to indicate it is a function.
19940 ([-fsanitize-undefined-trap-on-error]): Likewise.
19941 ([-fdbg-cnt=]): Likewise.
19942 ([-mmemcpy]): Likewise.
19943 ([-mflush-func]): Likewise.
19944 ([-msynci]): Likewise.
19946 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
19948 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
19951 2015-01-12 Jakub Jelinek <jakub@redhat.com>
19953 PR tree-optimization/64563
19954 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
19955 instead of != VR_VARYING.
19958 * config/i386/i386.c (ix86_expand_prologue): Add
19959 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
19961 PR tree-optimization/64454
19962 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
19963 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
19964 for signed or [0, op1 - 1] for unsigned modulo.
19965 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
19966 even if op1 does not satisfy integer_pow2p.
19969 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
19971 2015-01-12 Jeff Law <law@redhat.com>
19974 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
19975 (trunchiqi2, truncsihi2): Similarly.
19977 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
19978 rather than calling F.
19980 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
19982 * tsan.c (instrument_expr): Use force_gimple_operand.
19983 Use may_be_nonaddressable_p instead of is_gimple_addressable.
19985 2015-01-12 Richard Biener <rguenther@suse.de>
19987 PR tree-optimization/64530
19988 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
19991 2015-01-12 Richard Biener <rguenther@suse.de>
19993 PR middle-end/64357
19994 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
19997 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19999 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
20000 Cortex-A17 tuning parameters.
20001 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
20003 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20005 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
20006 * config/arm/arm.c (arm_macro_fusion_p): New function.
20007 (arm_macro_fusion_pair_p): Likewise.
20008 (TARGET_SCHED_MACRO_FUSION_P): Define.
20009 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
20010 (ARM_FUSE_NOTHING): Likewise.
20011 (ARM_FUSE_MOVW_MOVT): Likewise.
20012 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
20013 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
20014 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
20015 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
20016 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
20017 arm_cortex_a5_tune): Specify fuseable_ops value.
20019 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
20022 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
20023 test for PIE with copy reloc.
20024 * configure: Regenerated.
20026 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20028 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
20030 (arm_tls_descseq_addr): Likewise.
20031 (arm_gen_movmemqi): Likewise.
20032 (arm_expand_epilogue_apcs_frame): Likewise.
20033 (arm_expand_epilogue): Likewise.
20034 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
20037 2015-01-12 Martin Liska <mliska@suse.cz>
20040 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
20041 volatility for correct operands.
20043 2015-01-12 Martin Liska <mliska@suse.cz>
20045 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
20046 indication that a function is not leaf.
20047 (sem_function::compare_polymorphic_p): Likewise.
20049 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20051 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
20052 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
20053 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
20054 fold-const.h, tree-check.h.
20056 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
20060 * ipa-inline.c (compute_uninlined_call_time,
20061 compute_inlined_call_time): Use counts for extra precision when
20063 (big_speedup_p): Fix formating.
20064 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
20065 (relative_time_benefit): Remove.
20066 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
20067 merge guessed and read profile paths.
20068 (inline_small_functions): Count only !optimize_size functions into
20069 initial size; be more lax about sanity check when profile is used;
20070 be sure to update inlined function profile when profile is read.
20072 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
20075 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
20076 cost when edge becomes direct.
20077 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
20078 is resolved or when introducing new speculation.
20080 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
20084 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
20085 '||' to fix typo issue.
20087 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
20088 accept and return NULL.
20090 2015-01-12 Martin Liska <mliska@suse.cz>
20092 * cgraph.c (cgraph_edge::remove_callee): Move function to header
20093 file for being inlined.
20094 (cgraph_set_edge_callee): Delete.
20095 (cgraph_edge::redirect_callee): Move function to header file
20097 (cgraph_edge::make_direct): Use new function.
20098 (cgraph_edge::dump_edge_flags): New function created from
20099 static dump_edge_flags function.
20100 (cgraph_node::dump): Use new function.
20101 (cgraph_edge::verify_count_and_frequency): New function created
20102 from verify_edge_count_and_frequency.
20103 (cgraph_edge::verify_corresponds_to_fndecl): New function created
20104 from verify_edge_corresponds_to_fndecl.
20105 (verify_edge_corresponds_to_fndecl): Delete.
20106 (cgraph_node::verify_node): Use new function.
20107 * cgraph.h (cgraph_edge::set_callee): New function.
20108 (cgraph_edge::dump_edge_flags): Likewise.
20109 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
20111 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
20113 * ipa-utils.c (estimate_function_body_sizes): Do not
20114 free node params when called late with early=true.
20116 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
20118 * doc/md.texi (Instruction Patterns): Rewrite text for
20120 (Example): Likewise.
20122 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
20124 * doc/invoke.texi (Option Summary): Break long lines.
20125 [(-fdiagnostics-color)]: Put long literal in @smallexample
20127 [(-fsanitize-recover)]: Likewise.
20128 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
20129 [(-ffast-math)]: Likewise.
20130 [(--param max-inline-insns-recursive)]: Likewise.
20131 [(--param max-inline-recursive-depth)]: Likewise.
20132 [(-mno-text-section-literals)]: Likewise.
20134 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
20136 * doc/install.texi: Update for libgomp being renamed from "GNU
20137 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
20139 * doc/sourcebuild.texi: Likewise.
20141 2015-01-10 Anthony Green <green@moxielogic.com>
20143 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
20144 mul.x availability for moxiebox configuration.
20146 2015-01-09 Anthony Green <green@moxielogic.com>
20148 * config/moxie/moxie.md: Tabify assembly output.
20150 2015-01-09 Anthony Green <green@moxielogic.com>
20152 * config/moxie/moxie.md (CC_REG): Correct register definition.
20154 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
20156 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
20157 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
20160 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
20162 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
20164 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
20165 Jakub Jelinek <jakub@redhat.com>
20167 PR middle-end/64412
20168 * lto-streamer.h (lto_stream_offload_p): New declaration.
20169 * lto-streamer.c (lto_stream_offload_p): New variable.
20170 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
20171 at the same time as section_name_prefix.
20172 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
20173 if lto_stream_offload_p.
20174 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
20175 stream TREE_TARGET_OPTION if lto_stream_offload_p.
20176 (write_ts_function_decl_tree_pointers): Don't
20177 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
20178 * tree-streamer-in.c (unpack_value_fields): Don't stream
20179 TREE_TARGET_OPTION in if ACCEL_COMPILER.
20180 (lto_input_ts_function_decl_tree_pointers): Don't stream
20181 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
20182 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
20183 instead of section_name_prefix string comparisons.
20185 2015-01-09 Jakub Jelinek <jakub@redhat.com>
20187 PR rtl-optimization/64536
20188 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
20191 2015-01-09 Michael Collison <michael.collison@linaro.org>
20193 PR tree-optimization/64322
20194 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
20195 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
20197 2015-01-09 Tom de Vries <tom@codesourcery.com>
20199 PR rtl-optimization/64539
20200 * regcprop.c (kill_clobbered_values): Factor out of ...
20201 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
20202 instead of note_stores with kill_clobbered_value.
20204 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
20206 * ginclude/unwind-arm-common.h: Revert previous commit.
20208 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
20210 * config.gcc (arm*-*-freebsd*): New configuration.
20211 * config/arm/freebsd.h: New file.
20212 * config.host: Add extra components for arm*-*-freebsd*.
20213 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
20214 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
20216 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
20218 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
20220 * config/rs6000/t-rtems: Add e6500 multilibs.
20222 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
20224 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
20227 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
20229 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
20230 MULTILIB_EXCEPTIONS.
20232 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
20234 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
20235 MULTILIB_EXCEPTIONS.
20237 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
20239 * config/arm/t-rtems-eabi: Rename to...
20240 * config/arm/t-rtems: ...this.
20241 * config/arm/rtems-eabi.h: Rename to...
20242 * config/arm/rtems.h: ...this.
20243 * config.gcc (arm*-*-rtems*): Reflect changes above.
20245 2015-01-09 Richard Biener <rguenther@suse.de>
20247 PR tree-optimization/64410
20248 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
20250 (execute_update_addresses_taken): Deal with that.
20251 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
20252 loads/stores for complex variables.
20254 2015-01-09 Martin Liska <mliska@suse.cz>
20256 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
20258 (func_checker::compare_memory_operand): New function.
20259 (func_checker::compare_operand): Split case to newly
20261 (func_checker::compare_cst_or_decl): New function.
20262 (func_checker::compare_gimple_call): Identify
20264 (func_checker::compare_gimple_assign): Likewise.
20265 * ipa-icf-gimple.h: New function.
20267 2015-01-09 Martin Liska <mliska@suse.cz>
20270 * sreal.c (sreal::dump): Change unsigned format to signed for
20272 (sreal::to_double): Replace exp2 with scalbln.
20274 2015-01-09 Martin Liska <mliska@suse.cz>
20276 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
20277 * ipa-icf.c (sem_function::equals_private): Add support for target and
20278 (sem_item_optimizer::merge_classes): Remove redundant function
20279 optimization flags comparison.
20280 * tree.h (target_opts_for_fn): New function.
20282 2015-01-09 Tom de Vries <tom@codesourcery.com>
20284 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
20286 2015-01-09 Kito Cheng <kito@0xlab.org>
20288 PR rtl-optimization/64348
20289 * lra-constraints.c (split_reg): Fix caller-save store/restore
20290 instruction generation.
20292 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
20294 PR gcov-profile/61790
20295 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
20296 long long. Fallback to int64_t if host doesn't have long long and
20297 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
20299 2015-01-08 Jakub Jelinek <jakub@redhat.com>
20301 PR tree-optimization/63989
20302 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
20303 from 1000 to 10000.
20304 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
20305 (get_stridx): If we don't have a record for certain SSA_NAME,
20306 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
20307 constant offset, call get_stridx_plus_constant.
20308 (get_stridx_plus_constant): New function.
20309 (zero_length_string): Don't use get_stridx here.
20312 PR middle-end/64388
20313 * dse.c (struct insn_info): Mention frame_read set also
20314 before reload for tail calls on some targets.
20315 (scan_insn): Revert 2014-12-22 change. Set frame_read
20316 also before reload for tail calls if
20317 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
20318 instead of add_non_frame_wild_read for non-const/memset
20319 tail calls after reload.
20321 2015-01-08 Jason Merrill <jason@redhat.com>
20323 * ubsan.c (do_ubsan_in_current_function): New.
20324 (pass_ubsan::gate): Use it.
20325 * ubsan.h: Declare it.
20326 * convert.c (convert_to_integer): Use it.
20328 2015-01-08 Jakub Jelinek <jakub@redhat.com>
20331 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
20332 compare_code when it is unconditionally overwritten afterwards.
20333 Use ix86_reverse_condition instead of reverse_condition. Don't
20334 change code if *reverse_condition* returned UNKNOWN and don't
20335 swap ct/cf and negate diff in that case.
20337 2015-01-08 Mike Stump <mikestump@comcast.net>
20339 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
20340 (pass_tsan_O0::gate): Likewise.
20341 * extend.texi (Function Attributes): Add no_sanitize_thread
20344 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
20346 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
20347 for registering builtins.
20348 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
20349 add -fopenmp to the argv_obstack used when invoking
20350 compile_for_target.
20352 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
20353 add "-m32" or "-m64" to argv_obstack.
20354 (generate_host_descr_file): Likewise, when invoking host_compiler.
20355 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
20358 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
20360 * config/sh/sh-mem.cc: Use constant as second operand when emitting
20363 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
20366 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
20367 constant load if constant operand fits into I08.
20369 2015-01-08 Jakub Jelinek <jakub@redhat.com>
20372 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
20373 and TREE_THIS_VOLATILE for MEM_REFs.
20374 (build5_stat): Fix up initialization of TREE_READONLY and
20375 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
20377 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
20380 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
20381 of r for the second alternative of the destination operand.
20383 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
20386 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
20388 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
20390 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
20392 ([-fivar-visibility], [-fvisibility]): Likewise.
20394 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
20396 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
20397 the file where @code, @command, etc is more appropriate.
20399 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
20401 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
20402 of -mrecip= documentation.
20404 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
20407 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
20408 correct reload handler if -m32 -mpowerpc64 is used.
20410 2015-01-06 Tom de Vries <tom@codesourcery.com>
20412 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
20414 2015-01-08 Christian Bruel <christian.bruel@st.com>
20417 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
20419 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
20421 PR tree-optimization/63259
20422 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
20423 if optab exists for 16bit byteswap.
20425 2015-01-06 Jakub Jelinek <jakub@redhat.com>
20427 * opts.c (common_handle_option): Add support for
20428 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
20429 * doc/invoke.texi: Document -fno-sanitize=all,
20430 -f{,no-}sanitize-recover=all. Document that
20431 -fsanitize=float-cast-overflow is not enabled
20432 by -fsanitize=undefined. Fix up documentation
20433 of -f{,no-}sanitize-recover.
20435 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
20437 * config.gcc: Add Visium support.
20438 * configure.ac: Likewise.
20439 * configure: Regenerate.
20440 * doc/extend.texi (interrupt attribute): Add Visium.
20441 * doc/invoke.texi: Document Visium options.
20442 * doc/install.texi: Document Visium target.
20443 * doc/md.texi: Document Visium constraints.
20444 * common/config/visium: New directory.
20445 * config/visium: Likewise.
20447 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
20449 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
20450 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
20452 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
20454 * combine.c (combine_validate_cost): Do not count the cost of a
20455 split I2 twice. Do not display it twice in the dump, either.
20457 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
20459 Revert parts of r219199.
20460 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
20462 ([-Wtraditional]): Restore markup on <limits.h>.
20464 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
20467 * doc/invoke.texi: Document -Wsuggest-override.
20469 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
20471 PR rtl-optimization/64287
20472 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
20473 (process_options): Disable flag_ipa_ra if profiling.
20475 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
20477 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
20479 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
20481 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
20482 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
20483 put under #if TARGET_LOOPS guard.
20485 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
20487 * config/i386/i386.c (output_387_binary_op): Use std::swap.
20489 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
20491 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
20492 * rtl.h (refers_to_regno_p): Add overload.
20494 * bt-load.c: Likewise.
20495 * combine.c: Likewise.
20496 * df-scan.c: Likewise.
20497 * sched-deps.c: Likewise.
20498 * config/s390/s390.c: Likewise.
20499 * config/m32r/m32r.c: Likewise.
20500 * config/rs6000/spe.md: Likewise.
20501 * config/rs6000/rs6000.c: Likewise.
20502 * config/pa/pa.c: Likewise.
20503 * config/stormy16/stormy16.c: Likewise.
20504 * config/cris/cris.c: Likewise.
20505 * config/arc/arc.md: Likewise.
20506 * config/arc/arc.c: Likewise.
20507 * config/sh/sh.md: Likewise.
20508 * config/sh/sh.c: Likewise.
20509 * config/frv/frv.c: Likewise.
20511 2015-01-05 Jakub Jelinek <jakub@redhat.com>
20514 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
20515 call as cleanup of the whole body.
20516 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
20517 * tsan.c (replace_func_exit): New function.
20518 (instrument_func_exit): Moved earlier.
20519 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
20520 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
20522 (tsan_pass): Don't call instrument_func_exit.
20523 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
20524 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
20528 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
20529 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
20530 it to libubsan handler instead of EXPR. Fold comparisons earlier,
20531 if the result is integer_zerop, return NULL_TREE.
20532 * convert.c (convert_to_integer): Pass expr as ARG.
20534 PR tree-optimization/64465
20535 * tree-inline.c (redirect_all_calls): During inlining
20536 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
20537 changed the stmt to a non-throwing call.
20539 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
20541 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
20542 etc markup throughout the file.
20544 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
20546 Enable experimental TSAN support for Ada.
20547 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
20549 2015-01-05 Jakub Jelinek <jakub@redhat.com>
20551 PR tree-optimization/64494
20552 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
20553 clear SSA_NAME_ANTI_RANGE_P flag.
20555 2015-01-05 Marek Polacek <polacek@redhat.com>
20557 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
20559 2015-01-05 Jakub Jelinek <jakub@redhat.com>
20561 Update copyright years.
20563 * gcc.c (process_command): Update copyright notice dates.
20564 * gcov-dump.c: Ditto.
20566 * doc/cpp.texi: Bump @copying's copyright year.
20567 * doc/cppinternals.texi: Ditto.
20568 * doc/gcc.texi: Ditto.
20569 * doc/gccint.texi: Ditto.
20570 * doc/gcov.texi: Ditto.
20571 * doc/install.texi: Ditto.
20572 * doc/invoke.texi: Ditto.
20574 * auto-profile.c, auto-profile.h: Fix up Copyright line.
20576 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
20578 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
20580 ([-fvtable-verify], [-fvtv-debug]): Likewise.
20581 ([-Wabi]): Likewise.
20582 ([-fmessage-length]): Likewise.
20583 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
20584 ([-Wno-discarded-qualifiers]): Likewise.
20585 ([-Wnodiscarded-array-qualifiers]): Likewise.
20586 ([-Wno-virtual-move-assign]): Likewise.
20587 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
20588 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
20589 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
20590 ([-fsanitize-undefined-trap-on-error]): Likewise.
20591 ([-floop-interchange]): Likewise.
20592 ([-ftree-coalesce-inlined-vars]): Likewise.
20593 ([-fvect-cost-model]): Likewise.
20594 ([-flto]): Likewise.
20595 ([--param]): Likewise.
20596 (Spec Files): Likewise.
20597 ([-mstrict-align]): Likewise.
20598 ([-mfix-cortex-a53-835769]): Likewise.
20599 ([-march], [-mtune]): Likewise.
20600 ([-mpic-register]): Likewise.
20601 ([-munaligned-access]): Likewise.
20602 ([-msp8]): Likewise.
20603 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
20604 (AVR Built-in Macros): Likewise.
20605 ([-mpreferred-stack-boundary]): Likewise.
20606 ([-mtune-crtl]): Likewise.
20607 ([-mashf]): Likewise.
20608 ([-mmcu=]): Likewise.
20609 ([-minrt]): Likewise.
20610 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
20611 ([-mupper-regs]): Likewise.
20612 ([-matomic-model]): Likewise.
20613 ([-mdiv]): Likewise.
20614 ([-mzdcbranch]): Likewise.
20615 ([-mdisable-callt]): Likewise.
20616 ([-msoft-float]): Likewise.
20617 ([-m8byte-align]): Likewise.
20618 ([-fstack-reuse]): Likewise.
20620 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
20622 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
20623 Fix markup, light copy-editing.
20624 ([-fauto-profile]): Rewrite to fix formatting and content
20627 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
20629 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
20630 Copy-edit description.
20631 ([-fisolate-erroneous-paths-attribute]): Likewise.
20632 * common.opt (fisolate-erroneous-paths-dereference):
20633 Copy-edit description.
20634 (fisolate-erroneous-paths-attribute): Likewise.
20636 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
20638 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
20641 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
20643 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
20644 ([-fvtv-debug]): Likewise.
20645 ([-Wc++-compat]): Likewise.
20646 ([-Wc++11-compat]): Likewise.
20647 ([-Wc++14-compat]): Likewise.
20648 ([-Wno-sized-deallocation]): Likewise.
20649 ([-femit-class-debug-always]): Likewise.
20650 ([-femit-struct-debug-detailed]): Likewise.
20651 ([-fno-keep-inline-dllexport]): Likewise.
20652 ([-fira-algorithm]): Likewise.
20653 ([-fira-region]): Likewise.
20654 ([-flra-remat]): Likewise.
20655 ([-fipa-ra]): Likewise.
20656 ([-fhoist-adjacent-loads]): Likewise.
20657 ([-fisolate-erroneous-paths-dereference]): Likewise.
20658 ([-fisolate-erroneous-paths-attribute]): Likewise.
20659 ([-ftree-switch-conversion]): Likewise.
20660 ([-ftree-tail-merge]): Likewise.
20661 ([-ftree-loop-if-convert]): Likewise.
20662 ([-ftree-loop-if-convert-stores]): Likewise.
20663 ([-ftree-loop-distribution]): Likewise.
20664 ([-ftree-loop-distribute-patterns]): Likewise.
20665 ([-flto-compression-level]): Likewise.
20666 ([-flto-report]): Likewise.
20667 ([-flto-report-wpa]): Likewise.
20668 ([-fuse-linker-plugin]): Likewise.
20669 ([-mfix-cortex-a53-835769]): Likewise.
20670 ([-mno-fix-cortex-a53-835769]): Likewise.
20671 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
20672 explicit listing; add a note to the discussion indicating they
20673 exist. Reorder table to group similar options. Add missing
20674 @opindex entries. Add @need commands throughout the table to
20675 allow it to be split across multiple pages.
20676 ([-m8bit-idiv]): Fix @opindex.
20677 ([-mavx256-split-unaligned-load]): Likewise.
20678 ([-mavx256-split-unaligned-store]): Likewise.
20679 ([-mstack-protector-guard]): Likewise.
20680 ([-mcpu=]): Likewise.
20681 ([-mcpu]): Likewise.
20682 ([-mpointer-size=]): Likewise.
20684 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
20686 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
20687 instead of `m' constraint. Likewise for unnamed movb comparison
20688 patterns using reg_before_reload_operand predicate.
20689 * config/pa/predicates.md (reg_before_reload_operand): Tighten
20690 predicate to reject register index and LO_SUM DLT memory forms
20693 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
20695 * doc/invoke.texi (Option Summary): Fix spelling of
20696 -fdevirtualize-at-ltrans.
20697 ([-fdevirtualize]): Fix markup.
20698 ([-fdevirtualize-speculatively]): Fix typo.
20699 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
20700 implementor-speaky.
20701 * common.opt (fdevirtualize-at-ltrans): Likewise.
20702 * ipa-devirt.c: Fix typos in comments throughout the file.
20703 (ipa_devirt): Fix typos in format strings for dump output.
20705 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
20707 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
20708 discussion of defaults, light copy-editing.
20710 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
20712 * tsan.c (instrument_expr): corrected previous checkin.
20714 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
20716 Instrument bit field and unaligned accesses for TSAN.
20717 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
20718 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
20719 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
20720 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
20721 unaligned memory regions.
20723 2015-01-01 Anthony Green <green@moxielogic.com>
20725 * config/moxie/predicates.md (moxie_general_movsrc_operand):
20726 Restrict move source register offsets to 16 bits.
20728 Copyright (C) 2015 Free Software Foundation, Inc.
20730 Copying and distribution of this file, with or without modification,
20731 are permitted in any medium without royalty provided the copyright
20732 notice and this notice are preserved.