1 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
4 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
5 check for section name.
7 2014-06-17 Richard Biener <rguenther@suse.de>
9 * tree-ssa-propagate.c: Include domwalk.h.
10 (substitute_and_fold): Outline main worker into a domwalker ...
11 (substitute_and_fold_dom_walker::before_dom_children): ... here.
12 Schedule stmts we can fully propagate for removal. Remove
14 (substitute_and_fold): Apply a dominator walk to perform
15 substitution. Process stmts scheduled for removal here.
17 2014-06-17 Richard Biener <rguenther@suse.de>
19 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
22 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
24 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
25 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
26 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
27 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
28 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
30 (get_fpscr) : Likewise.
32 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
34 PR rtl-optimization/61325
35 * lra-constraints.c (valid_address_p): Add forward declaration.
36 (simplify_operand_subreg): Check address validity before and after
37 alter_reg of memory subreg.
39 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
41 * config/i386/i386.c (decide_alg): Correctly handle
42 maximum size of stringop algorithm.
44 2014-06-16 Yury Gribov <y.gribov@samsung.com>
46 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
48 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
50 PR rtl-optimization/61522
51 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
53 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
56 * symtab.c (symtab_node::reset_section): New method.
57 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
59 * cgraph.h (reset_section): Declare.
60 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
61 do not consider comdat locals.
62 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
64 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
65 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
66 reset sections of symbols dragged out of the comdats.
67 (function_and_variable_visibility): Reset sections of localized symbols.
69 2014-06-16 Richard Biener <rguenther@suse.de>
71 PR tree-optimization/61482
72 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
73 [-INF(OVF), +INF(OVF)] range.
75 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
77 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
78 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
79 handling 32-bit multiplication.
81 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
84 * lra-lives.c (process_bb_lives): Skip creating copy during
85 insn scan when src/dest has constrained to same regno.
87 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
89 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
90 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
92 2014-06-16 Yury Gribov <y.gribov@samsung.com>
94 * asan.c (check_func): New function.
95 (maybe_create_ssa_name): Likewise.
96 (build_check_stmt_with_calls): Likewise.
97 (use_calls_p): Likewise.
98 (report_error_func): Change interface.
99 (build_check_stmt): Allow non-integer lengths; add support
101 (asan_instrument): Likewise.
102 (instrument_mem_region_access): Moved code to build_check_stmt.
103 (instrument_derefs): Likewise.
104 (instrument_strlen_call): Likewise.
105 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
106 * doc/invoke.texi: Describe new parameter.
107 * params.def: Define new parameter.
108 * params.h: Likewise.
109 * sanitizer.def: Describe new builtins.
111 2014-06-16 Richard Biener <rguenther@suse.de>
113 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
114 Make all defs available at the end.
115 (eliminate): If we remove a PHI node schedule cfg-cleanup.
117 2014-06-18 Jakub Jelinek <jakub@redhat.com>
120 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
122 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
125 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
126 initialization. Replace remaining use of uid.
128 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
130 * c-family/c-common.c (handle_tls_model_attribute): Use
132 * c-family/c-common.c (handle_tls_model_attribute): Use
134 * cgraph.h (struct varpool_node): Add tls_model.
135 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
136 * tree.h (DECL_TLS_MODEL): Update.
137 (DECL_THREAD_LOCAL_P): Check that variable is static.
138 (decl_tls_model): Declare.
139 (set_decl_tls_model): Declare.
140 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
141 set symbol prorperties.
142 (get_emutls_init_templ_addr): Cleanup.
143 (new_emutls_decl): Update.
144 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
145 (lto_input_varpool_node): Likewise.
146 * lto-streamer-out.c (hash_tree): Likewise.
147 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
148 not stream DECL_TLS_MODEL.
149 * tree-profile.c (init_ic_make_global_vars): Use
151 * tree-core.h (tree_decl_with_vis): Remove tls_model;
154 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
156 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
158 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
160 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
161 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
163 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
164 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
165 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
166 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
167 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
168 (df_get_artificial_defs, df_get_artificial_uses)
169 (df_single_def, df_single_use): Update accordingly.
170 (df_refs_chain_dump): Take the first element in a linked list as
171 parameter, rather than a pointer to an array of pointers.
172 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
173 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
174 (df_chain_create_bb_process_use): Likewise.
175 (df_md_bb_local_compute_process_def): Likewise.
176 * fwprop.c (process_defs, process_uses): Likewise.
177 (register_active_defs, update_uses): Likewise.
178 (forward_propagate_asm): Update for new df_ref linking.
179 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
180 (df_null_ref_rec, df_null_mw_rec): Likewise.
181 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
183 (df_scan_free_bb_info): Remove check for null artificial_defs.
184 (df_install_ref_incremental): Adjust for new df_ref linking.
185 Use a single-element insertion rather than a full sort.
186 (df_ref_chain_delete_du_chain): Take the first element
187 in a linked list as parameter, rather than a pointer to an array of
189 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
190 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
191 (df_insn_info_delete): Remove check for null defs and call to
192 df_scan_free_mws_vec.
193 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
194 null rather than df_null_*_rec.
195 (df_insn_rescan_debug_internal): Likewise, and update null
196 checks in the same way. Remove check for null defs.
197 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
198 Move a single element rather doing a full sort.
199 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
201 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
202 Initialize df_ref and df_mw_hardreg lists to null rather than
204 (df_ref_compare): Take df_refs as parameter, transferring the
206 (df_ref_ptr_compare): ...this new function.
207 (df_sort_and_compress_refs): Update accordingly.
208 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
210 (df_mw_ptr_compare): ...this new function.
211 (df_sort_and_compress_mws): Update accordingly.
212 (df_install_refs, df_install_mws): Return a linked list rather than
213 an array of pointers.
214 (df_refs_add_to_chains): Assert that old lists are empty rather
216 (df_insn_refs_verify): Don't handle null defs speciailly.
217 * web.c (union_match_dups): Update for new df_ref linking.
219 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
221 * df.h (df_ref_create, df_ref_remove): Delete.
222 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
223 (df_ref_remove): Likewise.
225 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
227 * df.h (df_single_def, df_single_use): New functions.
228 * ira.c (find_moveable_pseudos): Use them.
230 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
232 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
233 * df-problems.c (df_note_bb_compute): Use it.
234 * regstat.c (regstat_bb_compute_ri): Likewise.
236 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
238 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
239 * cse.c (cse_extended_basic_block): Use them.
240 * dce.c (mark_artificial_use): Likewise.
241 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
242 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
243 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
244 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
245 (df_simulate_initialize_backwards): Likewise.
246 (df_simulate_finalize_backwards): Likewise.
247 (df_simulate_initialize_forwards): Likewise.
248 (df_md_simulate_artificial_defs_at_top): Likewise.
249 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
250 * regrename.c (init_rename_info): Likewise.
251 * regstat.c (regstat_bb_compute_ri): Likewise.
252 (regstat_bb_compute_calls_crossed): Likewise.
254 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
256 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
257 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
258 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
259 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
260 * combine.c (create_log_links): Likewise.
261 * compare-elim.c (find_flags_uses_in_insn): Likewise.
262 (try_eliminate_compare): Likewise.
263 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
264 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
265 (remove_reg_equal_equiv_notes_for_defs): Likewise.
266 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
267 (word_dce_process_block, dce_process_block): Likewise.
268 * ddg.c (def_has_ccmode_p): Likewise.
269 * df-core.c (df_bb_regno_first_def_find): Likewise.
270 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
271 * df-problems.c (df_rd_simulate_one_insn): Likewise.
272 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
273 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
274 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
275 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
276 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
277 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
278 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
279 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
280 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
281 * fwprop.c (local_ref_killed_between_p): Likewise.
282 (all_uses_available_at, free_load_extend): Likewise.
283 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
284 * hw-doloop.c (scan_loop): Likewise.
285 * ifcvt.c (dead_or_predicable): Likewise.
286 * init-regs.c (initialize_uninitialized_regs): Likewise.
287 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
288 (process_bb_node_lives): Likewise.
289 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
290 (find_moveable_pseudos): Likewise.
291 * loop-invariant.c (check_dependencies, record_uses): Likewise.
292 * recog.c (peep2_find_free_register): Likewise.
293 * ree.c (get_defs): Likewise.
294 * regstat.c (regstat_bb_compute_ri): Likewise.
295 (regstat_bb_compute_calls_crossed): Likewise.
296 * sched-deps.c (find_inc, find_mem): Likewise.
297 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
298 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
299 * shrink-wrap.c (requires_stack_frame_p): Likewise.
300 (prepare_shrink_wrap): Likewise.
301 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
302 * web.c (union_defs, pass_web::execute): Likewise.
303 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
304 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
306 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
308 * lra-assign.c (assign_by_spills): Add code to assign vector regs
309 to inheritance pseudos.
310 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
312 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
315 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
316 (BU_MISC_2): Rename to ...
317 (BU_LDBL128_2): ... this.
318 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
319 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
320 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
322 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
323 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
324 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
325 (unpacktf_1): Likewise.
326 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
327 (__builtin_longdouble_dw1): Likewise.
328 * doc/sourcebuild.texi (longdouble128): Document.
330 2014-06-13 Jeff Law <law@redhat.com>
332 PR rtl-optimization/61094
333 PR rtl-optimization/61446
334 * ree.c (combine_reaching_defs): Get the mode for the copy from
335 the extension insn rather than the defining insn.
337 2014-06-13 Dehao Chen <dehao@google.com>
339 * dwarf2out.c (add_linkage_name): Emit more linkage name.
341 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
343 * doc/install.texi (--enable-linker-plugin-configure-flags)
344 (--enable-linker-plugin-flags): Document new flags.
346 2014-06-13 Martin Jambor <mjambor@suse.cz>
349 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
350 cache_token if returning early.
352 2014-06-13 Nick Clifton <nickc@redhat.com>
354 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
355 requested alignment is active.
356 (LABEL_ALIGN): Likewise.
357 (LOOP_ALIGN): Likewise.
359 2014-06-13 Richard Biener <rguenther@suse.de>
361 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
362 Rewrite to propagate the VN result into all uses where
363 possible and to remove stmts becoming dead because of that.
364 (eliminate): Generalize stmt removal handling, remove in
365 reverse dominator order to support proper debug stmt
366 generation. Update stmts before removing stmts.
367 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
369 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
371 PR tree-optimization/61375
372 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
373 symbolic number cannot be represented in an uint64_t.
374 (find_bswap_or_nop_1): Likewise.
376 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
378 * symtab.c (symtab_node::reset_section): New method.
379 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
381 * cgraph.h (reset_section): Declare.
382 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
383 do not consider comdat locals.
384 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
386 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
387 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
388 reset sections of symbols dragged out of the comdats.
389 (function_and_variable_visibility): Reset sections of
392 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
394 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
395 to use symtab and decl_binds_to_current_def_p
396 * tree-vectorizer.c (increase_alignment): Increase alignment
397 of alias target, too.
399 2014-06-12 Jakub Jelinek <jakub@redhat.com>
402 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
403 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
404 if outer combined construct is distribute.
405 (gimplify_omp_for): For OMP_DISTRIBUTE set
406 gimplify_omp_ctxp->distribute.
407 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
408 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
409 mapping into decl map.
411 2014-06-12 Jason Merrill <jason@redhat.com>
413 * common.opt (fabi-version): Change default to 0.
415 2014-06-12 Jason Merrill <jason@redhat.com>
417 * toplev.c (process_options): Reject -fabi-version=1.
419 2014-06-12 Jeff Law <law@redhat.com>
421 PR tree-optimization/61009
422 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
423 value when we stop processing a block due to problematic PHIs.
425 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
427 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
428 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
429 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
430 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
431 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
432 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
433 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
436 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
439 * config/aarch64/aarch64-modes.def: Add V1DFmode.
440 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
443 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
445 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
447 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
450 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
451 loading from address spaces.
453 2014-06-12 Martin Liska <mliska@suse.cz>
456 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
457 statement is reachable.
459 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
461 * symtab.c (section_hash): New hash.
462 (symtab_unregister_node): Clear section before freeing.
463 (hash_section_hash_entry): New haser.
464 (eq_sections): New function.
465 (symtab_node::set_section_for_node): New method.
466 (set_section_1): Update.
467 (symtab_node::set_section): Take string instead of tree as parameter.
468 (symtab_resolve_alias): Update.
469 * cgraph.h (section_hash_entry_d): New structure.
470 (section_hash_entry): New typedef.
471 (cgraph_node): Change comdat_group_ to x_comdat_group,
472 change section_ to x_section and turn into section_hash_entry;
473 update accestors; put set_section_for_node offline.
474 * tree.c (decl_section_name): Turn into string.
475 (set_decl_section_name): Change parameter to be string.
476 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
477 * sdbout.c (sdbout_one_type): Update.
478 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
479 * varasm.c (IN_NAMED_SECTION, get_named_section, resolve_unique_section,
480 hot_function_section, get_named_text_section,
481 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
482 make_decl_rtl, default_unique_section): Update.
483 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
484 (c6x_elf_unique_section): Update.
485 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
486 * config/pa/pa.c (pa_function_section): Update.
487 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
488 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
489 * config/arc/arc.c (arc_in_small_data_p): Update.
490 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
491 * config/mcore/mcore.c (mcore_unique_section): Update.
492 * config/mips/mips.c (mips16_build_function_stub): Update.
493 (mips16_build_call_stub): Update.
494 (mips_function_rodata_section): Update.
495 (mips_in_small_data_p): Update.
496 * config/score/score.c (score_in_small_data_p): Update.
497 * config/rx/rx.c (rx_in_small_data): Update.
498 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
499 (rs6000_xcoff_asm_named_section): Update.
500 (rs6000_xcoff_unique_section): Update.
501 * config/frv/frv.c (frv_string_begins_with): Update.
502 (frv_in_small_data_p): Update.
503 * config/v850/v850.c (v850_encode_data_area): Update.
504 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
505 (bfin_handle_l1_data_attribute): Update.
506 (bfin_handle_l2_attribute): Update.
507 * config/mep/mep.c (mep_unique_section): Update.
508 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
510 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
511 (h8300_handle_tiny_data_attribute): Update.
512 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
513 (m32r_in_small_data_p): Update.
514 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
515 * config/i386/i386.c (ix86_in_large_data_p): Update.
516 * config/i386/winnt.c (i386_pe_unique_section): Update.
517 * config/darwin.c (darwin_function_section): Update.
518 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
519 * tree-emutls.c (get_emutls_init_templ_addr): Update.
520 (new_emutls_decl): Update.
521 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
522 input_varpool_node): Update.
523 (ead_string_cst): Turn to ...
524 (read_string): ... this one.
525 * dwarf2out.c (secname_for_decl): Update.
526 * asan.c (asan_protect_global): Update.
528 2014-06-11 DJ Delorie <dj@redhat.com>
530 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
532 * config/rx/rx.c (rx_option_override): Likewise.
533 (rx_align_for_label): Likewise.
535 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
537 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
539 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
542 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
544 * common.md: New file.
545 * doc/md.texi: Update description of generic, machine-independent
547 * config/s390/constraints.md (e): Delete.
548 * Makefile.in (md_file): Include common.md.
549 * config/m32c/t-m32c (md_file): Likewise.
550 * genpreds.c (general_mem): New array.
551 (generic_constraint_letters): Remove constraints now defined by
553 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
554 Allow the first character to be '<' or '>' as well.
555 * genoutput.c (general_mem): New array.
556 (indep_constraints): Remove constraints now defined by common.md.
557 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
558 Remove special handling of 'm'.
559 * ira-costs.c (record_reg_classes): Remove special handling of
560 constraints now defined by common.md.
561 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
562 * ira-lives.c (single_reg_class): Likewise.
563 (ira_implicitly_set_insn_hard_regs): Likewise.
564 * lra-constraints.c (reg_class_from_constraints): Likewise.
565 (process_alt_operands, process_address, curr_insn_transform): Likewise.
566 * postreload.c (reload_cse_simplify_operands): Likewise.
567 * reload.c (push_secondary_reload, scratch_reload_class)
568 (find_reloads, alternative_allows_const_pool_ref): Likewise.
569 * reload1.c (maybe_fix_stack_asms): Likewise.
570 * targhooks.c (default_secondary_reload): Likewise.
571 * stmt.c (parse_output_constraint): Likewise.
572 * recog.c (preprocess_constraints): Likewise.
573 (constrain_operands, peep2_find_free_register): Likewise.
574 (asm_operand_ok): Likewise, but add a comment saying why 'o'
575 must be handled specially.
577 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
579 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
580 * genpreds.c (have_const_dbl_constraints): Delete.
581 (add_constraint): Don't set it.
582 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
583 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
584 constraints using the lookup_constraint logic.
585 * ira-lives.c (single_reg_class): Likewise.
586 * ira.c (ira_setup_alts): Likewise.
587 * lra-constraints.c (process_alt_operands): Likewise.
588 * recog.c (asm_operand_ok, constrain_operands): Likewise.
589 * reload.c (find_reloads): Likewise.
591 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
593 * genpreds.c (const_int_start, const_int_end): New variables.
594 (choose_enum_order): Output CONST_INT constraints before memory
596 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
598 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
599 * ira.c (ira_setup_alts): Likewise.
600 * lra-constraints.c (process_alt_operands): Likewise.
601 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
602 * reload.c (find_reloads): Likewise.
604 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
606 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
607 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
608 * recog.c (preprocess_constraints): Update accordingly.
610 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
612 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
613 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
614 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
615 * genpreds.c (print_type_tree): New function.
616 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
617 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
618 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
619 Write out enum constraint_type and get_constraint_type.
620 * lra-constraints.c (satisfies_memory_constraint_p): Take a
621 constraint_num rather than a constraint string.
622 (satisfies_address_constraint_p): Likewise.
623 (reg_class_from_constraints): Avoid old constraint macros.
624 (process_alt_operands, process_address_1): Likewise.
625 (curr_insn_transform): Likewise.
626 * ira-costs.c (record_reg_classes): Likewise.
627 (record_operand_costs): Likewise.
628 * ira-lives.c (single_reg_class): Likewise.
629 (ira_implicitly_set_insn_hard_regs): Likewise.
630 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
631 * postreload.c (reload_cse_simplify_operands): Likewise.
632 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
633 (constrain_operands, peep2_find_free_register): Likewise.
634 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
635 (find_reloads, alternative_allows_const_pool_ref): Likewise.
636 * reload1.c (maybe_fix_stack_asms): Likewise.
637 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
638 * targhooks.c (default_secondary_reload): Likewise.
639 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
640 to EXTRA_CONSTRAINT_STR.
641 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
643 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
645 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
646 (write_constraint_satisfied_p_array): ...this new function.
647 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
649 (write_insn_preds_c): Update accordingly.
651 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
653 * genpreds.c (write_lookup_constraint): Rename to...
654 (write_lookup_constraint_1): ...this.
655 (write_lookup_constraint_array): New function.
656 (write_tm_preds_h): Define lookup_constraint as an inline function
657 that uses write_lookup_constraint_array where possible.
658 (write_insn_preds_c): Update for the changes above.
660 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
662 * doc/md.texi (regclass_for_constraint): Rename to...
663 (reg_class_for_constraint): ...this.
664 * genpreds.c (num_constraints, enum_order, register_start)
665 (register_end, satisfied_start, memory_start, memory_end)
666 (address_start, address_end): New variables.
667 (add_constraint): Count the number of constraints.
668 (choose_enum_order): New function.
669 (write_enum_constraint_num): Iterate over enum_order.
670 (write_regclass_for_constraint): Rename to...
671 (write_reg_class_for_constraint_1): ...this and update output
673 (write_constraint_satisfied_p): Rename to...
674 (write_constraint_satisfied_p_1): ...this and update output
675 accordingly. Do nothing if all extra constraints are register
677 (write_insn_extra_memory_constraint): Delete.
678 (write_insn_extra_address_constraint): Delete.
679 (write_range_function): New function.
680 (write_tm_preds_h): Define constraint_satisfied_p and
681 reg_class_for_constraint as inline functions that do a range check
682 before calling the out-of-line function. Use write_range_function
683 to implement insn_extra_{register,memory,address}_constraint,
684 the first of which is new.
685 (write_insn_preds_c): Update after above changes to write_* functions.
686 (main): Call choose_enum_order.
688 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
690 PR tree-optimization/61306
691 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
692 expression instead of its size.
693 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
694 false to prevent optimization when the result is unpredictable due to
695 arithmetic right shift of signed type with highest byte is set.
696 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
697 (init_symbolic_number): Likewise.
698 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
699 when the result is unpredictable due to sign extension.
701 2014-06-11 Terry Guo <terry.guo@arm.com>
703 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
704 (*thumb1_addsi3): Ditto.
705 (*thumb_subdi3): Ditto.
706 (thumb1_subsi3_insn): Ditto.
707 (*thumb_mulsi3): Ditto.
708 (*thumb_mulsi3_v6): Ditto.
709 (*thumb1_andsi3_insn): Ditto.
710 (thumb1_bicsi3): Ditto.
711 (*thumb1_iorsi3_insn): Ditto.
712 (*thumb1_xorsi3_insn): Ditto.
713 (*thumb1_ashlsi3): Ditto.
714 (*thumb1_ashrsi3): Ditto.
715 (*thumb1_lshrsi3): Ditto.
716 (*thumb1_rotrsi3): Ditto.
717 (*thumb1_negdi2): Ditto.
718 (*thumb1_negsi2): Ditto.
719 (*thumb1_abssi2): Ditto.
720 (*thumb1_neg_abssi2): Ditto.
721 (*thumb1_one_cmplsi2): Ditto.
722 (*thumb1_zero_extendhisi2): Ditto.
723 (*thumb1_zero_extendqisi2): Ditto.
724 (*thumb1_zero_extendqisi2_v6): Ditto.
725 (thumb1_extendhisi2): Ditto.
726 (thumb1_extendqisi2): Ditto.
727 (*thumb1_movdi_insn): Ditto.
728 (*thumb1_movsi_insn): Ditto.
729 (*thumb1_movhi_insn): Ditto.
730 (thumb_movhi_clobber): Ditto.
731 (*thumb1_movqi_insn): Ditto.
732 (*thumb1_movhf): Ditto.
733 (*thumb1_movsf_insn): Ditto.
734 (*thumb_movdf_insn): Ditto.
738 (cbranchsi4_insn): Ditto.
739 (cbranchsi4_scratch): Ditto.
740 (*negated_cbranchsi4): Ditto.
741 (*tbit_cbranch): Ditto.
742 (*tlobits_cbranch): Ditto.
743 (*tstsi3_cbranch): Ditto.
744 (*cbranchne_decr1): Ditto.
745 (*addsi3_cbranch): Ditto.
746 (*addsi3_cbranch_scratch): Ditto.
747 (*thumb_cmpdi_zero): Ditto.
748 (cstoresi_eq0_thumb1): Ditto.
749 (cstoresi_ne0_thumb1): Ditto.
750 (*cstoresi_eq0_thumb1_insn): Ditto.
751 (*cstoresi_ne0_thumb1_insn): Ditto.
752 (cstoresi_nltu_thumb1): Ditto.
753 (cstoresi_ltu_thumb1): Ditto.
754 (thumb1_addsi3_addgeu): Ditto.
755 (*thumb_jump): Ditto.
756 (*call_reg_thumb1_v5): Ditto.
757 (*call_reg_thumb1): Ditto.
758 (*call_value_reg_thumb1_v5): Ditto.
759 (*call_value_reg_thumb1): Ditto.
761 (*call_value_insn): Ditto.
762 (thumb1_casesi_internal_pic): Ditto.
763 (thumb1_casesi_dispatch): Ditto.
764 (*thumb1_indirect_jump): Ditto.
765 (prologue_thumb1_interwork): Ditto.
766 (*epilogue_insns): Ditto.
767 (consttable_1): Ditto.
768 (consttable_2): Ditto.
770 (*thumb1_tablejump): Ditto.
771 (thumb_eh_return): Ditto.
772 (define_peephole2): Two of them are thumb1 only and got moved into
774 (define_split): Six of them are thumb1 only and got moved into new
776 * config/arm/thumb1.md: New file comprised of above thumb1 only
779 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
781 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
782 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
784 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
785 (aarch64_crc_builtin_datum): New struct.
786 (aarch64_crc_builtin_data): New.
787 (aarch64_init_crc32_builtins): New function.
788 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
789 (aarch64_crc32_expand_builtin): New.
790 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
791 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
792 __ARM_FEATURE_CRC32 when appropriate.
793 (TARGET_CRC32): Define.
794 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
795 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
796 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
797 (aarch64_<crc_variant>): New pattern.
798 * config/aarch64/arm_acle.h: New file.
799 * config/aarch64/iterators.md (CRC): New int iterator.
800 (crc_variant, crc_mode): New int attributes.
801 * doc/aarch64-acle-intrinsics.texi: New file.
802 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
803 Include aarch64-acle-intrinsics.texi.
805 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
807 * tree-vect-data-refs.c (vect_grouped_store_supported): New
808 check for stores group of length 3.
809 (vect_permute_store_chain): New permutations for stores group of
811 * tree-vect-stmts.c (vect_model_store_cost): Change cost
812 of vec_perm_shuffle for the new permutations.
814 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
816 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
817 table rewriting temporarily on targets not supporting ONE_ONLY.
819 2014-06-11 Richard Biener <rguenther@suse.de>
823 2014-06-04 Richard Biener <rguenther@suse.de>
825 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
826 TREE_PUBLIC and DECL_EXTERNAL decls.
828 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
830 * varasm.c (set_implicit_section): New function.
831 (resolve_unique_section): Use it to set implicit section
833 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
834 (default_function_section): Likewise.
835 (decl_binds_to_current_def_p): Constify argument.
836 * varasm.h (decl_binds_to_current_def_p): Update prototype.
837 * asan.c (asan_protect_global): Use
838 symtab_get_node (decl)->implicit_section.
839 * symtab.c (dump_symtab_base): Dump implicit sections.
840 (verify_symtab_base): Verify sanity of sectoins and comdats.
841 (symtab_resolve_alias): Alias share the section of its target.
842 (set_section_1): New function.
843 (symtab_node::set_section): Move here, recurse to aliases.
844 (verify_symtab): Check for duplicated symtab lists.
845 * tree-core.h (implicit_section_name_p): Remove.
846 * tree-vect-data-refs.c: Include varasm.h.
847 (vect_can_force_dr_alignment_p): Fix conditional on when
848 decl bints to current definition; use
849 symtab_get_node (decl)->implicit_section.
850 * cgraph.c (cgraph_make_node_local_1): Fix section set.
851 * cgraph.h (struct symtab_node): Add implicit_section.
852 (set_section): Rename to ...
853 (set_section_for_node): ... this one.
854 (set_section): Declare.
855 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
856 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
857 input_overwrite_node, input_varpool_node): Stream implicit_section.
858 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
859 removal; it will fail in LTO.
861 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
863 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
864 Change second alternative type to f_mcr.
865 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
866 and 12th alternatives' types to f_mcr and f_mrc.
867 (*movdi_aarch64): Same for 12th and 13th alternatives.
868 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
869 (aarch64_movtilow_tilow): Change type to fmov.
871 2014-06-10 Jiong Wang <jiong.wang@arm.com>
873 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
874 (aarch64_save_or_restore_callee_save_registers): Fix layout.
876 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
878 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
880 (aarch64_sqrdmulh_lane<mode>): Likewise.
881 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
882 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
883 (aarch64_sqdmulh_laneq<mode>): New expander.
884 (aarch64_sqrdmulh_laneq<mode>): Likewise.
885 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
886 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
887 (aarch64_sqdmulh_lane<mode>): New expander.
888 (aarch64_sqrdmulh_lane<mode>): Likewise.
889 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
890 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
891 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
892 (aarch64_sqdmlal_laneq<mode>): Likewise.
893 (aarch64_sqdmlsl_lane<mode>): Likewise.
894 (aarch64_sqdmlsl_laneq<mode>): Likewise.
895 (aarch64_sqdmlal2_lane<mode>): Likewise.
896 (aarch64_sqdmlal2_laneq<mode>): Likewise.
897 (aarch64_sqdmlsl2_lane<mode>): Likewise.
898 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
899 (aarch64_sqdmull_lane<mode>): Likewise.
900 (aarch64_sqdmull_laneq<mode>): Likewise.
901 (aarch64_sqdmull2_lane<mode>): Likewise.
902 (aarch64_sqdmull2_laneq<mode>): Likewise.
904 2014-06-10 Richard Biener <rguenther@suse.de>
906 PR tree-optimization/61438
907 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
908 (eliminate_dom_walker::before_dom_children): Only try to inhibit
909 insertion of IVs if running PRE.
911 (pass_pre::execute): Likewise.
912 (pass_fre::execute): Likewise.
914 2014-06-10 Richard Biener <rguenther@suse.de>
917 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
918 Do not use the main variant for the type comparison.
919 (ncr_compar): Likewise.
920 (nonoverlapping_component_refs_p): Likewise.
922 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
924 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
925 REG_CFA_RESTORE mode.
927 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
929 * config/i386/i386.c (expand_vec_perm_pblendv): New.
930 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
931 expand_vec_perm_pblendv.
933 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
935 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
937 Simplify description of __crc32d and __crc32cd intrinsics.
938 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
941 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
944 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen
946 * config.in: Regenerate.
947 * configure: Likewise.
949 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
951 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
953 (intersect_static_var_sets): Remove.
954 (propagate): Do not prune local statics.
956 2014-06-10 Jakub Jelinek <jakub@redhat.com>
959 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
960 Set lastprivate_firstprivate even if omp_private_outer_ref
961 langhook returns true.
962 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
963 langhook, call unshare_expr on new_var and call
964 build_outer_var_ref to get the last argument.
966 2014-06-10 Marek Polacek <polacek@redhat.com>
969 * doc/extend.texi: Add cindex for transparent_union.
971 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
973 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
974 init_symbolic_number ().
976 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
979 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
980 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
981 (verify_rtl_sharing): Likewise.
983 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
986 * tree.c (build_qualified_type): Use a canonical type for
989 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
991 * config/arm/arm-modes.def: Remove XFmode.
993 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
996 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
997 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
998 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
999 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
1000 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
1001 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
1002 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
1003 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
1004 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
1006 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
1008 * tree-core.h (tree_decl_with_vis): Remove section_name.
1010 2014-06-09 Kito Cheng <kito@0xlab.org>
1012 * ira.c (ira): Don't call init_caller_save if LRA enabled
1013 since LRA use its own infrastructure to handle that.
1015 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1017 * symtab.c (dump_symtab_base): Update dumping.
1018 (symtab_make_decl_local): Clear only DECL_COMDAT.
1019 * tree-vect-data-refs.c (Check that variable is static before
1020 tampering with sections.
1021 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
1022 (cgraph_create_virtual_clone): Likewise.
1023 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
1024 (decl_section_name, set_decl_section_name): New accessors.
1025 (find_decls_types_r): Do not walk section name
1026 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
1027 (decl_comdat_group, decl_comdat_group_id): Constify.
1028 (decl_section_name, set_decl_section_name): Update.
1029 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
1030 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
1031 (cgraph_make_node_local_1): Clear section and comdat group.
1032 * cgraph.h (set_comdat_group): Sanity check.
1033 (get_section, set_section): New.
1034 * ipa-comdats.c (ipa_comdats): Use get_section.
1035 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
1036 * lto-streamer-out.c: Do not follow section names.
1037 * c-family/c-common.c (handle_section_attribute): Update.
1038 * lto-cgraph.c (lto_output_node): Output section.
1039 (lto_output_varpool_node): Likewise.
1040 (read_comdat_group): Rename to ...
1041 (read_identifier): ... this one.
1042 (read_string_cst): New function.
1043 (input_node, input_varpool_node): Input section names.
1044 * tree-emutls.c (get_emutls_init_templ_addr): Update.
1045 (new_emutls_decl): Update.
1046 (secname_for_decl): Check section names only of static vars.
1047 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
1048 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
1049 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
1050 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
1051 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
1052 * config/mcore/mcore.c (mcore_unique_section): Likewise.
1053 * config/mips/mips.c (mips16_build_function_stub): Likewise.
1054 * config/v850/v850.c (v850_insert_attributes): Likewise.
1055 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
1057 (h8300_handle_tiny_data_attribute): Likewise.
1058 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
1059 (bfin_handle_l2_attribute): Likewise.
1061 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1063 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
1064 remove static initializer.
1066 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1068 * varasm.c (use_blocks_for_decl_p): Check symbol table
1069 instead of alias attribute.
1070 (place_block_symbol): Recurse on aliases.
1072 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1074 * ipa-visibility.c: Include varasm.h
1075 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
1077 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1079 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
1082 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
1084 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
1085 from test_insn into GGC space escape via SET_SRC.
1087 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
1089 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
1090 call statement, if any.
1091 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
1092 statements, if any. Tidy up.
1094 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1097 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
1098 iterators, VSX_D that handles 64-bit types, and VSX_LE that
1099 handles swapping the two 64-bit double words on little endian
1100 systems. Include V1TImode and optionally TImode in VSX_LE so that
1101 these types are properly swapped. Change all of the insns and
1102 splits that do the 64-bit swaps to use VSX_LE.
1103 (vsx_le_perm_load_<mode>): Likewise.
1104 (vsx_le_perm_store_<mode>): Likewise.
1105 (splitters for little endian memory operations): Likewise.
1106 (vsx_xxpermdi2_le_<mode>): Likewise.
1107 (vsx_lxvd2x2_le_<mode>): Likewise.
1108 (vsx_stxvd2x2_le_<mode>): Likewise.
1110 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
1113 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
1114 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
1115 and corresponding splitters. Zero extend general register
1116 or memory input operand to XMM temporary. Enable for
1117 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
1118 (floatunssi<mode>2): Update expander predicate.
1120 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
1122 PR rtl-optimization/61325
1123 * lra-constraints.c (process_address_1): Check scale equal to one
1124 to prevent transformation: base + scale * index => base + new_reg.
1126 2014-06-06 Richard Biener <rguenther@suse.de>
1128 PR tree-optimization/59299
1129 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
1131 (nearest_common_dominator_of_uses): Likewise.
1132 (statement_sink_location): Adjust. Support sinking loads.
1134 2014-06-06 Martin Jambor <mjambor@suse.cz>
1136 * ipa-prop.c (get_place_in_agg_contents_list): New function.
1137 (build_agg_jump_func_from_list): Likewise.
1138 (determine_known_aggregate_parts): Renamed to
1139 determine_locally_known_aggregate_parts. Moved some functionality
1140 to the two functions above, removed bound checks.
1142 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
1144 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
1145 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
1146 (aarch64_progress_pointer): Likewise.
1147 (aarch64_copy_one_part_and_move_pointers): Likewise.
1148 (aarch64_expand_movmen): Likewise.
1149 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
1150 * config/aarch64/aarch64.md (movmem<mode>): New.
1152 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
1154 * targhooks.c (default_add_stmt_cost): Call target specific
1155 hook instead of default one.
1157 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
1159 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
1160 endianness instead of host endianness.
1161 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
1164 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1167 * function.c (instantiate_decls): Process the saved static chain.
1168 (expand_function_start): If not optimizing, save the static chain
1170 * tree-nested.c (convert_all_function_calls): Always create the static
1171 chain for nested functions if not optimizing.
1173 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1175 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
1177 2014-06-06 Richard Biener <rguenther@suse.de>
1179 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
1180 (construct_init_block): Likewise.
1181 (construct_exit_block): Likewise.
1182 (pass_expand::execute): Likewise.
1183 * graphite.c (graphite_transforms): Replace check for current_loops
1184 with a check for > 1 loops.
1185 (pass_graphite_transforms::execute): Adjust.
1186 * ipa-split.c (split_function): Remove check for current_loops.
1187 * omp-low.c (expand_parallel_call): Likewise.
1188 (expand_omp_for_init_counts): Likewise.
1189 (extract_omp_for_update_vars): Likewise.
1190 (expand_omp_for_generic): Likewise.
1191 (expand_omp_sections): Likewise.
1192 (expand_omp_target): Likewise.
1193 * tracer.c (tail_duplicate): Likewise.
1194 (pass_tracer::execute): Likewise.
1195 * trans-mem.c (expand_transaction): Likewise.
1196 * tree-complex.c (expand_complex_div_wide): Likewise.
1197 * tree-eh.c (lower_resx): Likewise.
1198 (cleanup_empty_eh_merge_phis): Likewise.
1199 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
1200 current_loops with a check for > 1 loops.
1201 (pass_predcom::execute): Adjust.
1202 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
1203 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
1204 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
1205 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
1206 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1207 * tree-switch-conversion.c (process_switch): Likewise.
1208 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1209 * tree-vrp.c (vrp_visit_phi_node): Likewise.
1210 (execute_vrp): Likewise.
1211 * ubsan.c (ubsan_expand_null_ifn): Likewise.
1213 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1215 * rtl.h (insn_location): Declare.
1216 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
1217 with UNKNOWN_LOCATION.
1218 * emit-rtl.c (insn_location): New function.
1219 * final.c (notice_source_line): Check that the instruction has a
1220 location before retrieving it and use insn_location.
1221 * modulo-sched.c (loop_single_full_bb_p): Likewise.
1222 * print-rtl.c (print_rtx): Likewise.
1224 2014-06-06 Richard Biener <rguenther@suse.de>
1226 * passes.def: Move 2nd VRP pass before phi-only-cprop.
1228 2014-06-06 Christian Bruel <christian.bruel@st.com>
1230 PR tree-optimization/43934
1231 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
1234 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1236 * ira-lives.c (single_reg_class): Add missing break. Explicitly
1237 return NO_REGS for extra address and memory constraints. Handle
1238 operands that match (or are equivalent to something that matches)
1239 extra constant constraints. Ignore other non-register operands.
1241 2014-06-06 Alan Modra <amodra@gmail.com>
1244 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
1245 * doc/tm.texi: Regenerate.
1246 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
1247 Use throughout in place of REG_PARM_STACK_SPACE.
1248 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
1249 "incoming" param. Pass to rs6000_function_parms_need_stack.
1250 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
1251 prototype_p when incoming. Use function decl when incoming
1252 to handle K&R style functions.
1253 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
1254 (INCOMING_REG_PARM_STACK_SPACE): Define.
1256 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1259 * cfgexpand.c (expand_debug_expr): Use address space of nested
1260 TREE_TYPE for ADDR_EXPR and MEM_REF.
1262 2014-06-05 Jeff Law <law@redhat.com>
1264 PR tree-optimization/61289
1265 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
1266 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
1267 looking for those which match LHS. All callers changed.
1268 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
1269 parameters and code which manipulated them. All callers changed.
1270 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
1271 and DST_MAP parameters. Simplify invalidation code by just calling
1272 invalidate_equivalences. All callers changed.
1273 (thread_across_edge): Simplify now that we don't need to maintain
1274 the map of equivalences to invalidate.
1276 2014-06-05 Kai Tietz <ktietz@redhat.com>
1277 Richard Henderson <rth@redhat.com>
1280 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
1281 checking for !TARGET_X32.
1282 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
1283 (sibcall_intern): New define_insn, plus required peepholes.
1284 (sibcall_pop_intern): Likewise.
1285 (sibcall_value_intern): Likewise.
1286 (sibcall_value_pop_intern): Likewise.
1288 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
1290 * tree-inline.c (tree_function_versioning): Check DF info existence
1291 before accessing it.
1293 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1295 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
1297 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
1298 aarch64_frame hard_fp_offset and frame_size.
1299 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
1300 frame_size; remove original_frame_size.
1301 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
1302 (aarch64_initial_elimination_offset): Remove frame_size and
1303 offset. Use aarch64_frame frame_size.
1305 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1306 Jiong Wang <jiong.wang@arm.com>
1307 Renlin <renlin.li@arm.com>
1309 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
1310 initialization of R30 offset. Update offset. Iterate core
1311 regisers upto X30. Remove X29, X30 specific code.
1313 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1314 Jiong Wang <jiong.wang@arm.com>
1316 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
1317 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
1318 (aarch64_register_saved_on_entry): Adjust test.
1320 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1322 * config/aarch64/aarch64.h (machine_function): Move
1323 saved_varargs_size from here...
1324 (aarch64_frame): ... to here.
1326 * config/aarch64/aarch64.c (aarch64_expand_prologue)
1327 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
1328 (aarch64_initial_elimination_offset)
1329 (aarch64_setup_incoming_varargs): Adjust location of
1332 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1334 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
1337 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
1338 Prachi Godbole <Prachi.Godbole@imgtec.com>
1340 * config/mips/mips-cpus.def: Add definition for p5600. Updated
1341 mips32r5 entry to use PROCESSOR_P5600.
1342 * config/mips/mips-tables.opt: Regenerate.
1343 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
1344 * config/mips/mips.c (mips_fmadd_bypass): New function.
1345 (mips_rtx_cost_data): Add costs for p5600.
1346 (mips_issue_rate): Add support for p5600.
1347 (mips_multipass_dfa_lookahead): Likewise.
1348 * config/mips/mips.h (TUNE_P5600): New define.
1349 (TUNE_MACC_CHAINS): Add TUNE_P5600.
1350 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
1351 * config/mips/mips.md: Include p5600.md.
1352 (processor): Add p5600.
1353 * config/mips/p5600.md: New file.
1355 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
1357 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
1358 * config/i386/predicates.md (palignr_operand): New.
1359 Indicates if permutation is suitable for palignr instruction.
1361 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
1363 PR tree-optimization/61319
1364 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
1365 stmt belongs to loop.
1367 2014-06-05 Richard Biener <rguenther@suse.de>
1369 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
1370 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
1371 (lookup_tmp_var): Adjust.
1372 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
1374 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1376 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
1378 2014-06-05 Marek Polacek <polacek@redhat.com>
1381 * doc/invoke.texi: Document -Wlogical-not-parentheses.
1383 2014-06-04 Tom de Vries <tom@codesourcery.com>
1385 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
1388 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
1390 PR tree-optimization/61385
1391 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
1393 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
1395 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
1396 changed to use fatal_error.
1397 (main): Ensure lto_wrapper_cleanup is run atexit.
1399 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1401 * lra-constraints.c (valid_address_p): Move earlier in file.
1402 (address_eliminator): New structure.
1403 (satisfies_memory_constraint_p): New function.
1404 (satisfies_address_constraint_p): Likewise.
1405 (process_alt_operands, process_address, curr_insn_transform): Use them.
1407 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1409 * lra-int.h (lra_static_insn_data): Make operand_alternative a
1411 (target_lra_int, default_target_lra_int, this_target_lra_int)
1412 (op_alt_data): Delete.
1413 * lra.h (lra_init): Delete.
1414 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
1415 (init_insn_code_data_once): Remove op_alt_data handling.
1416 (finish_insn_code_data_once): Likewise.
1417 (init_op_alt_data): Delete.
1418 (get_static_insn_data): Initialize operand_alternative to null.
1419 (free_insn_recog_data): Cast operand_alternative before freeing it.
1420 (setup_operand_alternative): Take the operand_alternative as
1421 parameter and assume it isn't already cached in the static
1423 (lra_set_insn_recog_data): Update accordingly.
1425 * ira.c (ira_init): Don't call lra_init.
1426 * target-globals.h (this_target_lra_int): Declare.
1427 (target_globals): Remove lra_int.
1428 (restore_target_globals): Update accordingly.
1429 * target-globals.c: Don't include lra-int.h.
1430 (default_target_globals, save_target_globals): Remove lra_int.
1432 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1434 * recog.h (operand_alternative): Convert reg_class, reject,
1435 matched and matches into bitfields.
1436 (preprocess_constraints): New overload.
1437 (preprocess_insn_constraints): New function.
1438 (preprocess_constraints): Take the insn as parameter.
1439 (recog_op_alt): Change into a pointer.
1440 (target_recog): Add x_op_alt.
1441 * recog.c (asm_op_alt): New variable.
1442 (recog_op_alt): Change into a pointer.
1443 (preprocess_constraints): New overload, replacing the old function
1444 definition with one that doesn't use global state.
1445 (preprocess_insn_constraints): New function.
1446 (preprocess_constraints): Use them. Take the insn as parameter.
1447 Use asm_op_alt for asms.
1448 (recog_init): Free existing x_op_alt entries.
1449 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
1451 (make_early_clobber_and_input_conflicts): Likewise.
1452 (process_bb_node_lives): Pass the insn to process_constraints.
1453 * reg-stack.c (check_asm_stack_operands): Likewise.
1454 (subst_asm_stack_regs): Likewise.
1455 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1456 * regrename.c (build_def_use): Likewise.
1457 * sched-deps.c (sched_analyze_insn): Likewise.
1458 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
1459 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
1460 (note_invalid_constants): Likewise.
1461 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1462 (ix86_legitimate_combined_insn): Make operand_alternative pointer
1465 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1467 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
1468 * ira-lives.c (check_and_make_def_conflict): Check for disabled
1470 (make_early_clobber_and_input_conflicts): Likewise.
1471 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1473 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1475 * recog.h (alternative_class): New function.
1476 (which_op_alt): Return a const recog_op_alt.
1477 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
1478 (subst_asm_stack_regs): Likewise.
1479 * config/arm/arm.c (note_invalid_constants): Likewise.
1480 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
1481 the operand_alternative; use alternative class instead.
1482 * sel-sched.c (get_reg_class): Likewise.
1483 * regrename.c (build_def_use): Likewise.
1484 (hide_operands, restore_operands, record_out_operands): Update type
1487 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1489 * recog.h (recog_op_alt): Convert to a flat array.
1490 (which_op_alt): New function.
1491 * recog.c (recog_op_alt): Convert to a flat array.
1492 (preprocess_constraints): Update accordingly, grouping all
1493 operands of the same alternative together, rather than the
1495 * ira-lives.c (check_and_make_def_conflict): Likewise.
1496 (make_early_clobber_and_input_conflicts): Likewise.
1497 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1498 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
1499 (subst_asm_stack_regs): Likewise.
1500 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1501 * regrename.c (hide_operands, record_out_operands): Likewise.
1502 (build_def_use): Likewise.
1503 * sel-sched.c (get_reg_class): Likewise.
1504 * config/arm/arm.c (note_invalid_constants): Likewise.
1506 2014-06-04 Jason Merrill <jason@redhat.com>
1510 * gimplify.c (gimplify_arg): Non-static.
1511 * gimplify.h: Declare it.
1513 2014-06-04 Richard Biener <rguenther@suse.de>
1515 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
1516 TREE_PUBLIC and DECL_EXTERNAL decls.
1518 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
1520 * regcprop.c (copyprop_hardreg_forward_1): Account for
1521 HARD_REGNO_CALL_PART_CLOBBERED.
1523 2014-06-04 Richard Biener <rguenther@suse.de>
1525 * configure.ac: Check whether the underlying type of int64_t
1526 is long or long long.
1527 * configure: Regenerate.
1528 * config.in: Likewise.
1529 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
1530 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
1532 2014-06-04 Richard Biener <rguenther@suse.de>
1534 PR tree-optimization/60098
1535 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
1537 (dse_optimize_stmt): Simplify, now that we found a kill
1540 2014-06-04 Richard Biener <rguenther@suse.de>
1542 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
1543 of accesses with non-invariant address.
1545 2014-06-04 Martin Liska <mliska@suse.cz>
1547 * cgraph.h (cgraph_make_wrapper): New function introduced.
1548 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
1549 * ipa-inline.h (inline_analyze_function): The function is global.
1550 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
1552 2014-06-04 Martin Liska <mliska@suse.cz>
1554 * tree.h (private_lookup_attribute_starting): New function.
1555 (lookup_attribute_starting): Likewise.
1556 * tree.c (private_lookup_attribute_starting): Likewise.
1558 2014-06-04 Martin Liska <mliska@suse.cz>
1560 * cgraph.h (expand_thunk): New argument added.
1561 (address_taken_from_non_vtable_p): New global function.
1562 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
1563 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
1564 * cgraphunit.c (analyze_function): Likewise.
1565 (assemble_thunks_and_aliases): Argument added to call.
1566 (expand_thunk): New argument forces to produce GIMPLE thunk.
1568 2014-06-04 Martin Liska <mliska@suse.cz>
1570 * coverage.h (coverage_compute_cfg_checksum): Argument added.
1571 * coverage.c (coverage_compute_cfg_checksum): Likewise.
1572 * profile.c (branch_prob): Likewise.
1574 2014-06-04 Martin Jambor <mjambor@suse.cz>
1577 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
1578 handler for switch on an ipa_ref_use enum.
1579 * ipa-reference.c (analyze_function): Likewise.
1581 2014-06-04 Kai Tietz <ktietz@redhat.com>
1583 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
1584 from old call-instruction.
1586 2014-06-04 Bin Cheng <bin.cheng@arm.com>
1588 * config/aarch64/aarch64.c (aarch64_classify_address)
1589 (aarch64_legitimize_reload_address): Support full addressing modes
1591 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
1592 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
1594 2014-06-03 Andrew Pinski <apinski@cavium.com>
1596 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
1599 2014-06-03 Andrew Pinski <apinski@cavium.com>
1601 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
1602 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
1604 2014-06-03 Kai Tietz <ktietz@redhat.com>
1606 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
1609 2014-06-03 Dehao Chen <dehao@google.com>
1611 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
1614 2014-06-03 Marek Polacek <polacek@redhat.com>
1617 * doc/invoke.texi: Document -Wswitch-bool.
1618 * function.c (stack_protect_epilogue): Cast controlling expression of
1620 * gengtype.c (walk_type): Generate switch expression with its
1621 controlling expression cast to int.
1623 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
1625 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
1627 * config/avr/avr-tables.opt: Regenerate.
1628 * config/avr/t-multilib: Regenerate.
1629 * doc/avr-mmcu.texi: Regenerate.
1631 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
1632 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1634 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
1635 (ata6617c, ata664251): Add new avr35 devices.
1636 (ata6612c): Add new avr4 device.
1637 (ata6613c, ata6614q): Add new avr5 devices.
1638 * config/avr/avr-tables.opt: Regenerate.
1639 * config/avr/t-multilib: Regenerate.
1640 * doc/avr-mmcu.texi: Regenerate.
1642 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1644 * gcc/config/aarch64/aarch64-builtins.c
1645 (aarch64_types_binop_ssu_qualifiers): New static data.
1646 (TYPES_BINOP_SSU): Define.
1647 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
1648 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
1649 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
1650 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
1651 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
1652 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
1653 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
1654 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
1655 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
1656 suffix to builtin function name, remove cast.
1657 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
1658 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
1659 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
1661 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1663 * gcc/config/aarch64/aarch64-builtins.c
1664 (aarch64_types_binop_uus_qualifiers,
1665 aarch64_types_shift_to_unsigned_qualifiers,
1666 aarch64_types_unsigned_shiftacc_qualifiers): Define.
1667 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
1668 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
1669 sqshlu_n, uqshl_n): Update qualifiers.
1670 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
1671 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
1672 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
1673 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
1674 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
1675 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
1676 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
1677 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
1678 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
1679 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
1680 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
1681 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
1682 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
1683 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
1684 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
1685 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
1686 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
1687 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
1688 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
1689 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
1690 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
1691 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
1692 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
1693 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
1694 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
1695 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
1696 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
1698 2014-06-03 Teresa Johnson <tejohnson@google.com>
1700 * tree-sra.c (modify_function): Record caller nodes after rebuild.
1702 2014-06-02 Jason Merrill <jason@redhat.com>
1705 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
1707 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1709 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
1712 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1714 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
1716 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
1717 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
1718 * config/aarch64/iterators.md (REVERSE): New iterator.
1719 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
1720 (rev_op): New int_attribute.
1721 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
1722 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
1723 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
1724 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
1725 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
1726 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
1727 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
1728 Replace temporary __asm__ with __builtin_shuffle.
1730 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
1732 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
1734 * config/mips/mips-tables.opt: Regenerate.
1735 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
1736 to use mips_isa_rev rather than ISA_MIPS32R2.
1737 * config/mips/mips.h (ISA_MIPS32R3): New define.
1738 (ISA_MIPS32R5): New define.
1739 (ISA_MIPS64R3): New define.
1740 (ISA_MIPS64R5): New define.
1741 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
1742 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
1743 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
1745 (MIPS_ISA_SYNCI_SPEC): Likewise.
1746 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
1747 (LINK_SPEC): Added mips32r3 and mips32r5.
1748 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
1749 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
1750 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
1751 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
1752 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
1753 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
1754 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
1756 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
1758 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
1760 * config/mips/mips.opt (mxpa): New option.
1761 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
1764 2014-06-03 Martin Jambor <mjambor@suse.cz>
1767 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
1770 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
1772 PR tree-optimization/61328
1773 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
1774 initialization from find_bswap_or_nop_1.
1775 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
1776 in source_expr2 before using the size value the function sets. Also
1777 make use of init_symbolic_number () in both the old place and
1778 find_bswap_or_nop_load () to avoid reading uninitialized memory when
1779 doing recursion in the GIMPLE_BINARY_RHS case.
1781 2014-06-03 Richard Biener <rguenther@suse.de>
1783 PR tree-optimization/61383
1784 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
1787 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
1789 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
1790 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
1791 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
1792 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
1794 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
1795 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
1796 * system.h: ...here and make it unconditional.
1797 * target.def (conditional_register_usage): Mention
1798 define_register_constraint instead of old-style constraint macros.
1799 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
1800 * doc/tm.texi: Regenerate.
1801 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
1802 protected by !USE_MD_CONSTRAINTS.
1803 * config/frv/frv.md: Remove quote from old version of documentation.
1804 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
1805 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
1806 CONST_DOUBLE_OK_FOR_LETTER.
1807 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
1809 2014-06-02 Andrew Pinski <apinski@cavium.com>
1811 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
1812 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
1813 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
1814 file whose name depends on -mabi= and -mbig-endian.
1815 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
1816 Handle LP64 better and handle ilp32 too.
1817 (MULTILIB_OPTIONS): Delete.
1818 (MULTILIB_DIRNAMES): Delete.
1820 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1822 * expr.h: Remove prototypes of functions defined in builtins.c.
1823 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
1824 Remove prototypes of functions defined in builtins.c.
1825 * builtins.h: Update prototype list to include all exported functions.
1826 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
1827 no_c99_libc_has_function): Move to targhooks.c
1828 (build_string_literal, build_call_expr_loc_array,
1829 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
1831 (expand_builtin_object_size, fold_builtin_object_size): Make static.
1832 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
1833 no_c99_libc_has_function): Relocate from builtins.c.
1834 * tree.c: Include builtins.h.
1835 (build_call_expr_loc_array, build_call_expr_loc_vec,
1836 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
1838 * fold-const.h (fold_fma): Move prototype to builtins.h.
1839 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
1840 * asan.c: Include builtins.h.
1841 * cfgexpand.c: Likewise.
1842 * convert.c: Likewise.
1843 * emit-rtl.c: Likewise.
1844 * except.c: Likewise.
1846 * fold-const.c: Likewise.
1847 * gimple-fold.c: Likewise.
1848 * gimple-ssa-strength-reduction.c: Likewise.
1849 * gimplify.c: Likewise.
1850 * ipa-inline.c: Likewise.
1851 * ipa-prop.c: Likewise.
1852 * lto-streamer-out.c: Likewise.
1854 * tree-inline.c: Likewise.
1855 * tree-object-size.c: Likewise.
1856 * tree-sra.c: Likewise.
1857 * tree-ssa-ccp.c: Likewise.
1858 * tree-ssa-forwprop.c: Likewise.
1859 * tree-ssa-loop-ivcanon.c: Likewise.
1860 * tree-ssa-loop-ivopts.c: Likewise.
1861 * tree-ssa-math-opts.c: Likewise.
1862 * tree-ssa-reassoc.c: Likewise.
1863 * tree-ssa-threadedge.c: Likewise.
1864 * tree-streamer-in.c: Likewise.
1865 * tree-vect-data-refs.c: Likewise.
1866 * tree-vect-patterns.c: Likewise.
1867 * tree-vect-stmts.c: Likewise.
1868 * config/aarch64/aarch64.c: Likewise.
1869 * config/alpha/alpha.c: Likewise.
1870 * config/arc/arc.c: Likewise.
1871 * config/arm/arm.c: Likewise.
1872 * config/avr/avr.c: Likewise.
1873 * config/bfin/bfin.c: Likewise.
1874 * config/c6x/c6x.c: Likewise.
1875 * config/cr16/cr16.c: Likewise.
1876 * config/cris/cris.c: Likewise.
1877 * config/epiphany/epiphany.c: Likewise.
1878 * config/fr30/fr30.c: Likewise.
1879 * config/frv/frv.c: Likewise.
1880 * config/h8300/h8300.c: Likewise.
1881 * config/i386/i386.c: Likewise.
1882 * config/i386/winnt.c: Likewise.
1883 * config/ia64/ia64.c: Likewise.
1884 * config/iq2000/iq2000.c: Likewise.
1885 * config/lm32/lm32.c: Likewise.
1886 * config/m32c/m32c.c: Likewise.
1887 * config/m32r/m32r.c: Likewise.
1888 * config/m68k/m68k.c: Likewise.
1889 * config/mcore/mcore.c: Likewise.
1890 * config/mep/mep.c: Likewise.
1891 * config/microblaze/microblaze.c: Likewise.
1892 * config/mips/mips.c: Likewise.
1893 * config/mmix/mmix.c: Likewise.
1894 * config/mn10300/mn10300.c: Likewise.
1895 * config/moxie/moxie.c: Likewise.
1896 * config/msp430/msp430.c: Likewise.
1897 * config/nds32/nds32.c: Likewise.
1898 * config/pa/pa.c: Likewise.
1899 * config/pdp11/pdp11.c: Likewise.
1900 * config/picochip/picochip.c: Likewise.
1901 * config/rl78/rl78.c: Likewise.
1902 * config/rs6000/rs6000.c: Likewise.
1903 * config/rx/rx.c: Likewise.
1904 * config/s390/s390.c: Likewise.
1905 * config/score/score.c: Likewise.
1906 * config/sh/sh.c: Likewise.
1907 * config/sparc/sparc.c: Likewise.
1908 * config/spu/spu.c: Likewise.
1909 * config/stormy16/stormy16.c: Likewise.
1910 * config/tilegx/tilegx.c: Likewise.
1911 * config/tilepro/tilepro.c: Likewise.
1912 * config/v850/v850.c: Likewise.
1913 * config/vax/vax.c: Likewise.
1914 * config/xtensa/xtensa.c: Likewise.
1916 2014-06-02 Jeff Law <law@redhat.com>
1918 PR rtl-optimization/61094
1919 * ree.c (combine_reaching_defs): Do not reextend an insn if it
1920 was marked as do_no_reextend. If a copy is needed to eliminate
1921 an extension, then mark it as do_not_reextend.
1923 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
1925 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
1927 2014-06-02 Richard Henderson <rth@redhat.com>
1930 * config/alpha/alpha.c (print_operand_address): Allow symbolic
1931 addresses inside asms. Use output_operand_lossage instead of
1934 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
1937 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
1938 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
1940 2014-06-02 Tom de Vries <tom@codesourcery.com>
1942 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
1943 case that x has VOIDmode.
1945 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
1947 * varasm.c (copy_constant): Delete function.
1948 (build_constant_desc): Don't call it.
1950 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1953 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
1954 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
1955 with immediate_operand.
1957 2014-06-02 Andreas Schwab <schwab@suse.de>
1959 * config/ia64/ia64.c
1960 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
1961 pending_data_specs first.
1963 2014-06-02 Richard Biener <rguenther@suse.de>
1965 PR tree-optimization/61378
1966 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
1969 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
1971 * config/i386/constraints.md (Bw): Rename from 'w'.
1972 (Bz): Rename from 'z'.
1973 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
1975 2014-06-01 Kai Tietz <ktietz@redhat.com>
1978 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
1979 * config/i386/i386.md (sibcall_insn_operand): Use Bs
1980 instead of m constraint.
1982 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
1984 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
1985 a separate alternative where the scratch operand 2 is marked as
1988 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
1990 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1991 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
1992 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
1993 and __builtins_arm_get_fpscr.
1994 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
1995 __builtins_arm_get_fpscr.
1996 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
1997 __builtins_arm_ldfpscr.
1998 (arm_atomic_assign_expand_fenv): New function.
1999 * config/arm/vfp.md (set_fpscr): New pattern.
2000 (get_fpscr) : Likewise.
2001 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
2003 * doc/extend.texi (AARCH64 Built-in Functions) : Document
2004 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
2006 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2008 * asan.c (report_error_func): Add SLOW_P argument, use
2009 BUILT_IN_ASAN_*_N if set.
2010 (build_check_stmt): Likewise.
2011 (instrument_derefs): If T has insufficient alignment,
2012 force same handling as for odd sizes.
2014 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
2015 BUILT_IN_ASAN_REPORT_STORE_N): New.
2016 * asan.c (struct asan_mem_ref): Change access_size type to
2018 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
2019 update_mem_ref_hash_table): Likewise.
2020 (asan_mem_ref_hasher::hash): Hash in a HWI.
2021 (report_error_func): Change size_in_bytes argument to HWI.
2022 Use *_N builtins if size_in_bytes is larger than 16 or not power of
2024 (build_shadow_mem_access): New function.
2025 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
2026 Handle size_in_bytes not power of two or larger than 16.
2027 (instrument_derefs): Don't give up if size_in_bytes is not
2028 power of two or is larger than 16.
2030 2014-05-30 Kai Tietz <ktietz@redhat.com>
2033 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
2034 for sibling-tail-calls.
2035 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
2037 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
2038 (sibcall_insn_operand): Add check for sibcall_memory_operand.
2040 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2042 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
2043 * config/avr/avr-tables.opt: Regenerate.
2044 * config/avr/t-multilib: Regenerate.
2045 * doc/avr-mmcu.texi: Regenerate.
2047 2014-05-30 Ian Lance Taylor <iant@google.com>
2049 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
2052 2014-05-30 Tom de Vries <tom@codesourcery.com>
2054 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
2057 2014-05-30 Tom de Vries <tom@codesourcery.com>
2059 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2060 * lra.c (initialize_lra_reg_info_element): Add init of
2061 actual_call_used_reg_set field.
2062 (lra): Call lra_create_live_ranges before lra_inheritance for
2064 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2066 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
2067 instead of call_used_reg_set for -fuse-caller-save.
2068 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2070 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2072 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
2074 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
2076 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2078 * ira.c (ira_get_dup_out_num): Check for output operands at
2079 the start of the loop. Handle cases where an included alternative
2080 follows an excluded one.
2082 2014-05-29 Mike Stump <mikestump@comcast.net>
2085 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
2086 post ld passes when lto is used.
2088 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
2090 PR rtl-optimization/61325
2091 * lra-constraints.c (process_address): Rename to process_address_1.
2092 (process_address): New function.
2094 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
2096 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
2097 TYPES_BINOPV): New static data.
2098 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
2100 * config/aarch64/aarch64-simd.md (aarch64_ext,
2101 aarch64_im_lane_boundsi): New patterns.
2102 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
2104 (aarch64_evpc_ext): New function.
2106 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
2108 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
2109 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
2110 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
2111 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
2112 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
2114 2014-05-29 Tom de Vries <tom@codesourcery.com>
2116 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
2118 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
2119 Richard Sandiford <rdsandiford@googlemail.com>
2121 * arm/iterators.md (shiftable_ops): New code iterator.
2122 (t2_binop0, arith_shift_insn): New code attributes.
2123 * arm/predicates.md (shift_nomul_operator): New predicate.
2124 * arm/arm.md (insn_enabled): Delete.
2125 (enabled): Remove insn_enabled test.
2126 (*arith_shiftsi): Delete. Replace with ...
2127 (*<arith_shift_insn>_multsi): ... new pattern.
2128 (*<arith_shift_insn>_shiftsi): ... new pattern.
2129 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
2131 2014-05-29 Radovan Obradovic <robradovic@mips.com>
2132 Tom de Vries <tom@codesourcery.com>
2134 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
2135 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
2137 (mips_split_call): Use POST_CALL_TMP_REG.
2138 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
2140 2014-05-29 Tom de Vries <tom@codesourcery.com>
2142 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
2143 with #ifdef STACK_REGS.
2145 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
2147 * varasm.c (get_variable_section): Walk aliases.
2148 (place_block_symbol): Walk aliases.
2150 2014-05-28 Tom de Vries <tom@codesourcery.com>
2153 2014-05-28 Tom de Vries <tom@codesourcery.com>
2155 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2156 * lra.c (initialize_lra_reg_info_element): Add init of
2157 actual_call_used_reg_set field.
2158 (lra): Call lra_create_live_ranges before lra_inheritance for
2160 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2162 * lra-constraints.c (need_for_call_save_p): Use
2163 actual_call_used_reg_set instead of call_used_reg_set for
2165 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2167 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2169 * doc/md.texi: Document that the % constraint character must
2170 be at the beginning of the string.
2171 * genoutput.c (validate_insn_alternatives): Check that '=',
2172 '+' and '%' only appear at the beginning of a constraint.
2173 * ira.c (commutative_constraint_p): Delete.
2174 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
2175 at the start of the string.
2176 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
2178 * config/arm/neon.md (bicdi3_neon): Likewise.
2179 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
2180 (slt_si, sltu_si): Likewise.
2181 * config/vax/vax.md (sbcdi3): Likewise.
2182 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
2183 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
2184 (mul64): Move '%' to beginning of constraint.
2185 * config/arm/arm.md (*xordi3_insn): Likewise.
2186 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
2189 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2191 * doc/md.texi: Document the restrictions on the "enabled" attribute.
2193 2014-05-28 Jason Merrill <jason@redhat.com>
2196 * cgraph.h (symtab_node::get_comdat_group_id): New.
2197 * cgraphunit.c (analyze_functions): Call it.
2198 * symtab.c (dump_symtab_node): Likewise.
2199 * tree.c (decl_comdat_group_id): New.
2200 * tree.h: Declare it.
2201 * lto-streamer-out.c (write_symbol): Use it.
2202 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
2204 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2206 PR bootstrap/PR61146
2207 * wide-int.cc: Do not include longlong.h when compiling with clang.
2209 2014-05-28 Richard Biener <rguenther@suse.de>
2211 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
2212 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
2213 (vrp_visit_assignment_or_call): Print less vertical space.
2214 (vrp_visit_stmt): Likewise.
2215 (vrp_visit_phi_node): Likewise. For a PHI argument with
2216 VR_VARYING range consider recording it as copy.
2218 2014-05-28 Richard Biener <rguenther@suse.de>
2221 2014-05-28 Richard Biener <rguenther@suse.de>
2223 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2225 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
2227 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
2228 sufficiently aligned and an offset is used at the same time.
2229 (expand_expr_real_1): Likewise.
2231 2014-05-28 Richard Biener <rguenther@suse.de>
2234 * fold-const.c (fold_comparison): When folding
2235 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
2236 the sign of the remaining constant operand stays the same.
2238 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
2240 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
2241 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
2242 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
2244 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
2245 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
2246 (m32bit-doubles) Likewise.
2247 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
2248 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
2251 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2253 * configure.ac ($gcc_cv_ld_clearcap): New test.
2254 * configure: Regenerate.
2255 * config.in: Regenerate.
2256 * config/sol2.opt (mclear-hwcap): New option.
2257 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
2258 * config/sol2-clearcap.map: Moved here from
2259 testsuite/gcc.target/i386/clearcap.map.
2260 * config/sol2-clearcapv2.map: Move here from
2261 gcc.target/i386/clearcapv2.map.
2262 * config/t-sol2 (install): Depend on install-clearcap-map.
2263 (install-clearcap-map): New target.
2264 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
2267 2014-05-28 Richard Biener <rguenther@suse.de>
2269 * hwint.h (*_HALF_WIDE_INT*): Move to ...
2270 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
2271 ... here and remove the rest.
2272 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2274 2014-05-28 Richard Biener <rguenther@suse.de>
2276 PR tree-optimization/61335
2277 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
2278 new range fails, drop to varying.
2280 2014-05-28 Tom de Vries <tom@codesourcery.com>
2282 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2283 * lra.c (initialize_lra_reg_info_element): Add init of
2284 actual_call_used_reg_set field.
2285 (lra): Call lra_create_live_ranges before lra_inheritance for
2287 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2289 * lra-constraints.c (need_for_call_save_p): Use
2290 actual_call_used_reg_set instead of call_used_reg_set for
2292 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2294 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2295 Tom de Vries <tom@codesourcery.com>
2297 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
2299 (@item -fuse-caller-save): New item.
2301 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2302 Tom de Vries <tom@codesourcery.com>
2304 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
2305 OPT_fuse_caller_save.
2307 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2308 Tom de Vries <tom@codesourcery.com>
2310 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
2311 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
2312 get_call_reg_set_usage.
2313 * resource.c (mark_set_resources, mark_target_live_regs): Use
2314 get_call_reg_set_usage.
2315 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
2317 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
2318 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
2319 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2320 * ira-build.c (ira_create_allocno): Init
2321 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2322 (create_cap_allocno, propagate_allocno_info)
2323 (propagate_some_info_from_allocno)
2324 (copy_info_to_removed_store_destinations): Handle
2325 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2326 * ira-costs.c (ira_tune_allocno_costs): Use
2327 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
2329 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2330 Tom de Vries <tom@codesourcery.com>
2332 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
2333 and function_used_regs_valid fields.
2334 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
2335 find_all_hard_reg_sets.
2336 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
2337 (get_call_reg_set_usage): New function.
2338 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
2339 * regs.h (get_call_reg_set_usage): Declare.
2341 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
2344 * config/dbx.h (License): Add Runtime Library Exception.
2345 * config/newlib-stdint.h (License): Same.
2346 * config/rtems.h (License): Same
2347 * config/initfini-array.h (License): Same
2348 * config/v850/v850.h (License): Same.
2349 * config/v850/v850-opts.h (License): Same
2350 * config/v850/rtems.h (License): Same.
2352 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
2355 * doc/extend.texi (Local Labels): Note that label differences are
2356 not supported for AVR.
2358 2014-05-27 Andrew Pinski <apinski@cavium.com>
2360 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
2361 Use <w> for the register in assembly template.
2362 (stack_protect_test): Use the mode of operands[0] for the result.
2363 (stack_protect_test_<mode>): Use <w> for the register
2364 in assembly template.
2366 2014-05-27 DJ Delorie <dj@redhat.com>
2368 * config/rx/rx.c (add_vector_labels): New.
2369 (rx_output_function_prologue): Call it.
2370 (rx_handle_func_attribute): Don't require empty arguments.
2371 (rx_handle_vector_attribute): New.
2372 (rx_attribute_table): Add "vector" attribute.
2373 * doc/extend.texi (interrupt, vector): Document new/changed
2374 RX-specific attributes.
2376 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
2378 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
2380 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
2381 predicate to detect a negative quotient.
2383 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
2385 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
2386 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
2387 Add X - Y CMP 0 to X CMP Y transformation.
2388 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
2390 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
2392 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
2395 2014-05-27 Steve Ellcey <sellcey@mips.com>
2397 * config/mips/mips.c: Add include of cgraph.h.
2399 2014-05-27 Richard Biener <rguenther@suse.de>
2401 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
2403 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
2406 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
2407 * config/arm/arm-cores.def (License): Same.
2408 * config/arm/arm-opts.h (License): Same.
2409 * config/arm/aout.h (License): Same.
2410 * config/arm/bpabi.h (License): Same.
2411 * config/arm/elf.h (License): Same.
2412 * config/arm/linux-elf.h (License): Same.
2413 * config/arm/linux-gas.h (License): Same.
2414 * config/arm/netbsd-elf.h (License): Same.
2415 * config/arm/uclinux-eabi.h (License): Same.
2416 * config/arm/uclinux-elf.h (License): Same.
2417 * config/arm/vxworks.h (License): Same.
2419 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2421 * config/arm/neon.md (neon_bswap<mode>): New pattern.
2422 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
2423 (arm_init_neon_builtins): Handle NEON_BSWAP.
2424 Define required type nodes.
2425 (arm_expand_neon_builtin): Handle NEON_BSWAP.
2426 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
2427 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
2428 * config/arm/iterators.md (VDQHSD): New mode iterator.
2430 2014-05-27 Richard Biener <rguenther@suse.de>
2432 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2433 Try using literal operands when comparing value-ranges failed.
2435 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2437 * ira.c (commutative_operand): Adjust for change to recog_data.
2438 [Missing from previous commit.]
2440 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2442 * system.h (TEST_BIT): New macro.
2443 * recog.h (alternative_mask): New type.
2444 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
2445 (recog_data_d): Replace alternative_enabled_p array with
2446 enabled_alternatives.
2447 (target_recog): New structure.
2448 (default_target_recog, this_target_recog): Declare.
2449 (get_enabled_alternatives, recog_init): Likewise.
2450 * recog.c (default_target_recog, this_target_recog): New variables.
2451 (get_enabled_alternatives): New function.
2452 (extract_insn): Use it.
2453 (recog_init): New function.
2454 (preprocess_constraints, constrain_operands): Adjust for change to
2456 * postreload.c (reload_cse_simplify_operands): Likewise.
2457 * reload.c (find_reloads): Likewise.
2458 * ira-costs.c (record_reg_classes): Likewise.
2459 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
2460 all alternatives after a disabled one would be skipped.
2461 (ira_implicitly_set_insn_hard_regs): Likewise.
2462 * ira.c (ira_setup_alts): Adjust for change to recog_data.
2463 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
2464 with enabled_alternatives.
2465 * lra.c (free_insn_recog_data): Update accordingly.
2466 (lra_update_insn_recog_data): Likewise.
2467 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
2468 * lra-constraints.c (process_alt_operands): Likewise. Handle
2469 only_alternative as part of the enabled mask.
2470 * target-globals.h (this_target_recog): Declare.
2471 (target_globals): Add a recog field.
2472 (restore_target_globals): Restore this_target_recog.
2473 * target-globals.c: Include recog.h.
2474 (default_target_globals): Initialize recog field.
2475 (save_target_globals): Likewise.
2476 * reginfo.c (reinit_regs): Call recog_init.
2477 * toplev.c (backend_init_target): Likewise.
2479 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2481 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
2482 rather than any named insn's code.
2484 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
2487 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
2488 * config/arm/arm-cores.def (License): Same.
2490 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
2492 * tree.h (decl_comdat_group): Declare.
2493 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
2494 * tree.c (decl_comdat_group): Here.
2496 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
2498 PR rtl-optimization/61222
2499 * combine.c (simplify_shift_const_1): When moving a PLUS outside
2500 the shift, truncate the PLUS operand to the result mode.
2502 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
2505 * config/i386/i386.c (ix86_rtx_costs)
2506 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
2509 2014-05-26 Martin Jambor <mjambor@suse.cz>
2511 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
2514 2014-05-26 Richard Biener <rguenther@suse.de>
2516 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
2517 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
2518 Provide specializations.
2519 (wi::int_traits <HOST_WIDE_INT>,
2520 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
2522 2014-05-26 Alan Modra <amodra@gmail.com>
2525 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
2526 params and return a bool. Remove dead code. Update comment.
2527 Assert we have a const_int source. Remove bogus code from
2528 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
2529 handling of constants > 2G and reg_equal note, from..
2530 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
2531 return value. Update comment. If we can, use a new pseudo
2532 for intermediate calculations.
2533 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
2535 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
2536 call to rs6000_emit_set_const in splitter.
2537 (movdi_internal64+2, +3): Likewise.
2539 2014-05-26 Richard Biener <rguenther@suse.de>
2541 * system.h: Define __STDC_FORMAT_MACROS before
2542 including inttypes.h.
2543 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
2544 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
2545 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
2546 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
2547 HOST_WIDEST_INT_C): Remove.
2548 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
2549 if C99 inttypes.h is not available.
2550 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
2551 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
2552 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
2553 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
2554 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
2555 (struct output_info): Likewise.
2556 (print_statistics): Adjust.
2557 (dump_bitmap_statistics): Likewise.
2558 * bt-load.c (migrate_btr_defs): Print with PRId64.
2559 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
2560 (MAX_SAFE_MULTIPLIER): Adjust.
2561 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
2562 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
2563 dump_cgraph_node): Likewise.
2564 * final.c (dump_basic_block_info): Likewise.
2565 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
2566 * gcov.c (format_gcov): Likewise.
2567 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
2569 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
2570 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
2571 (inline_small_functions, dump_overall_stats, dump_inline_stats):
2572 Use PRId64 for dumping.
2573 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
2574 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
2575 (add_allocno_hard_regs): Adjust.
2576 * loop-doloop.c (doloop_modify): Print using PRId64.
2577 * loop-iv.c (inverse): Compute in uint64_t.
2578 (determine_max_iter, iv_number_of_iterations): Likewise.
2579 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
2581 * lto-streamer-out.c (write_symbol): Use uint64_t.
2582 * mcf.c (CAP_INFINITY): Use int64_t maximum.
2583 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
2584 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
2585 * modulo-sched.c (const_iteration_count): Use int64_t.
2586 (sms_schedule): Dump using PRId64.
2587 * predict.c (dump_prediction): Likewise.
2588 * pretty-print.h (pp_widest_integer): Remove.
2589 * profile.c (get_working_sets, is_edge_inconsistent,
2590 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
2591 * tree-pretty-print.c (pp_double_int): Remove case handling
2592 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
2593 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
2595 (pass_optimize_bswap::execute): Remove restriction on hosts.
2596 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
2597 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
2598 * tree.c (widest_int_cst_value): Remove.
2599 * tree.h (widest_int_cst_value): Likewise.
2600 * value-prof.c (dump_histogram_value): Print using PRId64.
2601 * gengtype.c (main): Also inject int64_t.
2602 * ggc-page.c (struct max_alignment): Use int64_t.
2603 * alloc-pool.c (struct allocation_object_def): Likewise.
2604 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
2606 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
2607 * doc/tm.texi: Regenerated.
2608 * gengtype-lex.l (IWORD): Handle [u]int64_t.
2609 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
2610 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
2611 mmix_output_register_setting): Use [u]int64_t in prototypes.
2612 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
2613 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
2614 mmix_output_octa, mmix_output_shifted_value): Adjust.
2615 (mmix_intval): Adjust. Remove unreachable case.
2616 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
2618 2014-05-26 Richard Biener <rguenther@suse.de>
2620 * configure.ac: Drop __int64 type check. Insist that we
2621 found uint64_t and int64_t.
2622 * hwint.h (HOST_BITS_PER___INT64): Remove.
2623 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
2624 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
2625 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
2626 (HOST_WIDEST_FAST_INT): Remove __int64 case.
2627 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
2628 for dst_q_src_df_rms_cdt.
2629 * configure: Regenerate.
2630 * config.in: Likewise.
2632 2014-05-26 Michael Tautschnig <mt@debian.org>
2635 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
2636 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
2638 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2640 PR rtl-optimization/61278
2641 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
2643 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2645 PR rtl-optimization/61220
2646 Part of PR rtl-optimization/61225
2647 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
2648 insn; skip split_edge for a block with only one successor.
2650 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2652 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
2655 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2657 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
2658 (update_vtable_references): New function.
2659 (function_and_variable_visibility): Rewrite also vtable initializers.
2660 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
2662 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2664 * ggc.h (ggc_grow): New function.
2665 * ggc-none.c (ggc_grow): New function.
2666 * ggc-page.c (ggc_grow): Likewise.
2668 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2670 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
2671 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
2672 comdat_can_be_unshared_p, cgraph_externally_visible_p,
2673 varpool_externally_visible_p, can_replace_by_local_alias,
2674 update_visibility_by_resolution_info, function_and_variable_visibility,
2675 pass_data_ipa_function_and_variable_visibility,
2676 make_pass_ipa_function_and_variable_visibility,
2677 whole_program_function_and_variable_visibility,
2678 pass_data_ipa_whole_program_visibility,
2679 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
2680 * cgraph.h (cgraph_local_node_p): Declare.
2681 * ipa-visibility.c: New file.
2682 * Makefile.in (OBJS): Add ipa-visiblity.o
2684 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2686 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
2687 that var decl is available.
2689 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2691 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
2692 symtab_node pointer.
2693 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
2694 (find_decls_types_r): Do not walk COMDAT_GROUP.
2695 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
2696 * varasm.c (make_decl_one_only): Use set_comdat_group;
2697 create node if needed.
2698 * ipa-inline-transform.c (save_inline_function_body): Update
2699 way we decl->symtab mapping.
2700 * symtab.c (symtab_hash, hash_node, eq_node
2701 symtab_insert_node_to_hashtable): Remove.
2702 (symtab_register_node): Update.
2703 (symtab_unregister_node): Update.
2704 (symtab_get_node): Reimplement as inline function.
2705 (symtab_add_to_same_comdat_group): Update.
2706 (symtab_dissolve_same_comdat_group_list): Update.
2707 (dump_symtab_base): Update.
2708 (verify_symtab_base): Update.
2709 (symtab_make_decl_local): Update.
2710 (fixup_same_cpp_alias_visibility): Update.
2711 (symtab_nonoverwritable_alias): Update.
2712 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
2713 * ipa.c (update_visibility_by_resolution_info): UPdate.
2714 * bb-reorder.c: Include cgraph.h
2715 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
2717 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
2718 * cgraph.c (cgraph_get_create_node): Update.
2719 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
2721 (symtab_get_node): Make inline.
2722 (symtab_insert_node_to_hashtable): Remove.
2723 (symtab_can_be_discarded): Update.
2724 (decl_comdat_group): New function.
2725 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
2727 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
2729 (read_comdat_group): New function.
2730 (input_node, input_varpool_node): Use it.
2731 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
2733 * mips.c (mips_start_unique_function): Likewise.
2734 (ix86_code_end): Likewise.
2735 (rs6000_code_end): Likweise.
2736 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
2738 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2740 * gengtype-state.c (fatal_reading_state): Bring offline.
2741 * optabs.c (widening_optab_handler): Bring offline.
2742 * optabs.h (widening_optab_handler): Likewise.
2743 * final.c (get_attr_length_1): Likewise.
2745 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
2747 * sched-int.h (sd_iterator_cond): Manually tail recurse.
2749 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2751 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
2752 (ppc440-compare): Include shift with dot.
2753 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
2754 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
2756 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
2758 (e6500_sfx2): Include it.
2759 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
2760 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
2761 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
2762 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
2763 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
2764 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
2765 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
2766 *lshiftrt_internal1le, *lshiftrt_internal1be,
2767 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
2768 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
2769 *rotldi3_internal10le, *rotldi3_internal10be,
2770 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
2771 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
2772 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
2773 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
2774 define_insns): Use type "shift" in the appropriate alternatives.
2776 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2778 * config/rs6000/rs6000.md (type): Add "logical". Delete
2780 (dot): Adjust comment.
2781 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
2782 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
2783 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
2784 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
2785 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
2786 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
2787 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
2788 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
2790 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
2791 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
2792 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
2793 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
2794 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
2795 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
2796 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
2797 * config/rs6000/8540.md (ppc8540_su): Adjust.
2798 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2799 cell-cmp-microcoded): Adjust.
2800 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
2801 * config/rs6000/e500mc.md (e500mc_su): Adjust.
2802 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
2803 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
2804 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
2805 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
2806 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
2807 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
2808 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
2810 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
2811 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
2812 Adjust. Adjust comment.
2813 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
2814 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
2816 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2818 * config/rs6000/rs6000.md (type): Add "add".
2819 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
2820 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
2821 define_insns): Use it.
2822 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
2824 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
2825 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
2826 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
2827 * config/rs6000/601.md (ppc601-integer): Adjust.
2828 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
2829 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
2830 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
2831 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
2832 * config/rs6000/8540.md (ppc8540_su): Adjust.
2833 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2834 cell-cmp-microcoded): Adjust.
2835 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
2836 * config/rs6000/e500mc.md (e500mc_su): Adjust.
2837 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
2838 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
2839 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
2840 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
2841 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
2842 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
2843 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
2845 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
2846 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
2847 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
2848 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
2850 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2852 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
2853 "delayed_compare", "var_delayed_compare".
2854 (var_shift): New attribute.
2855 (cell_micro): Adjust.
2856 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
2857 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
2858 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
2859 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
2860 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
2861 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
2862 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
2863 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
2864 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
2865 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
2866 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
2867 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
2868 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
2869 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
2870 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
2871 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
2872 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
2873 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
2874 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
2875 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
2876 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
2877 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
2878 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
2879 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
2880 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
2882 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
2883 * config/rs6000/440.md (ppc440-integer): Adjust.
2884 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
2885 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
2886 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
2887 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
2888 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
2889 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
2890 * config/rs6000/8540.md (ppc8540_su): Adjust.
2891 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
2892 cell-cmp-microcoded): Adjust.
2893 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
2894 * config/rs6000/e500mc.md (e500mc_su): Adjust.
2895 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
2896 e500mc64_delayed): Adjust.
2897 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
2898 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
2899 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
2900 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
2901 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
2902 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
2903 power6-delayed-compare, power6-var-delayed-compare): Adjust.
2904 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
2905 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
2907 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
2908 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
2910 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2912 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
2913 (bits): New mode_attr.
2914 (idiv_ldiv): Delete mode_attr.
2915 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
2916 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
2917 rs6000_adjust_priority, is_nonpipeline_insn,
2918 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
2920 * config/rs6000/40x.md (ppc403-idiv): Adjust.
2921 * config/rs6000/440.md (ppc440-idiv): Adjust.
2922 * config/rs6000/476.md (ppc476-idiv): Adjust.
2923 * config/rs6000/601.md (ppc601-idiv): Adjust.
2924 * config/rs6000/603.md (ppc603-idiv): Adjust.
2925 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
2926 ppc620-ldiv): Adjust.
2927 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
2928 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
2929 * config/rs6000/8540.md (ppc8540_divide): Adjust.
2930 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
2931 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
2932 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
2933 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
2934 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
2935 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
2936 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
2937 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
2938 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
2939 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
2940 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
2941 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
2942 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
2943 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
2944 * config/rs6000/titan.md (titan_fxu_div): Adjust.
2946 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2948 * config/rs6000/rs6000.md (type): Delete "insert_word",
2949 "insert_dword". Add "insert".
2950 (size): Update comment.
2951 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
2952 insn_must_be_first_in_group): Adjust.
2953 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
2954 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
2955 *insvsi_internal6, insvdi_internal): Adjust.
2957 * config/rs6000/40x.md (ppc403-integer): Adjust.
2958 * config/rs6000/440.md (ppc440-integer): Adjust.
2959 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
2960 * config/rs6000/601.md (ppc601-integer): Adjust.
2961 * config/rs6000/603.md (ppc603-integer): Adjust.
2962 * config/rs6000/6xx.md (ppc604-integer): Adjust.
2963 * config/rs6000/7450.md (ppc7450-integer): Adjust.
2964 * config/rs6000/7xx.md (ppc750-integer): Adjust.
2965 * config/rs6000/8540.md (ppc8540_su): Adjust.
2966 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
2967 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
2968 * config/rs6000/e500mc.md (e500mc_su): Adjust.
2969 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
2970 * config/rs6000/e5500.md (e5500_sfx): Adjust.
2971 * config/rs6000/e6500.md (e6500_sfx): Adjust.
2972 * config/rs6000/mpc.md (mpccore-integer): Adjust.
2973 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
2974 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
2975 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
2976 * config/rs6000/power7.md (power7-integer): Adjust.
2977 * config/rs6000/power8.md (power8-1cyc): Adjust.
2978 * config/rs6000/rs64.md (rs64a-integer): Adjust.
2979 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
2981 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
2983 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
2984 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
2985 (size): New attribute.
2986 (dot): New attribute.
2987 (cell_micro): Adjust.
2988 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
2989 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
2990 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
2991 umuldi3_highpart): Adjust.
2992 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
2993 rs6000_adjust_priority, is_nonpipeline_insn,
2994 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
2996 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
2997 ppc405-imul3): Adjust.
2998 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
2999 * config/rs6000/476.md (ppc476-imul): Adjust.
3000 * config/rs6000/601.md (ppc601-imul): Adjust.
3001 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
3002 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
3003 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
3004 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
3005 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
3007 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
3008 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
3009 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
3011 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
3012 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
3013 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
3014 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
3015 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
3016 * config/rs6000/mpc.md (mpccore-imul): Adjust.
3017 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
3018 power4-lmul, power4-imul, power4-imul3): Adjust.
3019 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
3020 power5-lmul, power5-imul, power5-imul3): Adjust.
3021 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
3022 power6-lmul, power6-imul, power6-imul3): Adjust.
3023 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
3024 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
3026 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
3027 rs64a-lmul): Adjust.
3028 * config/rs6000/titan.md (titan_imul): Adjust.
3030 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3032 * config/rs6000/rs6000.md (type): Add new value "halfmul".
3033 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
3034 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
3035 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
3036 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
3037 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
3038 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
3039 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
3040 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
3041 * config/rs6000/titan.md: Delete nonsensical comment.
3042 (titan_imul): Add type imul3.
3043 (titan_mulhw): Remove type imul3; add type halfmul.
3045 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3047 * config/rs6000/rs6000.md (type): Reorder, reformat.
3049 2014-05-23 Martin Jambor <mjambor@suse.cz>
3051 PR tree-optimization/53787
3052 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
3053 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
3054 analysis_done, update all uses.
3055 * ipa-prop.c: Include domwalk.h
3056 (param_analysis_info): Removed.
3057 (param_aa_status): New type.
3058 (ipa_bb_info): Likewise.
3059 (func_body_info): Likewise.
3060 (ipa_get_bb_info): New function.
3061 (aa_overwalked): Likewise.
3062 (find_dominating_aa_status): Likewise.
3063 (parm_bb_aa_status_for_bb): Likewise.
3064 (parm_preserved_before_stmt_p): Changed to use new param AA info.
3065 (load_from_unmodified_param): Accept func_body_info as a parameter
3066 instead of parms_ainfo.
3067 (parm_ref_data_preserved_p): Changed to use new param AA info.
3068 (parm_ref_data_pass_through_p): Likewise.
3069 (ipa_load_from_parm_agg_1): Likewise. Update callers.
3070 (compute_complex_assign_jump_func): Changed to use new param AA info.
3071 (compute_complex_ancestor_jump_func): Likewise.
3072 (ipa_compute_jump_functions_for_edge): Likewise.
3073 (ipa_compute_jump_functions): Removed.
3074 (ipa_compute_jump_functions_for_bb): New function.
3075 (ipa_analyze_indirect_call_uses): Likewise, moved variable
3077 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
3078 and info, moved variable declarations down.
3079 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
3081 (ipa_analyze_stmt_uses): Likewise.
3082 (ipa_analyze_params_uses): Removed.
3083 (ipa_analyze_params_uses_in_bb): New function.
3084 (ipa_analyze_controlled_uses): Likewise.
3085 (free_ipa_bb_info): Likewise.
3086 (analysis_dom_walker): New class.
3087 (ipa_analyze_node): Handle node-specific forbidden analysis,
3088 initialize and free func_body_info, use dominator walker.
3089 (ipcp_modif_dom_walker): New class.
3090 (ipcp_transform_function): Create and free func_body_info, use
3091 ipcp_modif_dom_walker, moved a lot of functionality there.
3093 2014-05-23 Marek Polacek <polacek@redhat.com>
3094 Jakub Jelinek <jakub@redhat.com>
3096 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
3097 * gcc.c (sanitize_spec_function): Likewise.
3098 * convert.c (convert_to_integer): Include "ubsan.h". Add
3099 floating-point to integer instrumentation.
3100 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
3101 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
3102 SANITIZE_NONDEFAULT.
3103 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
3104 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
3105 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
3106 * ubsan.c: Include "realmpfr.h" and "dfp.h".
3107 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
3108 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
3109 float/double/long double.
3110 (ubsan_instrument_float_cast): New function.
3111 * ubsan.h (ubsan_instrument_float_cast): Declare.
3113 2014-05-23 Jiong Wang <jiong.wang@arm.com>
3115 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
3117 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
3118 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
3119 Adjust for tailcalling through registers.
3120 * config/aarch64/aarch64.h (enum reg_class): New caller save
3122 (REG_CLASS_NAMES): Likewise.
3123 (REG_CLASS_CONTENTS): Likewise.
3124 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
3125 Allow tailcalling without decls.
3127 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
3129 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
3130 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
3132 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
3133 gsi, and variables v_* to v*.
3135 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
3137 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
3139 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
3141 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
3142 * omp-low.c: Update accordingly.
3144 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
3145 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
3146 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
3147 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
3148 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
3149 GF_OMP_TARGET_KIND_UPDATE.
3151 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
3152 Explicitly enumerate the expected region types.
3154 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
3157 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
3158 documentation; the old documentation didn't clearly state the
3159 constraints on the contents of the pointed-to storage.
3161 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3163 Fix bootstrap error on ia64
3164 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
3165 Return default value.
3167 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
3169 PR tree-optimization/54733
3170 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
3172 (find_bswap_or_nop_load): New.
3173 (find_bswap_1): Renamed to ...
3174 (find_bswap_or_nop_1): This. Also add support for memory source.
3175 (find_bswap): Renamed to ...
3176 (find_bswap_or_nop): This. Also add support for memory source and
3177 detection of bitwise operations equivalent to load in target
3179 (execute_optimize_bswap): Likewise. Also move its leading comment back
3180 in place and split statement transformation into ...
3181 (bswap_replace): This.
3183 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3185 PR rtl-optimization/61215
3186 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3187 simplify_gen_subreg until final substitution.
3189 2014-05-23 Alan Modra <amodra@gmail.com>
3192 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3193 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3194 Use "Y" constraint rather than "m".
3196 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
3198 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
3200 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
3201 New function declaration.
3202 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
3203 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
3204 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
3205 (aarch64_init_builtins) : Initialize builtins
3206 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
3207 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
3208 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
3209 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
3210 and __builtins_aarch64_set_fpsr.
3211 (aarch64_atomic_assign_expand_fenv): New function.
3212 * config/aarch64/aarch64.md (set_fpcr): New pattern.
3213 (get_fpcr) : Likewise.
3214 (set_fpsr) : Likewise.
3215 (get_fpsr) : Likewise.
3216 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
3217 and UNSPECV_SET_FPSR.
3218 * doc/extend.texi (AARCH64 Built-in Functions) : Document
3219 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
3220 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
3222 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3224 PR rtl-optimization/60969
3225 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3226 constraints. Set up mem cost for NO_REGS case.
3228 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
3230 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
3232 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
3234 * config/darwin.c: Include "lto-section-names.h".
3235 (LTO_SEGMENT_NAME): Don't define.
3236 * config/i386/winnt.c: Include "lto-section-names.h".
3237 * lto-streamer.c: Include "lto-section-names.h".
3238 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
3239 * lto-wrapper.c: Include "lto-section-names.h".
3240 (LTO_SECTION_NAME_PREFIX): Don't define.
3241 * lto-section-names.h: New file.
3242 * cgraphunit.c: Include "lto-section-names.h".
3244 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
3246 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3248 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
3251 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3253 2014-05-22 Nick Clifton <nickc@redhat.com>
3255 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3257 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
3259 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
3260 -> (T)A transformation to integer types.
3262 2014-05-22 Teresa Johnson <tejohnson@google.com>
3264 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
3265 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
3266 (gcov_rewrite): Use gcov_nonruntime_assert.
3268 (gcov_write_words): Ditto.
3269 (gcov_write_length): Ditto.
3270 (gcov_read_words): Use gcov_nonruntime_assert, and remove
3271 gcc_assert from IN_LIBGCOV code.
3272 (gcov_read_summary): Use gcov_error to flag profile corruption.
3273 (gcov_sync): Use gcov_nonruntime_assert.
3274 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
3275 (gcov_histo_index): Use gcov_nonruntime_assert.
3276 (static void gcov_histogram_merge): Ditto.
3277 (compute_working_sets): Ditto.
3278 * gcov-io.h (gcov_nonruntime_assert): Define.
3279 (gcov_error): Define for !IN_LIBGCOV
3281 2014-05-22 Richard Biener <rguenther@suse.de>
3283 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3284 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
3285 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
3286 and deallocation site.
3287 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3288 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
3289 passing through the incoming points-to set.
3290 (handle_lhs_call): Use flags argument instead of recomputing it.
3291 (find_func_aliases_for_call): Call handle_lhs_call with proper
3294 2014-05-22 Jakub Jelinek <jakub@redhat.com>
3296 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3297 all padding bits in REAL_VALUE_TYPE are cleared.
3299 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3301 Cleanup and improve multipass_dfa_lookahead_guard
3302 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
3303 (core2i7_first_cycle_multipass_begin,)
3304 (core2i7_first_cycle_multipass_issue,)
3305 (core2i7_first_cycle_multipass_backtrack): Update signature.
3306 * config/ia64/ia64.c
3307 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
3308 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
3309 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
3311 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
3312 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
3314 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
3316 * doc/tm.texi: Regenerate.
3318 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
3319 * haifa-sched.c (ready_try): Make signed to allow negative values.
3320 (rebug_ready_list_1): Update.
3321 (choose_ready): Simplify.
3322 (sched_extend_ready_list): Update.
3324 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3326 Remove IA64 speculation tweaking flags
3327 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
3328 speculation tuning flags.
3329 (msched-prefer-non-data-spec-insns,)
3330 (msched-prefer-non-control-spec-insns): Obsolete options.
3331 * haifa-sched.c (choose_ready): Remove handling of
3332 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
3333 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
3334 and PREFER_NON_DATA_SPEC.
3335 * sel-sched.c (process_spec_exprs): Remove handling of
3336 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
3338 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3340 Improve scheduling debug output
3341 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
3342 (advance_one_cycle): Update.
3343 (schedule_insn, queue_to_ready): Add debug printouts.
3344 (debug_ready_list_1): New static function.
3345 (debug_ready_list): Update.
3346 (max_issue): Add debug printouts.
3347 (dump_insn_stream): New static function.
3348 (schedule_block): Use it. Also better indent printouts.
3350 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3352 Fix sched_insn debug counter
3353 * haifa-sched.c (schedule_insn): Update.
3354 (struct haifa_saved_data): Add nonscheduled_insns_begin.
3355 (save_backtrack_point, restore_backtrack_point): Update.
3356 (first_nonscheduled_insn): New static function.
3357 (queue_to_ready, choose_ready): Use it.
3358 (schedule_block): Init nonscheduled_insns_begin.
3359 (sched_emit_insn): Update.
3362 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
3364 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
3366 (aarch64_secondary_reload) : LikeWise.
3367 (aarch64_class_max_nregs) : Remove CORE_REGS.
3368 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
3369 (REG_CLASS_NAMES) : Likewise.
3370 (REG_CLASS_CONTENTS) : LikeWise.
3371 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
3373 2014-05-21 Guozhi Wei <carrot@google.com>
3376 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3378 (vqdmulhq_n_s16): Likewise.
3380 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3382 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
3384 2014-05-21 Marek Polacek <polacek@redhat.com>
3387 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
3389 2014-05-21 Martin Jambor <mjambor@suse.cz>
3391 * doc/invoke.texi (Optimize Options): Document parameters
3392 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3393 ipa-cp-array-index-hint-bonus.
3395 2014-05-21 Mark Wielaard <mjw@redhat.com>
3398 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
3399 version >= 3 or not strict DWARF.
3400 * langhooks.h (struct lang_hooks_for_types): Add
3401 enum_underlying_base_type.
3402 * langhooks.c (lhd_enum_underlying_base_type): New function.
3403 * gcc/langhooks.h (struct lang_hooks_for_types): Add
3404 enum_underlying_base_type.
3405 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
3406 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
3407 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
3409 2014-05-21 Richard Biener <rguenther@suse.de>
3411 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
3413 2014-05-21 John Marino <gnugcc@marino.st>
3415 * config.gcc (*-*-dragonfly*): New target.
3416 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
3417 * configure: Regenerate.
3418 * config/dragonfly-stdint.h: New.
3419 * config/dragonfly.h: New.
3420 * config/dragonfly.opt: New.
3421 * config/i386/dragonfly.h: New.
3422 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
3424 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
3426 * tree.def (VOID_CST): New.
3427 * tree-core.h (TI_VOID): New.
3428 * tree.h (void_node): New.
3429 * tree.c (tree_node_structure_for_code, tree_code_size)
3430 (iterative_hash_expr): Handle VOID_CST.
3431 (build_common_tree_nodes): Initialize void_node.
3433 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
3435 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
3437 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
3439 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
3442 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
3443 flag_reorder_blocks_and_partition.
3444 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
3446 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
3449 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
3451 (*addc_r_t): Add new insn_and_split.
3453 2014-05-21 Jakub Jelinek <jakub@redhat.com>
3456 * omp-low.c (handle_simd_reference): New function.
3457 (lower_rec_input_clauses): Use it. Defer adding reference
3458 initialization even for reduction without placeholder if in simd,
3459 handle it properly later on.
3461 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3463 PR tree-optimization/60899
3464 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
3465 assume all static symbols will have definition wile parsing and
3466 check the do have definition later in compilation; check that
3467 variable referring symbol will be output before concluding that
3468 reference is safe; be conservative for referring local statics;
3469 be more precise about when comdat is output in other partition.
3471 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3474 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
3476 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
3477 (ipa_inline): Loop inline_to_all_callers until no more aliases
3480 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3482 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
3483 set writeonly flag only for vars actually written to.
3485 2014-05-20 Dehao Chen <dehao@google.com>
3487 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
3488 and callee count to get clone count.
3489 * tree-inline.c (expand_call_inline): Use callee count instead of bb
3492 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
3494 PR rtl-optimization/61243
3495 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
3497 2014-05-20 Xinliang David Li <davidxl@google.com>
3499 * cgraphunit.c (walk_polymorphic_call_targets): Add
3500 dbgcnt and fopt-info support.
3501 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
3502 * ipa-devirt.c (ipa_devirt): Ditto.
3503 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
3504 * ipa.c (walk_polymorphic_call_targets): Ditto.
3505 * gimple-fold.c (fold_gimple_assign): Ditto.
3506 (gimple_fold_call): Ditto.
3507 * dbgcnt.def: New counter.
3509 2014-05-20 DJ Delorie <dj@redhat.com>
3511 * config/msp430/msp430.md (split): Don't allow subregs when
3512 splitting SImode adds.
3513 (andneghi): Fix subtraction logic.
3514 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
3516 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3518 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
3520 * except.c (switch_to_exception_section, resolve_unique_section,
3521 get_named_text_section, default_function_rodata_section,
3522 align_variable, get_block_for_decl, default_section_type_flags):
3523 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3524 * symtab.c (symtab_add_to_same_comdat_group,
3525 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
3526 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
3528 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
3529 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
3530 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
3531 (c6x_function_in_section_p): Likewise.
3532 * config/darwin.c (machopic_select_section): Likewise.
3533 * config/arm/arm.c (arm_function_in_section_p): Likewise.
3534 * config/mips/mips.c (mips_function_rodata_section): Likewise.
3535 * config/mep/mep.c (mep_select_section): LIkewise.
3536 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
3538 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
3540 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
3541 EH region of calls to pure functions that can throw an exception.
3542 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
3543 (copy_reference_ops_from_call): Also copy the EH region of the call if
3544 it can throw an exception.
3546 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3548 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
3549 nested VEC_SELECTs that are inverses of each other.
3551 2014-05-20 Richard Biener <rguenther@suse.de>
3553 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
3554 (extract_and_process_scc_for_name): not here.
3555 (cond_dom_walker::before_dom_children): Only process
3556 stmts that end the BB in interesting ways.
3557 (run_scc_vn): Mark param uses as visited.
3559 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3561 * config/arm/arm.md (arith_shiftsi): Do not predicate for
3564 2014-05-20 Nick Clifton <nickc@redhat.com>
3566 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3567 (msp430_gimplify_va_arg_expr): New function.
3568 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
3570 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
3571 operand 0 in order to prevent confusion about the number of
3574 2014-05-20 Richard Biener <rguenther@suse.de>
3576 PR tree-optimization/61221
3577 * tree-ssa-pre.c (el_to_update): Remove.
3578 (eliminate_dom_walker::before_dom_children): Handle released
3579 VDEFs by value-numbering them to the associated VUSE. Update
3580 stmt immediately for substituted call address.
3581 (eliminate): Remove delayed stmt updating code.
3582 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
3583 possibly late re-numbered vuses.
3584 (vn_reference_lookup_2): Adjust.
3585 (vn_reference_lookup_pieces): Likewise.
3586 (vn_reference_lookup): Likewise.
3588 2014-05-20 Richard Biener <rguenther@suse.de>
3590 * config.gcc: Remove need_64bit_hwint.
3591 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
3592 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
3594 * config.in: Regenerate.
3595 * configure: Likewise.
3597 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
3599 * doc/extend.texi: Create Label Attributes section,
3600 move all label attributes into it and reference it.
3602 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
3604 * arm.c (thumb1_reorg): When scanning backwards skip anything
3605 that's not a proper insn.
3607 2014-05-19 Richard Biener <rguenther@suse.de>
3609 PR tree-optimization/61221
3610 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3611 Do nothing for unreachable blocks.
3612 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
3613 Improve unreachability detection.
3615 2014-05-19 Richard Biener <rguenther@suse.de>
3617 PR tree-optimization/61209
3618 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
3620 2014-05-19 Nick Clifton <nickc@redhat.com>
3622 * except.c (init_eh): Fix computation of builtin setjmp buffer
3623 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
3625 2014-05-19 Richard Biener <rguenther@suse.de>
3627 PR tree-optimization/61184
3628 * tree-vrp.c (is_negative_overflow_infinity): Use
3629 TREE_OVERFLOW_P and do that check first.
3630 (is_positive_overflow_infinity): Likewise.
3631 (is_overflow_infinity): Likewise.
3632 (vrp_operand_equal_p): Properly treat operands with
3633 differing overflow as not equal.
3635 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
3637 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
3638 shift simplification where it was intended.
3640 2014-05-19 Christian Bruel <christian.bruel@st.com>
3643 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
3645 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
3648 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
3651 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
3653 * reg-notes.def (CROSSING_JUMP): Likewise.
3654 * rtl.h (rtx_def): Update comment for jump flag.
3655 (CROSSING_JUMP_P): Define.
3656 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
3657 of a REG_CROSSING_JUMP note.
3658 * cfghooks.c (tidy_fallthru_edges): Likewise.
3659 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
3660 * emit-rtl.c (try_split): Likewise.
3661 * haifa-sched.c (sched_create_recovery_edges): Likewise.
3662 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
3663 * jump.c (redirect_jump_2): Likewise.
3664 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
3665 (relax_delay_slots): Likewise.
3666 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
3667 (bbit_di): Likewise.
3668 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
3669 * config/sh/sh.md (jump_compact): Likewise.
3670 * bb-reorder.c (rotate_loop): Likewise.
3671 (pass_duplicate_computed_gotos::execute): Likewise.
3672 (add_reg_crossing_jump_notes): Rename to...
3673 (update_crossing_jump_flags): ...this.
3674 (pass_partition_blocks::execute): Update accordingly.
3676 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
3678 * tree.h: Remove extraneous template <>.
3680 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3682 * ipa.c (symtab_remove_unreachable_nodes): Remove
3683 symbol from comdat group if its body was eliminated.
3684 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
3685 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
3686 (symtab_unregister_node): ... this one.
3687 (verify_symtab_base): More strict checking of comdats.
3688 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
3690 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3692 * tree-pass.h (make_pass_ipa_comdats): New pass.
3693 * timevar.def (TV_IPA_COMDATS): New timevar.
3694 * passes.def (pass_ipa_comdats): Add.
3695 * Makefile.in (OBJS): Add ipa-comdats.o
3696 * ipa-comdats.c: New file.
3698 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3700 * ipa.c (update_visibility_by_resolution_info): New function.
3701 (function_and_variable_visibility): Use it.
3703 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3705 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
3707 (FOR_EACH_DEFINED_SYMBOL): New macro.
3708 (varpool_first_static_initializer, varpool_next_static_initializer,
3709 varpool_first_defined_variable, varpool_next_defined_variable):
3711 (symtab_in_same_comdat_p): Correctly deal with inline functions.
3713 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
3715 * ggc-page.c (ggc_handle_finalizers): Add comment.
3717 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
3719 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
3720 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
3721 (ggc_internal_cleared_alloc): Likewise.
3722 * ggc-page.c (finalizer): New class.
3723 (vec_finalizer): Likewise.
3724 (globals::finalizers): New member.
3725 (globals::vec_finalizers): Likewise.
3726 (ggc_internal_alloc): Record the finalizer if any for the block being
3728 (ggc_handle_finalizers): New function.
3729 (ggc_collect): Call ggc_handle_finalizers.
3730 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
3732 (ggc_internal_cleared_alloc): Likewise.
3733 (finalize): New function.
3734 (need_finalization_p): Likewise.
3735 (ggc_alloc): Install the type's destructor as the finalizer if it
3737 (ggc_cleared_alloc): Likewise.
3738 (ggc_vec_alloc): Likewise.
3739 (ggc_cleared_vec_alloc): Likewise.
3741 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
3743 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
3745 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
3747 * alias.c (record_alias_subset): Adjust.
3748 * bitmap.c (bitmap_element_allocate): Likewise.
3749 (bitmap_gc_alloc_stat): Likewise.
3750 * cfg.c (init_flow): Likewise.
3751 (alloc_block): Likewise.
3752 (unchecked_make_edge): Likewise.
3753 * cfgloop.c (alloc_loop): Likewise.
3754 (flow_loops_find): Likewise.
3755 (rescan_loop_exit): Likewise.
3756 * cfgrtl.c (init_rtl_bb_info): Likewise.
3757 * cgraph.c (insert_new_cgraph_node_version): Likewise.
3758 (cgraph_allocate_node): Likewise.
3759 (cgraph_create_edge_1): Likewise.
3760 (cgraph_allocate_init_indirect_info): Likewise.
3761 * cgraphclones.c (cgraph_clone_edge): Likewise.
3762 * cgraphunit.c (add_asm_node): Likewise.
3763 (init_lowered_empty_function): Likewise.
3764 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
3765 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
3766 (alpha_use_linkage): Likewise.
3767 * config/arc/arc.c (arc_init_machine_status): Likewise.
3768 * config/arm/arm.c (arm_init_machine_status): Likewise.
3769 * config/avr/avr.c (avr_init_machine_status): Likewise.
3770 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
3771 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
3772 * config/cris/cris.c (cris_init_machine_status): Likewise.
3773 * config/darwin.c (machopic_indirection_name): Likewise.
3774 (darwin_build_constant_cfstring): Likewise.
3775 (darwin_enter_string_into_cfstring_table): Likewise.
3776 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
3777 * config/frv/frv.c (frv_init_machine_status): Likewise.
3778 * config/i386/i386.c (get_dllimport_decl): Likewise.
3779 (ix86_init_machine_status): Likewise.
3780 (assign_386_stack_local): Likewise.
3781 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
3782 (i386_pe_maybe_record_exported_symbol): Likewise.
3783 (i386_pe_record_stub): Likewise.
3784 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
3785 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
3786 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
3787 (m32c_note_pragma_address): Likewise.
3788 * config/mep/mep.c (mep_init_machine_status): Likewise.
3789 (mep_note_pragma_flag): Likewise.
3790 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
3791 (mips16_local_alias): Likewise.
3792 (mips_init_machine_status): Likewise.
3793 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
3794 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
3795 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
3796 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
3797 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
3798 * config/pa/pa.c (pa_init_machine_status): Likewise.
3799 (pa_get_deferred_plabel): Likewise.
3800 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
3801 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
3802 (rs6000_init_machine_status): Likewise.
3803 (output_toc): Likewise.
3804 * config/s390/s390.c (s390_init_machine_status): Likewise.
3805 * config/score/score.c (score_output_external): Likewise.
3806 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
3807 * config/spu/spu.c (spu_init_machine_status): Likewise.
3808 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
3809 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
3810 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
3811 * coverage.c (coverage_end_function): Likewise.
3812 * dbxout.c (dbxout_init): Likewise.
3813 * doc/gty.texi: Don't mention variable_size attribute.
3814 * dwarf2cfi.c (new_cfi): Adjust.
3815 (new_cfi_row): Likewise.
3816 (copy_cfi_row): Likewise.
3817 (create_cie_data): Likewise.
3818 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
3819 (new_loc_descr): Likewise.
3820 (find_AT_string_in_table): Likewise.
3821 (add_addr_table_entry): Likewise.
3822 (new_die): Likewise.
3823 (add_var_loc_to_decl): Likewise.
3824 (clone_die): Likewise.
3825 (clone_as_declaration): Likewise.
3826 (break_out_comdat_types): Likewise.
3827 (new_loc_list): Likewise.
3828 (add_loc_descr_to_each): Likewise.
3829 (add_location_or_const_value_attribute): Likewise.
3830 (add_linkage_name): Likewise.
3831 (lookup_filename): Likewise.
3832 (dwarf2out_var_location): Likewise.
3833 (new_line_info_table): Likewise.
3834 (dwarf2out_init): Likewise.
3835 (mem_loc_descriptor): Likewise.
3836 (loc_descriptor): Likewise.
3837 (add_const_value_attribute): Likewise.
3838 (tree_add_const_value_attribute): Likewise.
3839 (comp_dir_string): Likewise.
3840 (dwarf2out_vms_debug_main_pointer): Likewise.
3841 (string_cst_pool_decl): Likewise.
3842 * emit-rtl.c (set_mem_attrs): Likewise.
3843 (get_reg_attrs): Likewise.
3844 (start_sequence): Likewise.
3845 (init_emit): Likewise.
3846 (init_emit_regs): Likewise.
3847 * except.c (init_eh_for_function): Likewise.
3848 (gen_eh_region): Likewise.
3849 (gen_eh_region_catch): Likewise.
3850 (gen_eh_landing_pad): Likewise.
3851 (add_call_site): Likewise.
3852 * function.c (add_frame_space): Likewise.
3853 (insert_temp_slot_address): Likewise.
3854 (assign_stack_temp_for_type): Likewise.
3855 (get_hard_reg_initial_val): Likewise.
3856 (allocate_struct_function): Likewise.
3857 (prepare_function_start): Likewise.
3858 (types_used_by_var_decl_insert): Likewise.
3859 * gengtype.c (variable_size_p): Remove function.
3860 (enum alloc_quantity): Remove enum.
3861 (write_typed_alloc_def): Remove function.
3862 (write_typed_struct_alloc_def): Likewise.
3863 (write_typed_typedef_alloc_def): Likewise.
3864 (write_typed_alloc_defns): Likewise.
3866 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
3867 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
3868 * ggc.h (ggc_alloc): new function.
3869 (ggc_cleared_alloc): Likewise.
3870 (ggc_vec_alloc): Template on type of vector element, and remove
3871 element size argument.
3872 (ggc_cleared_vec_alloc): Likewise.
3873 * gimple.c (gimple_build_omp_for): Adjust.
3874 (gimple_copy): Likewise.
3875 * ipa-cp.c (get_replacement_map): Likewise.
3876 (find_aggregate_values_for_callers_subset): Likewise.
3877 (known_aggs_to_agg_replacement_list): Likewise.
3878 * ipa-devirt.c (get_odr_type): Likewise.
3879 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
3880 (read_agg_replacement_chain): Likewise.
3881 * loop-iv.c (get_simple_loop_desc): Likewise.
3882 * lto-cgraph.c (input_node_opt_summary): Likewise.
3883 * lto-section-in.c (lto_new_in_decl_state): Likewise.
3884 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
3885 (input_eh_region): Likewise.
3886 (input_eh_lp): Likewise.
3887 (input_cfg): Likewise.
3888 * optabs.c (set_optab_libfunc): Likewise.
3889 (init_tree_optimization_optabs): Likewise.
3890 (set_conv_libfunc): Likewise.
3891 * passes.c (do_per_function_toporder): Likewise.
3892 * rtl.h: Don't use variable_size gty attribute.
3893 * sese.c (if_region_set_false_region): Adjust.
3894 * stringpool.c (gt_pch_save_stringpool): Likewise.
3895 * target-globals.c (save_target_globals): Likewise.
3896 * toplev.c (general_init): Likewise.
3897 * trans-mem.c (record_tm_replacement): Likewise.
3898 (split_bb_make_tm_edge): Likewise.
3899 * tree-cfg.c (move_sese_region_to_fn): Likewise.
3900 * tree-data-ref.h (lambda_vector_new): Likewise.
3901 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
3902 * tree-iterator.c (tsi_link_before): Likewise.
3903 (tsi_link_after): Likewise.
3904 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
3905 * tree-ssa-loop-niter.c (record_estimate): Likewise.
3906 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
3907 * tree-ssa-operands.h: Don't use variable_size gty attribute.
3908 * tree-ssa.c (init_tree_ssa): Adjust.
3909 * tree-ssanames.c (set_range_info): Likewise.
3910 (get_ptr_info): Likewise.
3911 (duplicate_ssa_name_ptr_info): Likewise.
3912 (duplicate_ssa_name_range_info): Likewise.
3913 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
3914 (unpack_ts_fixed_cst_value_fields): Likewise.
3915 * tree.c (build_fixed): Likewise.
3916 (build_real): Likewise.
3917 (build_string): Likewise.
3918 (decl_priority_info): Likewise.
3919 (decl_debug_expr_insert): Likewise.
3920 (decl_value_expr_insert): Likewise.
3921 (decl_debug_args_insert): Likewise.
3922 (type_hash_add): Likewise.
3923 (build_omp_clause): Likewise.
3924 * ubsan.c (decl_for_type_insert): Likewise.
3925 * varasm.c (get_unnamed_section): Likewise.
3926 (get_noswitch_section): Likewise.
3927 (get_section): Likewise.
3928 (get_block_for_section): Likewise.
3929 (create_block_symbol): Likewise.
3930 (build_constant_desc): Likewise.
3931 (create_constant_pool): Likewise.
3932 (force_const_mem): Likewise.
3933 (record_tm_clone_pair): Likewise.
3934 * varpool.c (varpool_create_empty_node): Likewise.
3936 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
3938 * dwarf2out.c (tree_add_const_value_attribute): Call
3939 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
3940 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
3941 instead of ggc_internal_<x>alloc_stat.
3942 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
3943 (ggc_realloc): Likewise.
3944 * ggc-none.c (ggc_internal_alloc): Likewise.
3945 (ggc_internal_cleared_alloc): Likewise.
3946 * ggc-page.c: Likewise.
3947 * ggc.h (ggc_internal_alloc_stat): Likewise.
3948 (ggc_internal_alloc): Remove macro.
3949 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
3950 (ggc_internal_cleared_alloc): Remove macro.
3951 (GGC_RESIZEVEC): Adjust.
3952 (ggc_resizevar): Remove macro.
3953 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
3954 (ggc_internal_cleared_vec_alloc_stat): Likewise.
3955 (ggc_internal_vec_cleared_alloc): Remove macro.
3956 (ggc_alloc_atomic_stat): Drop _stat suffix.
3957 (ggc_alloc_atomic): Remove macro.
3958 (ggc_alloc_cleared_atomic): Remove macro.
3959 (ggc_alloc_string_stat): Drop _stat suffix.
3960 (ggc_alloc_string): Remove macro.
3961 (ggc_alloc_rtx_def_stat): Adjust.
3962 (ggc_alloc_tree_node_stat): Likewise.
3963 (ggc_alloc_cleared_tree_node_stat): Likewise.
3964 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
3965 (ggc_alloc_cleared_simd_clone_stat): Likewise.
3966 * gimple.c (gimple_build_omp_for): Likewise.
3967 (gimple_copy): Likewise.
3968 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
3969 * toplev.c (realloc_for_line_map): Adjust.
3970 * tree-data-ref.h (lambda_vector_new): Likewise.
3971 * tree-phinodes.c (allocate_phi_node): Likewise.
3972 * tree.c (grow_tree_vec_stat): Likewise.
3973 * vec.h (va_gc::reserve): Adjust.
3975 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
3977 * config/microblaze/microblaze.c (break_handler): New Declaration.
3978 (microblaze_break_function_p,microblaze_is_break_handler): New.
3979 (compute_frame_size): Use microblaze_break_function_p.
3980 Add the test of break_handler.
3981 (microblaze_function_prologue) : Add the test of variable
3982 break_handler. Check the fnname by BREAK_HANDLER_NAME.
3983 (microblaze_function_epilogue) : Add the test of break_handler.
3984 (microblaze_globalize_label) : Add the test of break_handler.
3985 Check the name by BREAK_HANDLER_NAME.
3987 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
3989 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
3990 microblaze_is_break_handler test.
3991 (call_internal1,call_value_intern): Use microblaze_break_function_p.
3992 Use SYMBOL_REF_DECL.
3994 * config/microblaze/microblaze-protos.h
3995 (microblaze_break_function_p,microblaze_is_break_handler):
3998 * doc/extend.texi (MicroBlaze break_handler Functions): Document
3999 new MicroBlaze break_handler functions.
4001 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4003 * doc/extend.texi (Size of an asm): Move node text according
4004 to its @menu entry position.
4006 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
4008 PR tree-optimization/61140
4009 PR tree-optimization/61150
4010 PR tree-optimization/61197
4011 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
4013 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4015 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
4017 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
4019 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
4020 __SIZEOF_INT128__ is defined.
4022 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4024 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
4025 (rs6000_delegitimize_address): Use it.
4027 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4029 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
4030 inplace argument. Store the new address in the original MEM when true.
4031 * emit-rtl.c (change_address_1): Likewise.
4032 (adjust_address_1, adjust_automodify_address_1, offset_address):
4034 * rtl.h (plus_constant): Add an inplace argument.
4035 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
4036 when true. Avoid generating (plus X (const_int 0)).
4037 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
4038 in-place. Pass true to plus_constant.
4039 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
4041 2014-05-16 Dehao Chen <dehao@google.com>
4043 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
4045 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4048 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
4050 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
4052 2014-05-16 Dehao Chen <dehao@google.com>
4054 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
4055 optimize_function_for_size_p.
4056 * regs.h (REG_FREQ_FROM_BB): Likewise.
4058 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4061 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
4062 negt_reg_operand cases.
4063 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
4065 * config/sh/predicates.md (cbranch_treg_value): Simplify.
4067 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4069 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
4072 2014-05-16 David Malcolm <dmalcolm@redhat.com>
4075 2014-04-29 David Malcolm <dmalcolm@redhat.com>
4077 * tree-cfg.c (dump_function_to_file): Dump the return type of
4078 functions, in a line to itself before the function body, mimicking
4079 the layout of a C function.
4081 2014-05-16 Dehao Chen <dehao@google.com>
4083 * cfghooks.c (make_forwarder_block): Use direct computation to
4084 get fall-through edge's count and frequency.
4086 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
4088 * config/arc/arc.c (arc_init): Fix typo in error message.
4089 * config/i386/i386.c (ix86_expand_builtin): Likewise.
4090 (split_stack_prologue_scratch_regno): Likewise.
4091 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
4092 word from error message.
4094 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4096 * ira-costs.c: Fix typo in comment.
4098 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
4100 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
4102 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
4104 * varpool.c (dump_varpool_node): Dump write-only flag.
4105 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
4107 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
4108 write-only variables.
4109 * ipa.c (process_references): New function.
4110 (set_readonly_bit): New function.
4111 (set_writeonly_bit): New function.
4112 (clear_addressable_bit): New function.
4113 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
4114 fix handling of aliases.
4115 * cgraph.h (struct varpool_node): Add writeonly flag.
4117 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
4119 PR rtl-optimization/60969
4120 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4121 Calculate costs for this case.
4123 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
4125 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
4126 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
4128 2014-05-16 Richard Biener <rguenther@suse.de>
4130 PR tree-optimization/61194
4131 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
4132 bool patterns ending in a COND_EXPR.
4134 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4136 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
4138 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4140 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
4141 where we were unable to cost an RTX.
4143 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4145 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
4148 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4149 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4151 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
4153 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4154 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4156 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
4157 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
4159 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4160 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4162 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
4165 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4166 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4168 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
4171 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4172 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4174 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
4175 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
4177 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4178 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4180 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
4183 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4184 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4186 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
4187 ZERO_EXTEND and SIGN_EXTEND better.
4189 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4190 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4192 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
4195 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4196 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4198 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
4199 costs when costing loads and stores to memory.
4201 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4202 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
4204 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
4207 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4209 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
4211 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4212 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4214 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
4216 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
4218 (aarch64_rtx_mult_cost): New.
4219 (aarch64_rtx_costs): Use it, refactor as appropriate.
4221 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4222 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4224 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
4225 emit instructions, return number of instructions which would
4227 (aarch64_add_constant): Update call to aarch64_build_constant.
4228 (aarch64_output_mi_thunk): Likewise.
4229 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
4232 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4234 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
4235 (TARGET_RTX_COSTS): Call it.
4237 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4239 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
4240 (cortexa57_vector_cost): Likewise.
4241 (cortexa57_tunings): Use them.
4243 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4245 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
4246 (cpu_addrcost_table): Use it.
4247 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
4248 (aarch64_address_cost): Rewrite using aarch64_classify_address,
4251 2014-05-16 Richard Biener <rguenther@suse.de>
4253 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
4254 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
4255 (visit_phi): Ignore edges marked as not executable.
4256 (class cond_dom_walker): New.
4257 (cond_dom_walker::before_dom_children): Value-number
4258 control statements and mark successor edges as not
4259 executable if possible.
4260 (run_scc_vn): First walk all control statements in
4261 dominator order, marking edges as not executable.
4262 * tree-inline.c (copy_edges_for_bb): Be not confused
4263 about random edge flags.
4265 2014-05-16 Richard Biener <rguenther@suse.de>
4267 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
4269 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
4272 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4273 (__TM_simple_begin): Use it.
4274 (__TM_begin): Likewise.
4276 2014-05-15 Martin Jambor <mjambor@suse.cz>
4279 * ipa-prop.c (update_indirect_edges_after_inlining): Check
4280 type_preserved flag when the indirect edge is polymorphic.
4282 2014-05-15 Martin Jambor <mjambor@suse.cz>
4284 PR tree-optimization/61090
4285 * tree-sra.c (sra_modify_expr): Pass the current gsi to
4286 build_ref_for_model.
4288 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4290 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
4291 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
4293 2014-05-15 Jakub Jelinek <jakub@redhat.com>
4295 PR tree-optimization/61158
4296 * fold-const.c (fold_binary_loc): If X is zero-extended and
4297 shiftc >= prec, make sure zerobits is all ones instead of
4298 invoking undefined behavior.
4300 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4302 * regcprop.h: New file.
4303 * regcprop.c (skip_debug_insn_p): New decl.
4304 (replace_oldest_value_reg): Check skip_debug_insn_p.
4305 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
4306 * shrink-wrap.c: Include regcprop.h.
4307 (prepare_shrink_wrap): Call
4308 copyprop_hardreg_forward_bb_without_debug_insn.
4310 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4312 * shrink-wrap.h: Update comment.
4313 * shrink-wrap.c: Update comment.
4314 (next_block_for_reg): Rename to live_edge_for_reg.
4315 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
4316 (move_insn_for_shrink_wrap): Split live_edge.
4317 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
4319 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4321 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4323 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4324 * config/sparc/sparc.md (fptype_ut699): New attribute.
4325 (in_branch_delay): Return false if -mfix-ut699 is specified and
4326 fptype_ut699 is set to single.
4327 (truncdfsf2): Add fptype_ut699 attribute.
4328 (fix_truncdfsi2): Likewise.
4329 (floatsisf2): Change fptype attribute.
4330 (fix_truncsfsi2): Likewise.
4331 (negtf2_notv9): Delete.
4332 (negtf2_v9): Likewise.
4333 (negtf2_hq): New instruction.
4334 (negtf2): New instruction and splitter.
4335 (negdf2_notv9): Rewrite.
4336 (abstf2_notv9): Delete.
4337 (abstf2_hq_v9): Likewise.
4338 (abstf2_v9): Likewise.
4339 (abstf2_hq): New instruction.
4340 (abstf2): New instruction and splitter.
4341 (absdf2_notv9): Rewrite.
4343 2014-05-14 Cary Coutant <ccoutant@google.com>
4346 * opts.c (common_handle_option): Don't special-case "-g".
4347 (set_debug_level): Default to at least level 2 with "-g".
4349 2014-05-14 DJ Delorie <dj@redhat.com>
4351 * config/msp430/msp430.c (msp430_builtin): Add
4352 MSP430_BUILTIN_DELAY_CYCLES.
4353 (msp430_init_builtins): Register void __delay_cycles(long long).
4354 (msp430_builtin_decl): Add it.
4355 (cg_magic_constant): New.
4356 (msp430_expand_delay_cycles): New.
4357 (msp430_expand_builtin): Call it.
4358 (msp430_print_operand_raw): Change integer printing from "int" to
4360 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
4361 (delay_cycles_start): New.
4362 (delay_cycles_end): New.
4363 (delay_cycles_32): New.
4364 (delay_cycles_32x): New.
4365 (delay_cycles_16): New.
4366 (delay_cycles_16x): New.
4367 (delay_cycles_2): New.
4368 (delay_cycles_1): New.
4369 * doc/extend.texi: Document __delay_cycles().
4371 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
4373 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
4374 length attribute computation.
4376 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
4379 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
4381 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
4384 * config/sparc/sparc.md: Fix types of low and high in DI constant
4385 splitter. Use gen_int_mode in some other splitters.
4387 2014-05-14 Martin Jambor <mjambor@suse.cz>
4390 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4392 2014-05-14 James Norris <jnorris@codesourcery.com>
4394 * omp-low.c (expand_parallel_call): Remove shadow variable.
4395 (expand_omp_taskreg): Likewise.
4397 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
4399 * common/config/i386/i386-common.c
4400 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
4401 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
4402 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
4403 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
4404 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
4405 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
4406 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
4407 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
4408 xsavecintrin.h, xsavesintrin.h.
4409 (x86_64-*-*): Ditto.
4410 * config/i386/clflushoptintrin.h: New.
4411 * config/i386/xsavecintrin.h: Ditto.
4412 * config/i386/xsavesintrin.h: Ditto.
4413 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
4414 (bit_XSAVES): Ditto.
4415 (bit_XSAVES): Ditto.
4416 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
4417 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
4419 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4420 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
4421 OPTION_MASK_ISA_XSAVES.
4422 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
4424 (PTA_CLFLUSHOPT) Define.
4425 (PTA_XSAVEC): Ditto.
4426 (PTA_XSAVES): Ditto.
4427 (ix86_option_override_internal): Handle new options.
4428 (ix86_valid_target_attribute_inner_p): Ditto.
4429 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
4430 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
4431 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
4432 (bdesc_special_args): Add __builtin_ia32_xsaves,
4433 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
4434 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
4435 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
4436 (ix86_expand_builtin): Handle new builtins.
4437 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
4438 (TARGET_CLFLUSHOPT_P): Ditto.
4439 (TARGET_XSAVEC): Ditto.
4440 (TARGET_XSAVEC_P): Ditto.
4441 (TARGET_XSAVES): Ditto.
4442 (TARGET_XSAVES_P): Ditto.
4443 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
4444 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
4445 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
4447 (ANY_XRSTOR64): Ditto.
4449 (xrstor): Change into <xrstor>.
4450 (xrstor_rex64): Change into <xrstor>_rex64.
4451 (xrstor64): Change into <xrstor>64
4453 * config/i386/i386.opt (mclflushopt): New.
4456 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
4458 * doc/invoke.texi: Document new options.
4460 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4462 PR rtl-optimization/60866
4463 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
4464 Default it to -1. Pass it down to init_simplejump_data.
4465 (init_simplejump_data): New parameter old_seqno. Pass it down
4466 to get_seqno_for_a_jump.
4467 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
4468 initializing new jump seqno as a last resort. Add comment.
4469 (sel_redirect_edge_and_branch): Save old seqno of the conditional
4470 jump and pass it down to sel_init_new_insn.
4471 (sel_redirect_edge_and_branch_force): Likewise.
4473 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
4475 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
4476 shifted values to avoid build warning.
4478 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4480 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
4481 * cfgrtl.c (rtl_merge_blocks): Fix comment.
4482 (cfg_layout_merge_blocks): Likewise.
4483 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
4485 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4487 PR rtl-optimization/60901
4488 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
4489 bb predecessor belongs to the same scheduling region. Adjust comment.
4491 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
4493 * doc/sourcebuild.texi: (dfp_hw): Document.
4494 (p8vector_hw): Likewise.
4495 (powerpc_eabi_ok): Likewise.
4496 (powerpc_elfv2): Likewise.
4497 (powerpc_htm_ok): Likewise.
4498 (ppc_recip_hw): Likewise.
4501 2014-05-13 Cary Coutant <ccoutant@google.com>
4503 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
4505 2014-05-13 David Malcolm <dmalcolm@redhat.com>
4507 * gengtype-parse.c (require3): Eliminate in favor of...
4509 (require_template_declaration): Update to support optional single *
4512 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
4513 (create_user_defined_type): Handle a single level of explicit
4514 pointerness within template arguments.
4515 (struct write_types_data): Add field "kind".
4516 (filter_type_name): Handle "*" character.
4517 (write_user_func_for_structure_ptr): Require a write_types_data
4518 rather than just a prefix string, so that we can look up the kind
4519 of the wtd and use it as an index into wrote_user_func_for_ptr,
4520 ensuring that such functions are written at most once. Support
4521 subclasses by invoking the marking function of the ultimate base class.
4522 (write_user_func_for_structure_body): Require a write_types_data
4523 rather than just a prefix string, so that we can pass this to
4524 write_user_func_for_structure_ptr.
4525 (write_func_for_structure): Likewise.
4526 (ggc_wtd): Add initializer of new "kind" field.
4527 (pch_wtd): Likewise.
4529 * gengtype.h (enum write_types_kinds): New.
4530 (struct type): Add field wrote_user_func_for_ptr to the "s"
4533 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
4535 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
4536 instead of const_binop.
4537 (fold_binary_loc): Likewise.
4539 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
4541 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
4542 calculation to match get_ref_base_and_extent.
4544 2014-05-13 Catherine Moore <clm@codesourcery.com>
4545 Sandra Loosemore <sandra@codesourcery.com>
4547 * configure.ac: Fix assembly for explicit JALR relocation check.
4548 * configure: Regenerate.
4550 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4552 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
4553 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
4554 Remove associated type declarations and initialisations.
4555 (arm_expand_neon_builtin): Likewise.
4556 (neon_emit_pair_result_insn): Delete.
4557 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
4558 * config/arm/neon.md (neon_vtrn<mode>): Delete.
4559 (neon_vzip<mode>): Likewise.
4560 (neon_vuzp<mode>): Likewise.
4562 2014-05-13 Richard Biener <rguenther@suse.de>
4565 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4566 it needs revisiting whether the call still may be tail-called.
4568 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4570 * rtl.def (SYMBOL_REF): Remove middle "0" field.
4571 * rtl.h (block_symbol): Reduce number of fields to 2.
4572 (rtx_def): Add u2.symbol_ref_flags.
4573 (SYMBOL_REF_FLAGS): Use it.
4574 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
4575 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
4576 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
4577 Lower index of SYMBOL_REF_DATA.
4578 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
4579 Print SYMBOL_REF_FLAGS at the same time.
4580 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
4582 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4584 * rtl.def (VAR_LOCATION): Remove "i" field.
4585 * rtl.h (rtx_def): Add u2.var_location_status.
4586 (PAT_VAR_LOCATION_STATUS): Use it.
4587 (gen_rtx_VAR_LOCATION): Declare.
4588 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
4589 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
4590 * var-tracking.c (emit_note_insn_var_location): Remove casts.
4592 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4594 * rtl.def (scratch): Fix outdated comment and remove "0" field.
4595 * gengtype.c (adjust_field_rtx_def): Update accordingly.
4597 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4599 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
4600 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
4601 * rtl.h (rtx_def): Add insn_uid to u2 field.
4602 (RTX_FLAG_CHECK8): Delete in favor of...
4603 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
4604 (INSN_DELETED_P): Update accordingly.
4605 (INSN_UID): Use u2.insn_uid.
4606 (INSN_CHAIN_CODE_P): Define.
4607 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
4608 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
4609 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
4610 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
4611 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
4612 indices accordingly.
4613 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
4614 Update indices for insn-chain rtxes.
4615 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
4616 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
4617 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
4618 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
4619 * combine.c (try_combine): Likewise.
4620 * ira.c (setup_prohibited_mode_move_regs): Likewise.
4622 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4624 * rtl.def (REG): Remove middle field.
4625 * rtl.h (rtx_def): Add orignal_regno to u2.
4626 (ORIGINAL_REGNO): Use it instead of field 1.
4627 (REG_ATTRS): Lower field index accordingly.
4628 * gengtype.c (adjust_field_rtx_def): Remove handling of
4629 ORIGINAL_REGNO. Move REG_ATTRS index down.
4630 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
4631 code that prints the REGNO.
4633 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4635 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
4638 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
4640 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
4642 2014-05-13 Bin Cheng <bin.cheng@arm.com>
4644 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
4645 (alloc_iv): Lower base expressions containing ADDR_EXPR.
4647 2014-05-13 Ian Bolton <ian.bolton@arm.com>
4649 * config/aarch64/aarch64-protos.h
4650 (aarch64_hard_regno_caller_save_mode): New prototype.
4651 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
4653 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
4655 2014-05-13 Christian Bruel <christian.bruel@st.com>
4657 * target.def (mode_switching): New hook vector.
4658 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
4659 (mode_exit, modepriority_to_mode): Likewise.
4660 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
4661 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4662 * target.h: Include tm.h and hard-reg-set.h.
4663 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
4664 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
4665 * doc/tm.texi Regenerate.
4666 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
4667 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4668 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
4669 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
4670 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
4671 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4672 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
4673 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
4674 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
4675 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
4676 (ix86_emit_mode_set): Hookify.
4677 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
4679 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4680 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
4681 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
4682 (epiphany_mode_priority_to_mode): Remove declaration.
4683 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
4684 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
4685 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
4687 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
4688 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
4689 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
4691 2014-05-13 Jakub Jelinek <jakub@redhat.com>
4694 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4695 is const0_rtx, return immediately. Don't test count == 0 when
4698 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4700 * Makefile.in: add shrink-wrap.o.
4701 * config/i386/i386.c: include "shrink-wrap.h"
4702 * function.c: Likewise.
4703 (requires_stack_frame_p, next_block_for_reg,
4704 move_insn_for_shrink_wrap, prepare_shrink_wrap,
4705 dup_block_and_redirect): Move to shrink-wrap.c
4706 (thread_prologue_and_epilogue_insns): Extract three code segments
4707 as functions in shrink-wrap.c
4708 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
4710 * shrink-wrap.c: New file.
4711 * shrink-wrap.h: New file.
4713 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
4715 * doc/extend.texi: Reflect current numbers of pragmas. Remove
4716 reference to Solaris.
4718 2014-05-12 Mike Stump <mikestump@comcast.net>
4721 * genattrtab.c (filename): Add.
4722 (convert_set_attr_alternative): Improve error message.
4723 (check_defs): Restore read_md_filename for error messages.
4724 (gen_insn): Save filename.
4726 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
4728 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
4729 -fno-local-ivars and -fivar-visibility.
4730 * c-family/c.opt: Make -Wshadow also implicitly enable
4733 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
4735 * doc/tm.texi: Remove reference to deleted macro.
4736 * doc/tm.texi.in: Likewise.
4738 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4741 * config/avr/avr.c (avr_out_store_psi): Use correct constant
4744 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
4747 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
4748 * config/arm/aout.h (License): Same.
4749 * config/arm/bpabi.h (License): Same.
4750 * config/arm/elf.h (License): Same.
4751 * config/arm/linux-elf.h (License): Same.
4752 * config/arm/linux-gas.h (License): Same.
4753 * config/arm/netbsd-elf.h (License): Same.
4754 * config/arm/uclinux-eabi.h (License): Same.
4755 * config/arm/uclinux-elf.h (License): Same.
4756 * config/arm/vxworks.h (License): Same.
4758 2014-05-11 Jakub Jelinek <jakub@redhat.com>
4760 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
4761 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
4762 number of operands to 3.
4763 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
4764 * tree-nested.c (convert_nonlocal_omp_clauses,
4765 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
4766 * gimplify.c (gimplify_scan_omp_clauses): Handle
4767 OMP_CLAUSE_LINEAR_STMT.
4768 * omp-low.c (lower_rec_input_clauses): Fix typo.
4769 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
4770 cast between Fortran boolean_type_node and C _Bool if
4773 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
4775 PR tree-optimization/61136
4776 * wide-int.h (multiple_of_p): Define a version that doesn't return
4778 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
4779 integer_zerop/const_binop pair.
4780 (multiple_of_p): Likewise, converting both operands to widest_int
4783 2014-05-09 Teresa Johnson <tejohnson@google.com>
4785 * cgraphunit.c (analyze_functions): Use correct dump file.
4787 2014-05-09 Florian Weimer <fweimer@redhat.com>
4789 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
4791 (stack_protect_return_slot_p): New function.
4792 (expand_used_vars): Call stack_protect_decl_p and
4793 stack_protect_return_slot_p for -fstack-protector-strong.
4795 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
4796 Andrew Haley <aph@redhat.com>
4797 Richard Sandiford <rdsandiford@googlemail.com>
4799 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
4802 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
4805 * fold-const.c (fold_binary_loc): Changed width of mask.
4807 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
4809 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
4810 unsigned int initializers for regno_in, regno_out.
4812 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
4815 * config/avr/avr.md (cc): Add new attribute set_vzn.
4816 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4817 Set cc insn attribute to set_vzn instead of set_zn for alternatives
4818 with INC, DEC or NEG.
4819 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4820 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4821 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4823 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4826 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4828 * wide-int.cc (UTItype): Define.
4829 (UDWtype): Define for appropriate W_TYPE_SIZE.
4831 2014-05-09 Richard Biener <rguenther@suse.de>
4833 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
4834 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
4835 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
4836 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
4837 ssa_propagate): Adjust.
4839 2014-05-08 Jeff Law <law@redhat.com>
4841 PR tree-optimization/61009
4842 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4843 tri-state rather than a boolean. When a block is too big to
4844 thread through, inform caller via negative return value.
4845 (thread_across_edge): If a block was too big for normal threading,
4846 then it's too big for a joiner too, so remove temporary equivalences
4847 and return immediately.
4849 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4850 Matthias Klose <doko@ubuntu.com>
4853 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4855 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4858 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4860 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4863 * config/alpha/alpha.c: Include gimple-iterator.h.
4864 (alpha_gimple_fold_builtin): New function. Move
4865 ALPHA_BUILTIN_UMULH folding from ...
4866 (alpha_fold_builtin): ... here.
4867 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4869 2014-05-08 Wei Mi <wmi@google.com>
4872 * config/i386/i386.c (ix86_compute_frame_layout): Update
4873 preferred_stack_boundary for call, expanded from tls descriptor.
4874 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
4875 to depend on SP register.
4876 (*tls_local_dynamic_base_32_gnu): Ditto.
4877 (*tls_local_dynamic_32_once): Ditto.
4878 (tls_global_dynamic_64_<mode>): Set
4879 ix86_tls_descriptor_calls_expanded_in_cfun.
4880 (tls_local_dynamic_base_64_<mode>): Ditto.
4881 (tls_global_dynamic_32): Set
4882 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
4883 to depend on SP register.
4884 (tls_local_dynamic_base_32): Ditto.
4886 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4888 * config/arm/arm_neon.h: Update comment.
4889 * config/arm/neon-docgen.ml: Delete.
4890 * config/arm/neon-gen.ml: Delete.
4891 * doc/arm-neon-intrinsics.texi: Update comment.
4893 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4895 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
4897 (vand, vorr, veor, vorn, vbic): Remove.
4898 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
4900 (neon_vsub_unspec): Likewise.
4901 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
4903 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4905 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
4906 (vadd_s16): Likewise.
4907 (vadd_s32): Likewise.
4908 (vadd_f32): Likewise.
4909 (vadd_u8): Likewise.
4910 (vadd_u16): Likewise.
4911 (vadd_u32): Likewise.
4912 (vadd_s64): Likewise.
4913 (vadd_u64): Likewise.
4914 (vaddq_s8): Likewise.
4915 (vaddq_s16): Likewise.
4916 (vaddq_s32): Likewise.
4917 (vaddq_s64): Likewise.
4918 (vaddq_f32): Likewise.
4919 (vaddq_u8): Likewise.
4920 (vaddq_u16): Likewise.
4921 (vaddq_u32): Likewise.
4922 (vaddq_u64): Likewise.
4923 (vmul_s8): Likewise.
4924 (vmul_s16): Likewise.
4925 (vmul_s32): Likewise.
4926 (vmul_f32): Likewise.
4927 (vmul_u8): Likewise.
4928 (vmul_u16): Likewise.
4929 (vmul_u32): Likewise.
4930 (vmul_p8): Likewise.
4931 (vmulq_s8): Likewise.
4932 (vmulq_s16): Likewise.
4933 (vmulq_s32): Likewise.
4934 (vmulq_f32): Likewise.
4935 (vmulq_u8): Likewise.
4936 (vmulq_u16): Likewise.
4937 (vmulq_u32): Likewise.
4938 (vsub_s8): Likewise.
4939 (vsub_s16): Likewise.
4940 (vsub_s32): Likewise.
4941 (vsub_f32): Likewise.
4942 (vsub_u8): Likewise.
4943 (vsub_u16): Likewise.
4944 (vsub_u32): Likewise.
4945 (vsub_s64): Likewise.
4946 (vsub_u64): Likewise.
4947 (vsubq_s8): Likewise.
4948 (vsubq_s16): Likewise.
4949 (vsubq_s32): Likewise.
4950 (vsubq_s64): Likewise.
4951 (vsubq_f32): Likewise.
4952 (vsubq_u8): Likewise.
4953 (vsubq_u16): Likewise.
4954 (vsubq_u32): Likewise.
4955 (vsubq_u64): Likewise.
4956 (vand_s8): Likewise.
4957 (vand_s16): Likewise.
4958 (vand_s32): Likewise.
4959 (vand_u8): Likewise.
4960 (vand_u16): Likewise.
4961 (vand_u32): Likewise.
4962 (vand_s64): Likewise.
4963 (vand_u64): Likewise.
4964 (vandq_s8): Likewise.
4965 (vandq_s16): Likewise.
4966 (vandq_s32): Likewise.
4967 (vandq_s64): Likewise.
4968 (vandq_u8): Likewise.
4969 (vandq_u16): Likewise.
4970 (vandq_u32): Likewise.
4971 (vandq_u64): Likewise.
4972 (vorr_s8): Likewise.
4973 (vorr_s16): Likewise.
4974 (vorr_s32): Likewise.
4975 (vorr_u8): Likewise.
4976 (vorr_u16): Likewise.
4977 (vorr_u32): Likewise.
4978 (vorr_s64): Likewise.
4979 (vorr_u64): Likewise.
4980 (vorrq_s8): Likewise.
4981 (vorrq_s16): Likewise.
4982 (vorrq_s32): Likewise.
4983 (vorrq_s64): Likewise.
4984 (vorrq_u8): Likewise.
4985 (vorrq_u16): Likewise.
4986 (vorrq_u32): Likewise.
4987 (vorrq_u64): Likewise.
4988 (veor_s8): Likewise.
4989 (veor_s16): Likewise.
4990 (veor_s32): Likewise.
4991 (veor_u8): Likewise.
4992 (veor_u16): Likewise.
4993 (veor_u32): Likewise.
4994 (veor_s64): Likewise.
4995 (veor_u64): Likewise.
4996 (veorq_s8): Likewise.
4997 (veorq_s16): Likewise.
4998 (veorq_s32): Likewise.
4999 (veorq_s64): Likewise.
5000 (veorq_u8): Likewise.
5001 (veorq_u16): Likewise.
5002 (veorq_u32): Likewise.
5003 (veorq_u64): Likewise.
5004 (vbic_s8): Likewise.
5005 (vbic_s16): Likewise.
5006 (vbic_s32): Likewise.
5007 (vbic_u8): Likewise.
5008 (vbic_u16): Likewise.
5009 (vbic_u32): Likewise.
5010 (vbic_s64): Likewise.
5011 (vbic_u64): Likewise.
5012 (vbicq_s8): Likewise.
5013 (vbicq_s16): Likewise.
5014 (vbicq_s32): Likewise.
5015 (vbicq_s64): Likewise.
5016 (vbicq_u8): Likewise.
5017 (vbicq_u16): Likewise.
5018 (vbicq_u32): Likewise.
5019 (vbicq_u64): Likewise.
5020 (vorn_s8): Likewise.
5021 (vorn_s16): Likewise.
5022 (vorn_s32): Likewise.
5023 (vorn_u8): Likewise.
5024 (vorn_u16): Likewise.
5025 (vorn_u32): Likewise.
5026 (vorn_s64): Likewise.
5027 (vorn_u64): Likewise.
5028 (vornq_s8): Likewise.
5029 (vornq_s16): Likewise.
5030 (vornq_s32): Likewise.
5031 (vornq_s64): Likewise.
5032 (vornq_u8): Likewise.
5033 (vornq_u16): Likewise.
5034 (vornq_u32): Likewise.
5035 (vornq_u64): Likewise.
5037 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5039 * wide-int.cc (UTItype): Define.
5040 (UDWtype): Define for appropriate W_TYPE_SIZE.
5042 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
5044 PR tree-optimization/59100
5045 * tree-ssa-phiopt.c: Include tree-inline.h.
5046 (neutral_element_p, absorbing_element_p): New functions.
5047 (value_replacement): Handle conditional binary operations with a
5048 neutral or absorbing element.
5050 2014-05-08 Richard Biener <rguenther@suse.de>
5052 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
5053 folding the expression.
5054 (valueize_expr): Remove.
5055 (visit_reference_op_load): Do not valueize the result of
5057 (simplify_binary_expression): Likewise.
5058 (simplify_unary_expression): Likewise.
5060 2014-05-08 Richard Biener <rguenther@suse.de>
5062 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
5063 looking at TYPE_ARG_TYPES.
5065 2014-05-08 Richard Biener <rguenther@suse.de>
5067 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
5068 pointer propagation special-case.
5070 2014-05-08 Bin Cheng <bin.cheng@arm.com>
5072 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
5073 core part of address expressions.
5075 2014-05-08 Alan Modra <amodra@gmail.com>
5078 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
5079 loads and stores when -mno-strict-align at any alignment.
5080 (expand_block_clear): Similarly. Also correct calculation of
5083 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5086 * tree-complex.c (expand_complex_move): Keep line info when expanding
5088 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
5089 of complex expression. Use new argument to display correct location
5090 for values coming from phi statement.
5091 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
5092 (warn_uninitialized_phi): Pass location of phi argument to
5094 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
5095 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
5097 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
5099 * config/rs6000/predicates.md (indexed_address_mem): New.
5100 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
5101 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
5102 fpstore_ux, fpstore_u.
5103 (sign_extend, indexed, update): New.
5104 (cell_micro): Adjust.
5105 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
5106 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
5107 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
5108 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
5109 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
5110 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
5111 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
5112 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
5113 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
5114 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
5115 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
5116 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
5117 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
5118 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
5119 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
5121 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
5122 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
5123 *vsx_extract_<mode>_store): Adjust.
5124 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
5125 is_cracked_insn, insn_must_be_first_in_group,
5126 insn_must_be_last_in_group): Adjust.
5128 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
5130 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
5131 ppc440-fpstore): Adjust.
5132 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
5133 ppc476-fpstore): Adjust.
5134 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
5135 ppc601-fpstore): Adjust.
5136 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
5138 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
5140 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
5141 ppc7450-fpstore): Adjust.
5142 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
5143 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
5144 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
5146 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
5147 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
5148 cell-fpstore, cell-fpstore-update): Adjust.
5149 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
5150 ppce300c3_store, ppce300c3_fpstore): Adjust.
5151 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
5152 e500mc_fpstore): Adjust.
5153 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
5154 e500mc64_store, e500mc64_fpstore): Adjust.
5155 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
5156 e5500_fpstore): Adjust.
5157 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
5158 e6500_fpstore): Adjust.
5159 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
5161 * config/rs6000/power4.md (power4-load, power4-load-ext,
5162 power4-load-ext-update, power4-load-ext-update-indexed,
5163 power4-load-update-indexed, power4-load-update, power4-fpload,
5164 power4-fpload-update, power4-store, power4-store-update,
5165 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
5167 * config/rs6000/power5.md (power5-load, power5-load-ext,
5168 power5-load-ext-update, power5-load-ext-update-indexed,
5169 power5-load-update-indexed, power5-load-update, power5-fpload,
5170 power5-fpload-update, power5-store, power5-store-update,
5171 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
5173 * config/rs6000/power6.md (power6-load, power6-load-ext,
5174 power6-load-update, power6-load-update-indexed,
5175 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
5176 power6-fpload-update, power6-store, power6-store-update,
5177 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
5179 * config/rs6000/power7.md (power7-load, power7-load-ext,
5180 power7-load-update, power7-load-update-indexed,
5181 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
5182 power7-fpload-update, power7-store, power7-store-update,
5183 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
5185 * config/rs6000/power8.md (power8-load, power8-load-update,
5186 power8-load-ext, power8-load-ext-update, power8-fpload,
5187 power8-fpload-update, power8-store, power8-store-update-indexed,
5188 power8-fpstore, power8-fpstore-update): Adjust.
5189 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
5191 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
5192 titan_lsu_store, titan_lsu_fpstore): Adjust.
5193 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
5195 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
5198 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
5199 unrolled byte insns. Emit address increments after move insns.
5201 2014-05-07 David Malcolm <dmalcolm@redhat.com>
5203 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
5204 const_gimple, rather than a gimple.
5205 (gimple_call_builtin_p): Likewise, for the three variants.
5207 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
5208 (gimple_call_builtin_p): Likewise, for the three variants.
5210 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
5212 PR tree-optimization/61095
5213 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
5215 2014-05-07 Richard Biener <rguenther@suse.de>
5217 PR tree-optimization/61034
5218 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
5219 (maybe_skip_until): Use translate to take into account
5220 lattices when trying to do disambiguations.
5221 (get_continuation_for_phi_1): Likewise.
5222 (get_continuation_for_phi): Adjust for added translate arguments.
5223 (walk_non_aliased_vuses): Likewise.
5224 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
5225 (walk_non_aliased_vuses): Likewise.
5226 (call_may_clobber_ref_p_1): Declare.
5227 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
5228 calls. Stop early if we are only supposed to disambiguate.
5229 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
5231 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
5233 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
5234 Emit an error when the function has arguments.
5236 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
5238 * cfgloop.h (unswitch_loops): Remove.
5239 * doc/passes.texi: Remove references to loop-unswitch.c
5240 * timevar.def (TV_LOOP_UNSWITCH): Remove.
5242 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
5244 * tree-vect-data-refs.c (vect_grouped_load_supported): New
5245 check for loads group of length 3.
5246 (vect_permute_load_chain): New permutations for loads group of
5248 * tree-vect-stmts.c (vect_model_load_cost): Change cost
5249 of vec_perm_shuffle for the new permutations.
5251 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
5253 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
5254 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
5255 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
5256 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
5257 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
5258 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
5259 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
5260 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
5262 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
5264 * loop-unswitch.c: Delete.
5266 2014-05-07 Richard Biener <rguenther@suse.de>
5268 * config.gcc: Always set need_64bit_hwint to yes.
5270 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
5272 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
5273 of using optimize_size.
5275 2014-05-06 Mike Stump <mikestump@comcast.net>
5277 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
5279 2014-05-06 Joseph Myers <joseph@codesourcery.com>
5281 * config/i386/sse.md (*mov<mode>_internal)
5282 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
5283 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
5284 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
5285 (*<code><mode>3, *andnot<mode>3<mask_name>)
5286 (<mask_codefor><code><mode>3<mask_name>): Only consider
5287 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
5289 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5292 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
5294 * lra-constraints.c (valid_address_p): Move earlier in file.
5295 Add a constraint argument to the address_info version.
5296 (satisfies_memory_constraint_p): New function.
5297 (satisfies_address_constraint_p): Likewise.
5298 (process_alt_operands, curr_insn_transform): Use them.
5299 (process_address): Pass the constraint to valid_address_p when
5300 checking address operands.
5302 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
5304 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
5305 to their respective blocks. Fix inadvertent use of "node".
5307 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5309 * emit-rtl.c (init_derived_machine_modes): New functionm, split
5311 (init_emit_once): ...here.
5312 * rtl.h (init_derived_machine_modes): Declare.
5313 * toplev.c (do_compile): Call it even if no_backend.
5315 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
5316 Mike Stump <mikestump@comcast.net>
5317 Richard Sandiford <rdsandiford@googlemail.com>
5318 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5320 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
5321 (rtx_equal_for_memref_p): Update comment.
5322 (adjust_offset_for_component_ref): Use wide-int interfaces.
5323 * builtins.c (get_object_alignment_2): Likewise.
5324 (c_readstr): Likewise.
5325 (target_char_cast): Add comment.
5326 (determine_block_size): Use wide-int interfaces.
5327 (expand_builtin_signbit): Likewise.
5328 (fold_builtin_int_roundingfn): Likewise.
5329 (fold_builtin_bitop): Likewise.
5330 (fold_builtin_bswap): Likewise.
5331 (fold_builtin_logarithm): Use signop.
5332 (fold_builtin_pow): Likewise.
5333 (fold_builtin_memory_op): Use wide-int interfaces.
5334 (fold_builtin_object_size): Likewise.
5335 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
5336 nb_iterations_estimate.
5337 (record_niter_bound): Use wide-int interfaces.
5338 (get_estimated_loop_iterations_int): Likewise.
5339 (get_estimated_loop_iterations): Likewise.
5340 (get_max_loop_iterations): Likewise.
5341 * cfgloop.h: Include wide-int.h.
5342 (struct nb_iter_bound): Change bound to widest_int.
5343 (struct loop): Change nb_iterations_upper_bound and
5344 nb_iterations_estimate to widest_int.
5345 (record_niter_bound): Switch to use widest_int.
5346 (get_estimated_loop_iterations): Likewise.
5347 (get_max_loop_iterations): Likewise.
5348 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
5349 update for wide-int.
5350 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
5351 * combine.c (try_combine): Likewise.
5352 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
5353 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
5355 (aarch64_float_const_representable_p): Likewise.
5356 * config/arc/arc.c: Include wide-int.h.
5357 (arc_can_use_doloop_p): Use wide-int interfaces.
5358 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
5359 (vfp3_const_double_index): Likewise.
5360 * config/avr/avr.c (avr_out_round): Likewise.
5361 (avr_fold_builtin): Likewise.
5362 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
5363 (bfin_can_use_doloop_p): Likewise.
5364 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
5365 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
5366 * config/i386/i386.c: Include wide-int.h.
5367 (ix86_data_alignment): Use wide-int interfaces.
5368 (ix86_local_alignment): Likewise.
5369 (ix86_emit_swsqrtsf): Update real_from_integer.
5370 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
5371 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
5372 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
5373 (zero_constant): Likewise.
5374 (input_operand): Likewise.
5375 (splat_input_operand): Likewise.
5376 (non_logical_cint_operand): Change const_double to const_wide_int.
5377 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
5378 (easy_altivec_constant): Remove comment.
5379 (paired_expand_vector_init): Use CONSTANT_P.
5380 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
5381 (rs6000_emit_move): Update checks.
5382 (rs6000_aggregate_candidate): Use wide-int interfaces.
5383 (rs6000_expand_ternop_builtin): Likewise.
5384 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
5385 (rs6000_assemble_integer): Likewise.
5386 (rs6000_hash_constant): Likewise.
5387 (output_toc): Likewise.
5388 (rs6000_rtx_costs): Likewise.
5389 (rs6000_emit_swrsqrt); Update call to real_from_integer.
5390 * config/rs6000/rs6000-c.c: Include wide-int.h.
5391 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
5392 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
5393 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
5394 Handle CONST_WIDE_INT.
5395 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
5396 Use tree_fits_uhwi_p.
5397 * config/sparc/sparc.c: Include wide-int.h.
5398 (sparc_fold_builtin): Use wide-int interfaces.
5399 * config/vax/vax.c: Include wide-int.h.
5400 (vax_float_literal): Use real_from_integer.
5401 * coretypes.h (struct hwivec_def): New.
5403 (const_hwivec): New.
5404 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
5405 (equiv_constant): Handle CONST_WIDE_INT.
5406 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
5407 (cselib_hash_rtx): Handle CONST_WIDE_INT.
5408 * dbxout.c (stabstr_U): Use wide-int interfaces.
5409 (dbxout_type): Update to use cst_fits_shwi_p.
5410 * defaults.h (LOG2_BITS_PER_UNIT): Define.
5411 (TARGET_SUPPORTS_WIDE_INT): Add default.
5412 * dfp.c: Include wide-int.h.
5413 (decimal_real_to_integer2): Use wide-int interfaces and rename to
5414 decimal_real_to_integer.
5415 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
5416 decimal_real_to_integer.
5417 * doc/generic.texi (Constant expressions): Update for wide_int.
5418 * doc/rtl.texi (const_double): Likewise.
5419 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
5420 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
5421 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
5422 (REAL_VALUE_FROM_INT): Remove.
5423 (TARGET_SUPPORTS_WIDE_INT): New.
5424 * doc/tm.texi: Regenerate.
5425 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
5426 * double-int.h: Include wide-int.h.
5427 (struct wi::int_traits): New.
5428 * dwarf2out.c (get_full_len): New.
5429 (dw_val_equal_p): Add case dw_val_class_wide_int.
5430 (size_of_loc_descr): Likewise.
5431 (output_loc_operands): Likewise.
5432 (insert_double): Remove.
5433 (insert_wide_int): New.
5435 (print_die): Add case dw_val_class_wide_int.
5436 (attr_checksum): Likewise.
5437 (attr_checksum_ordered): Likewise.
5438 (same_dw_val_p): Likewise.
5439 (size_of_die): Likewise.
5440 (value_format): Likewise.
5441 (output_die): Likewise.
5442 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
5444 (clz_loc_descriptor): Use wide-int interfaces.
5445 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
5446 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
5447 (round_up_to_align): Use wide-int interfaces.
5448 (field_byte_offset): Likewise.
5449 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
5450 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
5451 CONST_DOUBLE handling. Use wide-int interfaces.
5452 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
5453 (gen_enumeration_type_die): Use add_AT_wide.
5454 (hash_loc_operands): Add case dw_val_class_wide_int.
5455 (compare_loc_operands): Likewise.
5456 * dwarf2out.h: Include wide-int.h.
5457 (wide_int_ptr): New.
5458 (enum dw_val_class): Add dw_val_class_wide_int.
5459 (struct dw_val_struct): Add val_wide.
5460 * emit-rtl.c (const_wide_int_htab): New.
5461 (const_wide_int_htab_hash): New.
5462 (const_wide_int_htab_eq): New.
5463 (lookup_const_wide_int): New.
5464 (const_double_htab_hash): Use wide-int interfaces.
5465 (const_double_htab_eq): Likewise.
5466 (rtx_to_double_int): Conditionally compile for wide-int.
5467 (immed_double_int_const): Rename to immed_wide_int_const and
5468 update for wide-int.
5469 (immed_double_const): Conditionally compile for wide-int.
5470 (init_emit_once): Use wide-int interfaces.
5471 * explow.c (plus_constant): Likewise.
5472 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
5473 (lshift_value): Use wide-int interfaces.
5474 (expand_mult): Likewise.
5475 (choose_multiplier): Likewise.
5476 (expand_smod_pow2): Likewise.
5477 (make_tree): Likewise.
5478 * expr.c (convert_modes): Consolidate handling of constants.
5479 Use wide-int interfaces.
5480 (emit_group_load_1): Add note.
5481 (store_expr): Update comment.
5482 (get_inner_reference): Use wide-int interfaces.
5483 (expand_constructor): Update comment.
5484 (expand_expr_real_2): Use wide-int interfaces.
5485 (expand_expr_real_1): Likewise.
5486 (reduce_to_bit_field_precision): Likewise.
5487 (const_vector_from_tree): Likewise.
5488 * final.c: Include wide-int-print.h.
5489 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
5490 * fixed-value.c: Include wide-int.h.
5491 (fixed_from_string): Use wide-int interfaces.
5492 (fixed_to_decimal): Likewise.
5493 (fixed_convert_from_real): Likewise.
5494 (real_convert_from_fixed): Likewise.
5495 * fold-const.h (mem_ref_offset): Return an offset_int.
5496 (div_if_zero_remainder): Remove code parameter.
5497 * fold-const.c (div_if_zero_remainder): Remove code parameter.
5498 Use wide-int interfaces.
5499 (may_negate_without_overflow_p): Use wide-int interfaces.
5500 (negate_expr_p): Likewise.
5501 (fold_negate_expr): Likewise.
5502 (int_const_binop_1): Likewise.
5503 (const_binop): Likewise.
5504 (fold_convert_const_int_from_int): Likewise.
5505 (fold_convert_const_int_from_real): Likewise.
5506 (fold_convert_const_int_from_fixed): Likewise.
5507 (fold_convert_const_fixed_from_int): Likewise.
5508 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
5509 (sign_bit_p): Use wide-int interfaces.
5510 (make_range_step): Likewise.
5511 (build_range_check): Likewise. Pass an integer of the correct type
5512 instead of using integer_one_node.
5513 (range_predecessor): Pass an integer of the correct type instead
5514 of using integer_one_node.
5515 (range_successor): Likewise.
5516 (merge_ranges): Likewise.
5517 (unextend): Use wide-int interfaces.
5518 (extract_muldiv_1): Likewise.
5519 (fold_div_compare): Likewise.
5520 (fold_single_bit_test): Likewise.
5521 (fold_sign_changed_comparison): Likewise.
5522 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
5523 (fold_plusminus_mult_expr): Use wide-int interfaces.
5524 (native_encode_int): Likewise.
5525 (native_interpret_int): Likewise.
5526 (fold_unary_loc): Likewise.
5527 (pointer_may_wrap_p): Likewise.
5528 (size_low_cst): Likewise.
5529 (mask_with_tz): Likewise.
5530 (fold_binary_loc): Likewise.
5531 (fold_ternary_loc): Likewise.
5532 (multiple_of_p): Likewise.
5533 (tree_call_nonnegative_warnv_p): Update calls to
5534 tree_int_cst_min_precision and real_from_integer.
5535 (fold_negate_const): Use wide-int interfaces.
5536 (fold_abs_const): Likewise.
5537 (fold_relational_const): Use tree_int_cst_lt.
5538 (round_up_loc): Use wide-int interfaces.
5539 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
5540 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
5541 * gengtype.c: Remove include of double-int.h.
5542 (do_typedef): Use wide-int interfaces.
5543 (open_base_files): Add wide-int.h.
5544 (main): Add offset_int and widest_int typedefs.
5545 * gengtype-lex.l: Handle "^".
5546 (CXX_KEYWORD): Add "static".
5547 * gengtype-parse.c (require3): New.
5548 (require_template_declaration): Handle constant template arguments
5549 and nested templates.
5550 * gengtype-state.c: Don't include "double-int.h".
5551 * genpreds.c (write_one_predicate_function): Update comment.
5552 (write_tm_constrs_h): Add check for hval and lval use in
5554 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
5555 (add_to_sequence): Likewise.
5556 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
5557 and const_double_operand.
5558 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
5560 * gimple-fold.c (get_base_constructor): Likewise.
5561 (fold_array_ctor_reference): Likewise.
5562 (fold_nonarray_ctor_reference): Likewise.
5563 (fold_const_aggregate_ref_1): Likewise.
5564 (gimple_val_nonnegative_real_p): Likewise.
5565 (gimple_fold_indirect_ref): Likewise.
5566 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
5567 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
5568 (struct slsr_cand_d): Change index to be widest_int.
5569 (struct incr_info_d): Change incr to be widest_int.
5570 (alloc_cand_and_find_basis): Use wide-int interfaces.
5571 (slsr_process_phi): Likewise.
5572 (backtrace_base_for_ref): Likewise. Return a widest_int.
5573 (restructure_reference): Take a widest_int instead of a double_int.
5574 (slsr_process_ref): Use wide-int interfaces.
5575 (create_mul_ssa_cand): Likewise.
5576 (create_mul_imm_cand): Likewise.
5577 (create_add_ssa_cand): Likewise.
5578 (create_add_imm_cand): Take a widest_int instead of a double_int.
5579 (slsr_process_add): Use wide-int interfaces.
5580 (slsr_process_cast): Likewise.
5581 (slsr_process_copy): Likewise.
5582 (dump_candidate): Likewise.
5583 (dump_incr_vec): Likewise.
5584 (replace_ref): Likewise.
5585 (cand_increment): Likewise. Return a widest_int.
5586 (cand_abs_increment): Likewise.
5587 (replace_mult_candidate): Take a widest_int instead of a double_int.
5588 (replace_unconditional_candidate): Use wide-int interfaces.
5589 (incr_vec_index): Take a widest_int instead of a double_int.
5590 (create_add_on_incoming_edge): Likewise.
5591 (create_phi_basis): Use wide-int interfaces.
5592 (replace_conditional_candidate): Likewise.
5593 (record_increment): Take a widest_int instead of a double_int.
5594 (record_phi_increments): Use wide-int interfaces.
5595 (phi_incr_cost): Take a widest_int instead of a double_int.
5596 (lowest_cost_path): Likewise.
5597 (total_savings): Likewise.
5598 (analyze_increments): Use wide-int interfaces.
5599 (ncd_with_phi): Take a widest_int instead of a double_int.
5600 (ncd_of_cand_and_phis): Likewise.
5601 (nearest_common_dominator_for_cands): Likewise.
5602 (insert_initializers): Use wide-int interfaces.
5603 (all_phi_incrs_profitable): Likewise.
5604 (replace_one_candidate): Likewise.
5605 (replace_profitable_candidates): Likewise.
5606 * godump.c: Include wide-int-print.h.
5607 (go_output_typedef): Use wide-int interfaces.
5608 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
5609 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
5610 (build_loop_iteration_domains): Likewise.
5611 * hooks.h: Include wide-int.h rather than double-int.h.
5612 (hook_bool_dint_dint_uint_bool_true): Delete.
5613 (hook_bool_wint_wint_uint_bool_true): Declare.
5614 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
5615 (hook_bool_wint_wint_uint_bool_true): New.
5616 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
5618 (ubsan_expand_si_overflow_mul_check): Likewise.
5619 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
5620 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
5621 (get_ancestor_addr_info): Likewise.
5622 (ipa_modify_call_arguments): Likewise.
5623 * loop-doloop.c (doloop_modify): Likewise.
5624 (doloop_optimize): Likewise.
5625 * loop-iv.c (iv_number_of_iterations): Likewise.
5626 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
5627 (unroll_loop_constant_iterations): Likewise.
5628 (decide_unroll_runtime_iterations): Likewise.
5629 (unroll_loop_runtime_iterations): Likewise.
5630 (decide_peel_simple): Likewise.
5631 (decide_unroll_stupid): Likewise.
5632 * lto-streamer-in.c (streamer_read_wi): Add.
5633 (input_cfg): Use wide-int interfaces.
5634 (lto_input_tree_1): Likewise.
5635 * lto-streamer-out.c (streamer_write_wi): Add.
5636 (hash_tree): Use wide-int interfaces.
5637 (output_cfg): Likewise.
5638 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
5639 (GTFILES): Add wide-int.h and signop.h.
5640 (TAGS): Look for .cc files too.
5641 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
5642 * optabs.c (expand_subword_shift): Likewise.
5643 (expand_doubleword_shift): Likewise.
5644 (expand_absneg_bit): Likewise.
5645 (expand_copysign_absneg): Likewise.
5646 (expand_copysign_bit): Likewise.
5647 * postreload.c (reload_cse_simplify_set): Likewise.
5648 * predict.c (predict_iv_comparison): Likewise.
5649 * pretty-print.h: Include wide-int-print.h.
5651 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
5652 * print-tree.c: Include wide-int-print.h.
5653 (print_node_brief): Use wide-int interfaces.
5654 (print_node): Likewise.
5655 * read-rtl.c (validate_const_wide_int): New.
5656 (read_rtx_code): Add CONST_WIDE_INT case.
5657 * real.c: Include wide-int.h.
5658 (real_to_integer2): Delete.
5659 (real_to_integer): New function, returning a wide_int.
5660 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
5661 (ten_to_ptwo): Update call to real_from_integer.
5662 (real_digit): Likewise.
5663 * real.h: Include signop.h, wide-int.h and insn-modes.h.
5664 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
5665 (REAL_VALUE_TO_INT): Delete.
5666 (real_to_integer): Declare a wide-int form.
5667 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
5668 * recog.c (const_int_operand): Improve comment.
5669 (const_scalar_int_operand): New.
5670 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
5671 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
5672 (split_double): Likewise.
5673 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
5674 (rtx_size): Likewise.
5675 (rtx_alloc_stat_v): New.
5676 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
5677 (cwi_output_hex): New.
5678 (iterative_hash_rtx): Handle CONST_WIDE_INT.
5679 (cwi_check_failed_bounds): New.
5680 * rtl.def (CONST_WIDE_INT): New.
5681 * rtl.h: Include <utility> and wide-int.h.
5682 (struct hwivec_def): New.
5683 (CWI_GET_NUM_ELEM): New.
5684 (CWI_PUT_NUM_ELEM): New.
5685 (struct rtx_def): Add num_elem and hwiv.
5686 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
5687 (CASE_CONST_UNIQUE): Likewise.
5688 (CASE_CONST_ANY): Likewise.
5689 (CONST_SCALAR_INT_P): Likewise.
5690 (CONST_WIDE_INT_P): New.
5692 (HWIVEC_CHECK): New.
5693 (cwi_check_failed_bounds): New.
5695 (HWIVEC_CHECK): New.
5696 (CONST_WIDE_INT_VEC) New.
5697 (CONST_WIDE_INT_NUNITS) New.
5698 (CONST_WIDE_INT_ELT) New.
5699 (rtx_mode_t): New type.
5700 (wi::int_traits <rtx_mode_t>): New.
5702 (wi::min_value): New.
5703 (wi::max_value): New.
5705 (const_wide_int_alloc): New.
5706 (immed_wide_int_const): New.
5707 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
5708 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
5709 * signop.h: New file.
5710 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
5711 (simplify_const_unary_operation): Use wide-int interfaces.
5712 (simplify_binary_operation_1): Likewise.
5713 (simplify_const_binary_operation): Likewise.
5714 (simplify_const_relational_operation): Likewise.
5715 (simplify_immed_subreg): Likewise.
5716 * stmt.c (expand_case): Likewise.
5717 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
5718 signop rather than a bool.
5719 * stor-layout.c (layout_type): Use wide-int interfaces.
5720 (initialize_sizetypes): Update calls to
5721 set_min_and_max_values_for_integral_type.
5722 (set_min_and_max_values_for_integral_type): Take a signop rather
5723 than a bool. Use wide-int interfaces.
5724 (fixup_signed_type): Update accordingly. Remove
5725 HOST_BITS_PER_DOUBLE_INT limit.
5726 (fixup_unsigned_type): Likewise.
5727 * system.h (STATIC_CONSTANT_P): New.
5728 (STATIC_ASSERT): New.
5729 * target.def (can_use_doloop_p): Take widest_ints rather than
5731 * target.h: Include wide-int.h rather than double-int.h.
5732 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
5734 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
5735 rather than INT_CST_LT_UNSIGNED.
5736 (can_use_doloop_if_innermost): Take widest_ints rather than
5738 * tree-affine.c: Include wide-int-print.h.
5739 (double_int_ext_for_comb): Delete.
5740 (wide_int_ext_for_comb): New.
5741 (aff_combination_zero): Use wide-int interfaces.
5742 (aff_combination_const): Take a widest_int instead of a double_int.
5743 (aff_combination_elt): Use wide-int interfaces.
5744 (aff_combination_scale): Take a widest_int instead of a double_int.
5745 (aff_combination_add_elt): Likewise.
5746 (aff_combination_add_cst): Likewise.
5747 (aff_combination_add): Use wide-int interfaces.
5748 (aff_combination_convert): Likewise.
5749 (tree_to_aff_combination): Likewise.
5750 (add_elt_to_tree): Take a widest_int instead of a double_int.
5751 (aff_combination_to_tree): Use wide-int interfaces.
5752 (aff_combination_remove_elt): Likewise.
5753 (aff_combination_add_product): Take a widest_int instead of
5755 (aff_combination_mult): Use wide-int interfaces.
5756 (aff_combination_expand): Likewise.
5757 (double_int_constant_multiple_p): Delete.
5758 (wide_int_constant_multiple_p): New.
5759 (aff_combination_constant_multiple_p): Take a widest_int pointer
5760 instead of a double_int pointer.
5761 (print_aff): Use wide-int interfaces.
5762 (get_inner_reference_aff): Take a widest_int pointer
5763 instead of a double_int pointer.
5764 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
5765 * tree-affine.h: Include wide-int.h.
5766 (struct aff_comb_elt): Change type of coef to widest_int.
5767 (struct affine_tree_combination): Change type of offset to widest_int.
5768 (double_int_ext_for_comb): Delete.
5769 (wide_int_ext_for_comb): New.
5770 (aff_combination_const): Use widest_int instead of double_int.
5771 (aff_combination_scale): Likewise.
5772 (aff_combination_add_elt): Likewise.
5773 (aff_combination_constant_multiple_p): Likewise.
5774 (get_inner_reference_aff): Likewise.
5775 (aff_comb_cannot_overlap_p): Likewise.
5776 (aff_combination_zero_p): Use wide-int interfaces.
5777 * tree.c: Include tree.h.
5778 (init_ttree): Use make_int_cst.
5779 (tree_code_size): Removed code for INTEGER_CST case.
5780 (tree_size): Add INTEGER_CST case.
5781 (make_node_stat): Update comment.
5782 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
5783 (build_int_cst_type): Use wide-int interfaces.
5784 (double_int_to_tree): Likewise.
5785 (double_int_fits_to_tree_p): Delete.
5786 (force_fit_type_double): Delete.
5787 (force_fit_type): New.
5788 (int_cst_hash_hash): Use wide-int interfaces.
5789 (int_cst_hash_eq): Likewise.
5790 (build_int_cst_wide): Delete.
5791 (wide_int_to_tree): New.
5792 (cache_integer_cst): Use wide-int interfaces.
5793 (build_low_bits_mask): Likewise.
5794 (cst_and_fits_in_hwi): Likewise.
5795 (real_value_from_int_cst): Likewise.
5796 (make_int_cst_stat): New.
5797 (integer_zerop): Use wide_int interfaces.
5798 (integer_onep): Likewise.
5799 (integer_all_onesp): Likewise.
5800 (integer_pow2p): Likewise.
5801 (integer_nonzerop): Likewise.
5802 (tree_log2): Likewise.
5803 (tree_floor_log2): Likewise.
5804 (tree_ctz): Likewise.
5805 (int_size_in_bytes): Likewise.
5806 (mem_ref_offset): Return an offset_int rather than a double_int.
5807 (build_type_attribute_qual_variant): Use wide_int interfaces.
5808 (type_hash_eq): Likewise
5809 (tree_int_cst_equal): Likewise.
5810 (tree_int_cst_lt): Delete.
5811 (tree_int_cst_compare): Likewise.
5812 (tree_fits_shwi_p): Use wide_int interfaces.
5813 (tree_fits_uhwi_p): Likewise.
5814 (tree_int_cst_sign_bit): Likewise.
5815 (tree_int_cst_sgn): Likewise.
5816 (tree_int_cst_min_precision): Take a signop rather than a bool.
5817 (simple_cst_equal): Use wide_int interfaces.
5818 (compare_tree_int): Likewise.
5819 (iterative_hash_expr): Likewise.
5820 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
5822 (get_type_static_bounds): Use wide_int interfaces.
5823 (tree_int_cst_elt_check_failed): New.
5824 (build_common_tree_nodes): Reordered to set prec before filling in
5826 (int_cst_value): Check cst_and_fits_in_hwi.
5827 (widest_int_cst_value): Use wide_int interfaces.
5828 (upper_bound_in_type): Likewise.
5829 (lower_bound_in_type): Likewise.
5830 (num_ending_zeros): Likewise.
5831 (drop_tree_overflow): Likewise.
5832 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
5833 (gen_conditions_for_pow_cst_base): Likewise.
5834 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
5835 (group_case_labels_stmt): Use wide-int interfaces.
5836 (verify_gimple_assign_binary): Likewise.
5837 (print_loop): Likewise.
5838 * tree-chrec.c (tree_fold_binomial): Likewise.
5839 * tree-core.h (struct tree_base): Add int_length.
5840 (struct tree_int_cst): Change rep of value.
5841 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
5842 (dr_may_alias_p): Likewise.
5843 (max_stmt_executions_tree): Likewise.
5844 * tree.def (INTEGER_CST): Update comment.
5845 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
5846 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
5847 * tree-dump.c: Include wide-int.h and wide-int-print.h.
5848 (dequeue_and_dump): Use wide-int interfaces.
5849 * tree.h: Include wide-int.h.
5850 (NULL_TREE): Moved to earlier loc in file.
5851 (TREE_INT_CST_ELT_CHECK): New.
5852 (tree_int_cst_elt_check_failed): New.
5854 (TREE_INT_CST): Delete.
5855 (TREE_INT_CST_LOW): Use wide-int interfaces.
5856 (TREE_INT_CST_HIGH): Delete.
5857 (TREE_INT_CST_NUNITS): New.
5858 (TREE_INT_CST_EXT_NUNITS): Likewise.
5859 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
5860 (TREE_INT_CST_ELT): Likewise.
5861 (INT_CST_LT): Delete.
5862 (tree_int_cst_elt_check): New (two forms).
5863 (type_code_size): Update comment.
5864 (make_int_cst_stat, make_int_cst): New.
5865 (tree_to_double_int): Delete.
5866 (double_int_fits_to_tree_p): Delete.
5867 (force_fit_type_double): Delete.
5868 (build_int_cstu): Replace with out-of-line function.
5869 (build_int_cst_wide): Delete.
5870 (tree_int_cst_lt): Define inline.
5871 (tree_int_cst_le): New.
5872 (tree_int_cst_compare): Define inline.
5873 (tree_int_cst_min_precision): Take a signop rather than a bool.
5874 (wi::int_traits <const_tree>): New.
5875 (wi::int_traits <tree>): New.
5876 (wi::extended_tree): New.
5877 (wi::int_traits <wi::extended_tree>): New.
5878 (wi::to_widest): New.
5879 (wi::to_offset): New.
5880 (wi::fits_to_tree_p): New.
5881 (wi::min_value): New.
5882 (wi::max_value): New.
5883 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
5884 (copy_tree_body_r): Likewise.
5885 * tree-object-size.c (compute_object_offset): Likewise.
5886 (addr_object_size): Likewise.
5887 * tree-predcom.c: Include wide-int-print.h.
5888 (struct dref_d): Change type of offset to widest_int.
5889 (dump_dref): Call wide-int printer.
5890 (aff_combination_dr_offset): Use wide-int interfaces.
5891 (determine_offset): Take a widest_int pointer rather than a
5893 (split_data_refs_to_components): Use wide-int interfaces.
5894 (suitable_component_p): Likewise.
5895 (order_drefs): Likewise.
5896 (add_ref_to_chain): Likewise.
5897 (valid_initializer_p): Likewise.
5898 (determine_roots_comp): Likewise.
5899 * tree-pretty-print.c: Include wide-int-print.h.
5900 (dump_generic_node): Use wide-int interfaces.
5901 * tree-sra.c (sra_ipa_modify_expr): Likewise.
5902 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
5903 (move_fixed_address_to_symbol): Likewise.
5904 (move_hint_to_base): Likewise.
5905 (move_pointer_to_base): Likewise.
5906 (move_variant_to_index): Likewise.
5907 (most_expensive_mult_to_index): Likewise.
5908 (addr_to_parts): Likewise.
5909 (copy_ref_info): Likewise.
5910 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
5911 (indirect_refs_may_alias_p): Likewise.
5912 (stmt_kills_ref_p_1): Likewise.
5913 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
5914 * tree-ssa-ccp.c: Update comment at top of file. Include
5916 (struct prop_value_d): Change type of mask to widest_int.
5917 (extend_mask): New function.
5918 (dump_lattice_value): Use wide-int interfaces.
5919 (get_default_value): Likewise.
5920 (set_constant_value): Likewise.
5921 (set_value_varying): Likewise.
5922 (valid_lattice_transition): Likewise.
5923 (set_lattice_value): Likewise.
5924 (value_to_double_int): Delete.
5925 (value_to_wide_int): New.
5926 (get_value_from_alignment): Use wide-int interfaces.
5927 (get_value_for_expr): Likewise.
5928 (do_dbg_cnt): Likewise.
5929 (ccp_finalize): Likewise.
5930 (ccp_lattice_meet): Likewise.
5931 (bit_value_unop_1): Use widest_ints rather than double_ints.
5932 (bit_value_binop_1): Likewise.
5933 (bit_value_unop): Use wide-int interfaces.
5934 (bit_value_binop): Likewise.
5935 (bit_value_assume_aligned): Likewise.
5936 (evaluate_stmt): Likewise.
5937 (ccp_fold_stmt): Likewise.
5938 (visit_cond_stmt): Likewise.
5939 (ccp_visit_stmt): Likewise.
5940 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5941 (constant_pointer_difference): Likewise.
5942 (associate_pointerplus): Likewise.
5943 (combine_conversions): Likewise.
5944 * tree-ssa-loop.h: Include wide-int.h.
5945 (struct tree_niter_desc): Change type of max to widest_int.
5946 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
5947 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
5948 (remove_redundant_iv_tests): Likewise.
5949 (canonicalize_loop_induction_variables): Likewise.
5950 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
5951 (constant_multiple_of): Take a widest_int pointer instead of
5952 a double_int pointer.
5953 (get_computation_aff): Use wide-int interfaces.
5954 (ptr_difference_cost): Likewise.
5955 (difference_cost): Likewise.
5956 (get_loop_invariant_expr_id): Likewise.
5957 (get_computation_cost_at): Likewise.
5958 (iv_elimination_compare_lt): Likewise.
5959 (may_eliminate_iv): Likewise.
5960 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
5961 instead of double_int.
5962 (max_loop_iterations): Likewise.
5963 (max_stmt_executions): Likewise.
5964 (estimated_stmt_executions): Likewise.
5965 * tree-ssa-loop-niter.c: Include wide-int-print.h.
5966 (split_to_var_and_offset): Use wide-int interfaces.
5967 (determine_value_range): Likewise.
5968 (bound_difference_of_offsetted_base): Likewise.
5969 (bounds_add): Take a widest_int instead of a double_int.
5970 (number_of_iterations_ne_max): Use wide-int interfaces.
5971 (number_of_iterations_ne): Likewise.
5972 (number_of_iterations_lt_to_ne): Likewise.
5973 (assert_loop_rolls_lt): Likewise.
5974 (number_of_iterations_lt): Likewise.
5975 (number_of_iterations_le): Likewise.
5976 (number_of_iterations_cond): Likewise.
5977 (number_of_iterations_exit): Likewise.
5978 (finite_loop_p): Likewise.
5979 (derive_constant_upper_bound_assign): Likewise.
5980 (derive_constant_upper_bound): Return a widest_int.
5981 (derive_constant_upper_bound_ops): Likewise.
5982 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
5983 (record_estimate): Take a widest_int rather than a double_int.
5984 (record_nonwrapping_iv): Use wide-int interfaces.
5985 (double_int_cmp): Delete.
5986 (wide_int_cmp): New.
5987 (bound_index): Take a widest_int rather than a double_int.
5988 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
5989 (maybe_lower_iteration_bound): Likewise.
5990 (estimate_numbers_of_iterations_loop): Likewise.
5991 (estimated_loop_iterations): Take a widest_int pointer than than
5992 a double_int pointer.
5993 (estimated_loop_iterations_int): Use wide-int interfaces.
5994 (max_loop_iterations): Take a widest_int pointer than than
5995 a double_int pointer.
5996 (max_loop_iterations_int): Use wide-int interfaces.
5997 (max_stmt_executions): Take a widest_int pointer than than
5998 a double_int pointer.
5999 (estimated_stmt_executions): Likewise.
6000 (n_of_executions_at_most): Use wide-int interfaces.
6001 (scev_probably_wraps_p): Likewise.
6002 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
6004 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
6006 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
6007 double_ints. Adjust for trailing_wide_ints <3> representation.
6008 (set_nonzero_bits): Likewise.
6009 (get_range_info): Return wide_ints rather than double_ints.
6010 Adjust for trailing_wide_ints <3> representation.
6011 (get_nonzero_bits): Likewise.
6012 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
6014 * tree-ssanames.h (struct range_info_def): Replace min, max and
6015 nonzero_bits with a trailing_wide_ints <3>.
6016 (set_range_info): Use wide_int_refs rather than double_ints.
6017 (set_nonzero_bits): Likewise.
6018 (get_range_info): Return wide_ints rather than double_ints.
6019 (get_nonzero_bits): Likewise.
6020 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
6021 * tree-ssa-pre.c (phi_translate_1): Likewise.
6022 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
6023 (acceptable_pow_call): Likewise.
6024 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
6026 (vn_reference_fold_indirect): Likewise.
6027 (vn_reference_maybe_forwprop_address): Likewise.
6028 (valueize_refs_1): Likewise.
6029 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
6030 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
6031 tree_int_cst_lt and tree_int_cst_le.
6032 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
6034 (streamer_alloc_tree): Likewise.
6035 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
6036 (streamer_write_tree_header): Likewise.
6037 (streamer_write_integer_cst): Likewise.
6038 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
6039 (build_constructors): Likewise.
6040 (array_value_type): Likewise.
6041 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
6042 (vect_check_gather): Likewise.
6043 * tree-vect-generic.c (build_replicated_const): Likewise.
6044 (expand_vector_divmod): Likewise.
6045 * tree-vect-loop.c (vect_transform_loop): Likewise.
6046 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
6047 (vect_do_peeling_for_alignment): Likewise.
6048 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
6049 * tree-vrp.c: Include wide-int.h.
6050 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
6051 (extract_range_from_assert): Use wide-int interfaces.
6052 (vrp_int_const_binop): Likewise.
6053 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
6054 double_int pointers.
6055 (ranges_from_anti_range): Use wide-int interfaces.
6056 (quad_int_cmp): Delete.
6057 (quad_int_pair_sort): Likewise.
6058 (extract_range_from_binary_expr_1): Use wide-int interfaces.
6059 (extract_range_from_unary_expr_1): Likewise.
6060 (adjust_range_with_scev): Likewise.
6061 (masked_increment): Take and return wide_ints rather than double_ints.
6062 (register_edge_assert_for_2): Use wide-int interfaces.
6063 (check_array_ref): Likewise.
6064 (search_for_addr_array): Likewise.
6065 (maybe_set_nonzero_bits): Likewise.
6066 (union_ranges): Pass an integer of the correct type instead of
6067 using integer_one_node.
6068 (intersect_ranges): Likewise.
6069 (simplify_truth_ops_using_ranges): Likewise.
6070 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
6071 (range_fits_type_p): Likewise.
6072 (simplify_cond_using_ranges): Likewise. Take a signop rather than
6074 (simplify_conversion_using_ranges): Use wide-int interfaces.
6075 (simplify_float_conversion_using_ranges): Likewise.
6076 (vrp_finalize): Likewise.
6077 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
6078 (gimple_stringops_transform): Likewise.
6079 * varasm.c (decode_addr_const): Likewise.
6080 (const_hash_1): Likewise.
6081 (const_rtx_hash_1): Likewise
6082 (output_constant): Likewise.
6083 (array_size_for_constructor): Likewise.
6084 (output_constructor_regular_field): Likewise.
6085 (output_constructor_bitfield): Likewise.
6086 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
6087 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
6089 * gencheck.c: Define BITS_PER_UNIT.
6092 * wide-int-print.cc: New.
6093 * wide-int-print.h: New.
6095 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6097 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
6099 2014-05-06 Richard Biener <rguenther@suse.de>
6101 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
6102 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
6103 (TODO_verify_all): Adjust.
6104 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
6105 TODO_verify_stmts and TODO_verify_rtl_sharing.
6106 * bb-reorder.c: Likewise.
6107 * cfgexpand.c: Likewise.
6108 * cprop.c: Likewise.
6110 * function.c: Likewise.
6111 * fwprop.c: Likewise.
6113 * gimple-ssa-isolate-paths.c: Likewise.
6114 * gimple-ssa-strength-reduction.c: Likewise.
6115 * ipa-split.c: Likewise.
6116 * loop-init.c: Likewise.
6117 * loop-unroll.c: Likewise.
6118 * lower-subreg.c: Likewise.
6119 * modulo-sched.c: Likewise.
6120 * postreload-gcse.c: Likewise.
6121 * predict.c: Likewise.
6122 * recog.c: Likewise.
6123 * sched-rgn.c: Likewise.
6124 * store-motion.c: Likewise.
6125 * tracer.c: Likewise.
6126 * trans-mem.c: Likewise.
6127 * tree-call-cdce.c: Likewise.
6128 * tree-cfg.c: Likewise.
6129 * tree-cfgcleanup.c: Likewise.
6130 * tree-complex.c: Likewise.
6131 * tree-eh.c: Likewise.
6132 * tree-emutls.c: Likewise.
6133 * tree-if-conv.c: Likewise.
6134 * tree-into-ssa.c: Likewise.
6135 * tree-loop-distribution.c: Likewise.
6136 * tree-object-size.c: Likewise.
6137 * tree-parloops.c: Likewise.
6138 * tree-pass.h: Likewise.
6139 * tree-sra.c: Likewise.
6140 * tree-ssa-ccp.c: Likewise.
6141 * tree-ssa-copy.c: Likewise.
6142 * tree-ssa-copyrename.c: Likewise.
6143 * tree-ssa-dce.c: Likewise.
6144 * tree-ssa-dom.c: Likewise.
6145 * tree-ssa-dse.c: Likewise.
6146 * tree-ssa-forwprop.c: Likewise.
6147 * tree-ssa-ifcombine.c: Likewise.
6148 * tree-ssa-loop-ch.c: Likewise.
6149 * tree-ssa-loop-ivcanon.c: Likewise.
6150 * tree-ssa-loop.c: Likewise.
6151 * tree-ssa-math-opts.c: Likewise.
6152 * tree-ssa-phiopt.c: Likewise.
6153 * tree-ssa-phiprop.c: Likewise.
6154 * tree-ssa-pre.c: Likewise.
6155 * tree-ssa-reassoc.c: Likewise.
6156 * tree-ssa-sink.c: Likewise.
6157 * tree-ssa-strlen.c: Likewise.
6158 * tree-ssa-tail-merge.c: Likewise.
6159 * tree-ssa-uncprop.c: Likewise.
6160 * tree-switch-conversion.c: Likewise.
6161 * tree-tailcall.c: Likewise.
6162 * tree-vect-generic.c: Likewise.
6163 * tree-vectorizer.c: Likewise.
6164 * tree-vrp.c: Likewise.
6166 * var-tracking.c: Likewise.
6167 * bt-load.c: Likewise.
6168 * cfgcleanup.c: Likewise.
6169 * combine-stack-adj.c: Likewise.
6170 * combine.c: Likewise.
6171 * compare-elim.c: Likewise.
6172 * config/epiphany/resolve-sw-modes.c: Likewise.
6173 * config/i386/i386.c: Likewise.
6174 * config/mips/mips.c: Likewise.
6175 * config/s390/s390.c: Likewise.
6176 * config/sh/sh_treg_combine.cc: Likewise.
6177 * config/sparc/sparc.c: Likewise.
6180 * final.c: Likewise.
6181 * ifcvt.c: Likewise.
6182 * mode-switching.c: Likewise.
6183 * passes.c: Likewise.
6184 * postreload.c: Likewise.
6186 * reg-stack.c: Likewise.
6187 * regcprop.c: Likewise.
6188 * regrename.c: Likewise.
6191 2014-05-06 Richard Biener <rguenther@suse.de>
6194 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
6195 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
6197 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
6200 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
6202 2014-05-05 Radovan Obradovic <robradovic@mips.com>
6203 Tom de Vries <tom@codesourcery.com>
6205 * target.def (call_fusage_contains_non_callee_clobbers): New
6207 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
6209 (@node Miscellaneous Register Hooks): New node.
6210 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
6211 * doc/tm.texi: Regenerate.
6213 2014-05-05 Marek Polacek <polacek@redhat.com>
6216 * opts.c (common_handle_option): Call error_at instead of warning_at.
6218 2014-05-05 Richard Biener <rguenther@suse.de>
6220 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
6221 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
6222 under the TODO_verify_il umbrella.
6224 2014-05-05 Richard Biener <rguenther@suse.de>
6226 * passes.c (execute_function_todo): Move TODO_verify_flow under
6227 the TODO_verify_ul umbrella.
6229 2014-05-05 Richard Biener <rguenther@suse.de>
6232 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
6233 X & CST away from a CST that is the mask of a mode.
6235 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6237 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
6238 int argument to enum machine_mode.
6239 (picochip_class_max_nregs): Ditto.
6240 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
6241 (picochip_class_max_nregs): Ditto.
6243 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6245 * target.def: Add new target hook.
6246 * doc/tm.texi: Regenerate.
6247 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
6248 * targhooks.c (default_keep_leaf_when_profiled): New function.
6250 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
6251 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
6253 2014-05-05 Bin Cheng <bin.cheng@arm.com>
6255 PR tree-optimization/60363
6256 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
6257 (copy_phi_args): New parameters. Call get_value_locus_in_path.
6258 (update_destination_phis): New parameter.
6259 (create_edge_and_update_destination_phis): Ditto.
6260 (ssa_fix_duplicate_block_edges): Pass new arguments.
6261 (thread_single_edge): Ditto.
6263 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
6265 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
6266 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
6267 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
6268 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
6269 Use RS6000_BTM_HARD_FLOAT.
6270 (BU_MISC_2): Likewise.
6271 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
6272 RS6000_BTM_HARD_FLOAT.
6273 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
6275 (rs6000_invalid_builtin): Add hard floating builtin support.
6276 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
6277 hard float builtins.
6278 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
6280 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6282 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
6283 Add missing function* argument.
6285 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
6287 * lra-constraints.c (valid_address_p): Move earlier in file.
6288 Add a constraint argument to the address_info version.
6289 (satisfies_memory_constraint_p): New function.
6290 (satisfies_address_constraint_p): Likewise.
6291 (process_alt_operands, curr_insn_transform): Use them.
6292 (process_address): Pass the constraint to valid_address_p when
6293 checking address operands.
6295 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
6297 * config/mips/mips.c (mips_isa_rev): New variable.
6298 (mips_set_architecture): Set it.
6299 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
6301 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
6302 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
6303 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
6304 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
6305 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
6306 conditions in terms of mips_isa_rev.
6307 (mips_isa_rev): Declare.
6309 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6311 * config/sh/sh-mem.cc: Use tabs instead of spaces.
6312 (prob_unlikely, prob_likely): Make variables const.
6314 2014-05-03 Denis Chertykov <chertykov@gmail.com>
6316 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
6318 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6320 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
6322 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6324 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
6325 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
6326 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
6328 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
6329 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
6331 Replace usage of ROUND_REG with sh_round_reg.
6332 Use CEIL instead of ROUND_ADVANCE.
6334 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6337 * config/sh/sh.c: Include stdlib headers before everything else.
6339 2014-05-02 Jakub Jelinek <jakub@redhat.com>
6341 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
6342 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
6343 (gimplify_adjust_omp_clauses): Simd region is never
6344 directly nested in combined parallel. Instead, for linear
6345 with copyin/copyout, if in combined for simd loop, make decl
6346 firstprivate/lastprivate on OMP_FOR.
6347 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6348 expand_omp_for_static_chunk): When setting endvar, also set
6349 fd->loop.v to the same value.
6351 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6353 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
6355 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
6357 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
6360 2014-05-02 Marek Polacek <polacek@redhat.com>
6362 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
6364 2014-05-02 Kito Cheng <kito@0xlab.org>
6366 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
6367 to a C expression marco.
6368 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
6369 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
6370 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
6371 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
6372 HONOR_REG_ALLOC_ORDER.
6373 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
6375 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6377 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
6379 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6381 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
6383 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
6385 * tree-if-conv.c (is_cond_scalar_reduction): New function.
6386 (convert_scalar_cond_reduction): Likewise.
6387 (predicate_scalar_phi): Add recognition and transformation
6388 of simple conditioanl reduction to be vectorizable.
6390 2014-05-01 Marek Polacek <polacek@redhat.com>
6393 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
6395 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
6397 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
6398 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
6399 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
6400 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
6401 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
6402 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
6403 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
6404 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
6406 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
6408 * config/arc/arc.opt (mlra): Move comment above option name
6409 to avoid mis-parsing as language options.
6411 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6413 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
6414 * config/sol2.h: ... here.
6415 * config/sol2-10.h: Remove.
6417 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
6418 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
6419 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
6420 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
6421 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
6422 * config/sol2.h: ... here.
6423 (SECTION_NAME_FORMAT): Don't redefine.
6424 (STARTFILE_ARCH32_SPEC): Rename to ...
6425 (STARTFILE_ARCH_SPEC): ... this.
6426 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
6427 * config/sparc/sol2.h: ... here.
6428 (SECTION_NAME_FORMAT): Don't undef.
6429 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
6430 (SUBTARGET_EXTRA_SPECS): Remove.
6431 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
6433 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
6434 (MD_STARTFILE_PREFIX): Remove.
6435 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
6436 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
6437 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
6438 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
6439 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
6440 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
6441 * config/i386/sol2.h: ... here.
6442 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
6443 * config/i386/sol2-bi.h: Remove.
6444 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
6445 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
6447 * config/i386/t-sol2-64: Rename to ...
6448 * config/i386/t-sol2: ... this.
6449 * config/sparc/t-sol2-64: Rename to ...
6450 * config/sparc/t-sol2: ... this.
6452 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
6453 sol2_tm_file_head, sol2_tm_file_tail.
6454 Include ${cpu_type}/sol2.h before sol2.h.
6456 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
6457 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
6458 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
6459 Reflect i386/t-sol2-64 renaming.
6460 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
6461 Reflect sparc/t-sol2-64 renaming.
6463 2014-04-30 Richard Biener <rguenther@suse.de>
6465 * passes.c (execute_function_todo): Move TODO_verify_stmts
6466 and TODO_verify_ssa under the TODO_verify_il umbrella.
6467 * tree-ssa.h (verify_ssa): Adjust prototype.
6468 * tree-ssa.c (verify_ssa): Add parameter to tell whether
6469 we should verify SSA operands.
6470 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
6471 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
6472 whether we should verify whether not throwing stmts have EH info.
6473 * graphite-scop-detection.c (create_sese_edges): Adjust.
6474 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
6475 * tree-eh.c (lower_try_finally_switch): Do not add the
6476 default case label twice.
6478 2014-04-30 Marek Polacek <polacek@redhat.com>
6480 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
6481 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
6482 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
6483 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
6485 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
6487 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
6488 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
6489 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
6490 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
6491 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
6492 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
6493 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
6494 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
6496 2014-04-29 David Malcolm <dmalcolm@redhat.com>
6498 * tree-cfg.c (dump_function_to_file): Dump the return type of
6499 functions, in a line to itself before the function body, mimicking
6500 the layout of a C function.
6502 2014-04-29 Jakub Jelinek <jakub@redhat.com>
6504 PR tree-optimization/60971
6505 * tree-tailcall.c (process_assignment): Reject conversions which
6508 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
6510 * calls.c (initialize_argument_information): Always treat
6511 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
6512 (expand_call): Likewise.
6513 (emit_library_call_calue_1): Likewise.
6514 * expr.c (PUSH_ARGS_REVERSED): Do not define.
6515 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
6518 2014-04-29 Nick Clifton <nickc@redhat.com>
6520 * config/msp430/msp430.md (umulsidi): Fix typo.
6521 (mulhisi3): Enable even inside interrupt handlers.
6522 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
6523 bigger return address pushed in large mode.
6525 2014-04-29 Nick Clifton <nickc@redhat.com>
6527 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
6528 (arc_init_reg_tables): Use a machine_mode enum to iterate over
6530 * config/m32r/m32r.c (init_reg_tables): Likewise.
6531 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
6532 enum to hold the modes.
6534 2014-04-29 Richard Biener <rguenther@suse.de>
6536 * dominance.c (free_dominance_info): Add overload with
6538 (dom_info_state): Likewise.
6539 (dom_info_available_p): Likewise.
6540 * basic-block.h (free_dominance_info, dom_info_state,
6541 dom_info_available_p): Declare overloads.
6542 * passes.c (execute_function_todo): Verify that verifiers
6543 don't change dominator info state. Drop dominator info
6544 for IPA pass invocations.
6545 * cgraph.c (release_function_body): Restore asserts that
6546 dominator information is released.
6548 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
6550 * doc/invoke.texi: Fix typo.
6551 * tree-vrp.c: Fix typos.
6552 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
6554 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6556 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
6558 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
6560 * config/aarch64/aarch64-builtins.c
6561 (aarch64_types_storestruct_lane_qualifiers): New.
6562 (TYPES_STORESTRUCT_LANE): Likewise.
6563 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
6564 (st3_lane): Likewise.
6565 (st4_lane): Likewise.
6566 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
6567 (vec_store_lanesci_lane<mode>): Likewise.
6568 (vec_store_lanesxi_lane<mode>): Likewise.
6569 (aarch64_st2_lane<VQ:mode>): Likewise.
6570 (aarch64_st3_lane<VQ:mode>): Likewise.
6571 (aarch64_st4_lane<VQ:mode>): Likewise.
6572 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
6573 * config/aarch64/arm_neon.h
6574 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
6575 use new macro arguments.
6576 (__ST3_LANE_FUNC): Likewise.
6577 (__ST4_LANE_FUNC): Likewise.
6578 * config/aarch64/iterators.md (V_TWO_ELEM): New.
6579 (V_THREE_ELEM): Likewise.
6580 (V_FOUR_ELEM): Likewise.
6582 2014-04-28 David Malcolm <dmalcolm@redhat.com>
6584 * doc/gimple.texi: Replace the description of the now-defunct
6585 union gimple_statement_d with a diagram showing the
6586 gimple_statement_base class hierarchy and its relationships to
6587 the GSS_ and GIMPLE_ enums.
6589 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
6591 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
6592 * config/aarch64/aarch64.c
6593 (aarch64_cannot_change_mode_class): Weaken conditions.
6594 (aarch64_modes_tieable_p): New.
6595 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
6597 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
6599 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
6600 (loadsync_<mode>): Change mode.
6601 (load_quadpti, store_quadpti): New.
6602 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
6603 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
6605 2014-04-28 Martin Jambor <mjambor@suse.cz>
6607 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
6608 same alias type as the original statement.
6609 (subreplacement_assignment_data): New type.
6610 (handle_unscalarized_data_in_subtree): New type of parameter,
6611 generate new memory accesses with same alias type as the original
6613 (load_assign_lhs_subreplacements): Likewise.
6614 (sra_modify_constructor_assign): Generate new memory accesses with
6615 same alias type as the original statement.
6617 2014-04-28 Richard Biener <rguenther@suse.de>
6619 * tree-pass.h (TODO_verify_il): Define.
6620 (TODO_verify_all): Complete properly.
6621 * passes.c (execute_function_todo): Move existing loop-closed
6622 SSA verification under TODO_verify_il.
6623 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
6624 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
6625 Fix tree sharing issue.
6627 2014-04-28 Richard Biener <rguenther@suse.de>
6630 * builtins.def (DEF_C11_BUILTIN): Add.
6631 (BUILT_IN_ALIGNED_ALLOC): Likewise.
6632 * coretypes.h (enum function_class): Add function_c11_misc.
6633 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6634 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
6635 (call_may_clobber_ref_p_1): Likewise.
6636 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6637 (mark_all_reaching_defs_necessary_1): Likewise.
6638 (propagate_necessity): Likewise.
6639 (eliminate_unnecessary_stmts): Likewise.
6640 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
6642 2014-04-28 Richard Biener <rguenther@suse.de>
6644 * tree-vrp.c (vrp_var_may_overflow): Remove.
6645 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
6646 with overflow immediately bump to one before that value and
6647 let iteration figure out overflow status.
6649 2014-04-28 Richard Biener <rguenther@suse.de>
6651 * configure.ac: Do valgrind header checks unconditionally.
6652 Add --enable-valgrind-annotations.
6653 * system.h: Guard valgrind header inclusion with
6654 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
6655 * alloc-pool.c (pool_alloc, pool_free): Use
6656 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
6657 to guard possibly dead code.
6658 * config.in: Regenerated.
6659 * configure: Likewise.
6661 2014-04-28 Jeff Law <law@redhat.com>
6663 PR tree-optimization/60902
6664 * tree-ssa-threadedge.c
6665 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
6666 over real defs when invalidating outputs from statements that do not
6667 produce useful outputs for threading.
6669 2014-04-28 Richard Biener <rguenther@suse.de>
6671 PR tree-optimization/60979
6672 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
6673 SCOPs that end in a block with a successor with abnormal
6676 2014-04-28 Richard Biener <rguenther@suse.de>
6678 * tree-pass.h (execute_pass_list): Adjust prototype.
6679 * passes.c (pass_manager::execute_early_local_passes): Adjust.
6680 (do_per_function): Change callback signature, push all actual
6681 work to the callbals.
6682 (do_per_function_toporder): Likewise.
6683 (execute_function_dump): Adjust.
6684 (execute_function_todo): Likewise.
6685 (clear_last_verified): Likewise.
6686 (verify_curr_properties): Likewise.
6687 (update_properties_after_pass): Likewise.
6688 (execute_pass_list_1): Split out from ...
6689 (execute_pass_list): ... here. Adjust.
6690 (execute_ipa_pass_list): Likewise.
6691 * cgraphunit.c (cgraph_add_new_function): Adjust.
6692 (analyze_function): Likewise.
6693 (expand_function): Likewise.
6694 * cgraph.c (release_function_body): Free dominance info
6695 here instead of asserting it was magically freed elsewhere.
6697 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
6699 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
6700 * configure: Regenerate.
6701 * config/sparc/sparc.opt (muser-mode): New option.
6702 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
6704 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
6705 * doc/invoke.texi (SPARC options): Document -muser-mode.
6707 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
6709 * cselib.c (find_slot_memmode): Delete.
6710 (cselib_hasher): Change compare_type to a struct.
6711 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
6713 (preserve_constants_and_equivs): Adjust for new compare_type.
6714 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
6715 (wrap_constant): Delete.
6716 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
6718 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
6720 * doc/install.texi (Building with profile feedback): Remove
6723 2014-04-26 Tom de Vries <tom@codesourcery.com>
6725 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
6728 2014-04-25 Cary Coutant <ccoutant@google.com>
6731 * dwarf2out.c (should_move_die_to_comdat): A type definition
6732 can contain a subprogram definition, but don't move it to a
6734 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
6735 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
6737 (clone_tree_hash): Rename to...
6738 (clone_tree_partial): ...this; change callers. Copy
6739 DW_TAG_subprogram DIEs as declarations.
6740 (copy_decls_walk): Don't copy children of a declaration into a
6743 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
6746 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
6749 2014-04-25 Jiong Wang <jiong.wang@arm.com>
6751 * config/arm/predicates.md (call_insn_operand): Add long_call check.
6752 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
6754 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
6757 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6759 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
6761 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6763 PR tree-optimization/60930
6764 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
6765 creating a multiply candidate by folding two constant
6766 multiplicands when the result overflows.
6768 2014-04-25 Jakub Jelinek <jakub@redhat.com>
6770 PR tree-optimization/60960
6771 * tree-vect-generic.c (expand_vector_operation): Only call
6772 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
6774 2014-04-25 Tom de Vries <tom@codesourcery.com>
6776 * expr.c (clobber_reg_mode): New function.
6777 * expr.h (clobber_reg): New function.
6779 2014-04-25 Tom de Vries <tom@codesourcery.com>
6781 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
6784 2014-04-25 Radovan Obradovic <robradovic@mips.com>
6785 Tom de Vries <tom@codesourcery.com>
6787 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
6789 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
6790 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
6791 new argument to find_all_hard_reg_sets call.
6793 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6795 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
6796 Use HOST_WIDE_INT_C for mask literal.
6797 (aarch_rev16_shleft_mask_imm_p): Likewise.
6799 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
6802 * config/sparc/sparc.md (ashlsi3_extend): Delete.
6804 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
6806 PR preprocessor/56540
6807 * config/i386/i386-c.c (ix86_target_macros): Define
6808 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
6810 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6812 * configure.ac (tga_func): Remove.
6813 (LIB_TLS_SPEC): Remove.
6814 * configure: Regenerate.
6815 * config.in: Regenerate.
6816 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
6818 2014-04-25 Richard Biener <rguenther@suse.de>
6821 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
6822 call stmt use/clobber sets during stmt walk instead of
6823 walking the possibly incomplete set of caller edges.
6825 2014-04-25 Richard Biener <rguenther@suse.de>
6828 * passes.c (apply_ipa_transforms): Inline into only caller ...
6829 (execute_one_pass): ... here. Properly bring in function
6830 bodies for nodes we want to apply IPA transforms to.
6832 2014-04-24 Cong Hou <congh@google.com>
6834 PR tree-optimization/60896
6835 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
6836 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
6837 (vect_mark_pattern_stmts): Set the def type of all statements in
6838 PATTERN_DEF_SEQ as vect_internal_def.
6840 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
6842 * doc/extend.texi (PowerPC Built-in Functions): Document new
6843 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
6844 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
6846 * config/rs6000/predicates.md (const_0_to_3_operand): New
6847 predicate to match 0..3 integer constants.
6849 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
6850 to support adding miscellaneous builtin functions.
6851 (BU_DFP_MISC_2): Likewise.
6852 (BU_P7_MISC_1): Likewise.
6853 (BU_P7_MISC_2): Likewise.
6854 (BU_P8V_MISC_3): Likewise.
6855 (BU_MISC_1): Likewise.
6856 (BU_MISC_2): Likewise.
6857 (DIVWE): Add extended divide builtin functions.
6860 (DIVWEUO): Likewise.
6864 (DIVDEUO): Likewise.
6865 (DXEX): Add decimal floating-point builtin functions.
6868 (DDEDPDQ): Likewise.
6870 (DENBCDQ): Likewise.
6877 (CDTBCD): Add new BCD builtin functions.
6881 (BCDADD_LT): Likewise.
6882 (BCDADD_EQ): Likewise.
6883 (BCDADD_GT): Likewise.
6884 (BCDADD_OV): Likewise.
6886 (BCDSUB_LT): Likewise.
6887 (BCDSUB_EQ): Likewise.
6888 (BCDSUB_GT): Likewise.
6889 (BCDSUB_OV): Likewise.
6890 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
6891 (UNPACK_TD): Likewise.
6892 (PACK_TF): Likewise.
6893 (UNPACK_TF): Likewise.
6894 (UNPACK_TF_0): Likewise.
6895 (UNPACK_TF_1): Likewise.
6896 (PACK_V1TI): Likewise.
6897 (UNPACK_V1TI): Likewise.
6899 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
6900 support for decimal floating point builtin functions.
6901 (rs6000_expand_ternop_builtin): Add checks for the new builtin
6902 functions that take constant arguments.
6903 (rs6000_invalid_builtin): Add decimal floating point builtin support.
6904 (rs6000_init_builtins): Setup long double, _Decimal64, and
6905 _Decimal128 types for new builtin functions.
6906 (builtin_function_type): Set the unsigned flags appropriately for
6907 the new builtin functions.
6908 (rs6000_opt_masks): Add support for decimal floating point builtin
6911 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
6912 floating point builtin functions.
6913 (RS6000_BTM_COMMON): Likewise.
6914 (RS6000_BTI_long_double): Likewise.
6915 (RS6000_BTI_dfloat64): Likewise.
6916 (RS6000_BTI_dfloat128): Likewise.
6917 (long_double_type_internal_node): Likewise.
6918 (dfloat64_type_internal_node): Likewise.
6919 (dfloat128_type_internal_node): Likewise.
6921 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
6922 2.07 bcd arithmetic instructions.
6923 (UNSPEC_BCDSUB): Likewise.
6924 (UNSPEC_BCD_OVERFLOW): Likewise.
6925 (UNSPEC_BCD_ADD_SUB): Likewise.
6926 (bcd_add_sub): Likewise.
6927 (BCD_TEST): Likewise.
6928 (bcd<bcd_add_sub>): Likewise.
6929 (bcd<bcd_add_sub>_test): Likewise.
6930 (bcd<bcd_add_sub>_test2): Likewise.
6931 (bcd<bcd_add_sub>_<code>): Likewise.
6932 (peephole2 for combined bcd ops): Likewise.
6934 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
6935 decimal floating point builtin functions.
6936 (UNSPEC_DENBCD): Likewise.
6937 (UNSPEC_DXEX): Likewise.
6938 (UNSPEC_DIEX): Likewise.
6939 (UNSPEC_DSCLI): Likewise.
6940 (UNSPEC_DSCRI): Likewise.
6941 (D64_D128): Likewise.
6942 (dfp_suffix): Likewise.
6943 (dfp_ddedpd_<mode>): Likewise.
6944 (dfp_denbcd_<mode>): Likewise.
6945 (dfp_dxex_<mode>): Likewise.
6946 (dfp_diex_<mode>): Likewise.
6947 (dfp_dscli_<mode>): Likewise.
6948 (dfp_dscri_<mode>): Likewise.
6950 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
6952 (UNSPEC_CDTBCD): Likewise.
6953 (UNSPEC_CBCDTD): Likewise.
6954 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
6955 (UNSPEC_DIVEO): Likewise.
6956 (UNSPEC_DIVEU): Likewise.
6957 (UNSPEC_DIVEUO): Likewise.
6958 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
6959 pack/unpack 128-bit types.
6960 (UNSPEC_PACK_128BIT): Likewise.
6961 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
6962 (udiv<mode>3): Use idiv_ldiv mode attribute.
6963 (div<mode>3): Likewise.
6964 (addg6s): Add new BCD builtin functions.
6967 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
6968 (div_extend): Likewise.
6969 (div<div_extend>_<mode>"): Likewise.
6970 (FP128_64): Add support for new builtin functions to pack/unpack
6972 (unpack<mode>): Likewise.
6973 (unpacktf_0): Likewise.
6974 (unpacktf_1): Likewise.
6975 (unpack<mode>_dm): Likewise.
6976 (unpack<mode>_nodm): Likewise.
6977 (pack<mode>): Likewise.
6978 (unpackv1ti): Likewise.
6979 (packv1ti): Likewise.
6981 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
6983 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
6986 2014-04-24 Jakub Jelinek <jakub@redhat.com>
6988 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
6989 * gimplify.c (omp_is_private): Change last argument's type to int.
6990 Only diagnose lastprivate if the simd argument is 1, only diagnose
6991 linear if the simd argument is 2.
6992 (gimplify_omp_for): Adjust omp_is_private callers. When adding
6993 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
6994 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
6995 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
6996 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
6997 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
6998 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
6999 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
7000 * tree-nested.c (convert_nonlocal_omp_clauses,
7001 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
7003 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
7006 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
7009 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
7011 * flag-types.h (enum ivar_visibility): Add.
7013 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
7015 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
7016 function * argument.
7018 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
7020 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
7022 2014-04-24 Radovan Obradovic <robradovic@mips.com>
7023 Tom de Vries <tom@codesourcery.com>
7025 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
7026 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
7028 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
7029 * emit-rtl.c (try_split): Same.
7031 2014-04-24 Radovan Obradovic <robradovic@mips.com>
7032 Tom de Vries <tom@codesourcery.com>
7034 * common.opt (fuse-caller-save): New option.
7036 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
7038 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
7039 elements for big-endian.
7041 2014-04-24 Richard Biener <rguenther@suse.de>
7043 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
7044 during TER and instead use the sepops interface for expanding
7045 non-GIMPLE_SINGLE_RHS.
7047 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7049 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
7050 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
7052 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7054 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
7055 assembler 64-bit option.
7056 * configure: Regenerate.
7058 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7060 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
7061 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
7062 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
7063 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
7064 (TARGET_CRYPTO): Take TARGET_SIMD into account.
7066 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7068 * config/aarch64/aarch64-builtins.c
7069 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
7070 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
7071 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
7072 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
7074 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
7075 (Vrevsuff): New mode attribute.
7077 2014-04-24 Terry Guo <terry.guo@arm.com>
7079 * config/arm/arm.h (machine_function): Define variable
7080 after_arm_reorg here.
7081 * config/arm/arm.c (after_arm_reorg): Remove the definition.
7082 (arm_split_constant): Update the way to access variable
7085 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
7087 2014-04-23 Tom de Vries <tom@codesourcery.com>
7089 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
7091 2014-04-23 David Malcolm <dmalcolm@redhat.com>
7093 * is-a.h: Update comments to reflect the following changes to the
7094 "pointerness" of the API, making the template parameter match the
7095 return type, allowing use of is-a.h with typedefs of pointers.
7096 (is_a_helper::cast): Return a T rather then a pointer to a T, so
7097 that the return type matches the parameter to the is_a_helper.
7099 (dyn_cast): Likewise.
7101 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
7102 pointer from the is-a.h API.
7104 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
7105 (is_a_helper <cgraph_node *>::test): ...this, matching change to
7107 (is_a_helper <varpool_node>::test): Likewise, convert to...
7108 (is_a_helper <varpool_node *>::test): ...this.
7110 (varpool_first_variable): Update for removal of implicit pointer
7111 from the is-a.h API.
7112 (varpool_next_variable): Likewise.
7113 (varpool_first_static_initializer): Likewise.
7114 (varpool_next_static_initializer): Likewise.
7115 (varpool_first_defined_variable): Likewise.
7116 (varpool_next_defined_variable): Likewise.
7117 (cgraph_first_defined_function): Likewise.
7118 (cgraph_next_defined_function): Likewise.
7119 (cgraph_first_function): Likewise.
7120 (cgraph_next_function): Likewise.
7121 (cgraph_first_function_with_gimple_body): Likewise.
7122 (cgraph_next_function_with_gimple_body): Likewise.
7123 (cgraph_alias_target): Likewise.
7124 (varpool_alias_target): Likewise.
7125 (cgraph_function_or_thunk_node): Likewise.
7126 (varpool_variable_node): Likewise.
7127 (symtab_real_symbol_p): Likewise.
7128 * cgraphunit.c (referred_to_p): Likewise.
7129 (analyze_functions): Likewise.
7130 (handle_alias_pairs): Likewise.
7131 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
7132 * gimple-ssa.h (gimple_vuse_op): Likewise.
7133 (gimple_vdef_op): Likewise.
7134 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
7135 * gimple.c (gimple_build_asm_1): Likewise.
7136 (gimple_build_try): Likewise.
7137 (gimple_build_resx): Likewise.
7138 (gimple_build_eh_dispatch): Likewise.
7139 (gimple_build_omp_for): Likewise.
7140 (gimple_omp_for_set_clauses): Likewise.
7142 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
7143 (is_a_helper <gimple_statement_asm *>::test): ...this.
7144 (is_a_helper <gimple_statement_bind>::test): Convert to...
7145 (is_a_helper <gimple_statement_bind *>::test): ...this.
7146 (is_a_helper <gimple_statement_call>::test): Convert to...
7147 (is_a_helper <gimple_statement_call *>::test): ...this.
7148 (is_a_helper <gimple_statement_catch>::test): Convert to...
7149 (is_a_helper <gimple_statement_catch *>::test): ...this.
7150 (is_a_helper <gimple_statement_resx>::test): Convert to...
7151 (is_a_helper <gimple_statement_resx *>::test): ...this.
7152 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
7153 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
7154 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
7155 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
7156 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
7157 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
7158 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
7159 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
7160 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
7161 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
7162 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
7163 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
7164 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
7165 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
7166 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
7167 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
7168 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
7169 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
7170 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
7171 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
7172 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
7173 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
7174 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
7175 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
7176 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
7177 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
7178 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
7179 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
7180 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
7181 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
7182 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
7183 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
7184 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
7185 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
7186 (is_a_helper <gimple_statement_phi>::test): Convert to...
7187 (is_a_helper <gimple_statement_phi *>::test): ...this.
7188 (is_a_helper <gimple_statement_transaction>::test): Convert to...
7189 (is_a_helper <gimple_statement_transaction *>::test): ...this.
7190 (is_a_helper <gimple_statement_try>::test): Convert to...
7191 (is_a_helper <gimple_statement_try *>::test): ...this.
7192 (is_a_helper <gimple_statement_wce>::test): Convert to...
7193 (is_a_helper <gimple_statement_wce *>::test): ...this.
7194 (is_a_helper <const gimple_statement_asm>::test): Convert to...
7195 (is_a_helper <const gimple_statement_asm *>::test): ...this.
7196 (is_a_helper <const gimple_statement_bind>::test): Convert to...
7197 (is_a_helper <const gimple_statement_bind *>::test): ...this.
7198 (is_a_helper <const gimple_statement_call>::test): Convert to...
7199 (is_a_helper <const gimple_statement_call *>::test): ...this.
7200 (is_a_helper <const gimple_statement_catch>::test): Convert to...
7201 (is_a_helper <const gimple_statement_catch *>::test): ...this.
7202 (is_a_helper <const gimple_statement_resx>::test): Convert to...
7203 (is_a_helper <const gimple_statement_resx *>::test): ...this.
7204 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
7205 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
7206 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
7207 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
7208 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
7210 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
7212 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
7214 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
7216 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
7217 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
7218 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
7220 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
7221 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
7223 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
7224 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
7225 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
7226 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
7227 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
7228 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
7230 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
7231 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
7232 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
7233 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
7235 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
7236 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
7237 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
7238 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
7239 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
7240 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
7241 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
7242 (is_a_helper <const gimple_statement_phi>::test): Convert to...
7243 (is_a_helper <const gimple_statement_phi *>::test): ...this.
7244 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
7245 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
7246 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
7247 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
7248 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
7249 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
7250 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
7252 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
7254 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
7255 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
7257 (gimple_use_ops): Update for removal of implicit pointer from the
7259 (gimple_set_use_ops): Likewise.
7260 (gimple_vuse): Likewise.
7261 (gimple_vdef): Likewise.
7262 (gimple_vuse_ptr): Likewise.
7263 (gimple_vdef_ptr): Likewise.
7264 (gimple_set_vuse): Likewise.
7265 (gimple_set_vdef): Likewise.
7266 (gimple_omp_return_set_lhs): Likewise.
7267 (gimple_omp_return_lhs): Likewise.
7268 (gimple_omp_return_lhs_ptr): Likewise.
7269 (gimple_call_fntype): Likewise.
7270 (gimple_call_set_fntype): Likewise.
7271 (gimple_call_set_internal_fn): Likewise.
7272 (gimple_call_use_set): Likewise.
7273 (gimple_call_clobber_set): Likewise.
7274 (gimple_bind_vars): Likewise.
7275 (gimple_bind_set_vars): Likewise.
7276 (gimple_bind_body_ptr): Likewise.
7277 (gimple_bind_set_body): Likewise.
7278 (gimple_bind_add_stmt): Likewise.
7279 (gimple_bind_block): Likewise.
7280 (gimple_bind_set_block): Likewise.
7281 (gimple_asm_ninputs): Likewise.
7282 (gimple_asm_noutputs): Likewise.
7283 (gimple_asm_nclobbers): Likewise.
7284 (gimple_asm_nlabels): Likewise.
7285 (gimple_asm_input_op): Likewise.
7286 (gimple_asm_input_op_ptr): Likewise.
7287 (gimple_asm_output_op): Likewise.
7288 (gimple_asm_output_op_ptr): Likewise.
7289 (gimple_asm_set_output_op): Likewise.
7290 (gimple_asm_clobber_op): Likewise.
7291 (gimple_asm_set_clobber_op): Likewise.
7292 (gimple_asm_label_op): Likewise.
7293 (gimple_asm_set_label_op): Likewise.
7294 (gimple_asm_string): Likewise.
7295 (gimple_catch_types): Likewise.
7296 (gimple_catch_types_ptr): Likewise.
7297 (gimple_catch_handler_ptr): Likewise.
7298 (gimple_catch_set_types): Likewise.
7299 (gimple_catch_set_handler): Likewise.
7300 (gimple_eh_filter_types): Likewise.
7301 (gimple_eh_filter_types_ptr): Likewise.
7302 (gimple_eh_filter_failure_ptr): Likewise.
7303 (gimple_eh_filter_set_types): Likewise.
7304 (gimple_eh_filter_set_failure): Likewise.
7305 (gimple_eh_must_not_throw_fndecl): Likewise.
7306 (gimple_eh_must_not_throw_set_fndecl): Likewise.
7307 (gimple_eh_else_n_body_ptr): Likewise.
7308 (gimple_eh_else_e_body_ptr): Likewise.
7309 (gimple_eh_else_set_n_body): Likewise.
7310 (gimple_eh_else_set_e_body): Likewise.
7311 (gimple_try_eval_ptr): Likewise.
7312 (gimple_try_cleanup_ptr): Likewise.
7313 (gimple_try_set_eval): Likewise.
7314 (gimple_try_set_cleanup): Likewise.
7315 (gimple_wce_cleanup_ptr): Likewise.
7316 (gimple_wce_set_cleanup): Likewise.
7317 (gimple_phi_capacity): Likewise.
7318 (gimple_phi_num_args): Likewise.
7319 (gimple_phi_result): Likewise.
7320 (gimple_phi_result_ptr): Likewise.
7321 (gimple_phi_set_result): Likewise.
7322 (gimple_phi_arg): Likewise.
7323 (gimple_phi_set_arg): Likewise.
7324 (gimple_resx_region): Likewise.
7325 (gimple_resx_set_region): Likewise.
7326 (gimple_eh_dispatch_region): Likewise.
7327 (gimple_eh_dispatch_set_region): Likewise.
7328 (gimple_omp_critical_name): Likewise.
7329 (gimple_omp_critical_name_ptr): Likewise.
7330 (gimple_omp_critical_set_name): Likewise.
7331 (gimple_omp_for_clauses): Likewise.
7332 (gimple_omp_for_clauses_ptr): Likewise.
7333 (gimple_omp_for_set_clauses): Likewise.
7334 (gimple_omp_for_collapse): Likewise.
7335 (gimple_omp_for_index): Likewise.
7336 (gimple_omp_for_index_ptr): Likewise.
7337 (gimple_omp_for_set_index): Likewise.
7338 (gimple_omp_for_initial): Likewise.
7339 (gimple_omp_for_initial_ptr): Likewise.
7340 (gimple_omp_for_set_initial): Likewise.
7341 (gimple_omp_for_final): Likewise.
7342 (gimple_omp_for_final_ptr): Likewise.
7343 (gimple_omp_for_set_final): Likewise.
7344 (gimple_omp_for_incr): Likewise.
7345 (gimple_omp_for_incr_ptr): Likewise.
7346 (gimple_omp_for_set_incr): Likewise.
7347 (gimple_omp_for_pre_body_ptr): Likewise.
7348 (gimple_omp_for_set_pre_body): Likewise.
7349 (gimple_omp_parallel_clauses): Likewise.
7350 (gimple_omp_parallel_clauses_ptr): Likewise.
7351 (gimple_omp_parallel_set_clauses): Likewise.
7352 (gimple_omp_parallel_child_fn): Likewise.
7353 (gimple_omp_parallel_child_fn_ptr): Likewise.
7354 (gimple_omp_parallel_set_child_fn): Likewise.
7355 (gimple_omp_parallel_data_arg): Likewise.
7356 (gimple_omp_parallel_data_arg_ptr): Likewise.
7357 (gimple_omp_parallel_set_data_arg): Likewise.
7358 (gimple_omp_task_clauses): Likewise.
7359 (gimple_omp_task_clauses_ptr): Likewise.
7360 (gimple_omp_task_set_clauses): Likewise.
7361 (gimple_omp_task_child_fn): Likewise.
7362 (gimple_omp_task_child_fn_ptr): Likewise.
7363 (gimple_omp_task_set_child_fn): Likewise.
7364 (gimple_omp_task_data_arg): Likewise.
7365 (gimple_omp_task_data_arg_ptr): Likewise.
7366 (gimple_omp_task_set_data_arg): Likewise.
7367 (gimple_omp_taskreg_clauses): Likewise.
7368 (gimple_omp_taskreg_clauses_ptr): Likewise.
7369 (gimple_omp_taskreg_set_clauses): Likewise.
7370 (gimple_omp_taskreg_child_fn): Likewise.
7371 (gimple_omp_taskreg_child_fn_ptr): Likewise.
7372 (gimple_omp_taskreg_set_child_fn): Likewise.
7373 (gimple_omp_taskreg_data_arg): Likewise.
7374 (gimple_omp_taskreg_data_arg_ptr): Likewise.
7375 (gimple_omp_taskreg_set_data_arg): Likewise.
7376 (gimple_omp_task_copy_fn): Likewise.
7377 (gimple_omp_task_copy_fn_ptr): Likewise.
7378 (gimple_omp_task_set_copy_fn): Likewise.
7379 (gimple_omp_task_arg_size): Likewise.
7380 (gimple_omp_task_arg_size_ptr): Likewise.
7381 (gimple_omp_task_set_arg_size): Likewise.
7382 (gimple_omp_task_arg_align): Likewise.
7383 (gimple_omp_task_arg_align_ptr): Likewise.
7384 (gimple_omp_task_set_arg_align): Likewise.
7385 (gimple_omp_single_clauses): Likewise.
7386 (gimple_omp_single_clauses_ptr): Likewise.
7387 (gimple_omp_single_set_clauses): Likewise.
7388 (gimple_omp_target_clauses): Likewise.
7389 (gimple_omp_target_clauses_ptr): Likewise.
7390 (gimple_omp_target_set_clauses): Likewise.
7391 (gimple_omp_target_child_fn): Likewise.
7392 (gimple_omp_target_child_fn_ptr): Likewise.
7393 (gimple_omp_target_set_child_fn): Likewise.
7394 (gimple_omp_target_data_arg): Likewise.
7395 (gimple_omp_target_data_arg_ptr): Likewise.
7396 (gimple_omp_target_set_data_arg): Likewise.
7397 (gimple_omp_teams_clauses): Likewise.
7398 (gimple_omp_teams_clauses_ptr): Likewise.
7399 (gimple_omp_teams_set_clauses): Likewise.
7400 (gimple_omp_sections_clauses): Likewise.
7401 (gimple_omp_sections_clauses_ptr): Likewise.
7402 (gimple_omp_sections_set_clauses): Likewise.
7403 (gimple_omp_sections_control): Likewise.
7404 (gimple_omp_sections_control_ptr): Likewise.
7405 (gimple_omp_sections_set_control): Likewise.
7406 (gimple_omp_for_set_cond): Likewise.
7407 (gimple_omp_for_cond): Likewise.
7408 (gimple_omp_atomic_store_set_val): Likewise.
7409 (gimple_omp_atomic_store_val): Likewise.
7410 (gimple_omp_atomic_store_val_ptr): Likewise.
7411 (gimple_omp_atomic_load_set_lhs): Likewise.
7412 (gimple_omp_atomic_load_lhs): Likewise.
7413 (gimple_omp_atomic_load_lhs_ptr): Likewise.
7414 (gimple_omp_atomic_load_set_rhs): Likewise.
7415 (gimple_omp_atomic_load_rhs): Likewise.
7416 (gimple_omp_atomic_load_rhs_ptr): Likewise.
7417 (gimple_omp_continue_control_def): Likewise.
7418 (gimple_omp_continue_control_def_ptr): Likewise.
7419 (gimple_omp_continue_set_control_def): Likewise.
7420 (gimple_omp_continue_control_use): Likewise.
7421 (gimple_omp_continue_control_use_ptr): Likewise.
7422 (gimple_omp_continue_set_control_use): Likewise.
7423 (gimple_transaction_body_ptr): Likewise.
7424 (gimple_transaction_label): Likewise.
7425 (gimple_transaction_label_ptr): Likewise.
7426 (gimple_transaction_set_body): Likewise.
7427 (gimple_transaction_set_label): Likewise.
7429 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
7430 * ipa-inline-analysis.c (inline_write_summary): Likewise.
7431 * ipa-ref.c (ipa_record_reference): Likewise.
7432 * ipa-reference.c (analyze_function): Likewise.
7433 (ipa_reference_write_optimization_summary): Likewise.
7434 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
7435 (address_taken_from_non_vtable_p): Likewise.
7436 (comdat_can_be_unshared_p_1): Likewise.
7437 * lto-cgraph.c (lto_output_ref): Likewise.
7438 (add_references): Likewise.
7439 (compute_ltrans_boundary): Likewise.
7440 (output_symtab): Likewise.
7441 (input_ref): Likewise.
7442 (input_cgraph_1): Likewise.
7443 (output_cgraph_opt_summary): Likewise.
7444 * lto-streamer-out.c (lto_output): Likewise.
7445 (output_symbol_p): Likewise.
7446 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
7447 (lsei_start_function_in_partition): Likewise.
7448 (lsei_next_variable_in_partition): Likewise.
7449 (lsei_start_variable_in_partition): Likewise.
7450 * symtab.c (insert_to_assembler_name_hash): Likewise.
7451 (unlink_from_assembler_name_hash): Likewise.
7452 (symtab_unregister_node): Likewise.
7453 (symtab_remove_node): Likewise.
7454 (dump_symtab_node): Likewise.
7455 (verify_symtab_base): Likewise.
7456 (verify_symtab_node): Likewise.
7457 (symtab_make_decl_local): Likewise.
7458 (symtab_alias_ultimate_target): Likewise.
7459 (symtab_resolve_alias): Likewise.
7460 (symtab_get_symbol_partitioning_class): Likewise.
7461 * tree-phinodes.c (allocate_phi_node): Likewise.
7462 (reserve_phi_args_for_new_edge): Likewise.
7463 (remove_phi_args): Likewise.
7464 * varpool.c (varpool_node_for_asm): Likewise.
7465 (varpool_remove_unreferenced_decls): Likewise.
7467 2014-04-23 Jeff Law <law@redhat.com>
7469 PR tree-optimization/60902
7470 * tree-ssa-threadedge.c
7471 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
7472 invalidate outputs from statements that do not produce useful
7473 outputs for threading.
7475 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
7477 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
7478 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
7479 machine descriptions for Stack Smashing Protector.
7481 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
7483 * aarch64.md (<optab>_rol<mode>3): New pattern.
7484 (<optab>_rolsi3_uxtw): Likewise.
7485 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
7487 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
7489 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
7490 (arm_cortex_a12_tune): Likewise.
7492 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7494 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
7496 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7498 * config/arm/arm.md (arm_rev16si2): New pattern.
7499 (arm_rev16si2_alt): Likewise.
7500 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
7502 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7504 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
7505 (rev16<mode>2_alt): Likewise.
7506 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
7507 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
7508 (aarch_rev16_shleft_mask_imm_p): Likewise.
7509 (aarch_rev16_p_1): Likewise.
7510 (aarch_rev16_p): Likewise.
7511 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
7512 (aarch_rev16_shright_mask_imm_p): Likewise.
7513 (aarch_rev16_shleft_mask_imm_p): Likewise.
7515 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7517 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
7518 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
7520 (cortex_a53_extra_costs): Likewise.
7521 (cortex_a57_extra_costs): Likewise.
7522 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
7523 (cortexa7_extra_costs): Likewise.
7524 (cortexa8_extra_costs): Likewise.
7525 (cortexa12_extra_costs): Likewise.
7526 (cortexa15_extra_costs): Likewise.
7527 (v7m_extra_costs): Likewise.
7528 (arm_new_rtx_costs): Handle BSWAP.
7530 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7532 * config/arm/arm.c (cortexa8_extra_costs): New table.
7533 (arm_cortex_a8_tune): New tuning struct.
7534 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
7536 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7538 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
7540 2014-04-23 Richard Biener <rguenther@suse.de>
7542 * Makefile.in (OBJS): Remove loop-unswitch.o.
7543 * tree-pass.h (make_pass_rtl_unswitch): Remove.
7544 * passes.def (pass_rtl_unswitch): Likewise.
7545 * loop-init.c (gate_rtl_unswitch): Likewise.
7546 (rtl_unswitch): Likewise.
7547 (pass_data_rtl_unswitch): Likewise.
7548 (pass_rtl_unswitch): Likewise.
7549 (make_pass_rtl_unswitch): Likewise.
7550 * rtl.h (reversed_condition): Likewise.
7551 (compare_and_jump_seq): Likewise.
7552 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
7554 * loop-unroll.c (compare_and_jump_seq): Likewise.
7556 2014-04-23 Richard Biener <rguenther@suse.de>
7558 PR tree-optimization/60903
7559 * tree-ssa-loop-im.c (analyze_memory_references): Remove
7560 commented code block.
7561 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
7562 loop flags to newly created BBs and edges.
7564 2014-04-23 Nick Clifton <nickc@redhat.com>
7566 * config/msp430/msp430.c (msp430_handle_option): Move function
7568 (msp430_option_override): Simplify mcu and mcpu option handling.
7569 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
7570 support for -mhwmult command line option.
7571 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
7572 -mhwmult command line option.
7573 (msp430_hwmult_enabled): Delete.
7574 (msp43o_output_labelref): Add support for -mhwmult command line option.
7575 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
7576 (umulsidi3): Likewise.
7577 * config/msp430/msp430.opt (mmcu): Add Report attribute.
7578 (mcpu, mlarge, msmall): Likewise.
7579 (mhwmult): New option.
7580 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
7582 (msp430_is_f5_mcu): Remove prototype.
7583 (msp430_use_f5_series_hwmult): Add prototype.
7584 * config/msp430/msp430-opts.h: New file.
7585 * common/config/msp430: New directory.
7586 * common/config/msp430/msp430-common.c: New file.
7587 * config.gcc (msp430): Remove target_has_targetm_common.
7588 * doc/invoke.texi: Document -mhwmult command line option.
7590 2014-04-23 Nick Clifton <nickc@redhat.com>
7592 * config/i386/cygwin.h (ENDFILE_SPEC): Include
7593 default-manifest.o if it can be found in the search path.
7594 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
7596 2014-04-23 Terry Guo <terry.guo@arm.com>
7598 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
7600 2014-04-23 Richard Biener <rguenther@suse.de>
7603 * tree-inline.c (declare_return_variable): Use mark_addressable.
7605 2014-04-23 Richard Biener <rguenther@suse.de>
7608 * loop-init.c (loop_optimizer_init): Make sure to apply
7609 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
7611 2014-04-22 Jakub Jelinek <jakub@redhat.com>
7614 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
7616 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
7617 if flag_sanitize_undefined_trap_on_error.
7618 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
7619 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
7620 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
7621 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
7622 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
7623 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
7624 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
7625 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
7626 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
7627 * ubsan.c (ubsan_instrument_unreachable): Return
7628 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
7629 (ubsan_expand_null_ifn): Emit __builtin_trap ()
7630 if flag_sanitize_undefined_trap_on_error and
7631 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
7632 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
7633 instrument_bool_enum_load): Emit __builtin_trap () if
7634 flag_sanitize_undefined_trap_on_error and
7635 __builtin_handle_*_abort () if !flag_sanitize_recover.
7636 * doc/invoke.texi (-fsanitize-recover,
7637 -fsanitize-undefined-trap-on-error): Document.
7639 2014-04-22 Christian Bruel <christian.bruel@st.com>
7641 * config/sh/sh.md (mov<mode>): Replace movQIHI.
7642 Force immediates to SImode.
7644 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
7646 * config/nios2/nios2.md (UNSPEC_ROUND): New.
7648 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
7649 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
7650 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
7651 (nios2_fpu_insn): Add entry for round.
7652 (N2FPU_NO_ERRNO_P): Define.
7653 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
7655 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
7657 2014-04-22 Richard Henderson <rth@redhat.com>
7659 * config/aarch64/aarch64 (addti3, subti3): New expanders.
7660 (add<GPI>3_compare0): Remove leading * from name.
7661 (add<GPI>3_carryin): Likewise.
7662 (sub<GPI>3_compare0): Likewise.
7663 (sub<GPI>3_carryin): Likewise.
7664 (<su_optab>mulditi3): New expander.
7665 (multi3): New expander.
7666 (madd<GPI>): Remove leading * from name.
7668 2014-04-22 Martin Jambor <mjambor@suse.cz>
7670 * cgraphclones.c (cgraph_function_versioning): Copy
7671 ipa_transforms_to_apply instead of asserting it is empty.
7673 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
7676 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
7677 on count_exp to get mode.
7679 2014-04-22 Andrew Pinski <apinski@cavium.com>
7681 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7682 Handle TLS for ILP32.
7683 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
7684 (tlsie_small_<mode>): this and handle PTR.
7685 (tlsie_small_sidi): New pattern.
7686 (tlsle_small): Change to an expand to handle ILP32.
7687 (tlsle_small_<mode>): New pattern.
7688 (tlsdesc_small): Rename to ...
7689 (tlsdesc_small_<mode>): this and handle PTR.
7691 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7693 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
7695 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
7697 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
7698 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
7699 (aarch64_types_signed_poly_qualifiers): Likewise.
7700 (aarch64_types_unsigned_signed_qualifiers): Likewise.
7701 (aarch64_types_poly_signed_qualifiers): Likewise.
7702 (TYPES_REINTERP_SS): Type macro added.
7703 (TYPES_REINTERP_SU): Likewise.
7704 (TYPES_REINTERP_SP): Likewise.
7705 (TYPES_REINTERP_US): Likewise.
7706 (TYPES_REINTERP_PS): Likewise.
7707 (aarch64_fold_builtin): New expression folding added.
7708 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
7709 Declarations removed.
7710 (REINTERP_SS): Declarations added.
7711 (REINTERP_US): Likewise.
7712 (REINTERP_PS): Likewise.
7713 (REINTERP_SU): Likewise.
7714 (REINTERP_SP): Likewise.
7715 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
7716 (vreinterpretq_p8_f64): Likewise.
7717 (vreinterpret_p16_f64): Likewise.
7718 (vreinterpretq_p16_f64): Likewise.
7719 (vreinterpret_f32_f64): Likewise.
7720 (vreinterpretq_f32_f64): Likewise.
7721 (vreinterpret_f64_f32): Likewise.
7722 (vreinterpret_f64_p8): Likewise.
7723 (vreinterpret_f64_p16): Likewise.
7724 (vreinterpret_f64_s8): Likewise.
7725 (vreinterpret_f64_s16): Likewise.
7726 (vreinterpret_f64_s32): Likewise.
7727 (vreinterpret_f64_s64): Likewise.
7728 (vreinterpret_f64_u8): Likewise.
7729 (vreinterpret_f64_u16): Likewise.
7730 (vreinterpret_f64_u32): Likewise.
7731 (vreinterpret_f64_u64): Likewise.
7732 (vreinterpretq_f64_f32): Likewise.
7733 (vreinterpretq_f64_p8): Likewise.
7734 (vreinterpretq_f64_p16): Likewise.
7735 (vreinterpretq_f64_s8): Likewise.
7736 (vreinterpretq_f64_s16): Likewise.
7737 (vreinterpretq_f64_s32): Likewise.
7738 (vreinterpretq_f64_s64): Likewise.
7739 (vreinterpretq_f64_u8): Likewise.
7740 (vreinterpretq_f64_u16): Likewise.
7741 (vreinterpretq_f64_u32): Likewise.
7742 (vreinterpretq_f64_u64): Likewise.
7743 (vreinterpret_s64_f64): Likewise.
7744 (vreinterpretq_s64_f64): Likewise.
7745 (vreinterpret_u64_f64): Likewise.
7746 (vreinterpretq_u64_f64): Likewise.
7747 (vreinterpret_s8_f64): Likewise.
7748 (vreinterpretq_s8_f64): Likewise.
7749 (vreinterpret_s16_f64): Likewise.
7750 (vreinterpretq_s16_f64): Likewise.
7751 (vreinterpret_s32_f64): Likewise.
7752 (vreinterpretq_s32_f64): Likewise.
7753 (vreinterpret_u8_f64): Likewise.
7754 (vreinterpretq_u8_f64): Likewise.
7755 (vreinterpret_u16_f64): Likewise.
7756 (vreinterpretq_u16_f64): Likewise.
7757 (vreinterpret_u32_f64): Likewise.
7758 (vreinterpretq_u32_f64): Likewise.
7760 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
7762 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
7763 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
7764 (vreinterpret_p8_s8): Likewise.
7765 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
7766 (vreinterpret_p8_s16): Likewise.
7767 (vreinterpret_p8_s32): Likewise.
7768 (vreinterpret_p8_s64): Likewise.
7769 (vreinterpret_p8_f32): Likewise.
7770 (vreinterpret_p8_u8): Likewise.
7771 (vreinterpret_p8_u16): Likewise.
7772 (vreinterpret_p8_u32): Likewise.
7773 (vreinterpret_p8_u64): Likewise.
7774 (vreinterpret_p8_p16): Likewise.
7775 (vreinterpretq_p8_s8): Likewise.
7776 (vreinterpretq_p8_s16): Likewise.
7777 (vreinterpretq_p8_s32): Likewise.
7778 (vreinterpretq_p8_s64): Likewise.
7779 (vreinterpretq_p8_f32): Likewise.
7780 (vreinterpretq_p8_u8): Likewise.
7781 (vreinterpretq_p8_u16): Likewise.
7782 (vreinterpretq_p8_u32): Likewise.
7783 (vreinterpretq_p8_u64): Likewise.
7784 (vreinterpretq_p8_p16): Likewise.
7785 (vreinterpret_p16_s8): Likewise.
7786 (vreinterpret_p16_s16): Likewise.
7787 (vreinterpret_p16_s32): Likewise.
7788 (vreinterpret_p16_s64): Likewise.
7789 (vreinterpret_p16_f32): Likewise.
7790 (vreinterpret_p16_u8): Likewise.
7791 (vreinterpret_p16_u16): Likewise.
7792 (vreinterpret_p16_u32): Likewise.
7793 (vreinterpret_p16_u64): Likewise.
7794 (vreinterpret_p16_p8): Likewise.
7795 (vreinterpretq_p16_s8): Likewise.
7796 (vreinterpretq_p16_s16): Likewise.
7797 (vreinterpretq_p16_s32): Likewise.
7798 (vreinterpretq_p16_s64): Likewise.
7799 (vreinterpretq_p16_f32): Likewise.
7800 (vreinterpretq_p16_u8): Likewise.
7801 (vreinterpretq_p16_u16): Likewise.
7802 (vreinterpretq_p16_u32): Likewise.
7803 (vreinterpretq_p16_u64): Likewise.
7804 (vreinterpretq_p16_p8): Likewise.
7805 (vreinterpret_f32_s8): Likewise.
7806 (vreinterpret_f32_s16): Likewise.
7807 (vreinterpret_f32_s32): Likewise.
7808 (vreinterpret_f32_s64): Likewise.
7809 (vreinterpret_f32_u8): Likewise.
7810 (vreinterpret_f32_u16): Likewise.
7811 (vreinterpret_f32_u32): Likewise.
7812 (vreinterpret_f32_u64): Likewise.
7813 (vreinterpret_f32_p8): Likewise.
7814 (vreinterpret_f32_p16): Likewise.
7815 (vreinterpretq_f32_s8): Likewise.
7816 (vreinterpretq_f32_s16): Likewise.
7817 (vreinterpretq_f32_s32): Likewise.
7818 (vreinterpretq_f32_s64): Likewise.
7819 (vreinterpretq_f32_u8): Likewise.
7820 (vreinterpretq_f32_u16): Likewise.
7821 (vreinterpretq_f32_u32): Likewise.
7822 (vreinterpretq_f32_u64): Likewise.
7823 (vreinterpretq_f32_p8): Likewise.
7824 (vreinterpretq_f32_p16): Likewise.
7825 (vreinterpret_s64_s8): Likewise.
7826 (vreinterpret_s64_s16): Likewise.
7827 (vreinterpret_s64_s32): Likewise.
7828 (vreinterpret_s64_f32): Likewise.
7829 (vreinterpret_s64_u8): Likewise.
7830 (vreinterpret_s64_u16): Likewise.
7831 (vreinterpret_s64_u32): Likewise.
7832 (vreinterpret_s64_u64): Likewise.
7833 (vreinterpret_s64_p8): Likewise.
7834 (vreinterpret_s64_p16): Likewise.
7835 (vreinterpretq_s64_s8): Likewise.
7836 (vreinterpretq_s64_s16): Likewise.
7837 (vreinterpretq_s64_s32): Likewise.
7838 (vreinterpretq_s64_f32): Likewise.
7839 (vreinterpretq_s64_u8): Likewise.
7840 (vreinterpretq_s64_u16): Likewise.
7841 (vreinterpretq_s64_u32): Likewise.
7842 (vreinterpretq_s64_u64): Likewise.
7843 (vreinterpretq_s64_p8): Likewise.
7844 (vreinterpretq_s64_p16): Likewise.
7845 (vreinterpret_u64_s8): Likewise.
7846 (vreinterpret_u64_s16): Likewise.
7847 (vreinterpret_u64_s32): Likewise.
7848 (vreinterpret_u64_s64): Likewise.
7849 (vreinterpret_u64_f32): Likewise.
7850 (vreinterpret_u64_u8): Likewise.
7851 (vreinterpret_u64_u16): Likewise.
7852 (vreinterpret_u64_u32): Likewise.
7853 (vreinterpret_u64_p8): Likewise.
7854 (vreinterpret_u64_p16): Likewise.
7855 (vreinterpretq_u64_s8): Likewise.
7856 (vreinterpretq_u64_s16): Likewise.
7857 (vreinterpretq_u64_s32): Likewise.
7858 (vreinterpretq_u64_s64): Likewise.
7859 (vreinterpretq_u64_f32): Likewise.
7860 (vreinterpretq_u64_u8): Likewise.
7861 (vreinterpretq_u64_u16): Likewise.
7862 (vreinterpretq_u64_u32): Likewise.
7863 (vreinterpretq_u64_p8): Likewise.
7864 (vreinterpretq_u64_p16): Likewise.
7865 (vreinterpret_s8_s16): Likewise.
7866 (vreinterpret_s8_s32): Likewise.
7867 (vreinterpret_s8_s64): Likewise.
7868 (vreinterpret_s8_f32): Likewise.
7869 (vreinterpret_s8_u8): Likewise.
7870 (vreinterpret_s8_u16): Likewise.
7871 (vreinterpret_s8_u32): Likewise.
7872 (vreinterpret_s8_u64): Likewise.
7873 (vreinterpret_s8_p8): Likewise.
7874 (vreinterpret_s8_p16): Likewise.
7875 (vreinterpretq_s8_s16): Likewise.
7876 (vreinterpretq_s8_s32): Likewise.
7877 (vreinterpretq_s8_s64): Likewise.
7878 (vreinterpretq_s8_f32): Likewise.
7879 (vreinterpretq_s8_u8): Likewise.
7880 (vreinterpretq_s8_u16): Likewise.
7881 (vreinterpretq_s8_u32): Likewise.
7882 (vreinterpretq_s8_u64): Likewise.
7883 (vreinterpretq_s8_p8): Likewise.
7884 (vreinterpretq_s8_p16): Likewise.
7885 (vreinterpret_s16_s8): Likewise.
7886 (vreinterpret_s16_s32): Likewise.
7887 (vreinterpret_s16_s64): Likewise.
7888 (vreinterpret_s16_f32): Likewise.
7889 (vreinterpret_s16_u8): Likewise.
7890 (vreinterpret_s16_u16): Likewise.
7891 (vreinterpret_s16_u32): Likewise.
7892 (vreinterpret_s16_u64): Likewise.
7893 (vreinterpret_s16_p8): Likewise.
7894 (vreinterpret_s16_p16): Likewise.
7895 (vreinterpretq_s16_s8): Likewise.
7896 (vreinterpretq_s16_s32): Likewise.
7897 (vreinterpretq_s16_s64): Likewise.
7898 (vreinterpretq_s16_f32): Likewise.
7899 (vreinterpretq_s16_u8): Likewise.
7900 (vreinterpretq_s16_u16): Likewise.
7901 (vreinterpretq_s16_u32): Likewise.
7902 (vreinterpretq_s16_u64): Likewise.
7903 (vreinterpretq_s16_p8): Likewise.
7904 (vreinterpretq_s16_p16): Likewise.
7905 (vreinterpret_s32_s8): Likewise.
7906 (vreinterpret_s32_s16): Likewise.
7907 (vreinterpret_s32_s64): Likewise.
7908 (vreinterpret_s32_f32): Likewise.
7909 (vreinterpret_s32_u8): Likewise.
7910 (vreinterpret_s32_u16): Likewise.
7911 (vreinterpret_s32_u32): Likewise.
7912 (vreinterpret_s32_u64): Likewise.
7913 (vreinterpret_s32_p8): Likewise.
7914 (vreinterpret_s32_p16): Likewise.
7915 (vreinterpretq_s32_s8): Likewise.
7916 (vreinterpretq_s32_s16): Likewise.
7917 (vreinterpretq_s32_s64): Likewise.
7918 (vreinterpretq_s32_f32): Likewise.
7919 (vreinterpretq_s32_u8): Likewise.
7920 (vreinterpretq_s32_u16): Likewise.
7921 (vreinterpretq_s32_u32): Likewise.
7922 (vreinterpretq_s32_u64): Likewise.
7923 (vreinterpretq_s32_p8): Likewise.
7924 (vreinterpretq_s32_p16): Likewise.
7925 (vreinterpret_u8_s8): Likewise.
7926 (vreinterpret_u8_s16): Likewise.
7927 (vreinterpret_u8_s32): Likewise.
7928 (vreinterpret_u8_s64): Likewise.
7929 (vreinterpret_u8_f32): Likewise.
7930 (vreinterpret_u8_u16): Likewise.
7931 (vreinterpret_u8_u32): Likewise.
7932 (vreinterpret_u8_u64): Likewise.
7933 (vreinterpret_u8_p8): Likewise.
7934 (vreinterpret_u8_p16): Likewise.
7935 (vreinterpretq_u8_s8): Likewise.
7936 (vreinterpretq_u8_s16): Likewise.
7937 (vreinterpretq_u8_s32): Likewise.
7938 (vreinterpretq_u8_s64): Likewise.
7939 (vreinterpretq_u8_f32): Likewise.
7940 (vreinterpretq_u8_u16): Likewise.
7941 (vreinterpretq_u8_u32): Likewise.
7942 (vreinterpretq_u8_u64): Likewise.
7943 (vreinterpretq_u8_p8): Likewise.
7944 (vreinterpretq_u8_p16): Likewise.
7945 (vreinterpret_u16_s8): Likewise.
7946 (vreinterpret_u16_s16): Likewise.
7947 (vreinterpret_u16_s32): Likewise.
7948 (vreinterpret_u16_s64): Likewise.
7949 (vreinterpret_u16_f32): Likewise.
7950 (vreinterpret_u16_u8): Likewise.
7951 (vreinterpret_u16_u32): Likewise.
7952 (vreinterpret_u16_u64): Likewise.
7953 (vreinterpret_u16_p8): Likewise.
7954 (vreinterpret_u16_p16): Likewise.
7955 (vreinterpretq_u16_s8): Likewise.
7956 (vreinterpretq_u16_s16): Likewise.
7957 (vreinterpretq_u16_s32): Likewise.
7958 (vreinterpretq_u16_s64): Likewise.
7959 (vreinterpretq_u16_f32): Likewise.
7960 (vreinterpretq_u16_u8): Likewise.
7961 (vreinterpretq_u16_u32): Likewise.
7962 (vreinterpretq_u16_u64): Likewise.
7963 (vreinterpretq_u16_p8): Likewise.
7964 (vreinterpretq_u16_p16): Likewise.
7965 (vreinterpret_u32_s8): Likewise.
7966 (vreinterpret_u32_s16): Likewise.
7967 (vreinterpret_u32_s32): Likewise.
7968 (vreinterpret_u32_s64): Likewise.
7969 (vreinterpret_u32_f32): Likewise.
7970 (vreinterpret_u32_u8): Likewise.
7971 (vreinterpret_u32_u16): Likewise.
7972 (vreinterpret_u32_u64): Likewise.
7973 (vreinterpret_u32_p8): Likewise.
7974 (vreinterpret_u32_p16): Likewise.
7975 (vreinterpretq_u32_s8): Likewise.
7976 (vreinterpretq_u32_s16): Likewise.
7977 (vreinterpretq_u32_s32): Likewise.
7978 (vreinterpretq_u32_s64): Likewise.
7979 (vreinterpretq_u32_f32): Likewise.
7980 (vreinterpretq_u32_u8): Likewise.
7981 (vreinterpretq_u32_u16): Likewise.
7982 (vreinterpretq_u32_u64): Likewise.
7983 (vreinterpretq_u32_p8): Likewise.
7984 (vreinterpretq_u32_p16): Likewise.
7986 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
7988 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
7990 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
7992 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
7993 (vqnegd_s64): Likewise.
7994 (vqabs_s64): Likewise.
7995 (vqabsd_s64): Likewise.
7997 2014-04-22 Richard Henderson <rth@redhat.com>
7999 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
8000 computation to the top of the loop.
8002 2014-04-22 Renlin <renlin.li@arm.com>
8003 Jiong Wang <jiong.wang@arm.com>
8005 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
8006 * config/aarch64/aarch64.c (aarch64_layout_frame)
8007 (aarch64_initial_elimination_offset): Likewise.
8009 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
8011 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
8014 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
8016 * machmode.h (bitwise_mode_for_mode): Declare.
8017 * stor-layout.h (bitwise_type_for_mode): Likewise.
8018 * stor-layout.c (bitwise_mode_for_mode): New function.
8019 (bitwise_type_for_mode): Likewise.
8020 * builtins.c (fold_builtin_memory_op): Use it instead of
8021 int_mode_for_mode and build_nonstandard_integer_type.
8023 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8025 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
8026 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
8027 (*-*-solaris2*): Simplify.
8028 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
8029 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
8030 *-*-solaris2.9* handling.
8032 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
8034 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
8035 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
8037 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
8038 * configure: Regenerate.
8040 * config/i386/sol2-9.h: Remove.
8042 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
8043 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
8044 Remove Solaris 9 references.
8046 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
8048 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
8049 (floatuns<GPI:mode><GPF:mode>2): Remove.
8050 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
8051 and floatuns conversions.
8052 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
8053 and floatuns conversions.
8054 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
8055 (w1,w2): New mode attributes for inequal width conversions.
8057 2014-04-22 Renlin Li <Renlin.Li@arm.com>
8059 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
8060 the output asm format.
8062 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
8064 * config/aarch64/aarch64-simd.md
8065 (aarch64_cm<optab>di): Always split.
8066 (*aarch64_cm<optab>di): New.
8067 (aarch64_cmtstdi): Always split.
8068 (*aarch64_cmtstdi): New.
8070 2014-04-22 Jakub Jelinek <jakub@redhat.com>
8072 PR tree-optimization/60823
8073 * omp-low.c (ipa_simd_modify_function_body): Go through
8074 all SSA_NAMEs and for those refering to vector arguments
8075 which are going to be replaced adjust SSA_NAME_VAR and,
8076 if it is a default definition, change it into a non-default
8077 definition assigned at the beginning of function from new_decl.
8078 (ipa_simd_modify_stmt_ops): Rewritten.
8079 * tree-dfa.c (set_ssa_default_def): When removing default def,
8080 check for NULL loc instead of NULL *loc.
8082 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8084 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
8085 restrictions on core registers for DImode values in Thumb2.
8087 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8089 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
8090 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
8092 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8094 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
8095 (*iordi_notzesidi_di): Likewise.
8096 (*iordi_notsesidi_di): Likewise.
8098 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8100 * config/arm/arm-protos.h (tune_params): New struct members.
8101 * config/arm/arm.c: Initialise tune_params per processor.
8102 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
8103 for speed, based on new tune_params.
8105 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8107 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
8108 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
8109 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
8110 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
8111 * config/aarch64/arm_neon.h (vrnd_f64): Added.
8112 (vrnda_f64): Likewise.
8113 (vrndi_f64): Likewise.
8114 (vrndm_f64): Likewise.
8115 (vrndn_f64): Likewise.
8116 (vrndp_f64): Likewise.
8117 (vrndx_f64): Likewise.
8119 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8121 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
8122 GET_MODE_SIZE argument is enum machine_mode.
8124 2014-04-22 Jakub Jelinek <jakub@redhat.com>
8127 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
8128 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
8130 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
8133 * asan.c (asan_emit_stack_protection): Force the base to align to
8134 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
8135 appropriate bits if STRICT_ALIGNMENT.
8136 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
8138 (expand_used_vars): Leave a space in the stack frame for alignment
8139 if STRICT_ALIGNMENT.
8141 2014-04-21 David Malcolm <dmalcolm@redhat.com>
8143 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
8145 (gimple_store_p): Likewise.
8146 (gimple_assign_load_p): Likewise.
8147 (gimple_assign_cast_p): Likewise.
8148 (gimple_clobber_p): Likewise.
8150 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
8151 rather than a gimple.
8152 (gimple_assign_cast_p): Likewise.
8154 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8157 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
8158 If mode is DDmode and TARGET_E500_DOUBLE allow move.
8160 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
8161 more debug information for E500 if -mdebug=reg.
8163 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
8166 * config/i386/i386.c (ix86_expand_builtin)
8167 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
8168 register for target RTX.
8169 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
8171 2014-04-18 Cong Hou <congh@google.com>
8173 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
8174 the widen-mult pattern by handling two operands with different sizes,
8175 and operands whose size is smaller than half of the result type.
8177 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
8179 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
8180 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
8181 (do_estimate_edge_time): Compute it.
8182 * ipa-inline.c (want_inline_small_function_p): Bypass
8183 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
8185 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
8187 * ipa-inline.c (spec_rem): New static variable.
8188 (dump_overall_stats): New function.
8189 (dump_inline_stats): New function.
8191 2014-04-18 Richard Henderson <rth@redhat.com>
8193 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
8194 to GET_MODE_SIZE, not a reg_class_t.
8196 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8198 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
8199 (vsx_xxmrglw_<mode>): Likewise.
8201 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
8204 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
8205 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
8206 (rs6000_init_hard_regno_mode_ok): Likewise.
8208 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
8210 * ipa-inline.c (inline_small_functions): Account only non-cold
8212 * doc/invoke.texi (inline-unit-growth): Update documentation.
8214 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
8216 * config/rs6000/rs6000.md (addti3, subti3): New.
8218 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
8221 * config/i386/i386.c (ix86_expand_clear): Remove outdated
8222 comment. Check optimize_insn_for_size_p instead of
8223 optimize_insn_for_speed_p.
8225 2014-04-17 Martin Jambor <mjambor@suse.cz>
8227 * gimple-iterator.c (gsi_start_edge): New function.
8228 * gimple-iterator.h (gsi_start_edge): Declare.
8229 * tree-sra.c (single_non_eh_succ): New function.
8230 (disqualify_ops_if_throwing_stmt): Renamed to
8231 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
8232 having one non-EH successor BB.
8233 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
8234 generate loads into replacements.
8235 (sra_modify_assign): Likewise and and also use the simple path for
8237 (sra_modify_function_body): Commit statements on edges.
8239 2014-04-17 Richard Biener <rguenther@suse.de>
8242 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
8243 comparison results and add clarifying comment.
8245 2014-04-17 Jakub Jelinek <jakub@redhat.com>
8247 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
8248 (blank_mode): Initialize it.
8249 (emit_mode_size_inline, emit_mode_nunits_inline,
8250 emit_mode_inner_inline): New functions.
8251 (emit_insn_modes_h): Call them and surround their output with
8252 #if GCC_VERSION >= 4001 ... #endif.
8253 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
8254 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
8255 mode_* arrays if the argument is __builtin_constant_p.
8256 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
8257 is enum machine_mode.
8259 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8261 * passes.c (opt_pass::execute): Adjust.
8262 (pass_manager::execute_pass_mode_switching): Likewise.
8263 (early_local_passes::execute): Likewise.
8264 (execute_one_pass): Pass cfun to the pass's execute method.
8265 * tree-pass.h (opt_pass::execute): Add function * argument.
8266 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
8267 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
8268 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
8269 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8270 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
8271 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
8272 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
8273 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
8274 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
8275 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
8276 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
8277 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
8278 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
8279 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
8280 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
8281 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
8282 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
8283 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
8284 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8285 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8286 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8287 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8288 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8289 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8290 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8291 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8292 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
8293 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
8294 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
8297 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8299 * passes.c (opt_pass::gate): Take function * argument.
8300 (gate_all_early_local_passes): Merge into
8301 (early_local_passes::gate): this.
8302 (gate_all_early_optimizations): Merge into
8303 (all_early_optimizations::gate): this.
8304 (gate_all_optimizations): Mege into
8305 (all_optimizations::gate): this.
8306 (gate_all_optimizations_g): Merge into
8307 (all_optimizations_g::gate): this.
8308 (gate_rest_of_compilation): Mege into
8309 (rest_of_compilation::gate): this.
8310 (gate_postreload): Merge into
8311 (postreload::gate): this.
8312 (dump_one_pass): Pass cfun to the pass's gate method.
8313 (execute_ipa_summary_passes): Likewise.
8314 (execute_one_pass): Likewise.
8315 (ipa_write_summaries_2): Likewise.
8316 (ipa_write_optimization_summaries_1): Likewise.
8317 (ipa_read_summaries_1): Likewise.
8318 (ipa_read_optimization_summaries_1): Likewise.
8319 (execute_ipa_stmt_fixups): Likewise.
8320 * tree-pass.h (opt_pass::gate): Add function * argument.
8321 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
8322 combine-stack-adj.c, combine.c, compare-elim.c,
8323 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8324 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
8325 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
8326 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
8327 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
8328 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
8329 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
8330 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
8331 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
8332 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
8333 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
8334 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
8335 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
8336 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
8337 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
8338 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8339 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8340 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8341 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8342 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8343 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8344 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8345 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
8346 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
8347 var-tracking.c, vtable-verify.c, web.c: Adjust.
8349 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8351 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
8352 * configure: Regenerate.
8354 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8356 * passes.c (dump_one_pass): don't check pass->has_gate.
8357 (execute_ipa_summary_passes): Likewise.
8358 (execute_one_pass): Likewise.
8359 (ipa_write_summaries_2): Likewise.
8360 (ipa_write_optimization_summaries_1): Likewise.
8361 (ipa_read_optimization_summaries_1): Likewise.
8362 (execute_ipa_stmt_fixups): Likewise.
8363 * tree-pass.h (pass_data::has_gate): Remove.
8364 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
8365 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
8366 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
8367 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8368 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
8369 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
8370 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
8371 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
8372 gimple-low.c, gimple-ssa-isolate-paths.c,
8373 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
8374 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
8375 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
8376 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
8377 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
8378 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
8379 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
8380 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
8381 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
8382 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
8383 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
8384 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
8385 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8386 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8387 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8388 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8389 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8390 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8391 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8392 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
8393 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
8394 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
8397 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8399 * pass_manager.h (pass_manager::register_dump_files_1): Remove
8401 * passes.c (pass_manager::register_dump_files_1): Merge into
8402 (pass_manager::register_dump_files): this, and remove its handling of
8403 properties since the pass always has the properties anyway.
8404 (pass_manager::pass_manager): Adjust.
8406 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8408 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
8409 * passes.c (pass_manager::register_dump_files_1): Remove dead code
8410 dealing with properties.
8411 (pass_manager::register_dump_files): Adjust.
8413 2014-03-20 Mark Wielaard <mjw@redhat.com>
8415 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
8416 then represent the bound as normal constant value.
8418 2014-04-17 Jakub Jelinek <jakub@redhat.com>
8421 Forward port from 4.8 branch
8422 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
8424 * config/i386/bmiintrin.h (_blsi_u32): New.
8428 (_blsmsk_u32): Ditto.
8429 (_blsmsk_u64): Ditto.
8430 (_tzcnt_u32): Ditto.
8431 (_tzcnt_u64): Ditto.
8433 2014-04-17 Kito Cheng <kito@0xlab.org>
8435 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
8437 2014-04-17 Richard Biener <rguenther@suse.de>
8440 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
8441 boolean results for comparisons.
8443 2014-04-17 Richard Biener <rguenther@suse.de>
8445 PR tree-optimization/60836
8446 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
8447 initial PHI args to be gimple values.
8449 2014-04-17 Richard Biener <rguenther@suse.de>
8451 PR tree-optimization/60841
8452 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
8453 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
8454 of stmts to SLP build.
8455 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
8456 (vect_analyze_slp): Likewise.
8457 (vect_analyze_slp_instance): Likewise.
8458 (vect_build_slp_tree): Limit overall SLP tree growth.
8459 * tree-vectorizer.h (vect_analyze_data_refs,
8460 vect_analyze_slp): Adjust prototypes.
8462 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8464 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
8467 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8469 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
8470 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
8471 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
8472 for TARGET_SLOW_PSHUFB
8474 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8476 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
8477 * config/i386/i386.c (intel_cost): Ditto.
8479 2014-04-17 Joey Ye <joey.ye@arm.com>
8481 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
8483 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8485 * opts.c (common_handle_option): Disable -fipa-reference coorectly
8488 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8490 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
8491 (type_all_derivations_known_p): New predicate.
8492 (type_all_ctors_visible_p): New predicate.
8493 (type_possibly_instantiated_p): New predicate.
8494 (get_odr_type): Compute all_derivations_known.
8495 (dump_odr_type): Dump the flag.
8496 (maybe_record_type): Cleanup.
8497 (record_target_from_binfo): Add bases_to_consider array;
8498 record bases for types w/o instances and skip CXX destructor.
8499 (possible_polymorphic_call_targets_1): Add bases_to_consider
8500 and consider_construction parameters; check if type may have instance.
8501 (get_polymorphic_call_info): Set maybe_in_construction to true
8502 when we know nothing.
8503 (record_targets_from_bases): Skip CXX destructors; they are
8504 never called for types in construction.
8505 (possible_polymorphic_call_targets): Do not record target when
8506 type may not have instance.
8508 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8511 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
8512 external aliases alive, too.
8514 2014-04-16 Andrew Pinski <apinski@cavium.com>
8516 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
8519 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
8521 * final.c (compute_alignments): Do not apply loop alignment to a block
8522 falling through to the exit.
8524 2014-04-16 Catherine Moore <clm@codesourcery.com>
8526 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
8527 Adjust constraints for microMIPS store patterns.
8529 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
8531 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
8533 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
8535 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
8536 (append_use): Run at -O0.
8537 (append_vdef): Likewise.
8538 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
8539 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
8541 2014-04-16 Jakub Jelinek <jakub@redhat.com>
8543 PR tree-optimization/60844
8544 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
8545 (propagate_op_to_single_use, remove_visited_stmt_chain,
8546 linearize_expr, repropagate_negates, reassociate_bb): Use it
8547 instead of gsi_remove.
8549 2014-04-16 Martin Jambor <mjambor@suse.cz>
8551 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
8552 ipa_transforms_to_apply.
8553 (cgraph_function_versioning): Assert that old_node has empty
8554 ipa_transforms_to_apply.
8555 * trans-mem.c (ipa_tm_create_version): Likewise.
8556 * tree-inline.c (tree_function_versioning): Do not duplicate
8557 ipa_transforms_to_apply.
8559 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8562 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
8564 Pass necessary as flags on 64-bit Solaris/x86.
8565 Use lowercase relocs for x86_64-*-*.
8566 * configure: Regenerate.
8568 2014-04-15 Jan Hubicka <jh@suse.cz>
8570 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
8571 (maybe_record_node, likely_target_p): Use it.
8573 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8576 Revert following patch
8578 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8581 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
8582 software floating point or no floating point registers, do not
8583 allow any type in the FPRs. Eliminate a test for SPE SIMD types
8584 in GPRs that occurs after we tested for GPRs that would never be
8587 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
8588 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
8589 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
8590 specifically allow DDmode, since that does not use the SPE SIMD
8593 2014-03-21 Mark Wielaard <mjw@redhat.com>
8595 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
8596 as unsigned or int depending on type and value used.
8598 2014-04-15 Richard Biener <rguenther@suse.de>
8600 PR rtl-optimization/56965
8601 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
8602 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
8604 * alias.c (true_dependence_1): Do not call
8605 nonoverlapping_component_refs_p.
8606 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
8607 nonoverlapping_component_refs_p.
8608 (indirect_refs_may_alias_p): Likewise.
8610 2014-04-15 Teresa Johnson <tejohnson@google.com>
8612 * cfg.c (dump_bb_info): Fix flags check.
8613 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
8615 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8617 PR rtl-optimization/60663
8618 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
8621 2014-04-15 Richard Biener <rguenther@suse.de>
8623 * lto-streamer.h (LTO_major_version): Bump to 4.
8625 2014-04-15 Richard Biener <rguenther@suse.de>
8627 * common.opt (lto_partition_model): New enum.
8628 (flto-partition=): Merge separate options with a single with argument,
8629 add -flto-partition=one support.
8630 * flag-types.h (enum lto_partition_model): Declare.
8631 * opts.c (finish_options): Remove duplicate -flto-partition=
8633 * lto-wrapper.c (run_gcc): Adjust.
8635 2014-04-15 Richard Biener <rguenther@suse.de>
8637 * alias.c (ncr_compar): New function.
8638 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
8640 2014-04-15 Richard Biener <rguenther@suse.de>
8642 * alias.c (record_component_aliases): Do not walk BINFOs.
8644 2014-04-15 Richard Biener <rguenther@suse.de>
8646 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8647 Add struct function argument and adjust.
8648 (find_func_aliases_for_call): Likewise.
8649 (find_func_aliases): Likewise.
8650 (find_func_clobbers): Likewise.
8651 (intra_create_variable_infos): Likewise.
8652 (compute_points_to_sets): Likewise.
8653 (ipa_pta_execute): Adjust. Do not push/pop cfun.
8655 2014-04-15 Richard Biener <rguenther@suse.de>
8657 * tree.c (iterative_hash_expr): Use enum tree_code_class
8658 to store TREE_CODE_CLASS.
8659 (tree_block): Likewise.
8660 (tree_set_block): Likewise.
8661 * tree.h (fold_build_pointer_plus_loc): Use
8662 convert_to_ptrofftype_loc.
8664 2014-04-15 Jakub Jelinek <jakub@redhat.com>
8667 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
8670 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
8672 * cfgloop.h (struct loop): Move force_vectorize down.
8673 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
8674 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
8675 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
8676 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
8677 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
8678 * tree-core.h (enum annot_expr_kind): Add new kind values.
8679 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
8680 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
8682 * tree.def (ANNOTATE_EXPR): Tweak comment.
8684 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
8686 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
8689 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
8691 * tree.h (TYPE_IDENTIFIER): Declare.
8692 * tree.c (subrange_type_for_debug_p): Use it.
8693 * godump.c (go_format_type): Likewise.
8694 * dwarf2out.c (is_cxx_auto, modified_type_die,
8695 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
8696 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
8698 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
8701 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
8703 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
8705 * config/i386/i386.c (examine_argument): Return bool. Return true if
8706 parameter should be passed in memory.
8707 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
8708 (construct_container): Update calls to examine_argument.
8709 (function_arg_advance_64): Ditto.
8710 (return_in_memory_32): Merge with ix86_return_in_memory.
8711 (return_in_memory_64): Ditto.
8712 (return_in_memory_ms_64): Ditto.
8714 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
8716 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
8717 * coverage.c (coverage_compute_profile_id): Handle externally visible
8720 2014-04-14 Martin Jambor <mjambor@suse.cz>
8722 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
8723 DECL_DISREGARD_INLINE_LIMITS functions.
8725 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
8728 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
8730 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
8733 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
8734 optimize_insn_for_speed_p instead of
8735 optimize_function_for_speed_p.
8737 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
8739 * doc/invoke.texi (free): Document AArch64.
8741 2014-04-14 Richard Biener <rguenther@suse.de>
8743 PR tree-optimization/60042
8744 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
8745 (insert_into_preds_of_block): Do not prevent PHI insertion
8746 for REFERENCE exprs here ...
8747 (eliminate_dom_walker::before_dom_children): ... but prevent
8748 their use here under similar conditions when applied to the
8749 IL after PRE optimizations.
8751 2014-04-14 Richard Biener <rguenther@suse.de>
8753 * passes.def: Move early points-to after early SRA.
8755 2014-04-14 Richard Biener <rguenther@suse.de>
8757 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
8758 check for which sign-changes we allow when forwarding
8759 a converted value into a switch.
8761 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
8763 * stor-layout.c (place_field): Finalize non-constant offset for the
8766 2014-04-14 Richard Biener <rguenther@suse.de>
8768 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
8770 (expand_switch_using_bit_tests_p): Likewise.
8771 (process_switch): Compute and pass on speed_p based on the
8773 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
8774 optimize_bb_for_speed_p.
8776 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
8778 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
8779 * function.h (struct function): Rename has_force_vect_loops into
8780 has_force_vectorize_loops.
8781 * lto-streamer-in.c (input_cfg): Adjust for renaming.
8782 (input_struct_function_base): Likewise.
8783 * lto-streamer-out.c (output_cfg): Likewise.
8784 (output_struct_function_base): Likewise.
8785 * omp-low.c (expand_omp_simd): Likewise.
8786 * tree-cfg.c (move_sese_region_to_fn): Likewise.
8787 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
8788 (version_loop_for_if_conversion): Likewise.
8789 (tree_if_conversion): Likewise.
8790 (main_tree_if_conversion): Likewise.
8791 (gate_tree_if_conversion): Likewise.
8792 * tree-inline.c (copy_loops): Likewise.
8793 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
8794 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
8795 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
8796 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
8797 * tree-vectorizer.c (vectorize_loops): Likewise.
8798 * tree-vectorizer.h (unlimited_cost_model): Likewise.
8800 2014-04-14 Richard Biener <rguenther@suse.de>
8803 * lto-streamer-out.c (wrap_refs): New function.
8804 (lto_output): Wrap symbol references in global initializes in
8805 type-preserving MEM_REFs.
8807 2014-04-14 Christian Bruel <christian.bruel@st.com>
8809 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
8811 2014-04-14 Christian Bruel <christian.bruel@st.com>
8813 * config/sh/sh.md (setmemqi): New expand pattern.
8814 * config/sh/sh.h (CLEAR_RATIO): Define.
8815 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
8816 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
8818 2014-04-14 Richard Biener <rguenther@suse.de>
8821 * fold-const.c (negate_expr_p): Don't negate directional rounding
8823 (fold_negate_expr): Likewise.
8825 2014-04-14 Richard Biener <rguenther@suse.de>
8827 PR tree-optimization/59817
8828 PR tree-optimization/60453
8829 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
8830 recursion to catch all CHRECs in the scalar evolution and restrict
8831 the predicate for the remains appropriately.
8833 2014-04-12 Catherine Moore <clm@codesourcery.com>
8835 * config/mips/constraints.md: Add new register constraint "kb".
8836 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
8837 (*movhi_internal): Likewise.
8838 (*movqi_internal): Likewise.
8839 * config/mips/mips.h (M16_STORE_REGS): New register class.
8840 (REG_CLASS_NAMES): Add M16_STORE_REGS.
8841 (REG_CLASS_CONTENTS): Likewise.
8842 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
8844 2014-04-11 Tobias Burnus <burnus@net-b.de>
8847 * doc/invoke.texi (-Wformat-signedness): Document it.
8848 (Wformat=2): Mention that this enables -Wformat-signedness.
8850 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
8852 * common/config/epiphany/epiphany-common.c
8853 (epiphany_option_optimization_table): Enable section anchors by
8854 default at -O1 or higher.
8855 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
8856 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
8857 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
8858 carries no extra cost.
8859 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
8860 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
8861 * config/epiphany/predicates.md (memclob_operand): New predicate.
8862 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
8863 Use memclob_operand predicate and X constraint for operand 3.
8865 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
8867 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
8868 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
8871 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
8873 PR rtl-optimization/60651
8874 * mode-switching.c (optimize_mode_switching): Make sure to emit
8875 sets of a lower numbered entity before sets of a higher numbered
8876 entity to a mode of the same or lower priority.
8877 When creating a seginfo for a basic block that starts with a code
8878 label, move the insertion point past the code label.
8879 (new_seginfo): Document and enforce requirement that
8880 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
8881 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
8882 * doc/tm.texi: Regenerate.
8884 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
8887 * config/arc/arc.c (arc_save_restore): Fix assert typo.
8889 2013-04-11 Jakub Jelinek <jakub@redhat.com>
8891 * BASE-VER: Set to 4.10.0.
8893 2014-04-11 Tobias Burnus <burnus@net-b.de>
8896 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
8897 * doc/gcc.texi (Service): Update description in the @menu
8898 * doc/invoke.texi (Option Summary): Remove misplaced and
8901 2014-04-11 Steve Ellcey <sellcey@mips.com>
8902 Jakub Jelinek <jakub@redhat.com>
8905 * expr.c (convert_move): Use emit_store_flag_force instead of
8906 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
8909 2014-04-11 Richard Biener <rguenther@suse.de>
8912 * varasm.c (assemble_alias): Avoid endless error reporting
8913 recursion by setting TREE_ASM_WRITTEN.
8915 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8917 * config/s390/s390.md: Add a splitter for NOT rtx.
8919 2014-04-11 Jakub Jelinek <jakub@redhat.com>
8921 PR rtl-optimization/60663
8922 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
8924 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
8925 Jakub Jelinek <jakub@redhat.com>
8928 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
8929 flag from decl_node to node.
8931 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8934 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
8935 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
8936 ameliorating the cases where it can be.
8938 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
8941 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
8943 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
8944 (loadsync_<mode>): Change mode.
8945 (load_quadpti, store_quadpti): New.
8946 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
8947 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
8948 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
8950 2014-04-09 Cong Hou <congh@google.com>
8953 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
8956 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8958 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
8959 instead of vnor to exploit possible fusion opportunity in the
8961 (altivec_expand_vec_perm_const_le): Likewise.
8963 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
8965 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
8966 (loadsync_<mode>): Change mode.
8967 (load_quadpti, store_quadpti): New.
8968 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
8969 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
8971 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
8974 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
8975 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
8976 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
8978 2014-04-08 Richard Biener <rguenther@suse.de>
8981 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
8982 a 64bit widest int print double-int similar to on HWI64 hosts.
8984 2014-04-08 Richard Biener <rguenther@suse.de>
8986 PR tree-optimization/60785
8987 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
8988 default defs properly.
8990 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
8992 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
8993 (Weffc++): Likewise.
8995 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
8997 * ipa-devirt.c (maybe_record_node): When node is not recorded,
8998 set completep to false rather than true.
9000 2014-04-07 Douglas B Rupp <rupp@adacore.com>
9003 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
9004 ARM_TARGET2_DWARF_FORMAT.
9006 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
9009 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
9010 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
9013 2014-04-07 Richard Biener <rguenther@suse.de>
9015 PR tree-optimization/60766
9016 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
9017 (may_eliminate_iv): Convert cand_value_at result to desired type.
9019 2014-04-07 Jason Merrill <jason@redhat.com>
9022 * common.opt (-fno-gnu-unique): Add.
9023 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
9025 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9027 * haifa-sched.c: Fix outdated function reference and minor
9028 grammar errors in introductory comment.
9030 2014-04-07 Richard Biener <rguenther@suse.de>
9033 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
9035 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
9037 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
9040 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
9041 size accounting for thunks.
9042 (pa_asm_output_mi_thunk): Use final_start_function() and
9043 final_end_function() to output function start and end directives.
9045 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
9047 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
9048 device specific ISA/ feature information. Remove short_sp and
9049 errata_skip ds. Add avr_device_specific_features enum to have device
9051 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
9052 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
9053 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
9054 updated device specific info.
9055 * config/avr/avr-mcus.def: Merge device specific details to
9056 dev_attribute field.
9057 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
9059 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
9060 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
9061 assembler if RMW isa supported by current device.
9062 * config/avr/genmultilib.awk: Update as device info structure changed.
9063 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
9065 2014-04-04 Cong Hou <congh@google.com>
9067 PR tree-optimization/60656
9068 * tree-vect-stmts.c (supportable_widening_operation):
9069 Fix a bug that elements in a vector with vect_used_by_reduction
9070 property are incorrectly reordered when the operation on it is not
9071 consistant with the one in reduction operation.
9073 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
9075 PR rtl-optimization/60155
9076 * gcse.c (record_set_data): New function.
9077 (single_set_gcse): New function.
9078 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
9079 (hoist_code): Likewise.
9080 (get_pressure_class_and_nregs): Likewise.
9082 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
9084 * explow.c (probe_stack_range): Emit a final optimization blockage.
9086 2014-04-04 Anthony Green <green@moxielogic.com>
9088 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
9091 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
9094 * lto-cgraph.c (input_overwrite_node): Check that partitioning
9095 flags are set only during streaming.
9096 * ipa.c (process_references, walk_polymorphic_call_targets,
9097 symtab_remove_unreachable_nodes): Drop bodies of always inline
9098 after early inlining.
9099 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
9101 2014-04-04 Jakub Jelinek <jakub@redhat.com>
9102 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9105 * dwarf2out.c (const_ok_for_output_1): Reject expressions
9108 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9111 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
9113 (cortex_a53_fdivd): Likewise.
9115 2014-04-04 Martin Jambor <mjambor@suse.cz>
9118 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
9120 * cgraph.c (clone_of_p): Also return true if thunks match.
9121 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
9122 cgraph_function_or_thunk_node and an obsolete comment.
9123 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
9125 (build_function_decl_skip_args): Likewise.
9126 (set_new_clone_decl_and_node_flags): New function.
9127 (duplicate_thunk_for_node): Likewise.
9128 (redirect_edge_duplicating_thunks): Likewise.
9129 (cgraph_clone_node): New parameter args_to_skip, pass it to
9130 redirect_edge_duplicating_thunks which is called instead of
9131 cgraph_redirect_edge_callee.
9132 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
9133 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
9135 2014-04-04 Jeff Law <law@redhat.com>
9138 * config/arm/predicates.md (const_int_I_operand): New predicate.
9139 (const_int_M_operand): Similarly.
9140 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
9142 (insv_t2, extv_reg, extzv_t2): Likewise.
9143 (load_multiple_with_writeback): Similarly for const_int_I_operand.
9144 (pop_multiple_with_writeback_and_return): Likewise.
9145 (vfp_pop_multiple_with_writeback): Likewise
9147 2014-04-04 Richard Biener <rguenther@suse.de>
9150 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
9151 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
9153 * gimplify.h (gimple_add_tmp_var_fn): Declare.
9154 * gimplify.c (gimple_add_tmp_var_fn): New function.
9155 * gimple-expr.h (create_tmp_reg_fn): Declare.
9156 * gimple-expr.c (create_tmp_reg_fn): New function.
9157 * gimple-low.c (record_vars_into): Don't change cfun.
9158 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
9159 code generation without cfun.
9161 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
9164 * Makefile.in (install-driver): Fix shell scripting.
9166 2014-04-03 Cong Hou <congh@google.com>
9168 PR tree-optimization/60505
9169 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
9170 threshold of number of iterations below which no vectorization
9172 * tree-vect-loop.c (new_loop_vec_info):
9173 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
9174 * tree-vect-loop.c (vect_analyze_loop_operations):
9175 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
9176 * tree-vect-loop.c (vect_transform_loop):
9177 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
9178 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
9179 of iterations of the loop and see if we should build the epilogue.
9181 2014-04-03 Richard Biener <rguenther@suse.de>
9183 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
9184 (streamer_tree_cache_create): Adjust.
9185 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
9186 to allow optional nodes array.
9187 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
9188 (streamer_tree_cache_append): Likewise.
9189 (streamer_tree_cache_create): Create nodes array optionally
9190 as specified by parameter.
9191 * lto-streamer-out.c (create_output_block): Avoid maintaining
9192 the node array in the writer cache.
9193 (DFS_write_tree): Remove assertion.
9194 (produce_asm_for_decls): Free the out decl state hash table early.
9195 * lto-streamer-in.c (lto_data_in_create): Adjust for
9196 streamer_tree_cache_create prototype change.
9198 2014-04-03 Richard Biener <rguenther@suse.de>
9200 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
9201 set TREE_CHAIN to NULL_TREE.
9203 2014-04-03 Richard Biener <rguenther@suse.de>
9205 PR tree-optimization/60740
9206 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
9207 over all GIMPLE_COND operands.
9209 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
9211 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
9212 (Weffc++): Remove Scott's numbering, merge lists and reference
9215 2014-04-03 Nick Clifton <nickc@redhat.com>
9217 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
9220 2014-04-03 Martin Jambor <mjambor@suse.cz>
9222 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
9223 mention gcc_unreachable before failing.
9224 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
9227 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
9230 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
9231 inconsistent code and instead mark the context inconsistent.
9232 (possible_polymorphic_call_targets): For inconsistent contexts
9233 return empty complete list.
9235 2014-04-02 Anthony Green <green@moxielogic.com>
9237 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
9238 (extendqisi2, extendhisi2): Define.
9239 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
9240 (WCHAR_TYPE): Change to unsigned int.
9242 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9244 PR tree-optimization/60733
9245 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
9246 insertion point for PHI candidates to be the end of the feeding
9247 block for the PHI argument.
9249 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
9251 PR rtl-optimization/60650
9252 * lra-constraints.c (process_alt_operands): Decrease reject for
9253 earlyclobber matching.
9255 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9257 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
9259 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9261 * config/spu/spu.c (pad_bb): Do not crash when the last
9262 insn is CODE_FOR_blockage.
9264 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9266 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
9267 lies outside the target mode.
9269 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9272 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
9273 software floating point or no floating point registers, do not
9274 allow any type in the FPRs. Eliminate a test for SPE SIMD types
9275 in GPRs that occurs after we tested for GPRs that would never be
9278 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
9279 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
9280 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
9281 specifically allow DDmode, since that does not use the SPE SIMD
9284 2014-04-02 Richard Biener <rguenther@suse.de>
9287 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
9288 MODE_INTs. Properly use negv_optab.
9289 (expand_abs): Likewise.
9291 2014-04-02 Richard Biener <rguenther@suse.de>
9294 * Makefile.in (install-driver): Guard extra installs with special
9297 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
9299 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9302 2014-04-01 Richard Henderson <rth@redhat.com>
9305 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
9306 alternative enabled before register allocation.
9308 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
9310 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
9311 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
9313 (nios2_large_got_address): Remove unneeded 'sym' parameter.
9314 (nios2_got_address): Update nios2_large_got_address call site.
9315 (nios2_delegitimize_address): New function.
9316 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
9317 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9318 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
9320 2014-04-01 Martin Husemann <martin@duskware.de>
9322 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
9325 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
9327 PR rtl-optimization/60604
9328 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
9329 check from register_operand.
9330 (register_operand): Redefine in terms of general_operand.
9331 (nonmemory_operand): Use register_operand for the non-constant cases.
9333 2014-04-01 Richard Biener <rguenther@suse.de>
9335 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
9337 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
9339 * doc/invoke.texi (mapp-regs): Clarify.
9341 2014-03-31 Ulrich Drepper <drepper@gmail.com>
9343 * config/i386/avx512fintrin.h (__v32hi): Define type.
9344 (__v64qi): Likewise.
9345 (_mm512_set1_epi8): Define.
9346 (_mm512_set1_epi16): Define.
9347 (_mm512_set4_epi32): Define.
9348 (_mm512_set4_epi64): Define.
9349 (_mm512_set4_pd): Define.
9350 (_mm512_set4_ps): Define.
9351 (_mm512_setr4_epi64): Define.
9352 (_mm512_setr4_epi32): Define.
9353 (_mm512_setr4_pd): Define.
9354 (_mm512_setr4_ps): Define.
9355 (_mm512_setzero_epi32): Define.
9357 2014-03-31 Martin Jambor <mjambor@suse.cz>
9360 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
9361 callsite_arguments_match_p. Updated all callers. Also check types of
9362 corresponding formal parameters and actual arguments.
9363 (not_all_callers_have_enough_arguments_p) Renamed to
9364 some_callers_have_mismatched_arguments_p.
9366 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
9368 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
9370 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
9373 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
9376 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
9378 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
9379 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
9381 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
9382 Use FMAMODE_NOVF512 mode iterator.
9383 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
9384 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
9385 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
9386 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
9388 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
9389 Use VF_128_256 mode iterator.
9390 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
9393 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9395 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
9396 static chain if needed.
9398 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
9401 * lra-constraints.c (index_part_to_reg): New.
9402 (process_address): Use it.
9404 2014-03-27 Jeff Law <law@redhat.com>
9405 Jakub Jelinek <jakub@redhat.com>
9408 * expr.c (do_tablejump): Use simplify_gen_binary rather than
9409 gen_rtx_{PLUS,MULT} to build up the address expression.
9411 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
9412 creating non-canonical RTL.
9414 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9417 * ipa-inline.c (want_inline_small_function_p): Short circuit large
9418 functions; reorganize to make cheap checks first.
9419 (inline_small_functions): Do not estimate growth when dumping;
9421 * ipa-inline.h (inline_summary): Add min_size.
9422 (growth_likely_positive): New function.
9423 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
9424 (set_cond_stmt_execution_predicate): Cleanup.
9425 (estimate_edge_size_and_time): Compute min_size.
9426 (estimate_calls_size_and_time): Likewise.
9427 (estimate_node_size_and_time): Likewise.
9428 (inline_update_overall_summary): Update min_size.
9429 (do_estimate_edge_time): Likewise.
9430 (do_estimate_edge_size): Update.
9431 (do_estimate_edge_hints): Update.
9432 (growth_likely_positive): New function.
9434 2014-03-28 Jakub Jelinek <jakub@redhat.com>
9437 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
9438 also if addr has VOIDmode.
9440 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9442 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
9443 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
9445 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
9446 instructions as well as AdvancedSIMD loads.
9448 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9450 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
9451 Use crypto_aese type.
9452 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
9453 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
9454 crypto_aese, crypto_aesmc. Move to types.md.
9455 * config/arm/types.md (crypto_aes): Split into crypto_aese,
9457 * config/arm/iterators.md (crypto_type): Likewise.
9459 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9461 * cgraph.c: Include expr.h and tree-dfa.h.
9462 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
9465 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
9468 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
9469 regs from checking multi-reg pseudos.
9471 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9473 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
9475 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9477 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
9478 if it would clobber the stack pointer, even temporarily.
9480 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
9482 * mode-switching.c: Make small adjustments to the top comment.
9484 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9486 * config/rs6000/constraints.md (wD constraint): New constraint to
9487 match the constant integer to get the top DImode/DFmode out of a
9488 vector in a VSX register.
9490 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
9491 match the constant integer to get the top DImode/DFmode out of a
9492 vector in a VSX register.
9494 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
9497 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9500 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
9501 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
9503 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
9504 Optimize vec_extract of 64-bit values, where the value being
9505 extracted is in the top word, where we can use scalar
9506 instructions. Add direct move and store support. Combine the big
9507 endian/little endian vector select load support into a single insn.
9508 (vsx_extract_<mode>_internal1): Likewise.
9509 (vsx_extract_<mode>_internal2): Likewise.
9510 (vsx_extract_<mode>_load): Likewise.
9511 (vsx_extract_<mode>_store): Likewise.
9512 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
9513 combined into vsx_extract_<mode>_load.
9514 (vsx_extract_<mode>_one_le): Likewise.
9516 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
9517 define the top 64-bit vector element.
9519 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
9522 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9523 Document vec_vbpermq builtin.
9526 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
9527 enable use of xxsldwi and xxpermdi builtin functions.
9528 (vec_xxpermdi): Likewise.
9530 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9531 Document use of vec_xxsldwi and vec_xxpermdi builtins.
9533 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
9535 PR rtl-optimization/60650
9536 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
9538 (find_spills_for): New.
9539 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
9540 Spill all pseudos on the second iteration.
9542 2014-03-27 Marek Polacek <polacek@redhat.com>
9545 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
9548 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9550 * config/s390/s390.c (s390_can_use_return_insn): Check for
9551 call-saved FPRs on 31 bit.
9553 2014-03-27 Jakub Jelinek <jakub@redhat.com>
9556 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
9557 if they need regimplification, just drop them instead of
9558 calling gimple_regimplify_operands on them.
9560 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
9563 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
9564 (aarch64_frame_pointer_required): Adjust logic.
9565 (aarch64_can_eliminate): Adjust logic.
9566 (aarch64_override_options_after_change): Adjust logic.
9568 2014-03-27 Dehao Chen <dehao@google.com>
9570 * ipa-inline.c (early_inliner): Update node's inline info.
9572 2014-03-26 Dehao Chen <dehao@google.com>
9574 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
9575 compiler inserted conditional jumps for NAN float check.
9577 2014-03-26 Jakub Jelinek <jakub@redhat.com>
9579 * ubsan.h (ubsan_create_data): Change second argument's type
9580 to const location_t *.
9581 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
9583 (ubsan_create_data): Change second argument to const location_t *PLOC.
9584 Create Loc field whenever PLOC is non-NULL.
9585 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
9586 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
9590 * real.c (real_to_integer2): Change type of low to UHWI.
9592 2014-03-26 Tobias Burnus <burnus@net-b.de>
9594 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
9595 (CILK_SELF_SPECS): New define.
9596 (driver_self_specs): Use it.
9598 2014-03-26 Richard Biener <rguenther@suse.de>
9600 * tree-pretty-print.c (percent_K_format): Implement special
9601 case for LTO and its stripped down BLOCK tree.
9603 2014-03-26 Jakub Jelinek <jakub@redhat.com>
9606 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
9608 * tree-vrp.c (simplify_internal_call_using_ranges): If only
9609 one range is range_int_cst_p, but not both, at least optimize
9610 addition/subtraction of 0 and multiplication by 0 or 1.
9611 * gimple-fold.c (gimple_fold_call): Fold
9612 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
9613 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
9614 INTEGER_CSTs, try to fold at least x * 0 and y - y.
9616 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
9618 PR rtl-optimization/60452
9619 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
9620 <case REG>: Return 1 for invalid offsets from the frame pointer.
9622 2014-03-26 Marek Polacek <polacek@redhat.com>
9625 * doc/extend.texi (C Extensions): Mention variable-length arrays in
9628 2014-03-26 Marek Polacek <polacek@redhat.com>
9631 * doc/extend.texi (Designated Inits): Describe what happens to omitted
9634 2014-03-26 Marek Polacek <polacek@redhat.com>
9637 * ira-color.c (update_conflict_hard_regno_costs): Perform the
9638 multiplication in unsigned type.
9640 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
9642 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
9644 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
9646 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
9648 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
9651 * cif-code.def (UNREACHABLE) New code.
9652 * ipa-inline.c (inline_small_functions): Skip edges to
9653 __builtlin_unreachable.
9654 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
9655 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
9656 predicate to __bulitin_unreachable.
9657 (set_cond_stmt_execution_predicate): Fix issue when
9658 invert_tree_comparison returns ERROR_MARK.
9659 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
9660 propagate to inline clones.
9661 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
9663 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
9664 * cgraphclones.c (cgraph_clone_node): If call destination is already
9665 ureachable, do not redirect it back.
9666 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
9669 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
9671 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
9672 Do not modify inline clones.
9674 2014-03-25 Jakub Jelinek <jakub@redhat.com>
9676 * config/i386/i386.md (general_sext_operand): New mode attr.
9677 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
9678 don't generate (sign_extend (const_int)).
9679 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
9680 operands[2]. Use We constraint instead of <i> and
9681 <general_sext_operand> predicate instead of <general_operand>.
9682 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
9683 * config/i386/constraints.md (We): New constraint.
9684 * config/i386/predicates.md (x86_64_sext_operand,
9685 sext_operand): New predicates.
9687 2014-03-25 Martin Jambor <mjambor@suse.cz>
9690 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
9691 inconsistent devirtualizations to __builtin_unreachable.
9693 2014-03-25 Marek Polacek <polacek@redhat.com>
9696 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
9698 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
9700 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
9701 order of elements for big-endian.
9703 2014-03-25 Richard Biener <rguenther@suse.de>
9706 * gimplify-me.c (gimple_regimplify_operands): Update the
9709 2014-03-25 Martin Jambor <mjambor@suse.cz>
9712 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
9713 (lto_output_varpool_node): Likewise.
9714 (input_overwrite_node): Likewise.
9715 (input_varpool_node): Likewise.
9717 2014-03-25 Richard Biener <rguenther@suse.de>
9719 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
9720 (run_gcc): Likewise.
9722 2014-03-25 Jakub Jelinek <jakub@redhat.com>
9724 * combine.c (simplify_compare_const): Add MODE argument.
9725 Handle mode_width 0 as very large mode_width.
9726 (try_combine, simplify_comparison): Adjust callers.
9728 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
9729 type to avoid signed integer overflow.
9730 * explow.c (plus_constant): Likewise.
9732 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
9734 * doc/generic.texi: Correct typos.
9736 2014-03-24 Tobias Burnus <burnus@net-b.de>
9738 * doc/invoke.texi (-flto): Expand section about
9739 using static libraries with LTO.
9741 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9743 PR rtl-optimization/60501
9744 * optabs.def (addptr3_optab): New optab.
9745 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
9746 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
9747 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
9749 * lra.c (emit_add3_insn): Use the addptr pattern if available.
9751 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
9753 2014-03-24 Ulrich Drepper <drepper@gmail.com>
9755 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
9758 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
9759 (_mm256_undefined_ps): Define.
9760 (_mm256_undefined_pd): Define.
9761 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
9762 (_mm_undefined_pd): Define.
9763 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
9764 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
9765 (_mm512_undefined_ps): Define.
9766 (_mm512_undefined_pd): Define.
9767 Use _mm*_undefined_*.
9768 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
9770 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
9772 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
9773 (lshr_simd): DI mode added.
9774 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
9775 (aarch64_ushr_simddi): Likewise.
9776 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
9777 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
9778 (vshrd_n_u64): Likewise.
9780 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9782 * Makefile.in (s-macro_list): Depend on cc1.
9784 2014-03-23 Teresa Johnson <tejohnson@google.com>
9786 * ipa-utils.c (ipa_print_order): Use specified dump file.
9788 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
9790 PR rtl-optimization/60601
9791 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
9793 * gcc.c (eval_spec_function): Initialize save_growing_value.
9795 2014-03-22 Jakub Jelinek <jakub@redhat.com>
9798 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
9799 code == MINUS_EXPR, never swap op0 with op1.
9801 * toplev.c (init_local_tick): Avoid signed integer multiplication
9803 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
9804 shift by first operand's bitsize.
9806 2014-03-21 Jakub Jelinek <jakub@redhat.com>
9809 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
9811 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
9812 TARGET_ISA_64BIT_P(x).
9814 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9816 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
9817 pattern for vector nor instead of subtract from splat(-1).
9818 (altivec_expand_vec_perm_const_le): Likewise.
9820 2014-03-21 Richard Henderson <rth@twiddle.net>
9823 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
9824 related insns after epilogue_completed.
9826 2014-03-21 Martin Jambor <mjambor@suse.cz>
9829 * cgraph.h (symtab_node): New flag body_removed.
9830 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
9831 when removing bodies.
9832 * symtab.c (dump_symtab_base): Dump body_removed flag.
9833 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
9834 had their bodies removed.
9836 2014-03-21 Martin Jambor <mjambor@suse.cz>
9839 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
9842 2014-03-21 Richard Biener <rguenther@suse.de>
9844 PR tree-optimization/60577
9845 * tree-core.h (struct tree_base): Document nothrow_flag use
9847 * tree.h (DECL_NONALIASED): New.
9848 (may_be_aliased): Adjust.
9849 * coverage.c (build_var): Set DECL_NONALIASED.
9851 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
9853 * expr.c (expand_expr_real_1): Remove outdated comment.
9855 2014-03-20 Jakub Jelinek <jakub@redhat.com>
9858 * ira.c (adjust_cleared_regs): Call copy_rtx on
9859 *reg_equiv[REGNO (loc)].src_p before passing it to
9860 simplify_replace_fn_rtx.
9863 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
9864 into CONST, put pic register as first operand of PLUS. Use
9865 gen_const_mem for both 32-bit and 64-bit PIC got loads.
9867 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9869 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
9871 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
9873 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
9874 around for store forwarding issue in the FPU on the UT699.
9875 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
9876 loads and operations if -mfix-ut699 is specified.
9877 (divtf3_hq): Tweak attribute.
9878 (sqrttf2_hq): Likewise.
9880 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
9882 * calls.c (store_one_arg): Remove incorrect const qualification on the
9883 type of the temporary.
9884 * cfgexpand.c (expand_return): Likewise.
9885 * expr.c (expand_constructor): Likewise.
9886 (expand_expr_real_1): Likewise.
9888 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9890 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
9893 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
9896 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
9898 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
9900 * config/arm/aarch-common-protos.h
9901 (alu_cost_table): Fix spelling of "extend".
9902 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
9904 2014-03-19 Richard Biener <rguenther@suse.de>
9907 * tree-core.h (tree_type_common): Re-order pointer members
9908 to reduce recursion depth during GC walks.
9910 2014-03-19 Marek Polacek <polacek@redhat.com>
9913 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
9914 before accessing it.
9916 2014-03-19 Richard Biener <rguenther@suse.de>
9919 * lto-streamer-in.c (input_function): In WPA stage do not drop
9922 2014-03-19 Jakub Jelinek <jakub@redhat.com>
9924 PR tree-optimization/60559
9925 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
9926 with build_zero_cst assignment.
9928 2014-03-18 Kai Tietz <ktietz@redhat.com>
9930 PR rtl-optimization/56356
9931 * sdbout.c (sdbout_parms): Verify that parms'
9932 incoming argument is valid.
9933 (sdbout_reg_parms): Likewise.
9935 2014-03-18 Richard Henderson <rth@redhat.com>
9938 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
9939 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
9940 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
9942 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
9944 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
9945 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
9946 Italicize plugin event names in description. Explain that
9947 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
9948 Remind that no GCC functions should be called after PLUGIN_FINISH.
9949 Explain what pragmas with expansion are.
9951 2014-03-18 Martin Liska <mliska@suse.cz>
9953 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
9954 gimple call statement is update.
9955 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
9956 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
9958 2014-03-18 Jakub Jelinek <jakub@redhat.com>
9961 * ubsan.c (ubsan_instrument_unreachable): Call
9962 initialize_sanitizer_builtins.
9963 (ubsan_pass): Likewise.
9966 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
9967 varpool_finalize_decl instead of rest_of_decl_compilation.
9969 2014-03-18 Richard Biener <rguenther@suse.de>
9971 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
9972 by using bitmap_and_compl instead of bitmap_and_compl_into.
9973 (df_rd_transfer_function): Likewise.
9975 2014-03-18 Richard Biener <rguenther@suse.de>
9977 * doc/lto.texi (fresolution): Fix typo.
9979 2014-03-18 Richard Biener <rguenther@suse.de>
9981 * doc/invoke.texi (flto): Update for changes in 4.9.
9983 2014-03-18 Richard Biener <rguenther@suse.de>
9985 * doc/loop.texi: Remove section on the removed lambda framework.
9986 Update loop docs with recent changes in preserving loop structure.
9988 2014-03-18 Richard Biener <rguenther@suse.de>
9990 * doc/lto.texi (-fresolution): Document.
9992 2014-03-18 Richard Biener <rguenther@suse.de>
9994 * doc/contrib.texi: Adjust my name.
9996 2014-03-18 Jakub Jelinek <jakub@redhat.com>
9999 * internal-fn.c: Include diagnostic-core.h.
10000 (expand_BUILTIN_EXPECT): New function.
10001 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
10002 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
10003 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
10004 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
10005 IFN_BUILTIN_EXPECT.
10006 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
10007 Revert 3 argument __builtin_expect code.
10008 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
10009 * gimple-fold.c (gimple_fold_call): Likewise.
10010 * tree.h (fold_builtin_expect): New prototype.
10011 * builtins.c (build_builtin_expect_predicate): Add predictor
10012 argument, if non-NULL, create 3 argument __builtin_expect.
10013 (fold_builtin_expect): No longer static. Add ARG2 argument,
10014 pass it through to build_builtin_expect_predicate.
10015 (fold_builtin_2): Adjust caller.
10016 (fold_builtin_3): Handle BUILT_IN_EXPECT.
10017 * internal-fn.def (BUILTIN_EXPECT): New.
10019 2014-03-18 Tobias Burnus <burnus@net-b.de>
10022 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
10023 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
10024 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
10026 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
10029 * predict.c (combine_predictions_for_bb): Fix up formatting.
10030 (expr_expected_value_1, expr_expected_value): Add predictor argument,
10031 fill what it points to if non-NULL.
10032 (tree_predict_by_opcode): Adjust caller, use the predictor.
10033 * predict.def (PRED_COMPARE_AND_SWAP): Add.
10035 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
10037 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
10038 proper constant for the store mode.
10040 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
10042 * symtab.c (change_decl_assembler_name): Fix transparent alias
10043 chain construction.
10045 2014-03-16 Renlin Li <Renlin.Li@arm.com>
10047 * config/aarch64/aarch64.c: Correct the comments about the
10048 aarch64 stack layout.
10050 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
10052 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
10053 check for GF_OMP_FOR_KIND_FOR.
10055 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
10057 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
10058 ymm and zmm register names.
10060 2014-03-17 Jakub Jelinek <jakub@redhat.com>
10063 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
10064 note creation for the 2010-08-31 changes.
10066 2014-03-17 Marek Polacek <polacek@redhat.com>
10068 PR middle-end/60534
10069 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
10070 as -fno-tree-loop-vectorize.
10071 (expand_omp_simd): Likewise.
10073 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
10075 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
10076 (eligible_for_call_delay): New prototype.
10077 * config/sparc/sparc.c (tls_call_delay): Rename into...
10078 (eligible_for_call_delay): ...this. Return false if the instruction
10079 cannot be put in the delay slot of a branch.
10080 (eligible_for_restore_insn): Simplify.
10081 (eligible_for_return_delay): Return false if the instruction cannot be
10082 put in the delay slot of a branch and simplify.
10083 (eligible_for_sibcall_delay): Return false if the instruction cannot be
10084 put in the delay slot of a branch.
10085 * config/sparc/sparc.md (fix_ut699): New attribute.
10086 (tls_call_delay): Delete.
10087 (in_call_delay): Reimplement.
10088 (eligible_for_sibcall_delay): Rename into...
10089 (in_sibcall_delay): ...this.
10090 (eligible_for_return_delay): Rename into...
10091 (in_return_delay): ...this.
10092 (in_branch_delay): Reimplement.
10093 (in_uncond_branch_delay): Delete.
10094 (in_annul_branch_delay): Delete.
10096 2014-03-14 Richard Henderson <rth@redhat.com>
10099 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
10100 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
10101 (*floathi<X87MODEF>2_i387_with_temp): Remove.
10102 (floathi splitters): Remove.
10103 (float<SWI48x>xf2): New pattern.
10104 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
10105 code that tried to handle DImode for 32-bit, but which was excluded
10106 by the pattern's condition. Drop allocation of stack temporary.
10107 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
10108 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
10109 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
10110 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
10111 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
10112 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
10113 (*float<SWI48><MODEF>2_sse_interunit): Remove.
10114 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
10115 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
10116 (*float<SWI48x><X87MODEF>2_i387): Remove.
10117 (all float _with_temp splitters): Remove.
10118 (*float<SWI48x><MODEF>2_i387): New pattern.
10119 (*float<SWI48><MODEF>2_sse): New pattern.
10120 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
10121 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
10123 2014-03-14 Jakub Jelinek <jakub@redhat.com>
10124 Marek Polacek <polacek@redhat.com>
10126 PR middle-end/60484
10127 * common.opt (dump_base_name_prefixed): New Variable.
10128 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
10129 if x_dump_base_name_prefixed is already set, set it at the end.
10131 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
10133 PR rtl-optimization/60508
10134 * lra-constraints.c (get_reload_reg): Add new parameter
10136 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
10137 Pass the new parameter values.
10139 2014-03-14 Richard Biener <rguenther@suse.de>
10141 * common.opt: Revert unintented changes from r205065.
10142 * opts.c: Likewise.
10144 2014-03-14 Richard Biener <rguenther@suse.de>
10146 PR middle-end/60518
10147 * cfghooks.c (split_block): Properly adjust all loops the
10148 block was a latch of.
10150 2014-03-14 Martin Jambor <mjambor@suse.cz>
10153 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
10156 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
10159 * config/avr/avr.c (avr_set_current_function): Pass function name
10160 through default_strip_name_encoding before sanity checking instead
10161 of skipping the first char of the assembler name.
10163 2014-03-13 Richard Henderson <rth@redhat.com>
10166 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
10167 (ix86_force_to_memory, ix86_free_from_memory): Remove.
10168 * config/i386/i386-protos.h: Likewise.
10169 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
10170 in the expander instead of a splitter.
10171 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
10172 any possibility of requiring a memory.
10173 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
10174 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
10175 (fp branch splitters): Update for ix86_split_fp_branch.
10176 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
10177 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
10178 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
10179 (*fop_<MODEF>_2_i387): Remove f/r alternative.
10180 (*fop_<MODEF>_3_i387): Likewise.
10181 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
10182 (splitters for the fop_* register patterns): Remove.
10183 (fscalexf4_i387): Rename from *fscalexf4_i387.
10184 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
10186 2014-03-13 Jakub Jelinek <jakub@redhat.com>
10188 PR tree-optimization/59779
10189 * tree-dfa.c (get_ref_base_and_extent): Use double_int
10190 type for bitsize and maxsize instead of HOST_WIDE_INT.
10192 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
10194 PR rtl-optimization/57320
10195 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
10196 the CFG after thread_prologue_and_epilogue_insns.
10198 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
10200 PR rtl-optimization/57189
10201 * lra-constraints.c (process_alt_operands): Disfavor spilling
10204 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
10206 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
10208 2014-03-13 Jakub Jelinek <jakub@redhat.com>
10210 PR tree-optimization/59025
10211 PR middle-end/60418
10212 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
10213 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
10215 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
10218 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
10219 calls of avr_out_plus_1.
10221 2014-03-13 Bin Cheng <bin.cheng@arm.com>
10223 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
10224 BB's single pred and update the father loop's latch info later.
10226 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10228 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
10232 (VEC_base): Likewise.
10233 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
10234 registers, we need to swap double words in little endian mode.
10236 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
10237 to be a container mode for 128-bit integer operations added in ISA
10238 2.07. Unlike TImode and PTImode, the preferred register set is
10239 the Altivec/VMX registers for the 128-bit operations.
10241 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
10243 (rs6000_split_128bit_ok_p): Likewise.
10245 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
10246 macros for creating ISA 2.07 normal and overloaded builtin
10247 functions with 3 arguments.
10248 (BU_P8V_OVERLOAD_3): Likewise.
10249 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
10250 for use as overloaded functions.
10251 (VPERM_1TI_UNS): Likewise.
10252 (VSEL_1TI): Likewise.
10253 (VSEL_1TI_UNS): Likewise.
10254 (ST_INTERNAL_1ti): Likewise.
10255 (LD_INTERNAL_1ti): Likewise.
10256 (XXSEL_1TI): Likewise.
10257 (XXSEL_1TI_UNS): Likewise.
10258 (VPERM_1TI): Likewise.
10259 (VPERM_1TI_UNS): Likewise.
10260 (XXPERMDI_1TI): Likewise.
10261 (SET_1TI): Likewise.
10262 (LXVD2X_V1TI): Likewise.
10263 (STXVD2X_V1TI): Likewise.
10264 (VEC_INIT_V1TI): Likewise.
10265 (VEC_SET_V1TI): Likewise.
10266 (VEC_EXT_V1TI): Likewise.
10267 (EQV_V1TI): Likewise.
10268 (NAND_V1TI): Likewise.
10269 (ORC_V1TI): Likewise.
10270 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
10271 added in ISA 2.07. Add both normal 'altivec' builtins, and the
10272 overloaded builtin.
10273 (VADDUQM): Likewise.
10274 (VSUBCUQ): Likewise.
10275 (VADDEUQM): Likewise.
10276 (VADDECUQ): Likewise.
10277 (VSUBEUQM): Likewise.
10278 (VSUBECUQ): Likewise.
10280 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
10281 __int128_t and __uint128_t types.
10282 (__uint128_type): Likewise.
10283 (altivec_categorize_keyword): Add support for vector __int128_t,
10284 vector __uint128_t, vector __int128, and vector unsigned __int128
10285 as a container type for TImode operations that need to be done in
10286 VSX/Altivec registers.
10287 (rs6000_macro_to_expand): Likewise.
10288 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
10289 to support 128-bit integer instructions vaddcuq, vadduqm,
10290 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
10291 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
10293 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10294 for V1TImode, and set up preferences to use VSX/Altivec registers.
10295 Setup VSX reload handlers.
10296 (rs6000_debug_reg_global): Likewise.
10297 (rs6000_init_hard_regno_mode_ok): Likewise.
10298 (rs6000_preferred_simd_mode): Likewise.
10299 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
10300 (easy_altivec_constant): Likewise.
10301 (output_vec_const_move): Likewise.
10302 (rs6000_expand_vector_set): Convert V1TImode set and extract to
10304 (rs6000_expand_vector_extract): Likewise.
10305 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
10307 (rs6000_const_vec): Add support for V1TImode.
10308 (rs6000_emit_le_vsx_load): Swap double words when loading or
10309 storing TImode/V1TImode.
10310 (rs6000_emit_le_vsx_store): Likewise.
10311 (rs6000_emit_le_vsx_move): Likewise.
10312 (rs6000_emit_move): Add support for V1TImode.
10313 (altivec_expand_ld_builtin): Likewise.
10314 (altivec_expand_st_builtin): Likewise.
10315 (altivec_expand_vec_init_builtin): Likewise.
10316 (altivec_expand_builtin): Likewise.
10317 (rs6000_init_builtins): Add support for V1TImode type. Add
10318 support for ISA 2.07 128-bit integer builtins. Define type names
10319 for the VSX/Altivec vector types.
10320 (altivec_init_builtins): Add support for overloaded vector
10321 functions with V1TImode type.
10322 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
10323 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
10325 (rs6000_split_128bit_ok_p): Likewise.
10326 (rs6000_handle_altivec_attribute): Create V1TImode from vector
10327 __int128_t and vector __uint128_t.
10329 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
10330 and mode attributes.
10332 (VSX_M2): Likewise.
10337 (VS_scalar): Likewise.
10338 (VS_double): Likewise.
10339 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
10341 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
10342 we support the ISA 2.07 128-bit integer arithmetic instructions.
10343 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
10344 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
10345 and TImode types for use with the builtin functions.
10346 (V1TI_type_node): Likewise.
10347 (unsigned_V1TI_type_node): Likewise.
10348 (intTI_type_internal_node): Likewise.
10349 (uintTI_type_internal_node): Likewise.
10351 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
10352 128-bit builtin functions.
10353 (UNSPEC_VADDEUQM): Likewise.
10354 (UNSPEC_VADDECUQ): Likewise.
10355 (UNSPEC_VSUBCUQ): Likewise.
10356 (UNSPEC_VSUBEUQM): Likewise.
10357 (UNSPEC_VSUBECUQ): Likewise.
10358 (VM): Add V1TImode to vector mode iterators.
10360 (VI_unit): Likewise.
10361 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
10362 (altivec_vaddcuq): Likewise.
10363 (altivec_vsubuqm): Likewise.
10364 (altivec_vsubcuq): Likewise.
10365 (altivec_vaddeuqm): Likewise.
10366 (altivec_vaddecuq): Likewise.
10367 (altivec_vsubeuqm): Likewise.
10368 (altivec_vsubecuq): Likewise.
10370 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
10372 (BOOL_128): Likewise.
10373 (BOOL_REGS_OUTPUT): Likewise.
10374 (BOOL_REGS_OP1): Likewise.
10375 (BOOL_REGS_OP2): Likewise.
10376 (BOOL_REGS_UNARY): Likewise.
10377 (BOOL_REGS_AND_CR0): Likewise.
10379 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
10380 128-bit integer builtin support.
10381 (vec_vadduqm): Likewise.
10382 (vec_vaddecuq): Likewise.
10383 (vec_vaddeuqm): Likewise.
10384 (vec_vsubecuq): Likewise.
10385 (vec_vsubeuqm): Likewise.
10386 (vec_vsubcuq): Likewise.
10387 (vec_vsubuqm): Likewise.
10389 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10390 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
10391 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
10392 128-bit integer add/subtract to ISA 2.07.
10394 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
10396 * config/arc/arc.c (arc_predicate_delay_insns):
10397 Fix third argument passed to conditionalize_nonjump.
10399 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
10401 * config/aarch64/aarch64-builtins.c
10402 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
10403 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
10404 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
10405 instead of __builtin_lfloor.
10406 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
10408 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10410 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
10411 (tree_ssa_ifcombine_bb_1): New function.
10412 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
10413 is an empty forwarder block to then_bb or vice versa and then_bb
10414 and else_bb are effectively swapped.
10416 2014-03-12 Christian Bruel <christian.bruel@st.com>
10419 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
10420 REG_CFA_DEF_CFA note.
10421 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
10422 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
10424 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
10426 PR tree-optimization/60454
10427 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
10429 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10431 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
10432 Do not define target_cpu_default2 to generic.
10433 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
10434 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
10435 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
10437 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10438 Marc Glisse <marc.glisse@inria.fr>
10440 PR tree-optimization/60502
10441 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
10442 instead of build_low_bits_mask.
10444 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10446 PR middle-end/60482
10447 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
10448 if there are multiple uses, but op doesn't live on E edge.
10449 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
10450 clobber stmts before __builtin_unreachable.
10452 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
10454 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
10455 hard_frame_pointer_rtx.
10456 * cse.c (cse_insn): Remove volatile check.
10457 * cselib.c (cselib_process_insn): Likewise.
10458 * dse.c (scan_insn): Likewise.
10460 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
10462 * config/arc/arc.c (conditionalize_nonjump): New function,
10464 (arc_ifcvt): ... this.
10465 (arc_predicate_delay_insns): Use it.
10467 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
10469 * config/arc/predicates.md (extend_operand): During/after reload,
10470 allow const_int_operand.
10471 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
10472 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
10473 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
10475 (umulsi3_highpart_i): Likewise.
10477 2014-03-11 Richard Biener <rguenther@suse.de>
10479 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
10480 Add asserts to guard possible wrong-code bugs.
10482 2014-03-11 Richard Biener <rguenther@suse.de>
10484 PR tree-optimization/60429
10485 PR tree-optimization/60485
10486 * tree-ssa-structalias.c (set_union_with_increment): Properly
10487 take into account all fields that overlap the shifted vars.
10488 (do_sd_constraint): Likewise.
10489 (do_ds_constraint): Likewise.
10490 (get_constraint_for_ptr_offset): Likewise.
10492 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
10494 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
10495 (nios2_compute_frame_layout):
10496 Add calculation of cfun->machine->fp_save_offset.
10497 (nios2_expand_prologue): Correct setting of frame pointer register
10499 (nios2_expand_epilogue): Update recovery of stack pointer from
10500 frame pointer accordingly.
10501 (nios2_initial_elimination_offset): Update calculation of offset
10502 for eliminating to HARD_FRAME_POINTER_REGNUM.
10504 2014-03-10 Jakub Jelinek <jakub@redhat.com>
10507 * ipa.c (symtab_remove_unreachable_nodes): Don't call
10508 cgraph_get_create_node on VAR_DECLs.
10510 2014-03-10 Richard Biener <rguenther@suse.de>
10512 PR middle-end/60474
10513 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
10515 2014-03-08 Douglas B Rupp <rupp@gnat.com>
10517 * config/vms/vms.opt (vms_float_format): New variable.
10519 2014-03-08 Tobias Burnus <burnus@net-b.de>
10521 * doc/invoke.texi (-fcilkplus): Update implementation status.
10523 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
10524 Richard Biener <rguenther@suse.de>
10526 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
10527 consistently accross all TUs.
10528 (run_gcc): Enable -fshort-double automatically at link at link-time
10529 and disallow override.
10531 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
10534 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
10535 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
10536 if they can't be used.
10538 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10540 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
10541 for Solaris 11/x86 ld.
10542 * configure: Regenerate.
10544 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10546 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
10547 (LIB_TLS_SPEC): Save as ld_tls_libs.
10548 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
10549 (HAVE_AS_IX86_TLSLDM): New test.
10550 * configure, config.in: Regenerate.
10551 * config/i386/i386.c (legitimize_tls_address): Fall back to
10552 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
10553 cannot support TLS_MODEL_LOCAL_DYNAMIC.
10554 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
10555 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
10557 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
10559 * common.opt (fira-loop-pressure): Mark as optimization.
10561 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
10563 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
10564 an OpenMP mappable type.
10566 2014-03-06 Matthias Klose <doko@ubuntu.com>
10568 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
10569 MULTILIB_OSDIRNAMES is not defined.
10571 2014-03-06 Jakub Jelinek <jakub@redhat.com>
10572 Meador Inge <meadori@codesourcery.com>
10575 * config/arm/arm.c (arm_tls_symbol_p): Remove.
10576 (arm_legitimize_address): Call legitimize_tls_address for any
10577 arm_tls_referenced_p expression, handle constant addend. Call it
10578 before testing for !TARGET_ARM.
10579 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
10581 2014-03-06 Richard Biener <rguenther@suse.de>
10583 PR middle-end/60445
10587 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
10589 * tree-streamer.c (record_common_node): Assert we don't record
10590 nodes with type double.
10591 (preload_common_node): Skip type double, complex double and double
10592 pointer since it is now frontend dependent due to fshort-double option.
10594 2014-03-06 Richard Biener <rguenther@suse.de>
10596 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
10597 or -fno-lto is specified and the linker has full plugin support.
10598 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
10599 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
10600 * lto-wrapper.c (merge_and_complain): Merge compile-time
10601 optimization levels.
10602 (run_gcc): And pass it through to the link options.
10604 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
10608 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
10610 * cselib.c (remove_useless_values): Skip to avoid quadratic
10611 behavior if the condition moved from...
10612 (cselib_process_insn): ... here holds.
10614 2014-03-05 Jakub Jelinek <jakub@redhat.com>
10617 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
10618 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
10621 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
10622 (TM_H): Add x86-tune.def.
10624 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10626 * config/aarch64/aarch64.c (generic_tunings):
10627 Use cortexa57_extra_costs.
10629 2014-03-05 Jakub Jelinek <jakub@redhat.com>
10632 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
10633 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
10634 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
10637 2014-03-04 Heiher <r@hev.cc>
10639 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
10640 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
10642 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
10644 * config/i386/predicates.md (const2356_operand): Change to ...
10645 (const2367_operand): ... this.
10646 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
10648 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
10649 (*avx512pf_scatterpf<mode>sf): Ditto.
10650 (avx512pf_scatterpf<mode>df): Ditto.
10651 (*avx512pf_scatterpf<mode>df_mask): Ditto.
10652 (*avx512pf_scatterpf<mode>df): Ditto.
10653 * config/i386/i386.c (ix86_expand_builtin): Update
10654 incorrect hint operand error message.
10656 2014-03-04 Richard Biener <rguenther@suse.de>
10658 * lto-section-in.c (lto_get_section_data): Fix const cast.
10660 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
10662 * tree-streamer.c (record_common_node): Assert we don't record
10663 nodes with type double.
10664 (preload_common_node): Skip type double, complex double and double
10665 pointer since it is now frontend dependent due to fshort-double option.
10667 2014-03-04 Richard Biener <rguenther@suse.de>
10670 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
10671 (lto_input_toplevel_asms): Likewise.
10672 * lto-section-in.c (lto_get_section_data): Instead do it here
10675 2014-03-04 Richard Biener <rguenther@suse.de>
10677 PR tree-optimization/60382
10678 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
10679 dead PHIs a reduction.
10681 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
10683 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
10685 (_mm_prefetch): Move out of GCC target("sse") pragma.
10686 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
10687 GCC target("prfchw") pragma.
10688 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
10690 * config/i386/i386.c (ix86_option_override_internal): Enable
10691 -mprfchw with -mprefetchwt1.
10693 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
10695 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
10698 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
10700 * opts.h (CL_PCH_IGNORE): Define.
10701 * targhooks.c (option_affects_pch_p):
10702 Return false for options that have CL_PCH_IGNORE set.
10703 * opt-functions.awk: Process PchIgnore.
10704 * doc/options.texi: Document PchIgnore.
10706 * config/arc/arc.opt (misize): Add PchIgnore property.
10708 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10710 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
10711 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
10712 constraint on constants to permit them being loaded into
10713 GENERAL_REGS or BASE_REGS.
10715 2014-03-03 Nick Clifton <nickc@redhat.com>
10717 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
10718 anti-cacnonical alternatives.
10719 (negandhi3_real): New pattern.
10720 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
10722 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10724 * config/avr/avr-mcus.def: Remove atxmega16x1.
10725 * config/avr/avr-tables.opt: Regenerate.
10726 * config/avr/t-multilib: Regenerate.
10727 * doc/avr-mmcu.texi: Regenerate.
10729 2014-03-03 Tobias Grosser <tobias@grosser.es>
10730 Mircea Namolaru <mircea.namolaru@inria.fr>
10732 PR tree-optimization/58028
10733 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
10736 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10738 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
10739 not handled by recognizers.
10741 2014-03-03 Jakub Jelinek <jakub@redhat.com>
10743 PR middle-end/60175
10744 * function.c (expand_function_end): Don't emit
10745 clobber_return_register sequence if clobber_after is a BARRIER.
10746 * cfgexpand.c (construct_exit_block): Append instructions before
10747 return_label to prev_bb.
10749 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10751 * config/rs6000/constraints.md: Document reserved use of "wc".
10753 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
10756 * ipa.c (function_and_variable_visibility): When dissolving comdat
10757 group, also set all symbols to local.
10759 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
10764 2013-12-14 Jan Hubicka <jh@suse.cz>
10765 PR middle-end/58477
10766 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
10768 2014-03-02 Jon Beniston <jon@beniston.com>
10774 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
10775 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
10776 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
10777 (simple_return, *simple_return): New patterns
10778 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
10779 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
10781 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
10783 * dwarf2out.c (gen_subprogram_die): Tidy.
10785 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
10788 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
10789 (*mov_t_msb_neg_negc): ... this new insn.
10791 2014-02-28 Jason Merrill <jason@redhat.com>
10794 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
10797 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
10800 * dwarf2out.c (decltype_auto_die): New static.
10801 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
10802 (gen_type_die_with_usage): Handle 'decltype(auto)'.
10803 (is_cxx_auto): Likewise.
10805 2014-02-28 Ian Bolton <ian.bolton@arm.com>
10807 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
10808 we are not using general regs only.
10810 2014-02-28 Richard Biener <rguenther@suse.de>
10813 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
10814 previous fix and only allow to remove trivial pre-headers
10815 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
10816 (remove_forwarder_block): Properly update the latch of a loop.
10818 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
10821 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
10822 (cselib_preserved_hash_table): New.
10823 (preserve_constants_and_equivs): Move preserved vals to it.
10824 (cselib_find_slot): Look it up first.
10825 (cselib_init): Initialize it.
10826 (cselib_finish): Release it.
10827 (dump_cselib_table): Dump it.
10829 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
10832 * cselib.c (remove_useless_values): Skip to avoid quadratic
10833 behavior if the condition moved from...
10834 (cselib_process_insn): ... here holds.
10836 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
10839 * var-tracking.c (vt_initialize): Apply the same condition to
10840 preserve the CFA base value.
10842 2014-02-28 Joey Ye <joey.ye@arm.com>
10845 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
10846 if reload in progress or completed.
10848 2014-02-28 Tobias Burnus <burnus@net-b.de>
10850 PR middle-end/60147
10851 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
10854 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
10856 * doc/tm.texi.in (Condition Code Status): Update documention for
10857 relative locations of cc0-setter and cc0-user.
10859 2014-02-27 Jeff Law <law@redhat.com>
10861 PR rtl-optimization/52714
10862 * combine.c (try_combine): When splitting an unrecognized PARALLEL
10863 into two independent simple sets, if I3 is a jump, ensure the
10864 pattern we place into I3 is a (set (pc) ...).
10866 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
10867 Jeff Law <law@redhat.com>
10869 PR rtl-optimization/49847
10870 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
10871 are in different blocks.
10872 * doc/tm.texi (Condition Code Status): Update documention for
10873 relative locations of cc0-setter and cc0-user.
10875 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
10878 * lra.c (lra_emit_add): Check SUBREG too.
10880 2014-02-27 Andreas Schwab <schwab@suse.de>
10882 * config/m68k/m68k.c (m68k_option_override): Disable
10883 -flive-range-shrinkage for classic m68k.
10884 (m68k_override_options_after_change): Likewise.
10886 2014-02-27 Marek Polacek <polacek@redhat.com>
10888 PR middle-end/59223
10889 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
10890 -Wmaybe-uninitialized.
10892 2014-02-27 Alan Modra <amodra@gmail.com>
10895 * reload1.c (emit_input_reload_insns): When reload_override_in,
10896 set old to rl->in_reg when rl->in_reg is a subreg.
10898 2014-02-26 Richard Biener <rguenther@suse.de>
10901 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
10903 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
10905 * common/config/i386/predicates.md (const1256_operand): Remove.
10906 (const2356_operand): New.
10907 (const_1_to_2_operand): Remove.
10908 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
10909 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
10910 (*avx512pf_gatherpf<mode>sf): Ditto.
10911 (avx512pf_gatherpf<mode>df): Ditto.
10912 (*avx512pf_gatherpf<mode>df_mask): Ditto.
10913 (*avx512pf_gatherpf<mode>df): Ditto.
10914 (avx512pf_scatterpf<mode>sf): Ditto.
10915 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
10916 (*avx512pf_scatterpf<mode>sf): Ditto.
10917 (avx512pf_scatterpf<mode>df): Ditto.
10918 (*avx512pf_scatterpf<mode>df_mask): Ditto.
10919 (*avx512pf_scatterpf<mode>df): Ditto.
10920 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
10922 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
10924 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
10925 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
10926 (_mm512_mask_testn_epi64_mask): Move to ...
10927 * config/i386/avx512cdintrin.h: Here.
10928 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
10929 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
10930 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
10931 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
10932 TARGET_AVX512F from TARGET_AVX512CD.
10934 2014-02-26 Richard Biener <rguenther@suse.de>
10937 * ipa.c (walk_polymorphic_call_targets): Properly guard
10938 call to inline_update_overall_summary.
10940 2014-02-26 Bin Cheng <bin.cheng@arm.com>
10943 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
10944 and latches only if requested. Fix latch if it is removed.
10945 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
10946 LOOPS_HAVE_PREHEADERS.
10948 2014-02-25 Andrew Pinski <apinski@cavium.com>
10950 * builtins.c (expand_builtin_thread_pointer): Create a new target
10951 when the target is NULL.
10953 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
10955 PR rtl-optimization/60317
10956 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
10957 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
10958 * lra-assigns.c: Include params.h.
10959 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
10960 other reload pseudos considerations.
10962 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10964 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
10965 to use canonical form for nor<mode>3.
10967 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10970 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
10973 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
10975 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
10976 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
10977 (ix86_handle_option): Handle OPT_mprefetchwt1.
10978 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
10979 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
10981 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10982 OPTION_MASK_ISA_PREFETCHWT1.
10983 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
10984 (PTA_PREFETCHWT1): New.
10985 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
10986 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
10987 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
10988 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
10989 (*prefetch_avx512pf_<mode>_: Change into ...
10990 (*prefetch_prefetchwt1_<mode>: This.
10991 * config/i386/i386.opt (mprefetchwt1): New.
10992 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
10993 (_mm_prefetch): Handle intent to write.
10994 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
10996 2014-02-25 Richard Biener <rguenther@suse.de>
10998 PR middle-end/60291
10999 * emit-rtl.c (mem_attrs_htab): Remove.
11000 (mem_attrs_htab_hash): Likewise.
11001 (mem_attrs_htab_eq): Likewise.
11002 (set_mem_attrs): Always allocate new mem-attrs when something changed.
11003 (init_emit_once): Do not allocate mem_attrs_htab.
11005 2014-02-25 Richard Biener <rguenther@suse.de>
11008 * lto-opts.c (lto_write_options): Output non-explicit conservative
11009 -fwrapv, -fno-trapv and -fno-strict-overflow.
11010 * lto-wrapper.c (merge_and_complain): Handle merging those options.
11011 (run_gcc): And pass them through.
11013 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
11015 * sel-sched.c (calculate_new_fences): New parameter ptime.
11016 Calculate it as a maximum over all fence cycles.
11017 (sel_sched_region_2): Adjust the call to calculate_new_fences.
11018 Print the final schedule timing when sched_verbose.
11020 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
11022 PR rtl-optimization/60292
11023 * sel-sched.c (fill_vec_av_set): Do not reset target availability
11024 bit fot the fence instruction.
11026 2014-02-24 Alangi Derick <alangiderick@gmail.com>
11028 * calls.h: Fix typo in comment.
11030 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
11032 * config/pa/pa.c (pa_output_move_double): Don't valididate when
11033 adjusting offsetable addresses.
11035 2014-02-24 Guozhi Wei <carrot@google.com>
11037 * sparseset.h (sparseset_pop): Fix the wrong index.
11039 2014-02-24 Walter Lee <walt@tilera.com>
11041 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
11042 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
11044 * common/config/tilegx/tilegx-common.c
11045 (TARGET_DEFAULT_TARGET_FLAGS): Define.
11046 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
11047 (LINK_SPEC): Ditto.
11048 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
11049 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
11050 (tilegx_gimplify_va_arg_expr): Handle big endian.
11051 (tilegx_expand_unaligned_load): Ditto.
11052 (tilegx_expand_unaligned_store): Ditto.
11053 (TARGET_RETURN_IN_MSB): New.
11054 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
11055 (TARGET_ENDIAN_DEFAULT): New.
11056 (TARGET_BIG_ENDIAN): Handle big endian.
11057 (BYTES_BIG_ENDIAN): Ditto.
11058 (WORDS_BIG_ENDIAN): Ditto.
11059 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
11060 (ENDIAN_SPEC): New.
11061 (EXTRA_SPECS): New.
11062 * config/tilegx/tilegx.md (extv): Handle big endian.
11064 (insn_st<n>): Ditto.
11065 (insn_st<n>_add<bitsuffix>): Ditto.
11066 (insn_stnt<n>): Ditto.
11067 (insn_stnt<n>_add<bitsuffix>):Ditto.
11068 (vec_interleave_highv8qi): Handle big endian.
11069 (vec_interleave_highv8qi_be): New.
11070 (vec_interleave_highv8qi_le): New.
11071 (insn_v1int_h): Handle big endian.
11072 (vec_interleave_lowv8qi): Handle big endian.
11073 (vec_interleave_lowv8qi_be): New.
11074 (vec_interleave_lowv8qi_le): New.
11075 (insn_v1int_l): Handle big endian.
11076 (vec_interleave_highv4hi): Handle big endian.
11077 (vec_interleave_highv4hi_be): New.
11078 (vec_interleave_highv4hi_le): New.
11079 (insn_v2int_h): Handle big endian.
11080 (vec_interleave_lowv4hi): Handle big endian.
11081 (vec_interleave_lowv4hi_be): New.
11082 (vec_interleave_lowv4hi_le): New.
11083 (insn_v2int_l): Handle big endian.
11084 (vec_interleave_highv2si): Handle big endian.
11085 (vec_interleave_highv2si_be): New.
11086 (vec_interleave_highv2si_le): New.
11087 (insn_v4int_h): Handle big endian.
11088 (vec_interleave_lowv2si): Handle big endian.
11089 (vec_interleave_lowv2si_be): New.
11090 (vec_interleave_lowv2si_le): New.
11091 (insn_v4int_l): Handle big endian.
11092 * config/tilegx/tilegx.opt (mbig-endian): New option.
11093 (mlittle-endian): New option.
11094 * doc/install.texi: Document tilegxbe-linux.
11095 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
11097 2014-02-24 Martin Jambor <mjambor@suse.cz>
11100 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
11101 there are no parameter descriptors.
11103 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
11105 PR rtl-optimization/60268
11106 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
11107 initialization to ...
11108 (sched_rgn_init): ... here.
11109 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
11111 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11113 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
11116 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11118 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
11121 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11123 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
11124 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
11126 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11128 * config/microblaze/predicates.md: Add cmp_op predicate.
11129 * config/microblaze/microblaze.md: Add branch_compare instruction
11130 which uses cmp_op predicate and emits cmp insn before branch.
11131 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
11132 to microblaze_expand_conditional_branch and consolidate logic.
11133 (microblaze_expand_conditional_branch): emit branch_compare
11134 insn instead of handling cmp op separate from branch insn.
11136 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11138 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
11141 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11143 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
11144 define_insn with define_expand and new define_insn
11145 *altivec_lve<VI_char>x_internal.
11146 (altivec_stve<VI_char>x): Replace define_insn with define_expand
11147 and new define_insn *altivec_stve<VI_char>x_internal.
11148 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
11150 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
11152 (altivec_expand_stvex_be): New function.
11154 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
11156 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
11157 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
11158 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
11159 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
11161 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
11164 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
11165 instead of emit_move_insn.
11167 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11169 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
11170 vspltw with vsldoi.
11171 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
11172 gen_altivec_vsumsws.
11174 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11176 * config/rs6000/altivec.md (altivec_lvxl): Rename as
11177 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
11178 (altivec_lvxl_<mode>): New define_expand incorporating
11179 -maltivec=be semantics where needed.
11180 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
11181 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
11182 semantics where needed.
11183 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
11184 (altivec_stvx_<mode>): New define_expand incorporating
11185 -maltivec=be semantics where needed.
11186 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
11187 VM2 iterator instead of V4SI.
11188 (altivec_stvxl_<mode>): New define_expand incorporating
11189 -maltivec=be semantics where needed.
11190 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
11191 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
11192 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
11193 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
11194 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
11195 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
11196 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
11197 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
11198 ALTIVEC_BUILTIN_STVXL.
11199 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
11200 (altivec_expand_stvx_be): Likewise.
11201 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
11202 (altivec_expand_lvx_be): Likewise.
11203 (altivec_expand_stvx_be): Likewise.
11204 (altivec_expand_builtin): Add cases for
11205 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
11206 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
11207 (altivec_init_builtins): Add definitions for
11208 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
11209 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
11211 2014-02-21 Catherine Moore <clm@codesourcery.com>
11213 * doc/invoke.texi (mvirt, mno-virt): Document.
11214 * config/mips/mips.opt (mvirt): New option.
11215 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
11217 2014-02-21 Richard Biener <rguenther@suse.de>
11219 PR tree-optimization/60276
11220 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
11221 (STMT_VINFO_MIN_NEG_DIST): New macro.
11222 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
11223 STMT_VINFO_MIN_NEG_DIST.
11224 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
11225 made for negative dependence distances still hold.
11227 2014-02-21 Richard Biener <rguenther@suse.de>
11229 PR middle-end/60291
11230 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
11231 DECL_INITIAL for globals not in the current function context.
11233 2014-02-21 Jakub Jelinek <jakub@redhat.com>
11235 PR tree-optimization/56490
11236 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
11237 * tree-ssa-uninit.c: Include params.h.
11238 (compute_control_dep_chain): Add num_calls argument, return false
11239 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
11240 num_calls to recursive call.
11241 (find_predicates): Change dep_chain into normal array,
11242 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
11243 variable and adjust compute_control_dep_chain caller.
11244 (find_def_preds): Likewise.
11246 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
11248 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
11249 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
11251 2014-02-21 Nick Clifton <nickc@redhat.com>
11253 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
11254 (pushhi1): Likewise.
11255 (popqi1): Add mode to pre_dec.
11256 (pophi1): Likewise.
11258 2014-02-21 Jakub Jelinek <jakub@redhat.com>
11260 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
11261 mode for mask of V8SFmode permutation.
11263 2014-02-20 Richard Henderson <rth@redhat.com>
11266 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
11267 a new pseudo for OLDVAL.
11269 2014-02-20 Jakub Jelinek <jakub@redhat.com>
11272 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
11273 gen_reg_rtx if d->testing_p.
11274 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
11275 if d->testing_p and we will certainly return true.
11276 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
11279 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
11281 * emit-rtl.c (gen_reg_rtx): Assert that
11282 crtl->emit.regno_pointer_align_length is non-zero.
11284 2014-02-20 Richard Henderson <rth@redhat.com>
11287 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
11288 on failure the store back into EXPECT.
11290 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
11291 Sandra Loosemore <sandra@codesourcery.com>
11293 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
11294 * config/nios2/nios2.c (nios2_function_profiler): Add
11295 -fPIC (flag_pic == 2) support.
11296 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
11297 (nios2_large_offset_p): New function.
11298 (nios2_unspec_reloc_p): Move up position, update to use
11299 nios2_large_offset_p.
11300 (nios2_unspec_address): Remove function.
11301 (nios2_unspec_offset): New function.
11302 (nios2_large_got_address): New function.
11303 (nios2_got_address): Add large offset support.
11304 (nios2_legitimize_tls_address): Update usage of removed and new
11306 (nios2_symbol_binds_local_p): New function.
11307 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
11308 (nios2_legitimize_address): Update to use nios2_large_offset_p.
11309 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
11310 (nios2_print_operand): Merge H/L processing, add hiadj/lo
11311 processing for (const (unspec ...)).
11312 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
11314 2014-02-20 Richard Biener <rguenther@suse.de>
11316 * tree-cfg.c (replace_uses_by): Mark altered BBs before
11317 doing the substitution.
11318 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
11320 2014-02-20 Martin Jambor <mjambor@suse.cz>
11323 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
11324 info when checking whether lattices are bottom.
11326 2014-02-20 Richard Biener <rguenther@suse.de>
11328 PR middle-end/60221
11329 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
11332 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
11335 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
11336 parameter specifying the scaling.
11337 (inline_call): Update.
11338 (want_inline_recursively): Guard division by zero.
11339 (recursive_inlining): Update.
11340 * ipa-inline.h (clone_inlined_nodes): Update.
11342 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
11345 * config/i386/i386.c (classify_argument): Pass structures of size
11346 64 bytes or less in register.
11348 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
11349 Kirill Yukhin <kirill.yukhin@intel.com>
11351 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
11352 (_mm_rcp28_round_ss): Ditto.
11353 (_mm_rsqrt28_round_sd): Ditto.
11354 (_mm_rsqrt28_round_ss): Ditto.
11355 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
11356 (_mm_rcp14_round_ss): Ditto.
11357 (_mm_rsqrt14_round_sd): Ditto.
11358 (_mm_rsqrt14_round_ss): Ditto.
11359 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
11360 the first input operand, get rid of match_dup.
11361 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
11363 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
11365 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
11366 operand as the first input operand, set type attribute.
11367 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
11368 Set type attribute.
11369 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
11370 operand as the first input operand, set type attribute.
11372 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11374 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
11377 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
11380 * config/i386/i386.c (construct_container): Remove TFmode check
11381 for X86_64_INTEGER_CLASS.
11383 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
11386 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
11387 only when -Wpsabi is enabled.
11389 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
11392 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
11393 passing arrays in registers are the same as for structs, so remove the
11394 special case for them.
11396 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
11398 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
11399 destination type, extract only the valid bits if the source type is not
11400 integral and has a different mode.
11402 2014-02-19 Richard Biener <rguenther@suse.de>
11405 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
11408 2014-02-19 Richard Biener <rguenther@suse.de>
11411 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
11412 (ipa_modify_call_arguments): Emit an argument load explicitely and
11413 preserve virtual SSA form there and for the replacement call.
11414 Do not update SSA form nor free dominance info.
11416 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11418 * ipa.c (function_and_variable_visibility): Also clear WEAK
11419 flag when disolving COMDAT_GROUP.
11421 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11423 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
11424 * ipa-prop.c (ipa_set_jf_known_type): Return early when
11425 not devirtualizing.
11426 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
11427 do more sanity checks.
11428 (detect_type_change): Return true when giving up early.
11429 (compute_complex_assign_jump_func): Fix type parameter of
11430 ipa_set_ancestor_jf.
11431 (compute_complex_ancestor_jump_func): Likewise.
11432 (update_jump_functions_after_inlining): Fix updating of
11434 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
11436 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11438 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
11439 inline clones when edge disappears.
11441 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
11444 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
11445 Split 64-bit moves into 2 patterns. Do not allow the use of
11446 direct move for TDmode in little endian, since the decimal value
11447 has little endian bytes within a word, but the 64-bit pieces are
11448 ordered in a big endian fashion, and normal subreg's of TDmode are
11450 (mov<mode>_64bit_dm): Likewise.
11451 (movtd_64bit_nodm): Likewise.
11453 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
11455 PR tree-optimization/60174
11456 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
11457 statement of an SSA_NAME that occurs in an abnormal PHI node.
11459 2014-02-18 Jakub Jelinek <jakub@redhat.com>
11462 * final.c (SEEN_BB): Remove.
11463 (SEEN_NOTE, SEEN_EMITTED): Renumber.
11464 (final_scan_insn): Don't force_source_line on second
11465 NOTE_INSN_BASIC_BLOCK.
11467 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
11470 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
11471 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
11472 (type_natural_mode): Warn ABI change when %zmm register is not
11473 available for AVX512F vector value passing.
11475 2014-02-18 Kai Tietz <ktietz@redhat.com>
11478 * config/i386/i386.c (ix86_expand_prologue): Use value in
11479 rax register as displacement when restoring %r10 or %rax.
11480 Fix wrong offset when restoring both registers.
11482 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
11484 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
11485 assertion with conditional return.
11487 2014-02-18 Jakub Jelinek <jakub@redhat.com>
11488 Uros Bizjak <ubizjak@gmail.com>
11491 * config/i386/driver-i386.c (host_detect_local_cpu): If
11492 YMM state is not saved by the OS, also clear has_f16c. Move
11493 CPUID 0x80000001 handling before YMM state saving checking.
11495 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
11497 PR rtl-optimization/58960
11498 * haifa-sched.c (alloc_global_sched_pressure_data): New,
11499 factored out from ...
11500 (sched_init): ... here.
11501 (free_global_sched_pressure_data): New, factored out from ...
11502 (sched_finish): ... here.
11503 * sched-int.h (free_global_sched_pressure_data): Declare.
11504 * sched-rgn.c (nr_regions_initial): New static global.
11505 (haifa_find_rgns): Initialize it.
11506 (schedule_region): Disable sched-pressure for the newly
11509 2014-02-17 Richard Biener <rguenther@suse.de>
11511 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
11512 release SSA defs of pattern stmts.
11514 2014-02-17 Richard Biener <rguenther@suse.de>
11516 * tree-inline.c (expand_call_inline): Release the virtual
11517 operand defined by the call we are about to inline.
11519 2014-02-17 Richard Biener <rguenther@suse.de>
11521 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
11523 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
11524 Ilya Tocar <ilya.tocar@intel.com>
11526 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
11527 arguments order in builtin.
11528 (_mm512_permutexvar_epi64): Ditto.
11529 (_mm512_mask_permutexvar_epi64): Ditto
11530 (_mm512_maskz_permutexvar_epi32): Ditto
11531 (_mm512_permutexvar_epi32): Ditto
11532 (_mm512_mask_permutexvar_epi32): Ditto
11534 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11536 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
11537 (p8_vmrgow): Likewise.
11539 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11541 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
11544 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11547 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
11548 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
11549 into 64-bit and 32-bit moves. On 64-bit moves, add support for
11550 using direct move instructions on ISA 2.07. Also adjust
11551 instruction length for 64-bit.
11552 (mov<mode>_64bit, TFmode/TDmode): Likewise.
11553 (mov<mode>_32bit, TFmode/TDmode): Likewise.
11555 2014-02-15 Alan Modra <amodra@gmail.com>
11559 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
11560 find_replacement on parts of insn rtl that might be reloaded.
11562 2014-02-15 Richard Biener <rguenther@suse.de>
11564 PR tree-optimization/60183
11565 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
11566 (tree_ssa_phiprop): Calculate and free post-dominators.
11568 2014-02-14 Jeff Law <law@redhat.com>
11570 PR rtl-optimization/60131
11571 * ree.c (get_extended_src_reg): New function.
11572 (combine_reaching_defs): Use it rather than assuming location of REG.
11573 (find_and_remove_re): Verify first operand of extension is
11574 a REG before adding the insns to the copy list.
11576 2014-02-14 Roland McGrath <mcgrathr@google.com>
11578 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
11579 * configure: Regenerated.
11580 * config.in: Regenerated.
11581 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
11582 instead of ASM_SHORT.
11584 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
11585 Richard Earnshaw <rearnsha@arm.com>
11587 PR rtl-optimization/59535
11588 * lra-constraints.c (process_alt_operands): Encourage alternative
11589 when unassigned pseudo class is superset of the alternative class.
11590 (inherit_reload_reg): Don't inherit when optimizing for code size.
11591 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
11592 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
11593 modes not less than 4 for Thumb1.
11595 2014-02-14 Kyle McMartin <kyle@redhat.com>
11598 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
11600 2014-02-14 Richard Biener <rguenther@suse.de>
11602 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
11603 (get_frame_arg): Drop the assert with langhook types_compatible_p.
11604 Do not strip INDIRECT_REFs.
11606 2014-02-14 Richard Biener <rguenther@suse.de>
11609 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
11610 DECL_FUNCTION_SPECIFIC_TARGET.
11611 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
11612 * tree-streamer-out.c (pack_ts_target_option): Remove.
11613 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
11614 (write_ts_function_decl_tree_pointers): Do not stream
11615 DECL_FUNCTION_SPECIFIC_TARGET.
11616 * tree-streamer-in.c (unpack_ts_target_option): Remove.
11617 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
11618 (lto_input_ts_function_decl_tree_pointers): Do not stream
11619 DECL_FUNCTION_SPECIFIC_TARGET.
11621 2014-02-14 Jakub Jelinek <jakub@redhat.com>
11623 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
11624 (get_initial_def_for_induction, vectorizable_induction): Ignore
11625 debug stmts when looking for exit_phi.
11626 (vectorizable_live_operation): Fix up condition.
11628 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
11630 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
11631 nreverse() because it changes the content of original tree list.
11633 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
11635 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
11636 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
11638 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
11640 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
11641 GNU coding standards.
11643 2014-02-13 Jakub Jelinek <jakub@redhat.com>
11646 * dwarf2out.c (gen_subprogram_die): Don't call
11647 add_calling_convention_attribute if subr_die is old_die.
11649 2014-02-13 Sharad Singhai <singhai@google.com>
11651 * doc/optinfo.texi: Fix order of nodes.
11653 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
11655 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
11656 operands[2], not operands[3].
11658 2014-02-13 Richard Biener <rguenther@suse.de>
11661 * doc/install.texi (ISL): Update recommended version to 0.12.2,
11662 mention the possibility of an in-tree build.
11663 (CLooG): Update recommended version to 0.18.1, mention the
11664 possibility of an in-tree build and clarify that the ISL
11665 bundled with CLooG does not work.
11667 2014-02-13 Jakub Jelinek <jakub@redhat.com>
11670 * expr.c (compress_float_constant): If x is a hard register,
11671 extend into a pseudo and then move to x.
11673 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
11675 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
11676 caused by bad second argument to warning_at() with -mhotpatch and
11677 nested functions (e.g. with gfortran).
11679 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
11681 * opts.c (option_name): Remove "enabled by default" rider.
11683 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
11685 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
11687 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
11688 Uros Bizjak <ubizjak@gmail.com>
11691 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
11692 * configure: Regenerated.
11694 2014-02-12 Richard Biener <rguenther@suse.de>
11696 * vec.c (vec_prefix::calculate_allocation): Move as
11697 inline variant to vec.h.
11698 (vec_prefix::calculate_allocation_1): New out-of-line version.
11699 * vec.h (vec_prefix::calculate_allocation_1): Declare.
11700 (vec_prefix::m_has_auto_buf): Rename to ...
11701 (vec_prefix::m_using_auto_storage): ... this.
11702 (vec_prefix::calculate_allocation): Inline the easy cases
11703 and dispatch to calculate_allocation_1 which doesn't need the
11705 (va_heap::reserve): Use gcc_checking_assert.
11706 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
11707 m_using_auto_storage.
11708 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
11710 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
11711 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
11712 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
11714 2014-02-12 Richard Biener <rguenther@suse.de>
11716 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
11717 when we found a dependence.
11719 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
11721 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
11723 (maybe_fold_stmt): ... into this new function.
11724 * omp-low.c (lower_omp): Update comment.
11726 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
11729 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
11732 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
11734 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
11735 identifiers in comments.
11736 (cortexa53_extra_costs): Likewise.
11737 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
11738 (cortexa7_extra_costs): Likewise.
11739 (cortexa12_extra_costs): Likewise.
11740 (cortexa15_extra_costs): Likewise.
11741 (v7m_extra_costs): Likewise.
11743 2014-02-12 Richard Biener <rguenther@suse.de>
11745 PR middle-end/60092
11746 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
11747 of posix_memalign being successful.
11748 (lower_stmt): Restrict lowering of posix_memalign to when
11749 -ftree-bit-ccp is enabled.
11751 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11753 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
11755 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
11757 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
11759 PR rtl-optimization/60116
11760 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
11761 other_insn once the combination has been validated.
11763 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
11766 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
11768 * ipa-devirt.c: Include demangle.h
11769 (odr_violation_reported): New static variable.
11770 (add_type_duplicate): Update odr_violations.
11771 (maybe_record_node): Add completep parameter; update it.
11772 (record_target_from_binfo): Add COMPLETEP parameter;
11773 update it as needed.
11774 (possible_polymorphic_call_targets_1): Likewise.
11775 (struct polymorphic_call_target_d): Add nonconstruction_targets;
11776 rename FINAL to COMPLETE.
11777 (record_targets_from_bases): Sanity check we found the binfo;
11778 fix COMPLETEP updating.
11779 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
11780 parameter, fix computing of COMPLETEP.
11781 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
11782 at LTO time do demangling.
11783 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
11784 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
11786 (gimple_get_virt_method_for_binfo): Likewise.
11787 * gimple-fold.h (gimple_get_virt_method_for_binfo,
11788 gimple_get_virt_method_for_vtable): Update prototypes.
11790 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
11793 * genautomata.c (add_presence_absence): Fix typo with
11794 {final_}presence_list.
11796 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11799 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
11800 for VSX/Altivec vectors that land in GPR registers.
11802 2014-02-11 Richard Henderson <rth@redhat.com>
11803 Jakub Jelinek <jakub@redhat.com>
11806 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
11807 around drhs if type conversion to lacc->type is not useless.
11809 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11811 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
11813 (cortex-a57.cortex-a53): Likewise.
11814 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
11816 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11818 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
11821 2014-02-11 Renlin Li <Renlin.Li@arm.com>
11823 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
11824 add_options_for_arm_vfp3.
11826 2014-02-11 Jeff Law <law@redhat.com>
11828 PR middle-end/54041
11829 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
11830 object with an undesirable mode.
11832 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11835 * config/i386/sol2-9.h: New file.
11836 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
11837 *-*-solaris2.9*): Use it.
11839 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
11841 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
11842 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
11844 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
11846 * config/microblaze/microblaze.c: Extend mcpu version format
11848 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
11850 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
11852 2014-02-10 Richard Henderson <rth@redhat.com>
11855 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
11856 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
11857 ms-abi vs -mno-accumulate-outgoing-args.
11858 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
11859 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
11862 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
11864 PR middle-end/60080
11865 * cfgexpand.c (expand_asm_operands): Attach source location to
11866 ASM_INPUT rtx objects.
11867 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
11869 2014-02-10 Nick Clifton <nickc@redhat.com>
11871 * config/mn10300/mn10300.c (popcount): New function.
11872 (mn10300_expand_prologue): Include saved registers in stack usage
11875 2014-02-10 Jeff Law <law@redhat.com>
11877 PR middle-end/52306
11878 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
11879 when changing the SET_DEST of a prior insn to avoid an input reload.
11881 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11883 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
11884 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
11885 -mcall-openbsd, or -mcall-linux.
11886 (CC1_ENDIAN_BIG_SPEC): Remove.
11887 (CC1_ENDIAN_LITTLE_SPEC): Remove.
11888 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
11889 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
11890 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
11891 and %cc1_endian_default.
11892 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
11894 2014-02-10 Richard Biener <rguenther@suse.de>
11896 PR tree-optimization/60115
11897 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
11898 MEM_REF handling. Properly verify that the accesses are not
11899 out of the objects bound.
11901 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11903 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
11906 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
11908 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
11909 proper constants and fix formatting.
11910 (possible_polymorphic_call_targets): Fix formatting.
11912 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
11913 Ilya Tocar <ilya.tocar@intel.com>
11915 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
11916 (_mm512_loadu_epi32): Renamed into...
11917 (_mm512_loadu_si512): This.
11918 (_mm512_storeu_epi32): Renamed into...
11919 (_mm512_storeu_si512): This.
11920 (_mm512_maskz_ceil_ps): Removed.
11921 (_mm512_maskz_ceil_pd): Ditto.
11922 (_mm512_maskz_floor_ps): Ditto.
11923 (_mm512_maskz_floor_pd): Ditto.
11924 (_mm512_floor_round_ps): Ditto.
11925 (_mm512_floor_round_pd): Ditto.
11926 (_mm512_ceil_round_ps): Ditto.
11927 (_mm512_ceil_round_pd): Ditto.
11928 (_mm512_mask_floor_round_ps): Ditto.
11929 (_mm512_mask_floor_round_pd): Ditto.
11930 (_mm512_mask_ceil_round_ps): Ditto.
11931 (_mm512_mask_ceil_round_pd): Ditto.
11932 (_mm512_maskz_floor_round_ps): Ditto.
11933 (_mm512_maskz_floor_round_pd): Ditto.
11934 (_mm512_maskz_ceil_round_ps): Ditto.
11935 (_mm512_maskz_ceil_round_pd): Ditto.
11936 (_mm512_expand_pd): Ditto.
11937 (_mm512_expand_ps): Ditto.
11938 * config/i386/i386.c (ix86_builtins): Remove
11939 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
11940 (bdesc_args): Ditto.
11941 * config/i386/predicates.md (const1256_operand): New.
11942 (const_1_to_2_operand): Ditto.
11943 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
11944 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
11945 (*avx512pf_gatherpf<mode>sf): Ditto.
11946 (avx512pf_gatherpf<mode>df): Ditto.
11947 (*avx512pf_gatherpf<mode>df_mask): Ditto.
11948 (*avx512pf_gatherpf<mode>df): Ditto.
11949 (avx512pf_scatterpf<mode>sf): Ditto.
11950 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
11951 (*avx512pf_scatterpf<mode>sf): Ditto.
11952 (avx512pf_scatterpf<mode>df): Ditto.
11953 (*avx512pf_scatterpf<mode>df_mask): Ditto.
11954 (*avx512pf_scatterpf<mode>df): Ditto.
11955 (avx512f_expand<mode>): Removed.
11956 (<shift_insn><mode>3<mask_name>): Change predicate type.
11958 2014-02-08 Jakub Jelinek <jakub@redhat.com>
11960 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
11961 not at the end of datarefs vector use ordered_remove to avoid
11962 reordering datarefs vector.
11965 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
11966 mark local addressable non-static vars as GOVD_PRIVATE
11967 instead of GOVD_LOCAL.
11968 * omp-low.c (lower_omp_for): Move gimple_bind_vars
11969 and BLOCK_VARS of gimple_bind_block to new_stmt rather
11972 PR middle-end/60092
11973 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
11974 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
11975 assume_aligned or alloc_align attributes.
11976 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
11977 arguments. Handle also assume_aligned and alloc_align attributes.
11978 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
11979 calls to functions with assume_aligned or alloc_align attributes.
11980 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
11982 2014-02-08 Terry Guo <terry.guo@arm.com>
11984 * doc/invoke.texi: Document ARM -march=armv7e-m.
11986 2014-02-08 Jakub Jelinek <jakub@redhat.com>
11988 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
11989 flag on __cilkrts_rethrow builtin.
11992 * ipa-cp.c (determine_versionability): Fail at -O0
11993 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
11994 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
11997 2014-02-04 Jakub Jelinek <jakub@redhat.com>
12000 * tree-inline.c (copy_forbidden): Fail for
12001 __attribute__((optimize (0))) functions.
12003 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
12005 * varpool.c: Include pointer-set.h.
12006 (varpool_remove_unreferenced_decls): Variables in other partitions
12007 will not be output; be however careful to not lose information
12008 about partitioning.
12010 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
12012 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
12013 lookup in the vtable constructor.
12015 2014-02-07 Jeff Law <law@redhat.com>
12018 * config/m68k/m68k.md (ashldi_extsi): Turn into a
12019 define_insn_and_split.
12021 * ipa-inline.c (inline_small_functions): Fix typos.
12023 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12025 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
12026 (s390_can_use_return_insn): Declare.
12027 * config/s390/s390.h (EPILOGUE_USES): Define.
12028 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
12030 (s390_chunkify_start): Handle return JUMP_LABELs.
12031 (s390_early_mach): Emit a main_pool instruction on the entry edge.
12032 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
12033 (s390_can_use_return_insn): New functions.
12034 (s390_fix_long_loop_prediction): Handle conditional returns.
12035 (TARGET_SET_UP_BY_PROLOGUE): Define.
12036 * config/s390/s390.md (ANY_RETURN): New code iterator.
12037 (*creturn, *csimple_return, return, simple_return): New patterns.
12039 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12041 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
12042 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
12043 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
12044 REG_CFA_RESTORE list when deciding not to restore a register.
12046 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12048 * config/s390/s390.c: Include tree-pass.h and context.h.
12049 (s390_early_mach): New function, split out from...
12050 (s390_emit_prologue): ...here.
12051 (pass_data_s390_early_mach): New pass structure.
12052 (pass_s390_early_mach): New class.
12053 (s390_option_override): Create and register early_mach pass.
12054 Move to end of file.
12056 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12058 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
12059 to match for the exit block.
12061 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12063 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
12064 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
12065 Reject misaligned operands.
12067 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12069 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
12071 2014-02-07 Richard Biener <rguenther@suse.de>
12073 PR middle-end/60092
12074 * gimple-low.c (lower_builtin_posix_memalign): New function.
12075 (lower_stmt): Call it to lower posix_memalign in a way
12076 to make alignment info accessible.
12078 2014-02-07 Jakub Jelinek <jakub@redhat.com>
12081 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
12082 __builtin_setjmp_receiver.
12084 2014-02-07 Richard Biener <rguenther@suse.de>
12086 PR middle-end/60092
12087 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
12088 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
12089 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12090 Handle BUILT_IN_POSIX_MEMALIGN.
12091 (find_func_clobbers): Likewise.
12092 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12093 (call_may_clobber_ref_p_1): Likewise.
12095 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12098 * ipa-devirt.c (record_target_from_binfo): Remove overactive
12101 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12104 * lto-cgraph.c (lto_output_node): Use
12105 symtab_get_symbol_partitioning_class.
12106 (lto_output_varpool_node): likewise.
12107 (symtab_get_symbol_partitioning_class): Move here from
12108 lto/lto-partition.c
12109 * cgraph.h (symbol_partitioning_class): Likewise.
12110 (symtab_get_symbol_partitioning_class): Declare.
12112 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12114 * ggc.h (ggc_internal_cleared_alloc): New macro.
12115 * vec.h (vec_safe_copy): Handle memory stats.
12116 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
12117 * target-globals.c (save_target_globals): Likewise.
12119 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12122 * expr.c (emit_move_resolve_push): Export; be bit more selective
12123 on when to clear alias set.
12124 * expr.h (emit_move_resolve_push): Declare.
12125 * function.h (struct function): Add tail_call_marked.
12126 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
12127 * config/i386/i386-protos.h (ix86_expand_push): Remove.
12128 * config/i386/i386.md (TImode move expander): De not call
12130 (FP push expanders): Preserve memory attributes.
12131 * config/i386/sse.md (push<mode>1): Remove.
12132 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
12133 (ix86_expand_push): Remove.
12134 * config/i386/mmx.md (push<mode>1): Remove.
12136 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12138 PR rtl-optimization/60030
12139 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
12140 lopart with paradoxical subreg before shifting it up by hprec.
12142 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12144 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
12145 Remove extra newline at end of file.
12146 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
12147 (arm_issue_rate): Handle cortexa57.
12148 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
12149 (cortex-a57.cortex-a53): Likewise.
12151 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12154 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
12155 don't record in REG_FRAME_RELATED_EXPR registers not set in that
12157 (arm_expand_prologue): Adjust all callers.
12158 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
12159 info, registers also at the lowest numbered registers side. Use
12160 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
12164 * var-tracking.c (adjust_mems): Before adding a SET to
12165 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
12167 2014-02-06 Alan Modra <amodra@gmail.com>
12170 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
12171 change SDmode to DDmode when lra_in_progress.
12173 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12175 PR middle-end/59150
12176 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
12177 free_data_ref on the dr first, and before goto again also set dr
12178 to the next dr. For simd_lane_access, free old datarefs[i] before
12179 overwriting it. For get_vectype_for_scalar_type failure, don't
12180 free_data_ref if simd_lane_access.
12182 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
12185 * tree.h (opts_for_fn): New inline function.
12186 (opt_for_fn): Define.
12187 * config/i386/i386.c (ix86_function_regparm): Use
12188 opt_for_fn (decl, optimize) instead of optimize.
12190 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
12192 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
12193 for SYMBOL_REF in large memory model.
12195 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12197 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
12198 and crypto support.
12199 (cortex-a57): Likewise.
12200 (cortex-a57.cortex-a53): Likewise.
12202 2014-02-06 Yury Gribov <y.gribov@samsung.com>
12203 Kugan Vivekanandarajah <kuganv@linaro.org>
12205 * config/arm/arm.c (arm_vector_alignment_reachable): Check
12207 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
12209 2014-02-06 Richard Biener <rguenther@suse.de>
12211 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
12212 set_loop_copy and initialize_original_copy_tables.
12214 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
12216 * config/aarch64/aarch64-simd.md
12217 (aarch64_ashr_simddi): Change QI to SI.
12219 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
12220 Jakub Jelinek <jakub@redhat.com>
12222 PR middle-end/60013
12223 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
12226 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12228 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
12229 CODE_FOR_altivec_vpku[hw]um to
12230 CODE_FOR_altivec_vpku[hw]um_direct.
12231 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
12232 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
12233 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
12234 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
12236 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12238 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
12239 generation for -maltivec=be.
12240 (altivec_vsumsws): Simplify redundant test.
12242 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12244 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
12245 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
12246 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
12247 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
12248 gen_altivec_vpkuwum.
12249 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
12251 (altivec_vpks<VI_char>ss): Likewise.
12252 (altivec_vpks<VI_char>us): Likewise.
12253 (altivec_vpku<VI_char>us): Likewise.
12254 (altivec_vpku<VI_char>um): Likewise.
12255 (altivec_vpku<VI_char>um_direct): New (copy of
12256 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
12258 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
12259 target is little endian and -maltivec=be is not specified.
12260 (*altivec_vupkhs<VU_char>_direct): New (copy of
12261 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
12262 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
12263 target is little endian and -maltivec=be is not specified.
12264 (*altivec_vupkls<VU_char>_direct): New (copy of
12265 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
12266 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
12267 little endian and -maltivec=be is not specified.
12268 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
12269 little endian and -maltivec=be is not specified.
12271 2014-02-05 Richard Henderson <rth@redhat.com>
12274 * combine-stack-adj.c: Revert r206943.
12275 * sched-int.h (struct deps_desc): Add last_args_size.
12276 * sched-deps.c (init_deps): Initialize it.
12277 (sched_analyze_insn): Add OUTPUT dependencies between insns that
12278 contain REG_ARGS_SIZE notes.
12280 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
12282 * lto-cgraph.c (asm_nodes_output): Make global.
12283 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
12284 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
12285 (driver_handle_option): Handle OPT_fwpa.
12287 2014-02-05 Jakub Jelinek <jakub@redhat.com>
12290 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
12291 a comment typo and formatting issue. If odr_hash hasn't been
12292 created, return vNULL and set *completep to false.
12294 PR middle-end/57499
12295 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
12296 bb with no successors.
12298 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
12301 * doc/invoke.texi (-march): Clarify documentation for ARM.
12302 (-mtune): Likewise.
12305 2014-02-05 Richard Biener <rguenther@suse.de>
12307 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
12308 when not vectorizing because of too many alias checks.
12309 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12310 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
12312 2014-02-05 Nick Clifton <nickc@redhat.com>
12314 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
12315 accept extended registers in any mode when compiling for the MN10300.
12317 2014-02-05 Yury Gribov <y.gribov@samsung.com>
12319 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
12320 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
12321 sanitization attributes.
12322 (can_inline_edge_p): Likewise.
12323 (sanitize_attrs_match_for_inline_p): New function.
12325 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12327 * ipa-prop.c (detect_type_change): Shor circuit testing of
12328 type changes on THIS pointer.
12330 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
12333 * config/pa/pa.c (legitimize_tls_address): Return original address
12334 if not passed a SYMBOL_REF rtx.
12335 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
12337 (pa_emit_move_sequence): Simplify TLS source operands.
12338 (pa_legitimate_constant_p): Reject all TLS constants.
12339 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
12340 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
12342 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12344 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
12345 groups when we know they are controlled by LTO.
12346 * varasm.c (default_binds_local_p_1): If object is in other partition,
12347 it will be resolved locally.
12349 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
12351 * config/host-linux.c (linux_gt_pch_use_address): Don't
12352 use SSIZE_MAX because it is not always defined.
12354 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
12357 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
12358 threshold for pseudo splitting.
12359 (update_ebb_live_info): Process call argument hard registers and
12360 hard registers from insn definition too.
12361 (max_small_class_regs_num): New constant.
12362 (inherit_in_ebb): Update live hard regs through EBBs. Update
12363 reloads_num only for small register classes. Don't split for
12366 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
12369 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
12372 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12374 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
12375 visibility is safe.
12377 2014-02-04 Marek Polacek <polacek@redhat.com>
12379 * gdbinit.in (pel): Define.
12381 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
12383 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
12386 2014-02-04 Richard Biener <rguenther@suse.de>
12389 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
12390 in function context local.
12391 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
12392 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
12393 similar to LTO_imported_decl_ref.
12395 2014-02-04 Jakub Jelinek <jakub@redhat.com>
12397 PR tree-optimization/60002
12398 * cgraphclones.c (build_function_decl_skip_args): Clear
12399 DECL_LANG_SPECIFIC.
12401 PR tree-optimization/60023
12402 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
12403 false to gsi_replace.
12404 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
12405 has been in some EH region and vec_stmt could throw, add
12406 vec_stmt into the same EH region.
12407 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
12408 has no lhs, ignore it.
12409 * internal-fn.c (expand_MASK_LOAD): Likewise.
12412 * tree-inline.c (copy_forbidden): Fail for
12413 __attribute__((optimize (0))) functions.
12416 * omp-low.c (simd_clone_struct_copy): If from->inbranch
12417 is set, copy one less argument.
12418 (expand_simd_clones): Don't subtract clone_info->inbranch
12419 from simd_clone_struct_alloc argument.
12421 PR rtl-optimization/57915
12422 * recog.c (simplify_while_replacing): If all unary/binary/relational
12423 operation arguments are constant, attempt to simplify those.
12425 PR middle-end/59261
12426 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
12427 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
12429 2014-02-04 Richard Biener <rguenther@suse.de>
12431 PR tree-optimization/60012
12432 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
12433 TBAA disambiguation to all DDRs.
12435 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12438 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
12439 (LINK_SPEC): Use it for -shared, -shared-libgcc.
12441 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12444 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
12446 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12448 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
12449 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
12451 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12454 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
12455 to figure out targets of polymorphic calls with known decl.
12456 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12457 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
12458 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
12459 (get_polymorphic_call_info): ... here.
12460 (get_polymorphic_call_info_from_invariant): New function.
12462 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12464 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
12465 lookup via vtable pointer; check for type consistency
12466 and turn inconsitent facts into UNREACHABLE.
12467 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12468 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
12469 type inconsistent querries; return UNREACHABLE instead.
12471 2014-02-03 Richard Henderson <rth@twiddle.net>
12474 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
12475 already processed this node.
12476 (normalize_one_pred_1): Pass along mark_set.
12477 (normalize_one_pred): Create and destroy a pointer_set_t.
12478 (normalize_one_pred_chain): Likewise.
12480 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
12482 PR gcov-profile/58602
12483 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
12485 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12488 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
12489 -fno-devirtualize; try to devirtualize by the knowledge of
12490 virtual table pointer given by aggregate propagation.
12491 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12492 (ipa_print_node_jump_functions): Dump also offset that
12493 is relevant for polymorphic calls.
12494 (determine_known_aggregate_parts): Add arg_type parameter; use it
12495 instead of determining the type from pointer type.
12496 (ipa_compute_jump_functions_for_edge): Update call of
12497 determine_known_aggregate_parts.
12498 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
12499 (gimple_get_virt_method_for_binfo): ... here; simplify using
12500 vtable_pointer_value_to_vtable.
12501 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
12502 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
12503 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
12504 (vtable_pointer_value_to_vtable): Break out from ...; handle also
12506 (vtable_pointer_value_to_binfo): ... here.
12507 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
12509 2014-02-03 Teresa Johnson <tejohnson@google.com>
12511 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
12512 redef of outer loop index variable.
12514 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
12518 * doc/extend.texi (Function Attributes): Typo.
12520 2014-02-03 Cong Hou <congh@google.com>
12522 PR tree-optimization/60000
12523 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
12524 if the vectorized statement is a store. A store statement can only
12525 appear at the end of pattern statements.
12527 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
12529 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
12530 (ix86_option_override_internal): Default long double to 64-bit for
12531 32-bit Bionic and to 128-bit for 64-bit Bionic.
12533 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
12534 TARGET_LONG_DOUBLE_128 is true.
12535 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
12537 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
12538 (mlong-double-64): Negate -mlong-double-128.
12539 (mlong-double-128): New option.
12541 * config/i386/i386-c.c (ix86_target_macros): Define
12542 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
12544 * doc/invoke.texi: Document -mlong-double-128.
12546 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
12548 PR rtl-optimization/60024
12549 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
12551 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
12553 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
12555 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
12557 PR rtl-optimization/57662
12558 * sel-sched.c (code_motion_path_driver): Do not mark already not
12559 existing blocks in the visiting bitmap.
12561 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
12563 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
12564 on the insn being emitted.
12566 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
12567 Will Deacon <will.deacon@arm.com>
12569 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
12571 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12573 * config/arm/arm-tables.opt: Regenerate.
12575 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12577 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
12578 for vector types other than V16QImode.
12579 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
12580 define_expand, and call altivec_expand_vec_perm_le when producing
12581 code with little endian element order.
12582 (*altivec_vperm_<mode>_internal): New insn having previous
12583 behavior of altivec_vperm_<mode>.
12584 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
12585 altivec_expand_vec_perm_le when producing code with little endian
12587 (*altivec_vperm_<mode>_uns_internal): New insn having previous
12588 behavior of altivec_vperm_<mode>_uns.
12590 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12592 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
12593 (altivec_vsumsws): Add handling for -maltivec=be with a little
12595 (altivec_vsumsws_direct): New.
12596 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
12597 gen_altivec_vsumsws.
12599 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
12601 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
12602 vtable_pointer_value_to_binfo): New functions.
12603 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
12604 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
12606 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
12608 * config/nios2/nios2.md (load_got_register): Initialize GOT
12609 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
12610 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
12612 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
12614 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
12615 preserverd by passthrough, do not propagate the type.
12617 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12619 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
12620 (mips_atomic_assign_expand_fenv): New function.
12621 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
12623 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12625 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
12626 (__builtin_mips_set_fcsr): Likewise.
12627 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
12628 MIPS_USI_FTYPE_VOID.
12629 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
12630 (mips16_expand_set_fcsr): Likewise.
12631 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
12632 (mips16_set_fcsr_stub): Likewise.
12633 (mips16_get_fcsr_one_only_stub): New class.
12634 (mips16_set_fcsr_one_only_stub): Likewise.
12635 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
12636 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
12637 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
12638 (hard_float): New availability predicate.
12639 (mips_builtins): Add get_fcsr and set_fcsr.
12640 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
12641 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
12642 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
12643 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
12644 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
12647 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12649 * config/mips/mips.c (mips_one_only_stub): New class.
12650 (mips_need_mips16_rdhwr_p): Replace with...
12651 (mips16_rdhwr_stub): ...this new variable.
12652 (mips16_stub_call_address): New function.
12653 (mips16_rdhwr_one_only_stub): New class.
12654 (mips_expand_thread_pointer): Use mips16_stub_call_address.
12655 (mips_output_mips16_rdhwr): Delete.
12656 (mips_finish_stub): New function.
12657 (mips_code_end): Use it to handle rdhwr stubs.
12659 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
12662 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
12663 when calculating size of integer atomic types.
12665 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
12667 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
12669 2014-02-01 Jakub Jelinek <jakub@redhat.com>
12671 PR tree-optimization/60003
12672 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
12673 * profile.c (branch_prob): Use gimple_call_builtin_p
12674 to check for BUILT_IN_SETJMP_RECEIVER.
12675 * tree-inline.c (copy_bb): Call notice_special_calls.
12677 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
12680 * lra-constraints.c (process_alt_operands): Update reload_sum only
12683 2014-01-31 Richard Henderson <rth@redhat.com>
12685 PR middle-end/60004
12686 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
12687 until after else_eh is processed.
12689 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
12691 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
12692 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
12693 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
12694 in smmintrin.h, remove them.
12695 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
12696 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
12697 * config/i386/i386.md (ROUND_SAE): Fix value.
12698 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
12699 (const48_operand): New.
12700 * config/i386/subst.md (round), (round_expand): Use
12701 const_4_or_8_to_11_operand.
12702 (round_saeonly), (round_saeonly_expand): Use const48_operand.
12704 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
12706 * config/i386/constraints.md (Yk): Swap meaning with k.
12707 * config/i386/i386.md (movhi_internal): Change Yk to k.
12708 (movqi_internal): Ditto.
12709 (*k<logic><mode>): Ditto.
12712 (kandn<mode>): Ditto.
12713 (*<code>hi_1): Ditto.
12714 (*<code>qi_1): Ditto.
12715 (kxnor<mode>): Ditto.
12716 (kortestzhi): Ditto.
12717 (kortestchi): Ditto.
12719 (*one_cmplhi2_1): Ditto.
12720 (*one_cmplqi2_1): Ditto.
12721 * config/i386/sse.md (): Change k to Yk.
12722 (avx512f_load<mode>_mask): Ditto.
12723 (avx512f_blendm<mode>): Ditto.
12724 (avx512f_store<mode>_mask): Ditto.
12725 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
12726 (avx512f_storedqu<mode>_mask): Ditto.
12727 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
12729 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
12730 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
12731 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
12732 (avx512f_maskcmp<mode>3): Ditto.
12733 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
12734 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
12735 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
12736 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
12737 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
12738 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
12739 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
12740 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
12741 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
12742 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
12743 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
12744 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
12745 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
12746 (vec_extract_lo_<mode>_maskm): Ditto.
12747 (vec_extract_hi_<mode>_maskm): Ditto.
12748 (avx512f_vternlog<mode>_mask): Ditto.
12749 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
12750 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
12751 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
12752 (avx512f_<code>v8div16qi2_mask): Ditto.
12753 (avx512f_<code>v8div16qi2_mask_store): Ditto.
12754 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
12755 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
12756 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
12757 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
12758 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
12759 (*avx512pf_gatherpf<mode>df_mask): Ditto.
12760 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
12761 (*avx512pf_scatterpf<mode>df_mask): Ditto.
12762 (avx512cd_maskb_vec_dupv8di): Ditto.
12763 (avx512cd_maskw_vec_dupv16si): Ditto.
12764 (avx512f_vpermi2var<mode>3_maskz): Ditto.
12765 (avx512f_vpermi2var<mode>3_mask): Ditto.
12766 (avx512f_vpermi2var<mode>3_mask): Ditto.
12767 (avx512f_vpermt2var<mode>3_maskz): Ditto.
12768 (*avx512f_gathersi<mode>): Ditto.
12769 (*avx512f_gathersi<mode>_2): Ditto.
12770 (*avx512f_gatherdi<mode>): Ditto.
12771 (*avx512f_gatherdi<mode>_2): Ditto.
12772 (*avx512f_scattersi<mode>): Ditto.
12773 (*avx512f_scatterdi<mode>): Ditto.
12774 (avx512f_compress<mode>_mask): Ditto.
12775 (avx512f_compressstore<mode>_mask): Ditto.
12776 (avx512f_expand<mode>_mask): Ditto.
12777 * config/i386/subst.md (mask): Change k to Yk.
12778 (mask_scalar_merge): Ditto.
12781 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
12783 * doc/extend.texi (Vector Extensions): Document ?: in C++.
12785 2014-01-31 Richard Biener <rguenther@suse.de>
12787 PR middle-end/59990
12788 * builtins.c (fold_builtin_memory_op): Make sure to not
12789 use a floating-point mode or a boolean or enumeral type for
12790 the copy operation.
12792 2014-01-30 DJ Delorie <dj@redhat.com>
12794 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
12795 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
12796 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
12797 whenever main() has an epilogue.
12799 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12801 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
12802 unused variable "field".
12803 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
12804 (vsx_mergeh_<mode>): Likewise.
12805 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
12806 (altivec_vmrghh): Likewise.
12807 (altivec_vmrghw): Likewise.
12808 (altivec_vmrglb): Likewise.
12809 (altivec_vmrglh): Likewise.
12810 (altivec_vmrglw): Likewise.
12811 (altivec_vspltb): Add missing uses.
12812 (altivec_vsplth): Likewise.
12813 (altivec_vspltw): Likewise.
12814 (altivec_vspltsf): Likewise.
12816 2014-01-30 Jakub Jelinek <jakub@redhat.com>
12819 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
12820 frame related instructions.
12822 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
12824 PR rtl-optimization/59959
12825 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
12826 any reload of register whose subreg is invalid.
12828 2014-01-30 Jakub Jelinek <jakub@redhat.com>
12830 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
12831 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
12832 Add missing return type - void.
12834 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12836 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
12837 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
12838 remove element index adjustment for endian (now handled in vsx.md
12840 (altivec_expand_vec_perm_const): Use
12841 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
12842 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
12843 (vsx_xxspltw_<mode>): Adjust element index for little endian.
12844 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
12845 define_expand and a new define_insn *altivec_vspltb_internal;
12846 adjust for -maltivec=be on a little endian target.
12847 (altivec_vspltb_direct): New.
12848 (altivec_vsplth): Divide into a define_expand and a new
12849 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
12850 little endian target.
12851 (altivec_vsplth_direct): New.
12852 (altivec_vspltw): Divide into a define_expand and a new
12853 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
12854 little endian target.
12855 (altivec_vspltw_direct): New.
12856 (altivec_vspltsf): Divide into a define_expand and a new
12857 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
12858 a little endian target.
12860 2014-01-30 Richard Biener <rguenther@suse.de>
12862 PR tree-optimization/59993
12863 * tree-ssa-forwprop.c (associate_pointerplus): Check we
12864 can propagate form the earlier stmt and avoid the transform
12865 when the intermediate result is needed.
12867 2014-01-30 Alangi Derick <alangiderick@gmail.com>
12869 * README.Portability: Fix typo.
12871 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
12873 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
12874 comparison_operator with ordered_comparison_operator.
12876 2014-01-30 Nick Clifton <nickc@redhat.com>
12878 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
12879 Rename to mn10300_store_multiple_regs.
12880 * config/mn10300/mn10300.c: Likewise.
12881 * config/mn10300/mn10300.md (store_movm): Fix typo: call
12882 store_multiple_regs.
12883 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
12884 Call mn10300_store_multiple_regs.
12886 2014-01-30 Nick Clifton <nickc@redhat.com>
12887 DJ Delorie <dj@redhat.com>
12889 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
12890 %fp 2 to keep registers after it properly word-aligned.
12891 (rl78_alloc_physical_registers_umul): Handle the case where both
12892 input operands are the same.
12894 2014-01-30 Richard Biener <rguenther@suse.de>
12896 PR tree-optimization/59903
12897 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
12900 2014-01-30 Jason Merrill <jason@redhat.com>
12903 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
12906 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
12908 2014-01-30 Richard Biener <rguenther@suse.de>
12910 PR tree-optimization/59951
12911 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
12913 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
12916 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
12917 SFmode to DFmode case.
12919 2014-01-29 DJ Delorie <dj@redhat.com>
12921 * config/msp430/msp430.opt (-minrt): New.
12922 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
12924 (ENDFILE_SPEC): Likewise.
12926 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
12928 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
12929 (estimate_function_body_sizes): Use it.
12931 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
12934 * dwarf2out.c (is_cxx_auto): New.
12935 (is_base_type): Use it.
12936 (gen_type_die_with_usage): Likewise.
12938 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12940 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
12941 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
12942 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
12943 -maltivec=be with LE targets.
12944 (vsx_mergeh_<mode>): Likewise.
12945 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
12946 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
12947 (altivec_vmrghb): Replace with define_expand and new
12948 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
12949 (altivec_vmrghb_direct): New define_insn.
12950 (altivec_vmrghh): Replace with define_expand and new
12951 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
12952 (altivec_vmrghh_direct): New define_insn.
12953 (altivec_vmrghw): Replace with define_expand and new
12954 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
12955 (altivec_vmrghw_direct): New define_insn.
12956 (*altivec_vmrghsf): Adjust for endianness.
12957 (altivec_vmrglb): Replace with define_expand and new
12958 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
12959 (altivec_vmrglb_direct): New define_insn.
12960 (altivec_vmrglh): Replace with define_expand and new
12961 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
12962 (altivec_vmrglh_direct): New define_insn.
12963 (altivec_vmrglw): Replace with define_expand and new
12964 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
12965 (altivec_vmrglw_direct): New define_insn.
12966 (*altivec_vmrglsf): Adjust for endianness.
12967 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
12968 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
12969 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
12970 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
12971 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
12972 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
12973 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
12974 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
12976 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
12978 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
12979 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
12982 2014-01-29 Richard Biener <rguenther@suse.de>
12984 PR tree-optimization/58742
12985 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
12986 associate_pointerplus_align.
12987 (associate_pointerplus_diff): New function.
12988 (associate_pointerplus): Likewise. Call associate_pointerplus_align
12989 and associate_pointerplus_diff.
12991 2014-01-29 Richard Biener <rguenther@suse.de>
12993 * lto-streamer.h (LTO_major_version): Bump to 3.
12994 (LTO_minor_version): Reset to 0.
12996 2014-01-29 Renlin Li <Renlin.Li@arm.com>
12998 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
12999 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
13000 (arm_file_start): Generate correct asm header for armv7ve.
13001 * config/arm/bpabi.h: Add multilib support for armv7ve.
13002 * config/arm/driver-arm.c: Change the architectures of cortex-a7
13003 and cortex-a15 to armv7ve.
13004 * config/arm/t-aprofile: Add multilib support for armv7ve.
13005 * doc/invoke.texi: Document -march=armv7ve.
13007 2014-01-29 Richard Biener <rguenther@suse.de>
13009 PR tree-optimization/58742
13010 * tree-ssa-forwprop.c (associate_plusminus): Return true
13011 if we changed sth, defer EH cleanup to ...
13012 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
13013 (simplify_mult): New function.
13015 2014-01-29 Jakub Jelinek <jakub@redhat.com>
13017 PR middle-end/59917
13018 PR tree-optimization/59920
13019 * tree.c (build_common_builtin_nodes): Remove
13020 __builtin_setjmp_dispatcher initialization.
13021 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
13022 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
13023 instead of gsi_after_labels + manually skipping debug stmts.
13024 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
13025 ignore bbs with IFN_ABNORMAL_DISPATCHER.
13026 * tree-inline.c (copy_edges_for_bb): Remove
13027 can_make_abnormal_goto argument, instead add abnormal_goto_dest
13028 argument. Ignore computed_goto_p stmts. Don't call
13029 make_abnormal_goto_edges. If a call might need abnormal edges
13030 for non-local gotos, see if it already has an edge to
13031 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
13032 with true argument, don't do anything then, otherwise add
13033 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
13034 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
13036 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
13037 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
13038 (lower_stmt): Don't set data->calls_builtin_setjmp.
13039 (lower_builtin_setjmp): Adjust comment.
13040 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
13041 * tree-cfg.c (found_computed_goto): Remove.
13042 (factor_computed_gotos): Remove.
13043 (make_goto_expr_edges): Return bool, true for computed gotos.
13044 Don't call make_abnormal_goto_edges.
13045 (build_gimple_cfg): Don't set found_computed_goto, don't call
13046 factor_computed_gotos.
13047 (computed_goto_p): No longer static.
13048 (make_blocks): Don't set found_computed_goto.
13049 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
13050 (make_edges): If make_goto_expr_edges returns true, push bb
13051 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
13052 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
13053 vector. Record mapping between bbs and OpenMP regions if there
13054 are any, adjust make_gimple_omp_edges caller. Call
13055 handle_abnormal_edges.
13056 (make_abnormal_goto_edges): Remove.
13057 * tree-cfg.h (make_abnormal_goto_edges): Remove.
13058 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
13059 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
13060 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
13061 * internal-fn.def (ABNORMAL_DISPATCHER): New.
13062 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
13063 filling *region also set *region_idx to (*region)->entry->index.
13066 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
13067 For REGs set ORIGINAL_REGNO.
13069 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
13071 * doc/md.texi: Mention that a target shouldn't implement
13072 vec_widen_(s|u)mul_even/odd pair if it is less efficient
13075 2014-01-29 Jakub Jelinek <jakub@redhat.com>
13077 PR tree-optimization/59594
13078 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
13079 a copy of the datarefs vector rather than the vector itself.
13081 2014-01-28 Jason Merrill <jason@redhat.com>
13084 * dwarf2out.c (auto_die): New static.
13085 (gen_type_die_with_usage): Handle C++1y 'auto'.
13086 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
13089 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
13092 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
13093 (SPEC_X32): Likewise.
13094 (SPEC_64): Likewise.
13095 * config/i386/i386.c (ix86_option_override_internal): Turn off
13096 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
13098 (x86_file_start): Output .code16gcc for TARGET_16BIT.
13099 * config/i386/i386.h (TARGET_16BIT): New macro.
13100 (TARGET_16BIT_P): Likewise.
13101 * config/i386/i386.opt: Add m16.
13102 * doc/invoke.texi: Document -m16.
13104 2014-01-28 Jakub Jelinek <jakub@redhat.com>
13106 PR preprocessor/59935
13107 * input.c (location_get_source_line): Bail out on when line number
13108 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
13110 2014-01-28 Richard Biener <rguenther@suse.de>
13112 PR tree-optimization/58742
13113 * tree-ssa-forwprop.c (associate_plusminus): Handle
13114 pointer subtraction of the form (T)(P + A) - (T)P.
13116 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13118 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
13121 2014-01-28 Richard Biener <rguenther@suse.de>
13124 2014-01-28 Richard Biener <rguenther@suse.de>
13126 PR rtl-optimization/45364
13127 PR rtl-optimization/59890
13128 * var-tracking.c (local_get_addr_clear_given_value): Handle
13129 already cleared slot.
13130 (val_reset): Handle not allocated local_get_addr_cache.
13131 (vt_find_locations): Use post-order on the inverted CFG.
13133 2014-01-28 Richard Biener <rguenther@suse.de>
13135 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
13137 2014-01-28 Richard Biener <rguenther@suse.de>
13139 PR rtl-optimization/45364
13140 PR rtl-optimization/59890
13141 * var-tracking.c (local_get_addr_clear_given_value): Handle
13142 already cleared slot.
13143 (val_reset): Handle not allocated local_get_addr_cache.
13144 (vt_find_locations): Use post-order on the inverted CFG.
13146 2014-01-28 Alan Modra <amodra@gmail.com>
13148 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
13149 * configure.ac <recursive call for build != host>: Define
13150 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
13151 and LD_FOR_BUILD too.
13152 * configure: Regenerate.
13154 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
13156 * config/i386/i386.c (get_builtin_code_for_version): Separate
13157 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
13158 Broadwell from Haswell.
13160 2014-01-27 Steve Ellcey <sellcey@mips.com>
13162 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
13163 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
13164 * config/mips/mips.c (mips_option_override): Change setting
13166 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
13167 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
13168 Change from Mask to Var.
13170 2014-01-27 Jeff Law <law@redhat.com>
13172 * ipa-inline.c (inline_small_functions): Fix typo.
13174 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
13176 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
13177 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
13178 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
13179 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
13180 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
13181 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
13182 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
13183 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
13184 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
13185 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
13186 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
13187 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
13188 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
13189 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
13190 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
13191 (_mm512_storeu_epi64): Ditto.
13192 (_mm512_cmpge_epi32_mask): Ditto.
13193 (_mm512_cmpge_epu32_mask): Ditto.
13194 (_mm512_cmpge_epi64_mask): Ditto.
13195 (_mm512_cmpge_epu64_mask): Ditto.
13196 (_mm512_cmple_epi32_mask): Ditto.
13197 (_mm512_cmple_epu32_mask): Ditto.
13198 (_mm512_cmple_epi64_mask): Ditto.
13199 (_mm512_cmple_epu64_mask): Ditto.
13200 (_mm512_cmplt_epi32_mask): Ditto.
13201 (_mm512_cmplt_epu32_mask): Ditto.
13202 (_mm512_cmplt_epi64_mask): Ditto.
13203 (_mm512_cmplt_epu64_mask): Ditto.
13204 (_mm512_cmpneq_epi32_mask): Ditto.
13205 (_mm512_cmpneq_epu32_mask): Ditto.
13206 (_mm512_cmpneq_epi64_mask): Ditto.
13207 (_mm512_cmpneq_epu64_mask): Ditto.
13208 (_mm512_expand_pd): Ditto.
13209 (_mm512_expand_ps): Ditto.
13210 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
13211 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
13212 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
13213 * config/i386/i386.c (ix86_builtins): Add
13214 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
13215 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
13216 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
13217 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
13218 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
13219 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
13220 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
13221 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
13222 IX86_BUILTIN_PMOVUSQW512_MEM.
13223 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
13224 __builtin_ia32_pmovsqd512mem_mask,
13225 __builtin_ia32_pmovqd512mem_mask,
13226 __builtin_ia32_pmovusqw512mem_mask,
13227 __builtin_ia32_pmovsqw512mem_mask,
13228 __builtin_ia32_pmovqw512mem_mask,
13229 __builtin_ia32_pmovusdw512mem_mask,
13230 __builtin_ia32_pmovsdw512mem_mask,
13231 __builtin_ia32_pmovdw512mem_mask,
13232 __builtin_ia32_pmovqb512mem_mask,
13233 __builtin_ia32_pmovusqb512mem_mask,
13234 __builtin_ia32_pmovsqb512mem_mask,
13235 __builtin_ia32_pmovusdb512mem_mask,
13236 __builtin_ia32_pmovsdb512mem_mask,
13237 __builtin_ia32_pmovdb512mem_mask.
13238 (bdesc_args): Add __builtin_ia32_expanddf512,
13239 __builtin_ia32_expandsf512.
13240 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
13241 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
13242 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
13243 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
13244 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
13245 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
13246 (avx512f_<code>v8div16qi2_mask_store): This.
13247 (avx512f_expand<mode>): New.
13249 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
13251 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
13253 (_mm512_mask_prefetch_i64gather_pd): Ditto.
13254 (_mm512_prefetch_i32scatter_pd): Ditto.
13255 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
13256 (_mm512_prefetch_i64scatter_pd): Ditto.
13257 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
13258 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
13259 (_mm512_mask_prefetch_i64gather_ps): Ditto.
13260 (_mm512_prefetch_i32scatter_ps): Ditto.
13261 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
13262 (_mm512_prefetch_i64scatter_ps): Ditto.
13263 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
13264 * config/i386/i386-builtin-types.def: Define
13265 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
13266 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
13267 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
13268 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
13269 IX86_BUILTIN_SCATTERPFQPD.
13270 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
13271 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
13272 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
13273 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
13274 __builtin_ia32_scatterpfqps.
13275 (ix86_expand_builtin): Expand new built-ins.
13276 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
13277 fix memory access data type.
13278 (*avx512pf_gatherpf<mode>_mask): Ditto.
13279 (*avx512pf_gatherpf<mode>): Ditto.
13280 (avx512pf_scatterpf<mode>): Ditto.
13281 (*avx512pf_scatterpf<mode>_mask): Ditto.
13282 (*avx512pf_scatterpf<mode>): Ditto.
13283 (GATHER_SCATTER_SF_MEM_MODE): New.
13284 (avx512pf_gatherpf<mode>df): Ditto.
13285 (*avx512pf_gatherpf<mode>df_mask): Ditto.
13286 (*avx512pf_scatterpf<mode>df): Ditto.
13288 2014-01-27 Jakub Jelinek <jakub@redhat.com>
13291 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
13292 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
13295 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
13297 * common/config/arm/arm-common.c
13298 (arm_rewrite_mcpu): Handle multiple names.
13300 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
13302 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
13304 * gimple-builder.h (create_gimple_tmp): Delete.
13306 2014-01-27 Christian Bruel <christian.bruel@st.com>
13308 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
13311 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
13313 * config/pa/pa.md (call): Generate indirect long calls to non-local
13314 functions when outputing 32-bit code.
13315 (call_value): Likewise except for special call to buggy powf function.
13317 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
13318 portable runtime and PIC indirect calls.
13319 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
13320 and PIC call sequences. Use ldo instead of blr to set return register
13321 in PIC call sequence.
13323 2014-01-25 Walter Lee <walt@tilera.com>
13325 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
13326 avoid clobbering a live register.
13328 2014-01-25 Walter Lee <walt@tilera.com>
13330 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
13331 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
13332 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
13333 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
13335 2014-01-25 Walter Lee <walt@tilera.com>
13337 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
13338 arguments on even registers.
13339 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
13341 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
13342 (BIGGEST_ALIGNMENT): Ditto.
13343 (BIGGEST_FIELD_ALIGNMENT): Ditto.
13345 2014-01-25 Walter Lee <walt@tilera.com>
13347 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
13348 insns before bundling.
13349 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
13351 2014-01-25 Walter Lee <walt@tilera.com>
13353 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
13354 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
13355 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
13357 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
13359 * config/mips/constraints.md (kl): Delete.
13360 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
13361 define expands, using...
13362 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
13363 instructions for MIPS16.
13364 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
13365 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
13367 2014-01-25 Walter Lee <walt@tilera.com>
13369 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
13373 2014-01-25 Walter Lee <walt@tilera.com>
13375 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
13376 (TARGET_EXPAND_TO_RTL_HOOK): Define.
13378 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
13380 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
13383 2014-01-25 Jakub Jelinek <jakub@redhat.com>
13385 * print-rtl.c (in_call_function_usage): New var.
13386 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
13387 EXPR_LIST mode as mode and not as reg note name.
13389 PR middle-end/59561
13390 * cfgloopmanip.c (copy_loop_info): If
13391 loop->warned_aggressive_loop_optimizations, make sure
13392 the flag is set in target loop too.
13394 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
13396 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
13398 * builtins.def: Likewise.
13399 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
13400 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
13401 * ira.c (ira_setup_eliminable_regset): Likewise.
13402 * omp-low.c (gate_expand_omp): Likewise.
13403 (execute_lower_omp): Likewise.
13404 (diagnose_sb_0): Likewise.
13405 (gate_diagnose_omp_blocks): Likewise.
13406 (simd_clone_clauses_extract): Likewise.
13409 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13411 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
13412 correction for little endian...
13413 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
13416 2014-01-24 Jeff Law <law@redhat.com>
13418 PR tree-optimization/59919
13419 * tree-vrp.c (find_assert_locations_1): Do not register asserts
13420 for non-returning calls.
13422 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
13424 * common/config/aarch64/aarch64-common.c
13425 (aarch64_rewrite_mcpu): Handle multiple names.
13426 * config/aarch64/aarch64.h
13427 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
13429 2014-01-24 Dodji Seketeli <dodji@redhat.com>
13431 * input.c (add_file_to_cache_tab): Handle the case where fopen
13434 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
13437 * config/i386/i386.md (pushsf splitter): Get stack adjustment
13438 from push operand if code of push isn't PRE_DEC.
13440 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13443 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13444 -mquad-memory-atomic. Update -mquad-memory documentation to say
13445 it is only used for non-atomic loads/stores.
13447 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
13448 -mquad-memory or -mquad-memory-atomic switches.
13450 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
13451 -mquad-memory-atomic to ISA 2.07 support.
13453 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
13454 to separate support of normal quad word memory operations (ldq, stq)
13455 from the atomic quad word memory operations.
13457 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
13458 support to separate non-atomic quad word operations from atomic
13459 quad word operations. Disable non-atomic quad word operations in
13460 little endian mode so that we don't have to swap words after the
13461 load and before the store.
13462 (quad_load_store_p): Add comment about atomic quad word support.
13463 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
13464 options printed with -mdebug=reg.
13466 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
13467 -mquad-memory-atomic as the test for whether we have quad word
13468 atomic instructions.
13469 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
13470 or -mp8-vector are used, allow byte/half-word atomic operations.
13472 * config/rs6000/sync.md (load_lockedti): Insure that the address
13473 is a proper indexed or indirect address for the lqarx instruction.
13474 On little endian systems, swap the hi/lo registers after the lqarx
13476 (load_lockedpti): Use indexed_or_indirect_operand predicate to
13477 insure the address is valid for the lqarx instruction.
13478 (store_conditionalti): Insure that the address is a proper indexed
13479 or indirect address for the stqcrx. instruction. On little endian
13480 systems, swap the hi/lo registers before doing the stqcrx.
13482 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
13483 insure the address is valid for the stqcrx. instruction.
13485 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
13486 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
13487 type of quad memory support is available.
13489 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
13491 PR regression/59915
13492 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
13493 there is a danger of looping.
13495 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
13497 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13498 force flag_ira_loop_pressure if set via command line.
13500 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
13502 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
13503 (ashr_simd): New builtin handling DI mode.
13504 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
13505 (aarch64_sshr_simddi): New match pattern.
13506 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
13507 (vshrd_n_s64): Likewise.
13508 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
13510 2014-01-23 Nick Clifton <nickc@redhat.com>
13512 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
13513 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
13514 favour of mcu specific scripts.
13515 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
13518 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
13519 Alex Velenko <Alex.Velenko@arm.com>
13521 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
13522 (vaddv_s16): Likewise.
13523 (vaddv_s32): Likewise.
13524 (vaddv_u8): Likewise.
13525 (vaddv_u16): Likewise.
13526 (vaddv_u32): Likewise.
13527 (vaddvq_s8): Likewise.
13528 (vaddvq_s16): Likewise.
13529 (vaddvq_s32): Likewise.
13530 (vaddvq_s64): Likewise.
13531 (vaddvq_u8): Likewise.
13532 (vaddvq_u16): Likewise.
13533 (vaddvq_u32): Likewise.
13534 (vaddvq_u64): Likewise.
13535 (vaddv_f32): Likewise.
13536 (vaddvq_f32): Likewise.
13537 (vaddvq_f64): Likewise.
13538 (vmaxv_f32): Likewise.
13539 (vmaxv_s8): Likewise.
13540 (vmaxv_s16): Likewise.
13541 (vmaxv_s32): Likewise.
13542 (vmaxv_u8): Likewise.
13543 (vmaxv_u16): Likewise.
13544 (vmaxv_u32): Likewise.
13545 (vmaxvq_f32): Likewise.
13546 (vmaxvq_f64): Likewise.
13547 (vmaxvq_s8): Likewise.
13548 (vmaxvq_s16): Likewise.
13549 (vmaxvq_s32): Likewise.
13550 (vmaxvq_u8): Likewise.
13551 (vmaxvq_u16): Likewise.
13552 (vmaxvq_u32): Likewise.
13553 (vmaxnmv_f32): Likewise.
13554 (vmaxnmvq_f32): Likewise.
13555 (vmaxnmvq_f64): Likewise.
13556 (vminv_f32): Likewise.
13557 (vminv_s8): Likewise.
13558 (vminv_s16): Likewise.
13559 (vminv_s32): Likewise.
13560 (vminv_u8): Likewise.
13561 (vminv_u16): Likewise.
13562 (vminv_u32): Likewise.
13563 (vminvq_f32): Likewise.
13564 (vminvq_f64): Likewise.
13565 (vminvq_s8): Likewise.
13566 (vminvq_s16): Likewise.
13567 (vminvq_s32): Likewise.
13568 (vminvq_u8): Likewise.
13569 (vminvq_u16): Likewise.
13570 (vminvq_u32): Likewise.
13571 (vminnmv_f32): Likewise.
13572 (vminnmvq_f32): Likewise.
13573 (vminnmvq_f64): Likewise.
13575 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
13577 * config/aarch64/aarch64-simd.md
13578 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
13579 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
13580 (*aarch64_mul3_elt<mode>): Likewise.
13581 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
13582 (*aarch64_mul3_elt_to_64v2df): Likewise.
13583 (*aarch64_mla_elt<mode>): Likewise.
13584 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
13585 (*aarch64_mls_elt<mode>): Likewise.
13586 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
13587 (*aarch64_fma4_elt<mode>): Likewise.
13588 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
13589 (*aarch64_fma4_elt_to_64v2df): Likewise.
13590 (*aarch64_fnma4_elt<mode>): Likewise.
13591 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
13592 (*aarch64_fnma4_elt_to_64v2df): Likewise.
13593 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
13594 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
13595 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
13596 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
13597 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
13598 (aarch64_sqdmull_lane<mode>_internal): Likewise.
13599 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
13601 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
13603 * config/aarch64/aarch64-simd.md
13604 (aarch64_be_checked_get_lane<mode>): New define_expand.
13605 * config/aarch64/aarch64-simd-builtins.def
13606 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
13607 New builtin definition.
13608 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
13609 Use new safe be builtin.
13611 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
13613 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
13615 (aarch64_be_st1<mode>): Likewise.
13616 (aarch_ld1<VALL:mode>): Define_expand modified.
13617 (aarch_st1<VALL:mode>): Likewise.
13618 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
13619 (UNSPEC_ST1): Likewise.
13621 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
13623 * config/microblaze/microblaze.md: Add trap insn and attribute
13625 2014-01-23 Dodji Seketeli <dodji@redhat.com>
13627 PR preprocessor/58580
13628 * input.h (location_get_source_line): Take an additional line_size
13630 (void diagnostics_file_cache_fini): Declare new function.
13631 * input.c (struct fcache): New type.
13632 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
13633 New static constants.
13634 (diagnostic_file_cache_init, total_lines_num)
13635 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
13636 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
13637 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
13638 (get_next_line, read_next_line, goto_next_line, read_line_num):
13639 New static function definitions.
13640 (diagnostic_file_cache_fini): New function.
13641 (location_get_source_line): Take an additional output line_len
13642 parameter. Re-write using lookup_or_add_file_to_cache_tab and
13644 * diagnostic.c (diagnostic_finish): Call
13645 diagnostic_file_cache_fini.
13646 (adjust_line): Take an additional input parameter for the length
13647 of the line, rather than calculating it with strlen.
13648 (diagnostic_show_locus): Adjust the use of
13649 location_get_source_line and adjust_line with respect to their new
13650 signature. While displaying a line now, do not stop at the first
13651 null byte. Rather, display the zero byte as a space and keep
13652 going until we reach the size of the line.
13653 * Makefile.in: Add vec.o to OBJS-libcommon
13655 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
13656 Ilya Tocar <ilya.tocar@intel.com>
13658 * config/i386/avx512fintrin.h (_mm512_kmov): New.
13659 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
13660 (__builtin_ia32_kmov16): Ditto.
13661 * config/i386/i386.md (UNSPEC_KMOV): New.
13664 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
13666 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
13667 (_mm512_storeu_si512): Ditto.
13669 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
13672 * rtl.h (get_referenced_operands): Declare.
13673 * recog.c (get_referenced_operands): New function.
13674 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
13675 operands have been referenced when recording LO_SUM references.
13677 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
13679 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
13681 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
13683 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
13684 Enable for generic and recent AMD targets.
13686 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
13688 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
13689 ARG_SIZE note when adjustment was eliminated.
13691 2014-01-22 Jeff Law <law@redhat.com>
13693 PR tree-optimization/59597
13694 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
13695 in file. Accept new argument REGISTERING and use it to modify
13696 dump output appropriately.
13697 (register_jump_thread): Corresponding changes.
13698 (mark_threaded_blocks): Reinstate code to cancel unprofitable
13699 thread paths involving joiner blocks. Add code to dump cancelled
13700 jump threading paths.
13702 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
13704 PR rtl-optimization/59477
13705 * lra-constraints.c (inherit_in_ebb): Process call for living hard
13706 regs. Update reloads_num and potential_reload_hard_regs for all insns.
13708 2014-01-22 Tom Tromey <tromey@redhat.com>
13710 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
13712 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
13714 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
13716 PR rtl-optimization/59896
13717 * lra-constraints.c (process_alt_operands): Check unused note for
13718 matched operands of insn with no output reloads.
13720 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
13722 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
13723 (mips_move_from_gpr_cost): Likewise.
13725 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
13727 PR rtl-optimization/59858
13728 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
13729 ira_class_hard_regs_num.
13730 (process_alt_operands): Increase reject for dying matched operand.
13732 2014-01-21 Jakub Jelinek <jakub@redhat.com>
13735 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
13736 smaller than size, perform several stores or loads and stores
13737 at dst + count - size to store or copy all of size bytes, rather
13738 than just last modesize bytes.
13740 2014-01-20 DJ Delorie <dj@redhat.com>
13742 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
13743 that CLOBBERs are REGs before propogating their values.
13745 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
13747 PR middle-end/59789
13748 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
13749 (cgraph_inline_failed_type): New function.
13750 * cgraph.h (DEFCIFCODE): Add type.
13751 (cgraph_inline_failed_type_t): New enum.
13752 (cgraph_inline_failed_type): New prototype.
13753 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
13754 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
13755 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
13756 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
13757 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
13758 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
13759 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
13760 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
13761 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
13762 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
13763 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
13764 OPTIMIZATION_MISMATCH.
13765 * tree-inline.c (expand_call_inline): Emit errors during
13766 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
13768 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
13771 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
13772 mode attribute in insn output.
13774 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
13776 * output.h (output_constant): Delete.
13777 * varasm.c (output_constant): Make private.
13779 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
13781 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
13783 2014-01-20 Jakub Jelinek <jakub@redhat.com>
13785 PR middle-end/59860
13786 * tree.h (fold_builtin_strcat): New prototype.
13787 * builtins.c (fold_builtin_strcat): No longer static. Add len
13788 argument, if non-NULL, don't call c_strlen. Optimize
13789 directly into __builtin_memcpy instead of __builtin_strcpy.
13790 (fold_builtin_2): Adjust fold_builtin_strcat caller.
13791 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
13793 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
13795 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
13796 for SImode_address_operand operands, having only a REG argument.
13798 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
13800 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
13801 loader name using mbig-endian.
13802 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
13804 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
13806 * doc/invoke.texi (-march): Clarify documentation for AArch64.
13807 (-mtune): Likewise.
13810 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
13812 * config/aarch64/aarch64-protos.h
13813 (aarch64_cannot_change_mode_class_ptr): Declare.
13814 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
13815 aarch64_cannot_change_mode_class_ptr): New.
13816 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
13817 backend hook aarch64_cannot_change_mode_class.
13819 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
13821 * common/config/aarch64/aarch64-common.c
13822 (aarch64_handle_option): Don't handle any option order logic here.
13823 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
13824 selected_cpu, warn on architecture version mismatch.
13825 (aarch64_override_options): Fix parsing order for option strings.
13827 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13828 Iain Sandoe <iain@codesourcery.com>
13831 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
13832 warning. Amend comment to reflect current functionality.
13834 2014-01-20 Richard Biener <rguenther@suse.de>
13836 PR middle-end/59860
13837 * builtins.c (fold_builtin_strcat): Remove case better handled
13838 by tree-ssa-strlen.c.
13840 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
13842 * config/aarch64/aarch64.opt
13843 (mcpu, march, mtune): Make case-insensitive.
13845 2014-01-20 Jakub Jelinek <jakub@redhat.com>
13848 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
13849 if operands[1] is a REG or ZERO_EXTEND of a REG.
13851 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
13853 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
13855 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
13857 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
13858 long non-pic millicode calls.
13860 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13862 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
13864 2014-01-19 Kito Cheng <kito@0xlab.org>
13866 * builtins.c (expand_movstr): Check movstr expand done or fail.
13868 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
13869 H.J. Lu <hongjiu.lu@intel.com>
13872 * config/i386/i386.md (*lea<mode>): Zero-extend return register
13873 to DImode for zero-extended addresses.
13875 2014-01-19 Jakub Jelinek <jakub@redhat.com>
13877 PR rtl-optimization/57763
13878 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
13879 on the new indirect jump_insn and increment LABEL_NUSES (label).
13881 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
13885 * config.gcc (x86_archs): New variable.
13886 (x86_64_archs): Likewise.
13887 (x86_cpus): Likewise.
13888 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
13889 --with-arch/--with-cpu= options.
13890 Support --with-arch=/--with-cpu={nehalem,westmere,
13891 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
13893 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
13895 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
13896 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
13898 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
13900 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
13902 2014-01-18 Jakub Jelinek <jakub@redhat.com>
13905 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
13906 clear cpp_get_options (parse_in)->warn_unused_macros for
13907 ix86_target_macros_internal with cpp_define.
13909 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
13911 * jump.c (delete_related_insns): Keep (use (insn))s.
13912 * reorg.c (redundant_insn): Check for barriers too.
13914 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
13916 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
13918 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
13920 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
13921 call to $$dyncall when TARGET_LONG_CALLS is true.
13923 2014-01-17 Jeff Law <law@redhat.com>
13925 * ree.c (combine_set_extension): Temporarily disable test for
13926 changing number of hard registers.
13928 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
13930 PR middle-end/58125
13931 * ipa-inline-analysis.c (inline_free_summary):
13932 Do not free summary of aliases.
13934 2014-01-17 Jakub Jelinek <jakub@redhat.com>
13936 PR middle-end/59706
13937 * gimplify.c (gimplify_expr): Use create_tmp_var
13938 instead of create_tmp_var_raw. If cond doesn't have
13939 integral type, don't add the IFN_ANNOTATE builtin at all.
13941 2014-01-17 Martin Jambor <mjambor@suse.cz>
13944 * ipa-cp.c (prev_edge_clone): New variable.
13945 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
13946 Also resize prev_edge_clone vector.
13947 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
13948 (ipcp_edge_removal_hook): New function.
13949 (ipcp_driver): Register ipcp_edge_removal_hook.
13951 2014-01-17 Andrew Pinski <apinski@cavium.com>
13952 Steve Ellcey <sellcey@mips.com>
13955 * config/mips/mips.c (mips_print_operand): Check operand mode instead
13958 2014-01-17 Jeff Law <law@redhat.com>
13960 PR middle-end/57904
13961 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
13962 so that pass_ccp runs first.
13964 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
13966 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
13967 (ix86_adjust_cost): Use !TARGET_XXX.
13968 (do_reorder_for_imul): Likewise.
13969 (swap_top_of_ready_list): Likewise.
13970 (ix86_sched_reorder): Likewise.
13972 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
13974 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13975 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
13976 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
13977 (intel_memset): New. Duplicate slm_memset.
13978 (intel_cost): New. Duplicate slm_cost.
13979 (m_INTEL): New macro.
13980 (processor_target_table): Add "intel".
13981 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
13982 with PROCESSOR_INTEL for "intel".
13983 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
13984 PROCESSOR_SILVERMONT.
13985 (ix86_issue_rate): Likewise.
13986 (ix86_adjust_cost): Likewise.
13987 (ia32_multipass_dfa_lookahead): Likewise.
13988 (swap_top_of_ready_list): Likewise.
13989 (ix86_sched_reorder): Likewise.
13990 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
13991 instead of TARGET_OPT_AGU.
13992 * config/i386/i386.h (TARGET_INTEL): New.
13993 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
13994 (processor_type): Add PROCESSOR_INTEL.
13995 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
13996 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
13998 2014-01-17 Marek Polacek <polacek@redhat.com>
14001 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
14004 2014-01-17 Richard Biener <rguenther@suse.de>
14006 PR tree-optimization/46590
14007 * opts.c (default_options_table): Add entries for
14008 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
14009 all enabled at -O1 but not for -Og.
14010 * common.opt (fbranch-count-reg): Remove Init(1).
14011 (fmove-loop-invariants): Likewise.
14012 (ftree-pta): Likewise.
14014 2014-01-17 Jakub Jelinek <jakub@redhat.com>
14016 * config/i386/i386.c (ix86_data_alignment): For compatibility with
14017 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
14018 decls to at least the GCC 4.8 used alignments.
14021 * tree-nested.c (convert_nonlocal_reference_stmt,
14022 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
14023 of GIMPLE_BIND stmts, adjust associated decls.
14025 2014-01-17 Richard Biener <rguenther@suse.de>
14027 PR tree-optimization/46590
14028 * vec.h (vec<>::bseach): New member function implementing
14029 binary search according to C89 bsearch.
14030 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
14031 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
14032 bitmap pointer again. Make accesses_in_loop a flat array.
14033 (mem_ref_obstack): New global.
14034 (outermost_indep_loop): Adjust for mem_ref->stored changes.
14035 (mark_ref_stored): Likewise.
14036 (ref_indep_loop_p_2): Likewise.
14037 (set_ref_stored_in_loop): New helper function.
14038 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
14039 (memref_free): Adjust.
14040 (record_mem_ref_loc): Simplify.
14041 (gather_mem_refs_stmt): Adjust.
14042 (sort_locs_in_loop_postorder_cmp): New function.
14043 (analyze_memory_references): Sort accesses_in_loop after
14044 loop postorder number.
14045 (find_ref_loc_in_loop_cmp): New function.
14046 (for_all_locs_in_loop): Find relevant cluster of locs in
14047 accesses_in_loop and iterate without recursion.
14048 (execute_sm): Avoid uninit warning.
14049 (struct ref_always_accessed): Simplify.
14050 (ref_always_accessed::operator ()): Likewise.
14051 (ref_always_accessed_p): Likewise.
14052 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
14053 loop postorder numbers here.
14054 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
14057 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
14060 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
14061 on decls for which assemble_alias has been called.
14063 2014-01-17 Nick Clifton <nickc@redhat.com>
14065 * config/msp430/msp430.opt: (mcpu): New option.
14066 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
14067 (msp430_option_override): Parse target_cpu. If the MCU name
14068 matches a generic string, clear target_mcu.
14069 (msp430_attr): Allow numeric interrupt values up to 63.
14070 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
14071 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
14073 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
14075 * config/msp430/msp430.md (popm): Use %J rather than %I.
14076 (addsi3): Use msp430_nonimmediate_operand for operand 2.
14077 (addhi_cy_i): Use immediate_operand for operand 2.
14078 * doc/invoke.texi: Document -mcpu option.
14080 2014-01-17 Richard Biener <rguenther@suse.de>
14082 PR rtl-optimization/38518
14083 * df.h (df_analyze_loop): Declare.
14084 * df-core.c: Include cfgloop.h.
14085 (df_analyze_1): Split out main part of df_analyze.
14086 (df_analyze): Adjust.
14087 (loop_inverted_post_order_compute): New function.
14088 (loop_post_order_compute): Likewise.
14089 (df_analyze_loop): New function avoiding whole-function
14090 postorder computes.
14091 * loop-invariant.c (find_defs): Use df_analyze_loop.
14092 (find_invariants): Adjust.
14093 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
14095 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
14097 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
14098 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
14100 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
14102 * ipa-ref.c (ipa_remove_stmt_references): Fix references
14103 traversal when removing references.
14105 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
14108 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
14110 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
14112 PR middle-end/56791
14113 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
14114 pushing a reload for an autoinc when we had previously reloaded an
14115 inner part of the address.
14117 2014-01-16 Jakub Jelinek <jakub@redhat.com>
14119 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
14121 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
14122 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
14123 when not giving up or versioning for alias only because of
14125 (vect_analyze_data_ref_dependences): Set to true.
14126 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
14128 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
14129 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
14132 PR middle-end/58344
14133 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
14136 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
14137 operand 0 predicate for gathers, use a new pseudo as subtarget.
14139 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
14141 PR middle-end/59609
14142 * lra-constraints.c (process_alt_operands): Add printing debug info.
14143 Check absence of input/output reloads for matched operands too.
14145 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
14147 PR rtl-optimization/59835
14148 * ira.c (ira_init_register_move_cost): Increase cost for
14151 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
14153 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
14155 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
14158 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
14159 non-register objects. Use gen_(high/low)part more consistently.
14162 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
14165 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
14166 endian support, remove tests for WORDS_BIG_ENDIAN.
14167 (p8_mfvsrd_3_<mode>): Likewise.
14168 (reload_gpr_from_vsx<mode>): Likewise.
14169 (reload_gpr_from_vsxsf): Likewise.
14170 (p8_mfvsrd_4_disf): Likewise.
14172 2014-01-16 Richard Biener <rguenther@suse.de>
14174 PR rtl-optimization/46590
14175 * lcm.c (compute_antinout_edge): Use postorder iteration.
14176 (compute_laterin): Use inverted postorder iteration.
14178 2014-01-16 Nick Clifton <nickc@redhat.com>
14180 PR middle-end/28865
14181 * varasm.c (output_constant): Return the number of bytes actually
14183 (output_constructor_array_range): Update the field size with the
14184 number of bytes emitted by output_constant.
14185 (output_constructor_regular_field): Likewise. Also do not
14186 complain if the total number of bytes emitted is now greater
14187 than the expected fieldpos.
14188 * output.h (output_constant): Update prototype and descriptive comment.
14190 2014-01-16 Marek Polacek <polacek@redhat.com>
14192 PR middle-end/59827
14193 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
14194 it is error_mark_node.
14196 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
14198 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
14199 VALID_AVX256_REG_OR_OI_MODE.
14201 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
14203 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
14204 current procedure should be profiled.
14206 2014-01-15 Andrew Pinski <apinski@cavium.com>
14208 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
14209 of moving from/to the STACK_REG register class.
14211 2014-01-15 Richard Henderson <rth@redhat.com>
14214 * reginfo.c (global_regs_decl): Globalize.
14215 * rtl.h (global_regs_decl): Declare.
14216 * ira.c (do_reload): Diagnose frame_pointer_needed and it
14217 reserved via global_regs.
14219 2014-01-15 Teresa Johnson <tejohnson@google.com>
14221 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
14223 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
14225 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
14226 and vmulosh rather than call gen_vec_widen_smult_*.
14227 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
14228 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
14229 (vec_widen_smult_even_v16qi): Likewise.
14230 (vec_widen_umult_even_v8hi): Likewise.
14231 (vec_widen_smult_even_v8hi): Likewise.
14232 (vec_widen_umult_odd_v16qi): Likewise.
14233 (vec_widen_smult_odd_v16qi): Likewise.
14234 (vec_widen_umult_odd_v8hi): Likewise.
14235 (vec_widen_smult_odd_v8hi): Likewise.
14236 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
14237 vmuloub rather than call gen_vec_widen_umult_*.
14238 (vec_widen_umult_lo_v16qi): Likewise.
14239 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
14240 vmulosb rather than call gen_vec_widen_smult_*.
14241 (vec_widen_smult_lo_v16qi): Likewise.
14242 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
14243 rather than call gen_vec_widen_umult_*.
14244 (vec_widen_umult_lo_v8hi): Likewise.
14245 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
14246 rather than call gen_vec_widen_smult_*.
14247 (vec_widen_smult_lo_v8hi): Likewise.
14249 2014-01-15 Jeff Law <law@redhat.com>
14251 PR tree-optimization/59747
14252 * ree.c (find_and_remove_re): Properly handle case where a second
14253 eliminated extension requires widening a copy created for elimination
14254 of a prior extension.
14255 (combine_set_extension): Ensure that the number of hard regs needed
14256 for a destination register does not change when we widen it.
14258 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
14260 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
14261 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
14262 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
14263 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
14264 (avr-*-rtems*): Likewise.
14265 (bfin*-rtems*): Likewise.
14266 (moxie-*-rtems*): Likewise.
14267 (h8300-*-rtems*): Likewise.
14268 (i[34567]86-*-rtems*): Likewise.
14269 (lm32-*-rtems*): Likewise.
14270 (m32r-*-rtems*): Likewise.
14271 (m68k-*-rtems*): Likewise.
14272 (microblaze*-*-rtems*): Likewise.
14273 (mips*-*-rtems*): Likewise.
14274 (powerpc-*-rtems*): Likewise.
14275 (sh-*-rtems*): Likewise.
14276 (sparc-*-rtems*): Likewise.
14277 (sparc64-*-rtems*): Likewise.
14278 (v850-*-rtems*): Likewise.
14279 (m32c-*-rtems*): Likewise.
14281 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
14283 PR rtl-optimization/59511
14284 * ira.c (ira_init_register_move_cost): Use memory costs for some
14285 cases of register move cost calculations.
14286 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
14287 instead of BB frequency.
14288 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
14289 * lra-assigns.c (find_hard_regno_for): Ditto.
14291 2014-01-15 Richard Biener <rguenther@suse.de>
14293 PR tree-optimization/59822
14294 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
14295 (vectorizable_load): Use it to hoist defs of uses of invariant
14296 loads out of the loop.
14298 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
14299 Kugan Vivekanandarajah <kuganv@linaro.org>
14302 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
14305 2014-01-15 Richard Biener <rguenther@suse.de>
14307 PR rtl-optimization/59802
14308 * lcm.c (compute_available): Use inverted postorder to seed
14309 the initial worklist.
14311 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14314 * config/s390/s390.c (s390_preferred_reload_class): Don't return
14315 ADDR_REGS for invalid symrefs in non-PIC code.
14317 2014-01-15 Jakub Jelinek <jakub@redhat.com>
14320 * builtins.c (determine_block_size): Initialize *probable_max_size
14321 even if len_rtx is CONST_INT.
14323 2014-01-14 Andrew Pinski <apinski@cavium.com>
14325 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
14326 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
14327 (cortexa53_tunings): Likewise.
14328 (aarch64_sched_issue_rate): New function.
14329 (TARGET_SCHED_ISSUE_RATE): Define.
14331 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
14333 * ira-costs.c (find_costs_and_classes): Add missed
14334 ira_init_register_move_cost_if_necessary.
14336 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
14339 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
14341 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
14344 * config/i386/i386.c (type_natural_mode): Add a bool parameter
14345 to indicate if type is used for function return value. Warn ABI
14346 change if the vector mode isn't available for function return value.
14347 (ix86_function_arg_advance): Pass false to type_natural_mode.
14348 (ix86_function_arg): Likewise.
14349 (ix86_gimplify_va_arg): Likewise.
14350 (function_arg_32): Don't warn ABI change.
14351 (ix86_function_value): Pass true to type_natural_mode.
14352 (ix86_return_in_memory): Likewise.
14353 (ix86_struct_value_rtx): Removed.
14354 (TARGET_STRUCT_VALUE_RTX): Likewise.
14356 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14358 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
14359 converting a conditional jump into a conditional return.
14361 2014-01-14 Richard Biener <rguenther@suse.de>
14363 PR tree-optimization/58921
14364 PR tree-optimization/59006
14365 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
14366 hoisting invariant stmts.
14367 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
14368 invariant loads on the preheader edge if possible.
14370 2014-01-14 Joey Ye <joey.ye@arm.com>
14372 * doc/plugin.texi (Building GCC plugins): Update to C++.
14374 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
14376 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
14377 (_mm_rcp28_round_ss): Ditto.
14378 (_mm_rsqrt28_round_sd): Ditto.
14379 (_mm_rsqrt28_round_ss): Ditto.
14380 (_mm_rcp28_sd): Ditto.
14381 (_mm_rcp28_ss): Ditto.
14382 (_mm_rsqrt28_sd): Ditto.
14383 (_mm_rsqrt28_ss): Ditto.
14384 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
14385 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
14386 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
14387 (IX86_BUILTIN_RCP28SD): Ditto.
14388 (IX86_BUILTIN_RCP28SS): Ditto.
14389 (IX86_BUILTIN_RSQRT28SD): Ditto.
14390 (IX86_BUILTIN_RSQRT28SS): Ditto.
14391 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
14392 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
14393 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
14394 (ix86_expand_special_args_builtin): Expand new FTYPE.
14395 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
14396 (srcp14<mode>): Make insn unary.
14397 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
14398 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
14399 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
14400 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
14401 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
14402 Fix rounding: make it SAE only.
14403 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
14405 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
14407 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
14408 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
14409 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
14410 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
14411 (round_saeonly_mask_scalar_operand4): Ditto.
14412 (round_saeonly_mask_scalar_op3): Ditto.
14413 (round_saeonly_mask_scalar_op4): Ditto.
14415 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14417 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14418 Implement -maltivec=be for vec_insert and vec_extract.
14420 2014-01-10 DJ Delorie <dj@redhat.com>
14422 * config/msp430/msp430.md (call_internal): Don't allow memory
14423 references with SP as the base register.
14424 (call_value_internal): Likewise.
14425 * config/msp430/constraints.md (Yc): New. For memory references
14426 that don't use SP as a base register.
14428 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
14429 "an integer without a # prefix"
14430 * config/msp430/msp430.md (epilogue_helper): Use it.
14432 2014-01-13 Jakub Jelinek <jakub@redhat.com>
14435 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
14436 AVX512F gather builtins.
14437 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
14438 on gather decls with INTEGER_TYPE masktype.
14439 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
14440 directly into the builtin rather than hoisting it before loop.
14442 PR tree-optimization/59387
14443 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
14444 (scev_const_prop): If folded_casts and type has undefined overflow,
14445 use force_gimple_operand instead of force_gimple_operand_gsi and
14446 for each added stmt if it is assign with
14447 arith_code_with_undefined_signed_overflow, call
14448 rewrite_to_defined_overflow.
14449 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
14450 gimple-fold.h instead.
14451 (arith_code_with_undefined_signed_overflow,
14452 rewrite_to_defined_overflow): Moved to ...
14453 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
14454 rewrite_to_defined_overflow): ... here. No longer static.
14455 Include gimplify-me.h.
14456 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
14457 rewrite_to_defined_overflow): New prototypes.
14459 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14461 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
14463 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
14465 * builtins.c (get_object_alignment_2): Minor tweak.
14466 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
14468 2014-01-13 Christian Bruel <christian.bruel@st.com>
14470 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
14471 optimized non constant lengths.
14473 2014-01-13 Jakub Jelinek <jakub@redhat.com>
14476 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
14477 load as __atomic_load_N if possible.
14479 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
14481 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
14483 (rs6000_expand_builtin): Adjust call.
14485 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
14488 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
14489 * config/rs6000/rs6000.c: Include target-globals.h.
14490 (rs6000_set_current_function): Instead of doing target_reinit
14491 unconditionally, use save_target_globals_default_opts and
14492 restore_target_globals.
14494 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
14496 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
14497 (rs6000_expand_builtin): Handle mffs and mtfsf.
14498 (rs6000_init_builtins): Define mffs and mtfsf.
14499 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
14500 (rs6000_mffs): New pattern.
14501 (rs6000_mtfsf): New pattern.
14503 2014-01-11 Bin Cheng <bin.cheng@arm.com>
14505 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
14506 Start narrowing with START. Apply candidate-use pair
14507 and check overall cost in narrowing.
14508 (iv_ca_prune): Pass new argument.
14510 2014-01-10 Jeff Law <law@redhat.com>
14512 PR middle-end/59743
14513 * ree.c (combine_reaching_defs): Ensure the defining statement
14514 occurs before the extension when optimizing extensions with
14515 different source and destination hard registers.
14517 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
14520 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
14521 vtables into the type inheritance graph.
14523 2014-01-10 Jakub Jelinek <jakub@redhat.com>
14525 PR rtl-optimization/59754
14526 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
14527 modes in the REGNO != REGNO case.
14529 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14531 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
14533 2014-01-10 Jakub Jelinek <jakub@redhat.com>
14535 PR tree-optimization/59745
14536 * tree-predcom.c (tree_predictive_commoning_loop): Call
14537 free_affine_expand_cache if giving up because components is NULL.
14539 * target-globals.c (save_target_globals): Allocate < 4KB structs using
14540 GC in payload of target_globals struct instead of allocating them on
14541 the heap and the larger structs separately using GC.
14542 * target-globals.h (struct target_globals): Make regs, hard_regs,
14543 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
14544 of GTY((skip)) and change type to void *.
14545 (reset_target_globals): Cast loads from those fields to corresponding
14548 2014-01-10 Steve Ellcey <sellcey@mips.com>
14551 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
14552 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
14553 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
14555 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
14558 * aarch64-modes.def (CC_Zmode): New flags mode.
14559 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
14560 represents an equality.
14561 (aarch64_get_condition_code): Handle CC_Zmode.
14562 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
14564 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14566 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
14567 extraction in good case.
14569 2014-01-10 Richard Biener <rguenther@suse.de>
14571 PR tree-optimization/59374
14572 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
14573 checking after SLP discovery. Mark stmts not participating
14574 in any SLP instance properly.
14576 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14578 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
14579 when handling a SET rtx.
14581 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14583 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
14584 (cortex-a57): Likewise.
14585 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
14587 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14589 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
14590 non-iwmmxt builtins.
14592 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
14596 * ipa-devirt.c record_target_from_binfo): Take as argument
14597 stack of binfos and lookup matching one for virtual inheritance.
14598 (possible_polymorphic_call_targets_1): Update.
14600 2014-01-10 Huacai Chen <chenhc@lemote.com>
14602 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
14603 kernel strings for Loongson-2E/2F/3A.
14605 2014-01-10 Jakub Jelinek <jakub@redhat.com>
14607 PR middle-end/59670
14608 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
14609 is_gimple_call before calling gimple_call_internal_p.
14611 2014-01-09 Steve Ellcey <sellcey@mips.com>
14613 * Makefile.in (TREE_FLOW_H): Remove.
14614 (TREE_SSA_H): Add file names from tree-flow.h.
14615 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
14616 * tree.h: Remove tree-flow.h reference.
14617 * hash-table.h: Remove tree-flow.h reference.
14618 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
14619 reference with tree-ssa-loop.h.
14621 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14623 * doc/invoke.texi: Add -maltivec={be,le} options, and document
14624 default element-order behavior for -maltivec.
14625 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
14626 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
14627 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
14628 when targeting big endian, at least for now.
14629 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
14631 2014-01-09 Jakub Jelinek <jakub@redhat.com>
14633 PR middle-end/47735
14634 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
14635 var satisfies use_register_for_decl, just take into account type
14636 alignment, rather than decl alignment.
14638 PR tree-optimization/59622
14639 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
14640 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
14641 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
14642 Don't devirtualize for inplace at all. For targets.length () == 1,
14643 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
14645 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
14647 * config/i386/i386.md (cpu): Remove the unused btver1.
14649 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
14651 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
14653 2014-01-09 Jakub Jelinek <jakub@redhat.com>
14656 * tree-core.h (struct target_globals): New forward declaration.
14657 (struct tree_target_option): Add globals field.
14658 * tree.h (TREE_TARGET_GLOBALS): Define.
14659 (prepare_target_option_nodes_for_pch): New prototype.
14660 * target-globals.h (struct target_globals): Define even if
14661 !SWITCHABLE_TARGET.
14662 * tree.c (prepare_target_option_node_for_pch,
14663 prepare_target_option_nodes_for_pch): New functions.
14664 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
14665 * config/i386/i386.c: Include target-globals.h.
14666 (ix86_set_current_function): Instead of doing target_reinit
14667 unconditionally, use save_target_globals_default_opts and
14668 restore_target_globals.
14670 2014-01-09 Richard Biener <rguenther@suse.de>
14672 PR tree-optimization/59715
14673 * tree-cfg.h (split_critical_edges): Declare.
14674 * tree-cfg.c (split_critical_edges): Export.
14675 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
14677 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
14679 * cfgexpand.c (expand_stack_vars): Optionally disable
14680 asan stack protection.
14681 (expand_used_vars): Likewise.
14682 (partition_stack_vars): Likewise.
14683 * asan.c (asan_emit_stack_protection): Optionally disable
14684 after return stack usage.
14685 (instrument_derefs): Optionally disable memory access instrumentation.
14686 (instrument_builtin_call): Likewise.
14687 (instrument_strlen_call): Likewise.
14688 (asan_protect_global): Optionally disable global variables protection.
14689 * doc/invoke.texi: Added doc for new options.
14690 * params.def: Added new options.
14691 * params.h: Likewise.
14693 2014-01-09 Jakub Jelinek <jakub@redhat.com>
14695 PR rtl-optimization/59724
14696 * ifcvt.c (cond_exec_process_if_block): Don't call
14697 flow_find_head_matching_sequence with 0 longest_match.
14698 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
14699 non-active insns if !stop_after.
14700 (try_head_merge_bb): Revert 2014-01-07 changes.
14702 2014-01-08 Jeff Law <law@redhat.com>
14704 * ree.c (get_sub_rtx): New function, extracted from...
14705 (merge_def_and_ext): Here.
14706 (combine_reaching_defs): Use get_sub_rtx.
14708 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
14710 * cgraph.h (varpool_variable_node): Do not choke on null node.
14712 2014-01-08 Catherine Moore <clm@codesourcery.com>
14714 * config/mips/mips.md (simple_return): Attempt to use JRC
14716 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
14718 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
14720 PR rtl-optimization/59137
14721 * reorg.c (steal_delay_list_from_target): Call update_block for
14723 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
14725 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14727 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
14728 two duplicate entries.
14730 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
14733 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
14735 * config/mips/mips.c (mips_truncated_op_cost): New function.
14736 (mips_rtx_costs): Adjust test for BADDU.
14737 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
14739 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
14741 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
14742 (*baddu_si): ...this new pattern.
14744 2014-01-08 Jakub Jelinek <jakub@redhat.com>
14747 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
14749 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
14751 PR middle-end/57748
14752 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
14754 (expand_expr, expand_normal): Adjust.
14755 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
14756 inner_reference_p. Use inner_reference_p to expand inner references.
14757 (store_expr): Adjust.
14758 * cfgexpand.c (expand_call_stmt): Adjust.
14760 2014-01-08 Rong Xu <xur@google.com>
14762 * gcov-io.c (gcov_var): Move from gcov-io.h.
14763 (gcov_position): Ditto.
14764 (gcov_is_error): Ditto.
14765 (gcov_rewrite): Ditto.
14766 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
14767 only part to libgcc/libgcov.h.
14769 2014-01-08 Marek Polacek <polacek@redhat.com>
14771 PR middle-end/59669
14772 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
14774 2014-01-08 Marek Polacek <polacek@redhat.com>
14777 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
14779 2014-01-08 Jakub Jelinek <jakub@redhat.com>
14781 PR rtl-optimization/59649
14782 * stor-layout.c (get_mode_bounds): For BImode return
14783 0 and STORE_FLAG_VALUE.
14785 2014-01-08 Richard Biener <rguenther@suse.de>
14787 PR middle-end/59630
14788 * gimple.h (is_gimple_builtin_call): Remove.
14789 (gimple_builtin_call_types_compatible_p): New.
14790 (gimple_call_builtin_p): New overload.
14791 * gimple.c (is_gimple_builtin_call): Remove.
14792 (validate_call): Rename to ...
14793 (gimple_builtin_call_types_compatible_p): ... this and export. Also
14794 check return types.
14795 (validate_type): New static function.
14796 (gimple_call_builtin_p): New overload and adjust.
14797 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
14798 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
14799 (gimple_fold_stmt_to_constant_1): Likewise.
14800 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
14802 2014-01-08 Richard Biener <rguenther@suse.de>
14804 PR middle-end/59471
14805 * gimplify.c (gimplify_expr): Gimplify register-register type
14806 VIEW_CONVERT_EXPRs to separate stmts.
14808 2014-01-07 Jeff Law <law@redhat.com>
14810 PR middle-end/53623
14811 * ree.c (combine_set_extension): Handle case where source
14812 and destination registers in an extension insn are different.
14813 (combine_reaching_defs): Allow source and destination registers
14814 in extension to be different under limited circumstances.
14815 (add_removable_extension): Remove restriction that the
14816 source and destination registers in the extension are the same.
14817 (find_and_remove_re): Emit a copy from the extension's
14818 destination to its source after the defining insn if
14819 the source and destination registers are different.
14821 PR middle-end/59285
14822 * ifcvt.c (merge_if_block): If we are merging a block with more than
14823 one successor with a block with no successors, remove any BARRIER
14824 after the second block.
14826 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
14828 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
14830 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
14833 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
14834 for 14-bit register offsets when INT14_OK_STRICT is false.
14836 2014-01-07 Roland Stigge <stigge@antcom.de>
14837 Michael Meissner <meissner@linux.vnet.ibm.com>
14840 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
14841 Only check TFmode for SPE constants. Don't check TImode or TDmode.
14843 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
14845 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
14848 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
14850 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
14851 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
14852 rtx is const0_rtx or not.
14854 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
14857 * target-globals.c (save_target_globals): Remove this_fn_optab
14859 * toplev.c: Include optabs.h.
14860 (target_reinit): Temporarily restore the global options if another
14861 set of options are in force.
14863 2014-01-07 Jakub Jelinek <jakub@redhat.com>
14865 PR rtl-optimization/58668
14866 * cfgcleanup.c (flow_find_cross_jump): Don't count
14867 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
14868 to determine what is counted.
14869 (flow_find_head_matching_sequence): Use active_insn_p to determine
14871 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
14873 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
14874 determine what is counted.
14876 PR tree-optimization/59643
14877 * tree-predcom.c (split_data_refs_to_components): If one dr is
14878 read and one write, determine_offset fails and the write isn't
14879 in the bad component, just put the read into the bad component.
14881 2014-01-07 Mike Stump <mikestump@comcast.net>
14882 Jakub Jelinek <jakub@redhat.com>
14885 * tree-core.h (struct tree_optimization_option): Change optabs
14886 type from unsigned char * to void *.
14887 * optabs.c (init_tree_optimization_optabs): Adjust
14888 TREE_OPTIMIZATION_OPTABS initialization.
14890 2014-01-06 Jakub Jelinek <jakub@redhat.com>
14893 * config/i386/i386.h (struct machine_function): Add
14894 no_drap_save_restore field.
14895 * config/i386/i386.c (ix86_save_reg): Use
14896 !cfun->machine->no_drap_save_restore instead of
14897 crtl->stack_realign_needed.
14898 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
14899 this function clears frame_pointer_needed. Set
14900 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
14901 and DRAP reg is needed.
14903 2014-01-06 Marek Polacek <polacek@redhat.com>
14906 * doc/implement-c.texi: Mention that other integer types are
14907 permitted as bit-field types in strictly conforming mode.
14909 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
14911 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
14912 is newly allocated.
14914 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
14916 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
14918 2014-01-06 Martin Jambor <mjambor@suse.cz>
14921 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
14923 * ipa-prop.c (ipa_print_node_params): Fix indentation.
14925 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
14929 * var-tracking.c (add_stores): Preserve the value of the source even if
14930 we don't record the store.
14932 2014-01-06 Terry Guo <terry.guo@arm.com>
14934 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
14936 2014-01-05 Iain Sandoe <iain@codesourcery.com>
14939 * config/darwin.c (darwin_function_section): Adjust return values to
14940 correspond to optimisation changes made in r206070.
14942 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
14944 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
14945 from prefetch_block tune setting.
14946 (nocona_cost): Correct size of prefetch block to 64.
14948 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
14950 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
14951 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
14952 used to save the static chain register in the computation of the offset
14953 from which the FP registers need to be restored.
14955 2014-01-04 Jakub Jelinek <jakub@redhat.com>
14957 PR tree-optimization/59519
14958 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
14959 ICE if get_current_def (current_new_name) is already non-NULL, as long
14960 as it is a phi result of some other phi in *new_exit_bb that has
14963 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
14964 or vmovdqu* for misaligned_operand.
14965 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
14966 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
14967 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
14968 aligned_mem for AVX512F masked aligned load and store builtins and for
14969 non-temporal moves.
14971 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
14973 PR tree-optimization/59651
14974 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
14975 Address range for negative step should be added by TYPE_SIZE_UNIT.
14977 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
14979 * config/m68k/m68k.c (handle_move_double): Handle pushes with
14980 overlapping registers also for registers other than the stack pointer.
14982 2014-01-03 Marek Polacek <polacek@redhat.com>
14985 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
14988 2014-01-03 Jakub Jelinek <jakub@redhat.com>
14991 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
14994 * config/i386/i386.md (MODE_SIZE): New mode attribute.
14995 (push splitter): Use <P:MODE_SIZE> instead of
14996 GET_MODE_SIZE (<P:MODE>mode).
14997 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
14998 (mov -1, reg peephole2): Likewise.
14999 * config/i386/sse.md (*mov<mode>_internal,
15000 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
15001 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
15002 *<code><mode>3, *andnot<mode>3<mask_name>,
15003 <mask_codefor><code><mode>3<mask_name>): Likewise.
15004 * config/i386/subst.md (mask_mode512bit_condition,
15005 sd_mask_mode512bit_condition): Likewise.
15007 2014-01-02 Xinliang David Li <davidxl@google.com>
15009 PR tree-optimization/59303
15010 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
15011 (dump_predicates): Better output format.
15012 (pred_equal_p): New function.
15013 (is_neq_relop_p): Ditto.
15014 (is_neq_zero_form_p): Ditto.
15015 (pred_expr_equal_p): Ditto.
15016 (pred_neg_p): Ditto.
15017 (simplify_pred): Ditto.
15018 (simplify_preds_2): Ditto.
15019 (simplify_preds_3): Ditto.
15020 (simplify_preds_4): Ditto.
15021 (simplify_preds): Ditto.
15022 (push_pred): Ditto.
15023 (push_to_worklist): Ditto.
15024 (get_pred_info_from_cmp): Ditto.
15025 (is_degenerated_phi): Ditto.
15026 (normalize_one_pred_1): Ditto.
15027 (normalize_one_pred): Ditto.
15028 (normalize_one_pred_chain): Ditto.
15029 (normalize_preds): Ditto.
15030 (normalize_cond_1): Remove function.
15031 (normalize_cond): Ditto.
15032 (is_gcond_subset_of): Ditto.
15033 (is_subset_of_any): Ditto.
15034 (is_or_set_subset_of): Ditto.
15035 (is_and_set_subset_of): Ditto.
15036 (is_norm_cond_subset_of): Ditto.
15037 (pred_chain_length_cmp): Ditto.
15038 (convert_control_dep_chain_into_preds): Type change.
15039 (find_predicates): Ditto.
15040 (find_def_preds): Ditto.
15041 (destroy_predicates_vecs): Ditto.
15042 (find_matching_predicates_in_rest_chains): Ditto.
15043 (use_pred_not_overlap_with_undef_path_pred): Ditto.
15044 (is_pred_expr_subset): Ditto.
15045 (is_pred_chain_subset_of): Ditto.
15046 (is_included_in): Ditto.
15047 (is_superset_of): Ditto.
15049 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15051 Update copyright years.
15053 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15055 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
15056 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
15057 config/arc/arc.md, config/arc/arc.opt,
15058 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
15059 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
15060 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
15061 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
15062 config/linux-protos.h, config/linux.c, config/winnt-c.c,
15063 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
15064 vtable-verify.c, vtable-verify.h: Use the standard form for the
15067 2014-01-02 Tobias Burnus <burnus@net-b.de>
15069 * gcc.c (process_command): Update copyright notice dates.
15070 * gcov-dump.c: Ditto.
15072 * doc/cpp.texi: Bump @copying's copyright year.
15073 * doc/cppinternals.texi: Ditto.
15074 * doc/gcc.texi: Ditto.
15075 * doc/gccint.texi: Ditto.
15076 * doc/gcov.texi: Ditto.
15077 * doc/install.texi: Ditto.
15078 * doc/invoke.texi: Ditto.
15080 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15082 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
15084 2014-01-01 Jakub Jelinek <jakub@redhat.com>
15086 * config/i386/sse.md (*mov<mode>_internal): Guard
15087 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
15089 PR rtl-optimization/59647
15090 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
15091 new_rtx into UNSIGNED_FLOAT rtxes.
15093 Copyright (C) 2014 Free Software Foundation, Inc.
15095 Copying and distribution of this file, with or without modification,
15096 are permitted in any medium without royalty provided the copyright
15097 notice and this notice are preserved.