1 2014-10-25 Jakub Jelinek <jakub@redhat.com>
3 PR tree-optimization/63641
4 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
5 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
7 2014-10-25 Alan Modra <amodra@gmail.com>
9 PR rtl-optimization/63615
10 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
11 decomposing PLUS or MINUS if operands are not placed adjacent
14 2014-10-25 Joseph Myers <joseph@codesourcery.com>
16 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
17 not allow e500 double in registers not satisyfing
20 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
22 * dwarf2out.c (declare_in_namespace): Only emit external
23 declarations in the local scope once.
25 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
27 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
29 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
31 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
32 update uses to use new macro arguments.
33 (__LD3_LANE_FUNC): Likewise.
34 (__LD4_LANE_FUNC): Likewise.
36 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
38 * config/aarch64/aarch64-builtins.c
39 (aarch64_types_loadstruct_lane_qualifiers): Define.
40 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
41 ld4_lane): New builtins.
42 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
44 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
45 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
46 (aarch64_ld2_lane<mode>): New expand.
47 (aarch64_ld3_lane<mode>): Likewise.
48 (aarch64_ld4_lane<mode>): Likewise.
49 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
50 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
52 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
54 * avr-protos.h (avr_out_sign_extend): New.
55 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
56 (avr_out_sign_extend): New function.
57 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
58 (extendhisi2, extendpsisi2): Use it.
59 (adjust_len) [sext]: New.
61 2014-10-24 Martin Liska <mliska@suse.cz>
63 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
66 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
68 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
69 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
70 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
71 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
73 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
75 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
77 * config/aarch64/aarch64.c (is_mem_p): Delete.
78 (is_memory_op): Rename to...
79 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
80 (dep_between_memop_and_curr): Assert that the input is a SET.
81 (aarch64_madd_needs_nop): Add comment. Do not call
82 dep_between_memop_and_curr on NULL body.
83 (aarch64_final_prescan_insn): Add comment.
86 2014-10-24 Richard Biener <rguenther@suse.de>
88 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
89 to genmatch BUILD_LIBS instead.
91 2014-10-24 Richard Biener <rguenther@suse.de>
93 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
94 and build_call_expr_loc.
95 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
96 non_lvalue_loc to build it for GENERIC.
97 (decision_tree::gen_generic): Add location argument to
98 generic_simplify prototype.
99 (capture_info): New class.
100 (capture_info::capture_info): New constructor.
101 (capture_info::walk_match): New method.
102 (capture_info::walk_result): New method.
103 (capture_info::walk_c_expr): New method.
104 (dt_simplify::gen): Handle preserving side-effects for
105 GENERIC code generation.
106 (decision_tree::gen_generic): Do not reject operands
107 with TREE_SIDE_EFFECTS.
108 * generic-match.h: New file.
109 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
110 * match.pd: Add some constant folding patterns from fold-const.c.
111 * fold-const.c: Include generic-match.h.
112 (fold_unary_loc): Dispatch to generic_simplify.
113 (fold_ternary_loc): Likewise.
114 (fold_binary_loc): Likewise. Remove patterns now implemented
116 * gimple-fold.c (replace_stmt_with_simplification): New function.
117 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
118 (no_follow_ssa_edges): New function.
119 (fold_stmt): New overload with valueization hook. Use
120 no_follow_ssa_edges for the overload without hook.
121 (fold_stmt_inplace): Likewise.
122 * gimple-fold.h (no_follow_ssa_edges): Declare.
124 2014-10-24 Felix Yang <felix.yang@huawei.com>
125 Jiji Jiang <jiangjiji@huawei.com>
128 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
129 (__LD3R_FUNC): Ditto.
130 (__LD4R_FUNC): Ditto.
131 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
132 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
133 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
134 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
135 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
136 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
137 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
138 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
139 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
140 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
141 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
142 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
143 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
144 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
145 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
146 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
147 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
148 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
149 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
150 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
151 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
153 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
154 (aarch64_simd_ld3r<mode>): Likewise.
155 (aarch64_simd_ld4r<mode>): Likewise.
156 (aarch64_ld2r<mode>): New expand.
157 (aarch64_ld3r<mode>): Likewise.
158 (aarch64_ld4r<mode>): Likewise.
160 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
162 * rtlanal.c (get_base_term): Handle SCRATCH.
164 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
166 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
169 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
171 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
172 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
173 (max_issue, choose_ready, sched_init): Update.
175 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
177 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
178 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
179 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
180 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
181 (print_rank_for_schedule_stats): Print out elements of ready list that
182 ended up on their respective places due to each of the sorting
184 (ready_sort): Update.
185 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
186 (schedule_block): Update.
188 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
190 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
191 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
192 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
193 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
194 (model_start_schedule): Update.
195 (sched_pressure_start_bb): New static function. Calculate
196 sched_class_regs_num.
197 (schedule_block): Use it.
198 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
200 2014-10-24 Richard Biener <rguenther@suse.de>
202 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
203 host library and make sure to pull in the required libintl
204 and libiconv dependencies.
206 2014-10-24 Richard Biener <rguenther@suse.de>
208 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
210 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
213 * collect2.c (main): Filter out -fno-lto.
215 2014-10-24 Martin Liska <mliska@suse.cz>
217 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
218 division by zero in dumps.
219 (sem_item_optimizer::merge_classes): Ditto.
221 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
223 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
225 2014-10-23 Ian Lance Taylor <iant@google.com>
227 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
229 2014-10-23 Ian Lance Taylor <iant@google.com>
231 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
233 2014-10-23 Jakub Jelinek <jakub@redhat.com>
236 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
237 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
238 instead of only handling autoinc in dest if it is a MEM.
239 (vt_stack_adjustments): Fix up formatting.
241 2014-10-23 DJ Delorie <dj@redhat.com>
243 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
244 independend of -mlarge.
245 * config/msp430/constraints.md (Ys): Update comment.
247 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
251 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
253 * dse.c (deletable_insn_p): Likewise.
255 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
257 * config/avr/avr.c: Fix GNU coding rules and typos.
258 * config/avr/avr.h: Dito.
259 * config/avr/avr-c.c: Dito.
260 * config/avr/avr.md: Dito.
262 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
264 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
266 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
268 (define_expand "abs<mode>2"): Ditto.
270 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
272 * tree-core.h (tree_var_decl): Extend `function_code' field
273 by one bit, move `regdecl_flag' field to ...
274 (tree_decl_with_vis): Here.
275 * tree.h (DECL_STATIC_CHAIN): Update struct name.
277 2014-10-23 Richard Biener <rguenther@suse.de>
279 * Makefile.in (BUILD_CPPLIB): Add.
280 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
283 2014-10-23 Richard Biener <rguenther@suse.de>
285 * fold-const.c (fold_binary_loc): Preserve side-effects of
286 X - X when simplifying to 0.
287 * stor-layout.c (finish_bitfield_representative): Strip
288 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
290 2014-10-22 Richard Biener <rguenther@suse.de>
291 Tobias Burnus <burnus@net-b.de>
294 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
296 2014-10-22 Dehao Chen <dehao@google.com>
298 * auto-profile.c: Change order of header files.
300 2014-10-22 Guozhi Wei <carrot@google.com>
302 PR tree-optimization/63530
303 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
304 pointer alignment according to DR_MISALIGNMENT.
306 2014-10-22 David Malcolm <dmalcolm@redhat.com>
308 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
310 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
312 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
313 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
314 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
315 * dominance.h: New. Add prototypes for dominance.c.
316 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
317 * cfghooks.h: (struct profile_record) Relocate here.
318 Relocate 2 prototypes from basic-block.h.
319 * basic-block.h: Move prototypes and struct to new header files.
320 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
321 * rtl.h: Move a few prototypes to new header files.
322 * cfgcleanup.c (merge_memattrs): Make static.
323 * genopinit.c (main): Add predict.h to list of includes.
324 * predict.h: Update prototype list to match predict.c.
325 * predict.c (maybe_hot_count_p): Export.
326 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
327 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
328 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
329 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
330 * profile.h: Adjust prototypes.
331 * ifcvt.h: New. Relocate struct ce_if_block here.
332 * ifcvt.c: Include ifcvt.h.
333 * config/frv/frv.c: Include ifcvt.h.
334 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
336 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
338 * lra.c (lra): Remove call to recog_init.
339 * config/i386/i386.md (preferred_for_speed): New attribute
340 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
341 "enabled". Remove check for sched1.
343 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
345 * recog.h (recog_data_d): Remove enabled_alternatives.
346 * recog.c (extract_insn): Don't set it.
347 * reload.c (find_reloads): Call get_enabled_alternatives.
349 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
351 * recog.h (constrain_operands): Add an alternative_mask parameter.
352 (constrain_operands_cached): Likewise.
353 (get_preferred_alternatives): Declare new form.
354 * recog.c (get_preferred_alternatives): New bb-taking instance.
355 (constrain_operands): Take the set of available alternatives as
357 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
358 (extract_constrain_insn_cached): Update calls to constrain_operands.
359 * caller-save.c (reg_save_code): Likewise.
360 * ira.c (setup_prohibited_mode_move_regs): Likewise.
361 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
362 * ree.c (combine_reaching_defs): Likewise.
363 * reload.c (can_reload_into): Likewise.
364 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
365 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
366 (emit_insn_if_valid_for_reload): Likewise.
367 * reorg.c (fill_slots_from_thread): Likewise.
368 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
369 * config/pa/pa.c (pa_can_combine_p): Likewise.
370 * config/rl78/rl78.c (insn_ok_now): Likewise.
371 * config/sh/sh.md (define_peephole2): Likewise.
372 * final.c (final_scan_insn): Update call to constrain_operands_cached.
374 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
376 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
378 * genattr.c (main): Handle "preferred_for_size" and
379 "preferred_for_speed" in the same way as "enabled".
380 * recog.h (bool_attr): New enum.
381 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
382 (get_preferred_alternatives, check_bool_attrs): Declare.
383 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
384 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
386 (get_enabled_alternatives): Use get_bool_attr_mask.
387 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
388 instead of recog_data.enabled_alternatives.
389 * ira.c (ira_setup_alts): Likewise.
390 * postreload.c (reload_cse_simplify_operands): Likewise.
391 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
392 * ira-lives.c (preferred_alternatives): New variable.
393 (process_bb_node_lives): Set it.
394 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
395 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
396 of recog_data.enabled_alternatives.
397 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
398 to preferred_alternatives.
399 * lra-constraints.c (process_alt_operands): Update accordingly.
400 * lra.c (lra_set_insn_recog_data): Likewise.
401 (lra_update_insn_recog_data): Assert check_bool_attrs.
403 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
405 * recog.h (extract_constrain_insn): Declare.
406 * recog.c (extract_constrain_insn): New function.
407 * lra.c (check_rtl): Use it.
408 * postreload.c (reload_cse_simplify_operands): Likewise.
409 * reg-stack.c (check_asm_stack_operands): Likewise.
410 (subst_asm_stack_regs): Likewise.
411 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
412 * regrename.c (build_def_use): Likewise.
413 * sel-sched.c (get_reg_class): Likewise.
414 * config/arm/arm.c (note_invalid_constants): Likewise.
415 * config/s390/predicates.md (execute_operation): Likewise.
417 2014-10-22 Jakub Jelinek <jakub@redhat.com>
418 Yury Gribov <y.gribov@samsung.com>
420 * common.opt (flag_sanitize_recover): New variable.
421 (fsanitize-recover): Remove Var/Init, deprecate.
422 (fsanitize-recover=): New option.
423 * doc/invoke.texi (fsanitize-recover): Update docs.
424 * opts.c (finish_options): Use opts->x_flag_sanitize
425 instead of flag_sanitize. Prohibit -fsanitize-recover
426 for anything besides UBSan. Formatting.
427 (common_handle_option): Handle OPT_fsanitize_recover_
428 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
429 instead of flag_sanitize.
430 * asan.c (pass_sanopt::execute): Fix up formatting.
431 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
432 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
433 instrument_bool_enum_load, ubsan_instrument_float_cast,
434 instrument_nonnull_arg, instrument_nonnull_return): Check
435 bits in flag_sanitize_recover bitmask instead of
436 flag_sanitize_recover as bool flag.
438 2014-10-22 Jiong Wang <jiong.wang@arm.com>
440 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
442 2014-10-22 Renlin Li <renlin.li@arm.com>
444 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
445 __ARM_FEATURE_IDIV__.
447 2014-10-22 Richard Biener <rguenther@suse.de>
449 * Makefile.in (s-match): Adjust dependencies to only catch
452 2014-10-22 Richard Biener <rguenther@suse.de>
453 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
455 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
456 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
457 (gimple-match.c): Generate by triggering s-match.
458 (generic-match.c): Likewise.
459 (s-match): Rule to build gimple-match.c and generic-match.c
460 by running the genmatch generator program.
461 (build/hash-table.o): Dependencies to build hash-table.c for the host.
462 (build/genmatch.o): Dependencies to build genmatch.
463 (genprog): Add match.
464 (build/genmatch): Likewise.
465 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
466 * generic-match-head.c: New file.
467 * gimple-match-head.c: Likewise.
468 * gimple-match.h: Likewise.
469 * genmatch.c: Likewise.
470 * match.pd: Likewise.
471 * builtins.h (fold_builtin_n): Export.
472 * builtins.c (fold_builtin_n): Likewise.
473 * gimple-fold.h (gimple_build): Declare various overloads.
474 (gimple_simplify): Likewise.
475 (gimple_convert): Re-implement in terms of gimple_build.
476 * gimple-fold.c (gimple_convert): Remove.
477 (gimple_build): New functions.
478 * doc/match-and-simplify.texi: New file.
479 * doc/gccint.texi: Add menu item Match and Simplify and include
480 match-and-simplify.texi.
482 2014-10-22 Jakub Jelinek <jakub@redhat.com>
485 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
486 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
487 even for just TARGET_AVX2, not only for
488 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
489 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
490 otherwise build it using concatenation of 256-bit
492 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
493 avx512 broadcast patterns.
494 (vec_dup<mode>): Likewise. For avx2 use
495 v<sseintprefix>broadcast<bcstscalarsuff> instead of
496 vbroadcast<ssescalarmodesuffix>.
497 (AVX2_VEC_DUP_MODE): New mode iterator.
498 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
499 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
502 * config/i386/i386.c (ix86_pic_register_p): Also return
503 true if x is a hard register with ORIGINAL_REGNO equal to
504 pic_offset_table_rtx pseudo REGNO.
505 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
506 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
508 2014-10-22 Alan Modra <amodra@gmail.com>
510 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
511 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
512 (gcc_obstack_init): Use obstack_specify_allocation in place of
514 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
515 (regexp_representation): Likewise.
516 * godump.c (go_output_type): Likewise.
518 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
520 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
521 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
522 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
524 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
526 * doc/invoke.texi (pedantic-errors): Explain better.
528 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
529 Vidya Praveen <vidya.praveen@atmel.com>
530 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
531 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
532 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
534 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
536 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
537 (avr_nonconst_pointer_addrspace): Likewise.
538 * config/avr/avr.h (AVR_HAVE_LPM): Define.
540 Added AVRTINY architecture to avr target.
541 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
542 (base_arch_s): member added for AVRTINY architecture.
543 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
544 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
545 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
546 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
547 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
548 in callee saved register list.
549 (avr_option_override): CCP address updated for AVRTINY.
550 (avr_init_expanders): tmp and zero rtx initialized as per arch.
551 Reset avr_have_dimode if AVRTINY.
552 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
553 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
554 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
555 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
556 (expand_epilogue): Likewise.
557 (avr_print_operand): Print CCP address in case of AVRTINY also.
559 (function_arg_regno_p): Check different register list for arguments
561 (init_cumulative_args): Check for AVRTINY to update number of argument
563 (tiny_valid_direct_memory_access_range): New function. Return false if
564 direct memory access range is not in accepted range for AVRTINY.
565 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
566 indirect load (with displacement) for AVRTINY.
567 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
568 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
569 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
570 indirect load (no displacement) for AVRTINY.
571 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
572 indirect load (with displacement) for AVRTINY.
573 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
574 indirect load for pre-decrement address.
575 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
576 functions. Update instruction length for AVRTINY.
577 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
579 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
580 (out_movsi_r_mr): Likewise, for SImode.
581 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
582 indirect store (no displacement) for AVRTINY.
583 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
584 indirect store (with displacement) for AVRTINY.
585 (out_movsi_mr_r): Emit out insn for IO address store. Update store
586 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
588 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
589 indirect load (no displacement) for PSImode in AVRTINY.
590 (avr_out_load_psi_reg_disp_tiny): New function to handle register
591 indirect load (with displacement) for PSImode in AVRTINY.
592 (avr_out_load_psi): Call PSImode register indirect load functions for
593 AVRTINY. Update instruction length for AVRTINY.
594 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
595 indirect store (no displacement) for PSImode in AVRTINY.
596 (avr_out_store_psi_reg_disp_tiny): New function to handle register
597 indirect store (with displacement) for PSImode in AVRTINY.
598 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
599 register indirect store functions for AVRTINY.
600 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
601 register indirect store (with displacement) for AVRTINY.
602 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
603 register indirect store function for QImode in AVRTINY.
604 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
605 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
606 indirect store (no displacement) for HImode in AVRTINY.
607 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
608 indirect store (with displacement) for HImode in AVRTINY.
609 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
610 indirect store for post-increment address in HImode.
611 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
612 register indirect store function for HImode in AVRTINY.
613 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
615 (order_regs_for_local_alloc): Updated register allocation order for
617 (avr_conditional_register_usage): New function. It is a target hook
618 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
619 used registers list and register allocation order for AVRTINY.
620 (avr_return_in_memory): Update return value size for AVRTINY.
621 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
622 for AVRTINY arch and tiny program memory base address.
623 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
624 (avr_texinfo): Added description for AVRTINY arch.
625 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
626 STATIC_CHAIN_REGNUM for AVRTINY.
627 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
628 * config/avr/avr.md: Added constants for tmp/ zero registers in
629 AVRTINY. Attributes for AVRTINY added.
630 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
632 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
633 in AVRTINY memory access range.
634 (*mov<mode>): Likewise for HImode and SImode.
635 (*movsf): Likewise for SFmode.
636 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
638 * config/avr/avr-protos.h: Added function prototype for
639 tiny_valid_direct_memory_access_range.
640 * config/avr/avr-tables.opt: Regenerate.
641 * gcc/config/avr/t-multilib: Regenerate.
642 * doc/avr-mmcu.texi: Regenerate.
644 2014-10-21 Andrew Pinski <apinski@cavium.com>
646 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
647 available option also.
648 * config/aarch64/aarch64-cost-tables.h: New file.
649 * config/aarch64/aarch64-cores.def (thunderx): New core.
650 * config/aarch64/aarch64-tune.md: Regenerate.
651 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
652 of config/arm/aarch-cost-tables.h.
653 (thunderx_regmove_cost): New variable.
654 (thunderx_tunings): New variable.
656 2014-10-21 Dehao Chen <dehao@google.com>
658 * auto-profile.c: New file.
659 * auto-profile.h: New file.
660 * basic-block.h (maybe_hot_count_p): New export func.
661 (add_working_set): New export func.
662 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
663 (GCOV_TAG_AFDO_FUNCTION): Likewise.
664 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
665 * opts.c (enable_fdo_optimizations): New func.
666 (common_handle_option): Handle -fauto-profile flag.
667 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
668 (class pass_early_inline): Export early_inliner.
669 (early_inliner): Likewise.
670 (pass_early_inline::execute): Likewise.
671 * ipa-inline.h (early_inliner): Likewise.
672 * predict.c (maybe_hot_count_p): New export func.
673 (counts_to_freqs): AutoFDO logic.
674 (rebuild_frequencies): Likewise.
675 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
676 * profile.c (add_working_set): New func.
677 * Makefile.in (auto-profile.o): New object file.
678 * passes.def (pass_ipa_auto_profile): New pass.
679 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
680 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
681 * toplev.c (compile_file): AutoFDO logic.
682 * doc/invoke.texi (-fauto-profile): New doc.
683 * coverage.c (coverage_init): AutoFDO logic.
684 * common.opt (-fauto-profile): New flag.
685 * timevar.def (TV_IPA_AUTOFDO): New tag.
686 * value-prof.c (gimple_alloc_histogram_value): New export func.
687 (check_ic_target): Likewise.
688 * value-prof.h (gimple_alloc_histogram_value): Likewise.
689 (check_ic_target): Likewise.
691 2014-10-21 David Malcolm <dmalcolm@redhat.com>
693 * cgraph.c (cgraph_c_finalize): New function.
694 * cgraph.h (cgraph_c_finalize): New prototype.
695 (cgraphunit_c_finalize): New prototype.
696 * cgraphunit.c (first_analyzed): Move from analyze_functions
698 (first_analyzed_var): Likewise.
699 (analyze_functions): Move static variables into file-scope.
700 (cgraphunit_c_finalize): New function.
701 * diagnostic.c (diagnostic_finish): Free the memory for
702 context->classify_diagnostic and context->printer, running the
703 destructor for the latter.
704 (bt_stop): Use toplev::main.
705 * dwarf2out.c (dwarf2out_finalize): New function.
706 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
707 * gcse.c (gcse_c_finalize): New function.
708 * gcse.h (gcse_c_finalize): New prototype.
709 * ggc-page.c (init_ggc): Make idempotent.
710 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
711 * ipa-cp.c (ipa_cp_c_finalize): New function.
712 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
713 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
714 a field of class pass_ipa_pure_const.
715 (node_duplication_hook_holder): Likewise.
716 (node_removal_hook_holder): Likewise.
717 (register_hooks): Convert to method...
718 (pass_ipa_pure_const::register_hooks): ...here, converting
719 static variable init_p into...
720 (pass_ipa_pure_const::init_p): ...new field.
721 (pure_const_generate_summary): Update invocation of
722 register_hooks to invoke as a method of current_pass.
723 (pure_const_read_summary): Likewise.
724 (propagate): Convert to...
725 (pass_ipa_pure_const::execute): ...method.
726 * ipa-reference.c (ipa_init): Move static bool init_p from here
728 (ipa_init_p): New file-scope variable, so that it can be reset
729 when repeatedly invoking the compiler within one process by...
730 (ipa_reference_c_finalize): New function.
731 * ipa-reference.h (ipa_reference_c_finalize): New.
732 * main.c (main): Replace invocation of toplev_main with
733 construction of a toplev instance, and call its "main" method.
734 * params.c (global_init_params): Add an assert that
735 params_finished is false.
736 (params_c_finalize): New.
737 * params.h (params_c_finalize): New.
738 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
739 invoking generate_summary, for the benefit of pass_ipa_pure_const.
740 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
741 before calling write_summary hook.
742 (ipa_write_optimization_summaries_1): Likewise when calling
743 write_optimization_summary hook.
744 (ipa_read_summaries_1): Likewise for read_summary hook.
745 (ipa_read_optimization_summaries_1): Likewise for
746 read_optimization_summary hook.
747 (execute_ipa_stmt_fixups): Likewise.
748 * stringpool.c (init_stringpool): Clean up if we're called more
750 * timevar.c (timevar_init): Ignore repeated calls.
751 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
753 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
754 (initialize_rtl): Move static local "initialized_once"
755 into file scope, and rename to...
756 (rtl_initialized): New variable.
757 (do_compile): Move timevar initialization from here to
758 toplev::start_timevars.
759 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
760 toplev::finalize): New functions.
761 (toplev_main): Rename to...
762 (toplev::main): ...this.
763 * toplev.h (class toplev): New class.
765 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
767 * loop-doloop.c: Include loop-unroll.h.
769 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
771 * cfg.h: New. Header file for cfg.c.
772 * cfganal.h: New. Header file for cfganal.c.
773 * lcm.h: New. Header file for lcm.c.
774 * loop-unroll.h: New. Header file for loop-unroll.h.
775 * cfgloop.h: (unroll_loops): Remove prototype.
776 * basic-block.h: Move prototypes and structs to new header files.
777 Include cfg.h, cfganal.h, and lcm.h.
778 * loop-init.c: Include loop-unroll.h.
779 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
780 * modulo-sched.c: Include loop-unroll.h.
782 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
784 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
785 MARKER_BYTE_UNKNOWN markers when handling casts.
787 2014-10-21 Richard Biener <rguenther@suse.de>
789 * tree-ssa-phiopt.c (value_replacement): Properly verify we
790 are the non-singleton PHI.
792 2014-10-21 Jakub Jelinek <jakub@redhat.com>
794 PR tree-optimization/63563
795 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
796 if either dra or drb stmts are not normal loads/stores.
798 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
800 * config/i386/i386.c (expand_vec_perm_1): Fix
801 expand_vec_perm_palignr case.
802 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
805 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
807 * cfgloopanal.c (seq_cost): Delete.
808 * rtl.h (seq_cost): New prototype.
809 * rtlanal.c (seq_cost): New function.
810 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
812 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
814 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
815 * basic-block.h: Remove prototypes for cfgrtl.c.
816 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
817 prototypes to cfgrtl.h.
818 * profile.h (profile_info): Add extern export declaration.
819 * rtl.h: Remove prototypes for cfgrtl.h.
820 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
821 * ipa-inline.c: Include profile.h.
822 * loop-unroll.c: Ditto.
823 * modulo-sched.c: Ditto.
824 * postreload-gcse.c: Ditto.
826 * sched-ebb.c: Ditto.
827 * sched-rgn.c: Ditto.
829 * tree-ssa-loop-ivcanon.c: Ditto.
831 2014-10-20 Richard Biener <rguenther@suse.de>
833 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
834 operands to get a def operand kind match. Signal mismatches
835 to the parent so we can try swapping its operands.
836 (vect_build_slp_tree): Try swapping operands if they have
837 a mismatched operand kind.
839 2014-10-20 Alan Modra <amodra@gmail.com>
842 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
843 Increase "ops" array size. Correct array size tests. Init
844 n_constants in loop. Break out of innermost loop when finding
845 a trivial CONST expression.
847 2014-10-20 Martin Liska <mliska@suse.cz>
850 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
851 Gimple tempate string is compared.
853 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
855 * varasm.c (const_alias_set): Remove.
856 (init_varasm_once): Remove initialization of const_alias_set.
857 (build_constant_desc): Do not set alias set to const_alias_set.
859 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
861 * configure: Regenerate.
862 * configure.ac: Move the test for section attribute specifier "e" in GAS
863 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
864 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
865 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
866 ifdef HAVE_GAS_SECTION_EXCLUDE.
868 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
870 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
871 match_operand expression.
873 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
874 David Edelsohn <dje.gcc@gmail.com>
876 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
878 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
880 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
882 * doc/invoke.texi (Options to Request or Suppress Warnings):
883 Explain options precedence.
884 (Wtrampolines): Do not indent paragraph.
886 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
888 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
889 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
890 (pa_jump_in_call_delay): Likewise.
891 * config/pa/pa.c (pa_option_override): Remove jump in call delay
893 (pa_output_millicode_call): Remove support for jump in call delay.
894 (pa_output_call): Likewise.
895 (pa_jump_in_call_delay): Delete.
896 (pa_following_call): Likewise.
897 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
898 (uncond_branch): Remove following call check from attribute length.
900 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
903 * config/sh/sh-modes.def (PSI): Remove.
904 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
905 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
906 (sh_reorg): Remove commented out FPSCR code.
907 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
908 insn instead of move insn.
909 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
910 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
912 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
913 (sh1_builtin_p): Uncomment.
914 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
915 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
916 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
917 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
918 (general_movsrc_operand, general_movdst_operand): Disallow
920 * config/sh/sh.md (FPSCR_FR): New constant.
921 (push_fpscr): Emit sts_fpscr insn.
922 (pop_fpscr): Emit lds_fpscr_insn.
923 (movsi_ie): Disallow FPSCR operands.
924 (fpu_switch, unnamed related split, extend_psi_si,
925 truncate_si_psi): Remove insns.
926 (lds_fpscr, sts_fpscr): New insns.
927 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
929 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
931 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
932 (clone_inlined_nodes): Do not overwrite the clone if above predicate
935 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
937 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
938 (expand_vec_perm_d): Ditto.
939 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
940 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
942 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
943 (ix86_expand_sse_unpack): Handle V64QImode.
944 (expand_vec_perm_blend): Update conditions for TARGET, handle
945 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
946 (expand_vec_perm_pshufb): Handle V64QImode.
947 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
948 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
949 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
950 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
951 (ix86_expand_vecop_qihi): Handle V64QImode.
952 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
953 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
954 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
955 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
956 (mul<mode>3): Use VI1_AVX512.
957 (<sse2_avx2>_packsswb): Ditto.
958 (<sse2_avx2>_packuswb): Ditto.
959 (<ssse3_avx2>_pshufb<mode>3): Ditto.
960 (<shift_insn><mode>3): Ditto.
962 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
964 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
965 conditions to fix bootstrap.
967 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
969 gcc-plugin.h: Add tm.h and flattened includes from function.h.
971 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
972 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
973 Anna Tikhonova <anna.tikhonova@intel.com>
974 Ilya Tocar <ilya.tocar@intel.com>
975 Andrey Turetskiy <andrey.turetskiy@intel.com>
976 Ilya Verbin <ilya.verbin@intel.com>
977 Kirill Yukhin <kirill.yukhin@intel.com>
978 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
980 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
981 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
982 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
983 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
984 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
985 (define_expand "vec_init<mode>"): Use VF48_I1248.
987 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
988 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
989 Anna Tikhonova <anna.tikhonova@intel.com>
990 Ilya Tocar <ilya.tocar@intel.com>
991 Andrey Turetskiy <andrey.turetskiy@intel.com>
992 Ilya Verbin <ilya.verbin@intel.com>
993 Kirill Yukhin <kirill.yukhin@intel.com>
994 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
996 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
997 expand_sse2_mulvxdi3.
999 2014-10-17 Richard Biener <rguenther@suse.de>
1001 * fold-const.c (fold_comparison): Remove redundant constant
1002 folding and operand swapping.
1003 (fold_binary_loc): Do comparison operand swapping here.
1004 (fold_ternary_loc): Canonicalize operand order for
1005 commutative ternary operations.
1006 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1009 2014-10-17 Jakub Jelinek <jakub@redhat.com>
1011 PR tree-optimization/63464
1012 * gimple.h (gimple_seq_discard): New prototype.
1013 * gimple.c: Include stringpool.h and tree-ssanames.h.
1014 (gimple_seq_discard): New function.
1015 * optabs.h (lshift_cheap_p): New prototype.
1016 * optabs.c (lshift_cheap_p): New function, moved from...
1017 * tree-switch-conversion.c (lshift_cheap_p): ... here.
1018 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1019 (reassoc_branch_fixups): New variable.
1020 (update_range_test): Add otherrangep and seq arguments.
1021 Unshare exp. If otherrange is NULL, use for other ranges
1022 array of pointers pointed by otherrangep instead.
1023 Emit seq before gimplified statements for tem.
1024 (optimize_range_tests_diff): Adjust update_range_test
1026 (optimize_range_tests_xor): Likewise. Fix up comment.
1027 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1029 (optimize_range_tests): Adjust update_range_test caller.
1030 Call optimize_range_tests_to_bit_test.
1031 (branch_fixup): New function.
1032 (execute_reassoc): Call branch_fixup.
1034 PR tree-optimization/63302
1035 * tree-ssa-reassoc.c (optimize_range_tests_xor,
1036 optimize_range_tests_diff): Use !integer_pow2p () instead of
1039 2014-10-17 Martin Liska <mliska@suse.cz>
1041 * ipa-icf.c (sem_function::merge): Local flags are set to false
1042 to enforce equal calling convention to be used.
1043 * opts.c (common_handle_option): Indentation fix.
1045 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
1047 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1049 2014-10-17 Tom de Vries <tom@codesourcery.com>
1051 PR rtl-optimization/61605
1052 * regcprop.c (copyprop_hardreg_forward_1): Use
1053 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1055 2014-10-17 Tom de Vries <tom@codesourcery.com>
1057 PR rtl-optimization/61605
1058 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
1059 notice stores for noops. Don't regard noops as copies.
1061 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
1063 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1064 register in a special way.
1065 (__cpuid_count): Ditto.
1066 * config/i386/driver-i386.h: Protect with
1067 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1068 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1069 is required to compile the function.
1071 2014-10-16 DJ Delorie <dj@redhat.com>
1073 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1076 * config/rs6000/rs6000-c.c (rid_int128): New.
1077 (rs6000_macro_to_expand): Use instead of RID_INT128.
1079 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
1081 * function.h: Flatten file. Remove includes, adjust prototypes to
1082 reflect only what is in function.h.
1083 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1084 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1086 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1087 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1088 prototypes to predict.h.
1089 (init_varasm_status): Move prototype to varasm.h.
1090 * expr.h: Adjust include files.
1091 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1092 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1094 (locate_and_pad_parm): Move prototype to function.h.
1095 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1096 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1097 assign_temp, reposition_prologue_and_epilogue_notes,
1098 prologue_epilogue_contains, sibcall_epilogue_contains,
1099 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1100 set_return_jump_label): Move prototypes to function.h.
1101 * predict.h (optimize_function_for_size_p,
1102 optimize_function_for_speed_p): Relocate prototypes from function.h.
1103 * shrink-wrap.h (emit_return_into_block, active_insn_between,
1104 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1106 * varasm.h (init_varasm_status): Relocate prototype from function.h.
1107 * genattrtab.c (write_header): Add predict.h to include list.
1108 * genconditions.c (write_header): Add predict.h to include list.
1109 * genemit.c (main): Adjust header file includes.
1110 * gengtype.c (ifiles): Add flattened function.h header files.
1111 * genoutput.c (output_prologue): Add predict.h to include list.
1112 * genpreds.c (write_insn_preds_c): Adjust header file includes.
1113 * genrecog.c (write_header): Add flattened function.h header files.
1114 * alias.c: Adjust include files.
1115 * auto-inc-dec.c: Likewise.
1116 * basic-block.h: Likewise.
1117 * bb-reorder.c: Likewise.
1118 * bt-load.c: Likewise.
1119 * builtins.c: Likewise.
1120 * caller-save.c: Likewise.
1121 * calls.c: Likewise.
1122 * cfgbuild.c: Likewise.
1123 * cfgcleanup.c: Likewise.
1124 * cfgexpand.c: Likewise.
1125 * cfgloop.c: Likewise.
1126 * cfgloop.h: Likewise.
1127 * cfgrtl.c: Likewise.
1128 * cgraph.h: Likewise.
1129 * cgraphclones.c: Likewise.
1130 * cgraphunit.c: Likewise.
1131 * combine-stack-adj.c: Likewise.
1132 * combine.c: Likewise.
1133 * coverage.c: Likewise.
1134 * cprop.c: Likewise.
1136 * cselib.c: Likewise.
1137 * dbxout.c: Likewise.
1139 * df-core.c: Likewise.
1140 * df-problems.c: Likewise.
1141 * df-scan.c: Likewise.
1142 * dojump.c: Likewise.
1143 * dwarf2cfi.c: Likewise.
1144 * dwarf2out.c: Likewise.
1145 * emit-rtl.c: Likewise.
1146 * except.c: Likewise.
1147 * explow.c: Likewise.
1149 * final.c: Likewise.
1150 * function.c: Likewise.
1152 * gimple-fold.c: Likewise.
1153 * gimple-low.c: Likewise.
1154 * gimple-streamer.h: Likewise.
1155 * haifa-sched.c: Likewise.
1156 * ifcvt.c: Likewise.
1160 * loop-invariant.c: Likewise.
1161 * lra-assigns.c: Likewise.
1162 * lra-coalesce.c: Likewise.
1163 * lra-constraints.c: Likewise.
1164 * lra-eliminations.c: Likewise.
1165 * lra-lives.c: Likewise.
1166 * lra-spills.c: Likewise.
1168 * lto-cgraph.c: Likewise.
1169 * lto-section-in.c: Likewise.
1170 * lto-section-out.c: Likewise.
1171 * lto-streamer-in.c: Likewise.
1172 * lto-streamer-out.c: Likewise.
1173 * mode-switching.c: Likewise.
1174 * modulo-sched.c: Likewise.
1175 * omp-low.c: Likewise.
1176 * optabs.c: Likewise.
1177 * passes.c: Likewise.
1178 * postreload-gcse.c: Likewise.
1179 * postreload.c: Likewise.
1180 * predict.c: Likewise.
1181 * profile.c: Likewise.
1182 * recog.c: Likewise.
1184 * reg-stack.c: Likewise.
1185 * regcprop.c: Likewise.
1186 * reginfo.c: Likewise.
1187 * regrename.c: Likewise.
1188 * reload.c: Likewise.
1189 * reload1.c: Likewise.
1190 * reorg.c: Likewise.
1191 * resource.c: Likewise.
1192 * rtlanal.c: Likewise.
1193 * sched-deps.c: Likewise.
1194 * sched-ebb.c: Likewise.
1195 * sched-rgn.c: Likewise.
1196 * sel-sched-dump.c: Likewise.
1197 * sel-sched-ir.c: Likewise.
1198 * sel-sched.c: Likewise.
1199 * shrink-wrap.c: Likewise.
1200 * simplify-rtx.c: Likewise.
1201 * statistics.c: Likewise.
1203 * stor-layout.c: Likewise.
1204 * store-motion.c: Likewise.
1205 * symtab.c: Likewise.
1206 * targhooks.c: Likewise.
1207 * toplev.c: Likewise.
1208 * trans-mem.c: Likewise.
1209 * tree-cfg.c: Likewise.
1210 * tree-cfgcleanup.c: Likewise.
1211 * tree-dfa.c: Likewise.
1212 * tree-eh.c: Likewise.
1213 * tree-inline.c: Likewise.
1214 * tree-into-ssa.c: Likewise.
1215 * tree-nested.c: Likewise.
1216 * tree-nrv.c: Likewise.
1217 * tree-profile.c: Likewise.
1218 * tree-ssa-alias.c: Likewise.
1219 * tree-ssa-ccp.c: Likewise.
1220 * tree-ssa-copy.c: Likewise.
1221 * tree-ssa-copyrename.c: Likewise.
1222 * tree-ssa-dom.c: Likewise.
1223 * tree-ssa-operands.c: Likewise.
1224 * tree-ssa-propagate.c: Likewise.
1225 * tree-ssa-structalias.c: Likewise.
1226 * tree-ssa-tail-merge.c: Likewise.
1227 * tree-ssa-threadedge.c: Likewise.
1228 * tree-ssa-threadupdate.c: Likewise.
1229 * tree-ssa-uncprop.c: Likewise.
1230 * tree-ssa-uninit.c: Likewise.
1231 * tree-ssa.c: Likewise.
1232 * tree-stdarg.c: Likewise.
1233 * tree-tailcall.c: Likewise.
1236 * valtrack.c: Likewise.
1237 * varasm.c: Likewise.
1238 * vmsdbgout.c: Likewise.
1240 * config/aarch64/aarch64.c: Add flattened includes from function.h.
1241 * config/alpha/alpha.c: Likewise.
1242 * config/arc/arc.c: Likewise.
1243 * config/arm/arm.c: Likewise.
1244 * config/avr/avr-log.c: Likewise.
1245 * config/avr/avr.c: Likewise.
1246 * config/bfin/bfin.c: Likewise.
1247 * config/c6x/c6x.c: Likewise.
1248 * config/cr16/cr16.c: Likewise.
1249 * config/cris/cris.c: Likewise.
1250 * config/darwin.c: Likewise.
1251 * config/epiphany/epiphany.c: Likewise.
1252 * config/epiphany/mode-switch-use.c: Likewise.
1253 * config/epiphany/resolve-sw-modes.c: Likewise.
1254 * config/fr30/fr30.c: Likewise.
1255 * config/frv/frv.c: Likewise.
1256 * config/h8300/h8300.c: Likewise.
1257 * config/i386/i386.c: Likewise.
1258 * config/ia64/ia64.c: Likewise.
1259 * config/iq2000/iq2000.c: Likewise.
1260 * config/lm32/lm32.c: Likewise.
1261 * config/m32c/m32c.c: Likewise.
1262 * config/m32r/m32r.c: Likewise.
1263 * config/m68k/m68k.c: Likewise.
1264 * config/mcore/mcore.c: Likewise.
1265 * config/mep/mep-pragma.c: Likewise.
1266 * config/mep/mep.c: Likewise.
1267 * config/microblaze/microblaze.c: Likewise.
1268 * config/mips/mips.c: Likewise.
1269 * config/mmix/mmix.c: Likewise.
1270 * config/mn10300/mn10300.c: Likewise.
1271 * config/moxie/moxie.c: Likewise.
1272 * config/msp430/msp430.c: Likewise.
1273 * config/nds32/nds32-cost.c: Likewise.
1274 * config/nds32/nds32-fp-as-gp.c: Likewise.
1275 * config/nds32/nds32-intrinsic.c: Likewise.
1276 * config/nds32/nds32-isr.c: Likewise.
1277 * config/nds32/nds32-md-auxiliary.c: Likewise.
1278 * config/nds32/nds32-memory-manipulation.c: Likewise.
1279 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1280 * config/nds32/nds32-predicates.c: Likewise.
1281 * config/nds32/nds32.c: Likewise.
1282 * config/nios2/nios2.c: Likewise.
1283 * config/pa/pa.c: Likewise.
1284 * config/pdp11/pdp11.c: Likewise.
1285 * config/rl78/rl78.c: Likewise.
1286 * config/rs6000/rs6000.c: Likewise.
1287 * config/rx/rx.c: Likewise.
1288 * config/s390/s390.c: Likewise.
1289 * config/score/score.c: Likewise.
1290 * config/sh/sh.c: Likewise.
1291 * config/sparc/sparc.c: Likewise.
1292 * config/spu/spu.c: Likewise.
1293 * config/stormy16/stormy16.c: Likewise.
1294 * config/tilegx/tilegx.c: Likewise.
1295 * config/tilepro/tilepro.c: Likewise.
1296 * config/v850/v850.c: Likewise.
1297 * config/vax/vax.c: Likewise.
1298 * config/xtensa/xtensa.c: Likewise.
1300 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
1302 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1303 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1305 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1307 * config/sh/sh-protos.h (fldi_ok): Remove.
1308 * config/sh/sh.c (fldi_ok): Likewise.
1309 (sh_secondary_reload): Don't use fldi_ok.
1310 * config/sh/constraints.md (G constraint, H constraint): Don't use
1313 2014-10-16 Martin Liska <mliska@suse.cz>
1315 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1316 Cast to unsigned long.
1317 (sem_item_optimizer::dump_cong_classes): Likewise.
1319 2014-10-16 Tom de Vries <tom@codesourcery.com>
1321 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1322 with SSA_NAME_IN_FREELIST.
1324 2014-10-16 Richard Biener <rguenther@suse.de>
1327 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1328 (fold_builtin_strncat_chk): Move ...
1329 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1330 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1332 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1335 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1338 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
1339 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1340 Anna Tikhonova <anna.tikhonova@intel.com>
1341 Ilya Tocar <ilya.tocar@intel.com>
1342 Andrey Turetskiy <andrey.turetskiy@intel.com>
1343 Ilya Verbin <ilya.verbin@intel.com>
1344 Kirill Yukhin <kirill.yukhin@intel.com>
1345 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1347 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1350 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
1351 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1352 Anna Tikhonova <anna.tikhonova@intel.com>
1353 Ilya Tocar <ilya.tocar@intel.com>
1354 Andrey Turetskiy <andrey.turetskiy@intel.com>
1355 Ilya Verbin <ilya.verbin@intel.com>
1356 Kirill Yukhin <kirill.yukhin@intel.com>
1357 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1359 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1360 V16SI, V32HI, V64QI modes.
1362 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1365 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1366 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1368 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1369 to match fp insn patterns.
1370 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1372 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1373 expand_df_unop, expand_df_binop): Remove.
1374 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1375 FPSCR_STAT_REG as not call clobbered.
1376 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1377 invoking fpscr_set_from_mem.
1379 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1380 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1382 (REGISTER_NAMES): Adjust.
1383 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1384 (FIRST_PSEUDO_REGISTER): Increase to 156.
1385 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1386 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1388 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1389 FPSCR_MODES_REG and FPSCR_STAT_REG.
1390 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1392 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
1393 FPSCR_SZ): Add new constants.
1394 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
1396 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
1397 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
1398 Use TARGET_FPU_ANY condition.
1399 (fpu_switch peephole2): Remove.
1400 (fpu_switch split): Use simple_mem_operand to capture the mem and
1401 adjust split implementation.
1402 (extend_psi_si, truncate_si_psi): New insns.
1403 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
1404 set of FPSCR_MODES_REG.
1406 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
1407 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
1408 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
1409 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
1410 call_value_compact, call_value_compact_rettramp, call,
1411 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
1412 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
1413 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1414 sibcall_value_compact, sibcall_value, call_value_pop_compact,
1415 call_value_pop_compact_rettramp, various unnamed splits):
1416 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
1419 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
1420 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
1421 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
1422 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
1423 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
1425 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
1426 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
1427 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
1428 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
1429 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
1430 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
1431 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
1433 2014-10-16 Martin Liska <mliska@suse.cz>
1434 Jan Hubicka <hubicka@ucw.cz>
1436 * Makefile.in: New object files included.
1437 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
1439 (verify_edge_corresponds_to_fndecl): More sensitive verification
1440 of nodes that are merged by IPA ICF.
1441 * cgraph.h (cgraph_node::num_references): New function.
1442 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
1443 * common.opt: New options ipa-icf, ipa-icf-functions and
1444 ipa-icf-variables introduced.
1445 * doc/invoke.texi: Documentation of new options introduced.
1446 * ipa-icf-gimple.c: New file.
1447 * ipa-icf-gimple.h: New file.
1448 * ipa-icf.c: New file.
1449 * ipa-icf.h: New file.
1450 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
1451 (input_overwrite_node): Likewise.
1452 * lto-section-in.c: New icf section added.
1453 * lto-streamer.h (enum lto_section_type): Likewise.
1454 * opts.c (common_handle_option): New option added.
1455 * passes.def: New pass included.
1456 * timevar.def: Time variable for IPA ICF added.
1457 * tree-pass.h: New IPA ICF pass entry point added.
1459 2014-10-16 Richard Biener <rguenther@suse.de>
1461 PR tree-optimization/63168
1462 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
1463 latches if after merging they are no longer simple.
1464 * cfghooks.c (merge_blocks): Handle merging a latch block
1467 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
1468 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1469 Anna Tikhonova <anna.tikhonova@intel.com>
1470 Ilya Tocar <ilya.tocar@intel.com>
1471 Andrey Turetskiy <andrey.turetskiy@intel.com>
1472 Ilya Verbin <ilya.verbin@intel.com>
1473 Kirill Yukhin <kirill.yukhin@intel.com>
1474 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1476 * config/i386/sse.md
1477 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
1478 support AVX-512VL instructions.
1480 2014-10-16 DJ Delorie <dj@redhat.com>
1482 * tree-core.h: Fix comment to not assume pointers are multiples of
1485 2014-10-15 Tom Tromey <tromey@redhat.com>
1487 * timevar.h (class auto_timevar): New class.
1489 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
1492 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1493 Remove the second alternative.
1494 (regprefix): Remove mode attribute.
1495 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
1496 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
1499 2013-11-05 Ian Lance Taylor <iant@google.com>
1501 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1502 If possible, add .cfi directives to record change to bx.
1503 * config/i386/i386.c (ix86_emit_cfi): New function.
1504 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
1506 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
1509 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
1511 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
1514 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
1516 PR rtl-optimization/63448
1517 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1518 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1519 (LRA_MAX_INHERITANCE_PASSES): Use it.
1520 (lra_constraint_iter_after_spill): Remove.
1521 (lra_assignment_iter): New.
1522 (lra_assignment_iter_after_spill): New.
1523 * lra-assigns.c (lra_assignment_iter): New.
1524 (lra_assignment_iter_after_spill): New.
1525 (former_reload_pseudo_spill_p): New.
1526 (spill_for): Set up former_reload_pseudo_spill_p.
1527 (setup_live_pseudos_and_spill_after_risky): Ditto.
1528 (assign_by_spills): Ditto.
1529 (lra_assign): Increment lra_assignment_iter. Print the iteration
1530 number. Reset former_reload_pseudo_spill_p. Check
1531 lra_assignment_iter_after_spill.
1532 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
1533 lra_assignment_iter and lra_assignment_iter_after_spill.
1534 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1535 (lra_constraints): Remove code with
1536 lra_assignment_iter_after_spill.
1538 2014-10-15 Teresa Johnson <tejohnson@google.com>
1541 * tree-ssa-threadupdate.c (recompute_probabilities): Better
1544 2014-10-15 Renlin Li <renlin.li@arm.com>
1546 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1547 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
1548 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
1549 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
1551 2014-10-15 Richard Biener <rguenther@suse.de>
1553 * gimple-fold.c (gimple_fold_call): Properly keep virtual
1554 SSA form up-to-date when devirtualizing a call to
1555 __builtin_unreachable and avoid fixing up EH info here.
1557 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1558 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1559 Anna Tikhonova <anna.tikhonova@intel.com>
1560 Ilya Tocar <ilya.tocar@intel.com>
1561 Andrey Turetskiy <andrey.turetskiy@intel.com>
1562 Ilya Verbin <ilya.verbin@intel.com>
1563 Kirill Yukhin <kirill.yukhin@intel.com>
1564 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1566 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
1567 to support AVX-512BW.
1568 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
1569 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
1570 (define_insn "*<plusminus_insn><mode>3"): Ditto.
1571 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
1572 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1573 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
1574 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1575 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
1576 (define_insn "*andnot<mode>3"): Ditto.
1577 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
1578 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
1579 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
1580 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
1581 (define_insn "*abs<mode>2"): Remove masking support.
1582 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
1583 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
1584 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
1586 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1587 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1588 Anna Tikhonova <anna.tikhonova@intel.com>
1589 Ilya Tocar <ilya.tocar@intel.com>
1590 Andrey Turetskiy <andrey.turetskiy@intel.com>
1591 Ilya Verbin <ilya.verbin@intel.com>
1592 Kirill Yukhin <kirill.yukhin@intel.com>
1593 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1595 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
1596 * config/i386/sse.md
1597 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
1598 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
1599 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
1600 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1601 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1602 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1603 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1605 2014-10-15 Renlin Li <renlin.li@arm.com>
1607 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
1609 2014-10-15 Jakub Jelinek <jakub@redhat.com>
1611 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
1612 MINUS_EXPR in unsigned type to avoid undefined behavior.
1614 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
1616 * stor-layout.c (self_referential_size): Do not promote arguments.
1618 2014-10-15 Marek Polacek <polacek@redhat.com>
1620 * doc/invoke.texi: Update to reflect that GNU11 is the default
1622 * c-common.h (c_language_kind): Update comment.
1624 2014-10-15 Richard Biener <rguenther@suse.de>
1626 * hash-table.c: Include bconfig.h if building for the host.
1627 * hash-table.h: Do not include ggc.h on the host but just declare
1628 a few ggc allocation templates.
1630 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
1631 Jeff Law <law@redhat.com>
1633 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
1634 multiple hard registers, use smaller mode derived from MODE.
1636 2014-10-15 Andreas Schwab <schwab@suse.de>
1638 * explow.c (convert_memory_address_addr_space_1): Mark in_const
1639 as ATTRIBUTE_UNUSED.
1641 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
1643 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
1644 (decide_unrolling): ... this one.
1645 (peel_loops_completely): Remove.
1646 (decide_peel_simple): Remove.
1647 (decide_peel_once_rolling): Remove.
1648 (decide_peel_completely): Remove.
1649 (peel_loop_simple): Remove.
1650 (peel_loop_completely): Remove.
1651 (unroll_and_peel_loops): Rename to ...
1652 (unroll_loops): ... this one; handle only unrolling.
1653 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
1656 (unroll_and_peel_loops): Remove.
1657 (unroll_loops): New.
1658 * passes.def: Replace
1659 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
1660 * loop-init.c (gate_rtl_unroll_and_peel_loops,
1661 rtl_unroll_and_peel_loops): Rename to ...
1662 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
1663 (pass_rtl_unroll_and_peel_loops): Rename to ...
1664 (pass_rtl_unroll_loops): ... this one.
1665 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
1666 (make_pass_rtl_unroll_loops): New.
1667 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
1668 (canonicalize_loop_induction_variables): Update.
1670 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
1672 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
1673 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
1674 !TARGET_HARD_FLOAT_POSTINC.
1675 (*lsip, *ssip): new instructions.
1677 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
1679 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
1682 2014-10-14 Andrew Pinski <apinski@cavium.com>
1684 * explow.c (convert_memory_address_addr_space): Rename to ...
1685 (convert_memory_address_addr_space_1): This. Add in_const argument.
1686 Inside a CONST RTL, permute the conversion and addition of constant
1687 for zero and sign extended pointers.
1688 (convert_memory_address_addr_space): New function.
1690 2014-10-14 Andrew Pinski <apinski@cavium.com>
1693 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
1696 * explow.c (convert_memory_address_addr_space): Also permute the
1697 conversion and addition of constant for zero-extend.
1699 2014-10-14 DJ Delorie <dj@redhat.com>
1701 * config/msp430/msp430-modes.def (PSI): Add.
1703 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
1704 (msp430_hard_regno_nregs_with_padding): New.
1705 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
1706 (msp430_hard_regno_nregs_has_padding): New.
1707 (msp430_hard_regno_nregs_with_padding): New.
1708 (msp430_unwind_word_mode): Use PSImode instead of SImode.
1709 (msp430_addr_space_legitimate_address_p): New.
1710 (msp430_asm_integer): New.
1711 (msp430_init_dwarf_reg_sizes_extra): New.
1712 (msp430_print_operand): Use X suffix for PSImode even in small model.
1713 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
1714 (PTR_SIZE): ...but 4 bytes for EH.
1715 (SIZE_TYPE): Use __int20.
1716 (PTRDIFF_TYPE): Likewise.
1717 (INCOMING_FRAME_SP_OFFSET): Adjust.
1718 * config/msp430/msp430.md (movqi_topbyte): New.
1719 (movpsi): Use fixed suffixes.
1720 (movsipsi2): Enable for 430X, not large model.
1721 (extendhipsi2): Likewise.
1722 (zero_extendhisi2): Likewise.
1723 (zero_extendhisipsi2): Likewise.
1724 (extend_and_shift1_hipsi2): Likewise.
1725 (extendpsisi2): Likewise.
1726 (*bitbranch<mode>4_z): Fix suffix logic.
1728 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
1731 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
1732 do not choke on null node.
1733 <VAR_DECL>: Likewise.
1735 2014-10-14 DJ Delorie <dj@redhat.com>
1737 * machmode.h (int_n_data_t): New.
1738 (int_n_enabled_p): New.
1740 * tree.c (int_n_enabled_p): New.
1742 (make_or_reuse_type): Check for all __intN types, not just
1744 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
1746 * tree.h (int128_integer_type_node): Remove.
1747 (int128_unsigned_type_node): Remove.
1748 (int_n_trees_t): New.
1749 (int_n_enabled_p): New.
1751 * toplev.c (standard_type_bitsize): New.
1752 (do_compile): Check which __intN types are enabled for the current
1754 * builtin-types.def (BT_INT128): Remove.
1755 (BT_UINT128): Remove.
1756 * machmode.def: Add macro to create __int128 for all targets.
1757 * stor-layout.c (mode_for_size): Support __intN types.
1758 (smallest_mode_for_size): Likewise.
1759 (initialize_sizetypes): Support __intN types.
1760 * genmodes.c (struct mode_data): Add int_n field.
1761 (blank_mode): Likewise.
1764 (emit_insn_modes_h): Count __intN entries and define
1766 (emit_mode_int_n): New.
1767 (emit_insn_modes_c): Call it.
1768 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
1769 types, not just __int128.
1770 * tree-core.h (integer_type_kind): Remove __int128-specific
1771 entries, reserve spots for __intN entries.
1773 * config/msp430/msp430-modes.def (PSI): Add.
1775 2014-10-14 Kito Cheng <kito@0xlab.org>
1777 * ira.c: Fix typo in comment.
1779 * ira-build.c: Ditto.
1780 * ira-color.c: Ditto.
1781 * ira-emit.c: Ditto.
1783 * ira-lives.c: Ditto.
1785 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
1787 PR rtl-optimization/63475
1788 * alias.c (true_dependence_1): Always use get_addr to extract
1789 true address operands from x_addr and mem_addr. Use extracted
1790 address operands to check for references with alignment ANDs.
1791 Use extracted address operands with find_base_term and
1792 base_alias_check. For noncanonicalized operands call canon_rtx with
1793 extracted address operand.
1794 (write_dependence_1): Ditto.
1795 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
1797 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
1800 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
1803 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1804 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1805 Anna Tikhonova <anna.tikhonova@intel.com>
1806 Ilya Tocar <ilya.tocar@intel.com>
1807 Andrey Turetskiy <andrey.turetskiy@intel.com>
1808 Ilya Verbin <ilya.verbin@intel.com>
1809 Kirill Yukhin <kirill.yukhin@intel.com>
1810 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1812 * config/i386/i386.c
1813 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
1814 (ix86_expand_int_vcond): Ditto.
1816 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1817 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1818 Anna Tikhonova <anna.tikhonova@intel.com>
1819 Ilya Tocar <ilya.tocar@intel.com>
1820 Andrey Turetskiy <andrey.turetskiy@intel.com>
1821 Ilya Verbin <ilya.verbin@intel.com>
1822 Kirill Yukhin <kirill.yukhin@intel.com>
1823 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1825 * config/i386/i386.c
1826 (emit_reduc_half): Handle V64QI and V32HI mode.
1827 * config/i386/sse.md
1828 (define_mode_iterator VI_AVX512BW): New.
1829 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
1831 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1832 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1833 Anna Tikhonova <anna.tikhonova@intel.com>
1834 Ilya Tocar <ilya.tocar@intel.com>
1835 Andrey Turetskiy <andrey.turetskiy@intel.com>
1836 Ilya Verbin <ilya.verbin@intel.com>
1837 Kirill Yukhin <kirill.yukhin@intel.com>
1838 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1840 * config/i386/sse.md
1841 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
1843 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1844 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1845 Anna Tikhonova <anna.tikhonova@intel.com>
1846 Ilya Tocar <ilya.tocar@intel.com>
1847 Andrey Turetskiy <andrey.turetskiy@intel.com>
1848 Ilya Verbin <ilya.verbin@intel.com>
1849 Kirill Yukhin <kirill.yukhin@intel.com>
1850 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1852 * config/i386/i386.c
1853 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
1854 * config/i386/sse.md
1855 (define_mode_iterator VI): Add V64QI and V32HI modes.
1857 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1858 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1859 Anna Tikhonova <anna.tikhonova@intel.com>
1860 Ilya Tocar <ilya.tocar@intel.com>
1861 Andrey Turetskiy <andrey.turetskiy@intel.com>
1862 Ilya Verbin <ilya.verbin@intel.com>
1863 Kirill Yukhin <kirill.yukhin@intel.com>
1864 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1866 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
1868 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1869 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1870 Anna Tikhonova <anna.tikhonova@intel.com>
1871 Ilya Tocar <ilya.tocar@intel.com>
1872 Andrey Turetskiy <andrey.turetskiy@intel.com>
1873 Ilya Verbin <ilya.verbin@intel.com>
1874 Kirill Yukhin <kirill.yukhin@intel.com>
1875 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1877 * config/i386/sse.md
1878 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
1879 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
1881 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1882 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1883 Anna Tikhonova <anna.tikhonova@intel.com>
1884 Ilya Tocar <ilya.tocar@intel.com>
1885 Andrey Turetskiy <andrey.turetskiy@intel.com>
1886 Ilya Verbin <ilya.verbin@intel.com>
1887 Kirill Yukhin <kirill.yukhin@intel.com>
1888 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1890 * config/i386/sse.md
1891 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
1892 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
1894 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1895 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1896 Anna Tikhonova <anna.tikhonova@intel.com>
1897 Ilya Tocar <ilya.tocar@intel.com>
1898 Andrey Turetskiy <andrey.turetskiy@intel.com>
1899 Ilya Verbin <ilya.verbin@intel.com>
1900 Kirill Yukhin <kirill.yukhin@intel.com>
1901 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1903 * config/i386/sse.md
1904 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
1905 (define_mode_iterator VI2_AVX2): Add V32HI mode.
1906 (define_expand "mul<mode>3<mask_name>"): Add masking.
1907 (define_insn "*mul<mode>3<mask_name>"): Ditto.
1908 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
1909 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
1910 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
1911 (define_mode_attr SDOT_PMADD_SUF): Ditto.
1912 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
1913 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
1914 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
1915 (define_insn "avx2_packusdw"): Delete.
1916 (define_insn "sse4_1_packusdw"): Ditto.
1917 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
1919 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1920 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1921 Anna Tikhonova <anna.tikhonova@intel.com>
1922 Ilya Tocar <ilya.tocar@intel.com>
1923 Andrey Turetskiy <andrey.turetskiy@intel.com>
1924 Ilya Verbin <ilya.verbin@intel.com>
1925 Kirill Yukhin <kirill.yukhin@intel.com>
1926 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1928 * config/i386/sse.md
1929 (define_insn "vec_dup<mode>"): Update constraints.
1931 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1932 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1933 Anna Tikhonova <anna.tikhonova@intel.com>
1934 Ilya Tocar <ilya.tocar@intel.com>
1935 Andrey Turetskiy <andrey.turetskiy@intel.com>
1936 Ilya Verbin <ilya.verbin@intel.com>
1937 Kirill Yukhin <kirill.yukhin@intel.com>
1938 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1940 * config/i386/sse.md
1941 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
1942 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
1943 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
1945 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1946 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1947 Anna Tikhonova <anna.tikhonova@intel.com>
1948 Ilya Tocar <ilya.tocar@intel.com>
1949 Andrey Turetskiy <andrey.turetskiy@intel.com>
1950 Ilya Verbin <ilya.verbin@intel.com>
1951 Kirill Yukhin <kirill.yukhin@intel.com>
1952 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1954 * config/i386/sse.md
1955 (define_expand "mul<mode>3<mask_name>"): Add masking.
1957 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1958 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1959 Anna Tikhonova <anna.tikhonova@intel.com>
1960 Ilya Tocar <ilya.tocar@intel.com>
1961 Andrey Turetskiy <andrey.turetskiy@intel.com>
1962 Ilya Verbin <ilya.verbin@intel.com>
1963 Kirill Yukhin <kirill.yukhin@intel.com>
1964 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1966 * config/i386/sse.md
1967 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
1968 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
1970 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1971 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1972 Anna Tikhonova <anna.tikhonova@intel.com>
1973 Ilya Tocar <ilya.tocar@intel.com>
1974 Andrey Turetskiy <andrey.turetskiy@intel.com>
1975 Ilya Verbin <ilya.verbin@intel.com>
1976 Kirill Yukhin <kirill.yukhin@intel.com>
1977 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1979 * config/i386/sse.md
1980 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
1981 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
1982 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
1985 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
1986 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1987 Anna Tikhonova <anna.tikhonova@intel.com>
1988 Ilya Tocar <ilya.tocar@intel.com>
1989 Andrey Turetskiy <andrey.turetskiy@intel.com>
1990 Ilya Verbin <ilya.verbin@intel.com>
1991 Kirill Yukhin <kirill.yukhin@intel.com>
1992 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1994 * config/i386/sse.md
1995 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
1996 use VF_128_256 mode iterator and update assembler emit code.
1997 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
1998 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
1999 Add masking, use VF_128_256 mode iterator.
2000 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2001 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2002 Add masking, use VF_128_256 mode iterator and update assembler emit
2004 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2005 (define_mode_attr avx512flogicsuff): Delete.
2006 (define_insn "avx512f_<logic><mode>"): Ditto.
2007 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2009 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2011 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2012 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2013 Anna Tikhonova <anna.tikhonova@intel.com>
2014 Ilya Tocar <ilya.tocar@intel.com>
2015 Andrey Turetskiy <andrey.turetskiy@intel.com>
2016 Ilya Verbin <ilya.verbin@intel.com>
2017 Kirill Yukhin <kirill.yukhin@intel.com>
2018 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2020 * config/i386/sse.md
2021 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2022 (define_expand "vashr<mode>3<mask_name>"): Add masking,
2023 use VI12_128 mode iterator.
2024 (define_expand "ashrv2di3<mask_name>"): New.
2026 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2027 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2028 Anna Tikhonova <anna.tikhonova@intel.com>
2029 Ilya Tocar <ilya.tocar@intel.com>
2030 Andrey Turetskiy <andrey.turetskiy@intel.com>
2031 Ilya Verbin <ilya.verbin@intel.com>
2032 Kirill Yukhin <kirill.yukhin@intel.com>
2033 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2035 * config/i386/i386.c
2036 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2037 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2038 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2039 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2040 CODE_FOR_avx512vl_ucmpv4si3_mask.
2041 * config/i386/sse.md
2042 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2043 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2045 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2046 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2047 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2048 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2049 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2050 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2052 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2053 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2054 Anna Tikhonova <anna.tikhonova@intel.com>
2055 Ilya Tocar <ilya.tocar@intel.com>
2056 Andrey Turetskiy <andrey.turetskiy@intel.com>
2057 Ilya Verbin <ilya.verbin@intel.com>
2058 Kirill Yukhin <kirill.yukhin@intel.com>
2059 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2061 * config/i386/sse.md
2062 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2063 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2064 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2065 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2066 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2067 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2068 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2069 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2070 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2072 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2073 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2074 Anna Tikhonova <anna.tikhonova@intel.com>
2075 Ilya Tocar <ilya.tocar@intel.com>
2076 Andrey Turetskiy <andrey.turetskiy@intel.com>
2077 Ilya Verbin <ilya.verbin@intel.com>
2078 Kirill Yukhin <kirill.yukhin@intel.com>
2079 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2081 * config/i386/sse.md
2082 (define_insn "avx512f_blendm<mode>"): Delete.
2083 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2084 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2085 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2086 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2088 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2091 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2094 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2096 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2097 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2098 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2099 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2102 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2105 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2107 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2110 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2113 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2116 2014-10-14 Richard Biener <rguenther@suse.de>
2118 PR tree-optimization/63512
2119 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2122 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
2125 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2126 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
2128 (negsf2_i): Rename to *negsf2_i.
2129 (abssf2_i): Rename to *abssf2_i.
2130 (negdf2_i): Rename to *negdf2_i.
2131 (absdf2_i): Rename to *absdf2_i.
2133 2014-10-14 Felix Yang <felix.yang@huawei.com>
2134 Jeff Law <law@redhat.com>
2136 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2137 "replace" into boolean bitfields; turn member "loop_depth" into a short
2138 integer; add new member "no_equiv" and "reserved".
2139 (no_equiv): Set no_equiv of struct equivalence if register is marked
2140 as having no known equivalence.
2141 (update_equiv_regs): Check all definitions for a multiple-set
2142 register to make sure that the RHS have the same value.
2144 2014-10-13 Richard Henderson <rth@redhat.com>
2146 * combine-stack-adj.c (no_unhandled_cfa): New.
2147 (maybe_merge_cfa_adjust): New.
2148 (combine_stack_adjustments_for_block): Use them.
2150 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
2152 * Makefile.in (TAGS): Tag ../include files.
2154 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2156 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2157 to rs6000_dbx_register_number.
2158 (DWARF_FRAME_REGNUM): Redefine as identity map.
2159 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2160 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2161 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2162 argument to handle .debug_frame and .eh_frame directly. Always
2163 translate SPE high register numbers. Add special treatment for CR,
2164 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
2166 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2167 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2168 (RS6000_USE_DWARF_NUMBERING): Define.
2169 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2170 (RS6000_USE_DWARF_NUMBERING): Define.
2171 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2172 (RS6000_USE_DWARF_NUMBERING): Define.
2173 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2174 (RS6000_USE_DWARF_NUMBERING): Define.
2175 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2176 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2178 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2180 * config/i386/i386.c (ix86_address_cost): Lower cost for
2181 when address contains GOT register.
2183 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
2184 Vladimir Makarov <vmakarov@redhat.com>
2188 PR rtl-optimization/55458
2189 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2190 (ix86_init_pic_reg): New.
2191 (ix86_select_alt_pic_regnum): Add check on pseudo register.
2192 (ix86_save_reg): Likewise.
2193 (ix86_expand_prologue): Remove PIC register initialization
2194 now performed in ix86_init_pic_reg.
2195 (ix86_output_function_epilogue): Add check on pseudo register.
2196 (set_pic_reg_ever_alive): New.
2197 (legitimize_pic_address): Replace df_set_regs_ever_live with new
2198 set_pic_reg_ever_alive.
2199 (legitimize_tls_address): Likewise.
2200 (ix86_pic_register_p): New check.
2201 (ix86_delegitimize_address): Add check on pseudo register.
2202 (ix86_expand_call): Insert move from pseudo PIC register to ABI
2203 defined REAL_PIC_OFFSET_TABLE_REGNUM.
2204 (TARGET_INIT_PIC_REG): New.
2205 (TARGET_USE_PSEUDO_PIC_REG): New.
2206 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2207 if pic_offset_table_rtx exists.
2208 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2210 * doc/tm.texi: Regenerate.
2211 * function.c (assign_parms): Generate pseudo register for PIC.
2212 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2214 * ira-color.c (color_pass): Add check on pseudo register.
2215 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2217 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2219 (ira): Add target specific PIC register initialization.
2220 (do_reload): Keep PIC pseudo register.
2221 * lra-assigns.c (spill_for): Add checks on pseudo register.
2222 * lra-constraints.c (contains_symbol_ref_p): New.
2223 (lra_constraints): Enable lra risky transformations when PIC is pseudo
2225 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2226 * target.def (use_pseudo_pic_reg): New.
2227 (init_pic_reg): New.
2229 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2231 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2232 Remove m_SILVERMONT and m_INTEL from the tune.
2234 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2237 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2238 when _HPUX_SOURCE is defined.
2240 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2242 PR tree-optimization/62127
2243 * tree.c (remap_type_1): When remapping array, remap
2246 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
2248 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2249 longer impact parallelization.
2251 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2254 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2256 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
2258 * asan.c (instrument_derefs): BIT_FIELD_REF added.
2260 2014-10-13 Richard Biener <rguenther@suse.de>
2262 PR tree-optimization/63419
2263 * gimple-fold.h (gimple_convert): New function.
2264 * gimple-fold.c (gimple_convert): Likewise.
2265 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2266 to split out required conversions early.
2268 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
2270 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2271 Add the parts of an insn in reverse order, with the pattern at
2272 the top of the queue. Detect when we're iterating over a SEQUENCE
2273 pattern and in that case just consider patterns of subinstructions.
2275 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
2278 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2280 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2282 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2283 address. Use def chains to handle GBR clobbering call insns.
2285 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
2287 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2288 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2289 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2290 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2291 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2292 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2293 * doc/gty.texi (for_user): Document new option.
2294 * gengtype.c (create_user_defined_type): Don't try to get a struct for
2296 (walk_type): Don't error out on for_user option.
2297 (write_func_for_structure): Emit user marking routines if requested by
2299 (write_local_func_for_structure): Likewise.
2300 (main): Mark types with for_user option as used.
2301 * ggc.h (gt_pch_nx): Add overload for unsigned int.
2302 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2303 * hash-table.h (ggc_hasher): New struct.
2304 (hash_table::create_ggc): New function.
2305 (gt_pch_nx): New overload for hash_table.
2307 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
2309 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2310 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2311 * config/sh/sh.c: Likewise.
2312 * config/sh/sh-mem.cc: Likewise.
2313 * config/sh/sh.md: Likewise.
2314 * config/sh/predicates.md: Likewise.
2315 * config/sh/sync.md: Likewise.
2317 2014-10-11 Martin Liska <mliska@suse.cz>
2320 * cgraphunit.c (symbol_table::process_new_functions): Missing call
2321 for call_cgraph_insertion_hooks added.
2323 2014-10-10 Jakub Jelinek <jakub@redhat.com>
2326 * stor-layout.c (min_align_of_type): Don't decrease alignment
2327 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2328 TYPE_USER_ALIGN is set.
2330 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
2332 PR rtl-optimization/63483
2333 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2334 references when alignment ANDs are involved.
2335 (write_dependence_p): Ditto.
2336 (may_alias_p): Ditto.
2338 2014-10-10 Marek Polacek <polacek@redhat.com>
2340 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2341 * doc/invoke.texi: Document -fsanitize=object-size.
2342 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2343 or it into SANITIZE_UNDEFINED.
2344 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2345 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2346 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2347 * opts.c (common_handle_option): Handle -fsanitize=object-size.
2348 * ubsan.c: Include tree-object-size.h.
2349 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2350 (ubsan_expand_bounds_ifn): Use false instead of 0.
2351 (ubsan_expand_objsize_ifn): New function.
2352 (instrument_object_size): New function.
2353 (pass_ubsan::execute): Add object size instrumentation.
2354 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2356 2014-10-10 Richard Henderson <rth@redhat.com>
2359 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2360 Restrict the set of expressions we're willing to move.
2362 2014-10-10 Jeff Law <law@redhat.com>
2364 * ira.c (struct equivalence): Promote INIT_INSNs field to
2365 an rtx_insn_list. Add comments.
2366 (no_equiv): Promote LIST to an rtx_insn_list. Update
2367 testing for and creating the special marker. Use methods
2368 to extract the insn and next pointers. Promote INSN to an
2370 (update_equiv_regs): Update test for special marker in the
2373 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2375 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2376 * configure: Regenerate.
2377 * config/aarch64/aarch64.c (aarch64_override_options): Handle
2378 TARGET_FIX_ERR_A53_835769_DEFAULT.
2379 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2381 * doc/install.texi (aarch64*-*-*): Document
2382 new --enable-fix-cortex-a53-835769 option.
2384 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2385 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2387 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2388 (ADJUST_INSN_LENGTH): Define.
2389 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2390 * config/aarch64/aarch64.c (is_mem_p): New function.
2391 (is_memory_op): Likewise.
2392 (aarch64_prev_real_insn): Likewise.
2393 (is_madd_op): Likewise.
2394 (dep_between_memop_and_curr): Likewise.
2395 (aarch64_madd_needs_nop): Likewise.
2396 (aarch64_final_prescan_insn): Likewise.
2397 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2398 and -mno-fix-cortex-a53-835769 options.
2400 2014-10-10 Jakub Jelinek <jakub@redhat.com>
2402 PR tree-optimization/63464
2403 * tree-switch-conversion.c (struct case_bit_test): Remove
2404 hi and lo fields, add wide_int mask field.
2405 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
2406 hi/lo fields into wide_int mask operations, optimize by pretending
2407 minval to be 0 if maxval is small enough.
2408 (process_switch): Adjust caller.
2410 2014-10-10 Richard Biener <rguenther@suse.de>
2412 PR tree-optimization/63379
2413 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2414 a neutral operand for min/max when it is not a reduction chain.
2416 2014-10-10 Richard Biener <rguenther@suse.de>
2418 PR tree-optimization/63476
2419 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
2420 (BB_LIVE_VOP_ON_EXIT): New define.
2421 (create_expression_by_pieces): Assign VUSEs to stmts.
2422 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
2423 (pass_pre::execute): Assert virtual SSA form is up-to-date
2426 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
2428 * lra-assigns.c (assign_by_spills): Error out on spill failure.
2430 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
2432 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
2435 2014-10-09 Richard Biener <rguenther@suse.de>
2437 PR tree-optimization/63380
2438 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2441 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
2443 * config/avr/avr.opt (mmcu=): Change to have a string value.
2444 (mn-flash=, mskip-bug, march=, mrmw): New options.
2445 (HeaderInclude): New.
2446 (mmcu=): Remove Var / Init clauses.
2447 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
2449 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
2450 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
2451 (SYMBOL_FLAG_IO_LOW): Define.
2452 (avr_device_to_as, avr_device_to_ld): Don't declare.
2453 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2454 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
2455 (EXTRA_SPEC_FUNCTIONS): Don't define.
2456 (ASM_SPEC): Translate -arch= option to -mmcu= option.
2457 (LINK_SPEC): Translate -arch= option to -m= option.
2458 Don't use device_to_ld / device_to_data_start.
2459 (STARTFILE_SPEC): Now empty.
2460 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
2461 * config/avr/gen-avr-mmcu-specs.c: New file.
2462 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
2463 (s-device-specs): Likewise.
2464 (GCC_PASSES): Add s-device-specs.
2465 (install-driver): Depend on install-device-specs.
2466 (install-device-specs): New rule.
2467 * config/avr/avr.c (avr_option_override): Look up mcu arch by
2468 avr_arch_index and provide fallback initialization for avr_n_flash.
2469 (varasm.h): #include.
2470 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
2471 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
2472 (avr_attribute_table): Add "io", "address" and "io_low".
2473 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
2474 Add special handling for symbols with "io" and/or "address" attributes.
2475 (avr_asm_asm_output_aligned_bss): New function.
2476 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
2477 as appropriate. Handle io_low attribute.
2478 (avr_out_sbxx_branch): Handle symbolic io addresses.
2479 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
2480 avr_n_flash instead of avr_current_device->n_flash.
2481 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
2482 (avr_emit_movmemhi): Likewise.
2483 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
2484 Use TARGET_RMW instead of avr_current_device->dev_attributes.
2485 Don't define avr_current_device->macro (that's the specfile's job).
2486 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
2487 * config/avr/avr.c (avr_2word_insn_p): Likewise.
2488 * config/avr/avr.md (*cpse.ne): Likewise.
2489 (mov<mode>): Use avr_eval_addr_attrib.
2490 (cbi): Change constraint for low_io_address_operand operand to "i".
2491 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
2492 * config/avr/predicates.md (io_address_operand):
2493 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
2494 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
2495 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
2497 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
2498 * config/avr/genmultilib.awk: Use -march=.
2499 Remove Multilib matches processing.
2500 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
2501 * config/avr/avr-arch.h: Add double include guard.
2502 (avr_mcu_t) <library_name>: Update comment.
2503 * config/avr/driver-avr.c (avr_device_to_as): Delete.
2504 (avr_device_to_ld, avr_device_to_data_start): Likewise.
2505 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
2506 (avr_device_to_sp8): Likewise.
2507 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
2509 * doc/extend.texi (io, address): Document new AVR variable attributes.
2512 2014-10-09 Marek Polacek <polacek@redhat.com>
2514 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
2516 2014-10-08 Richard Biener <rguenther@suse.de>
2518 PR tree-optimization/61969
2519 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2522 2014-10-09 Richard Biener <rguenther@suse.de>
2524 PR tree-optimization/63445
2525 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
2526 overflow for non-equality compares.
2528 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
2530 PR rtl-optimization/57003
2531 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2532 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2533 killing regs_invalidated_by_call.
2535 2014-10-08 Teresa Johnson <tejohnson@google.com>
2538 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
2539 (ssa_fix_duplicate_block_edges): Invoke it.
2540 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
2542 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
2545 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2546 atomic_fetch_<fetchop_name>si_hard,
2547 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2548 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2549 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2550 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2552 2014-10-08 Rong Xu <xur@google.com>
2554 * gcov-tool.c (profile_overlap): New driver function
2555 to compute profile overlap.
2556 (print_overlap_usage_message): New.
2557 (overlap_usage): New.
2559 (print_usage): Add calls to overlap function.
2561 * doc/gcov-tool.texi: Add documentation.
2563 2014-10-08 Steve Ellcey <sellcey@mips.com>
2565 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
2566 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
2568 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
2570 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
2571 pattern matching of MEM_REF.
2572 (check_stmt_for_type_change): Update.
2574 2014-10-08 Steve Ellcey <sellcey@mips.com>
2576 * config/mips/linux64.h: Remove.
2577 * config/mips/gnu-user64.h: Remove.
2578 * gcc.config (mips*-*-*): Remove references to linux64.h and
2580 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
2581 with modified version from gnu-user64.h.
2582 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
2583 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
2584 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
2586 (GNU_USER_LINK_EMULATION64): Ditto.
2587 (GNU_USER_LINK_EMULATIONN32): Ditto.
2588 (GLIBC_DYNAMIC_LINKER32): Ditto.
2589 (GLIBC_DYNAMIC_LINKER64): Ditto.
2590 (GLIBC_DYNAMIC_LINKERN32): Ditto.
2591 (UCLIBC_DYNAMIC_LINKER32): Ditto.
2592 (UCLIBC_DYNAMIC_LINKER64): Ditto.
2593 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
2594 (BIONIC_DYNAMIC_LINKERN32): Ditto.
2595 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
2596 (GLIBC_DYNAMIC_LINKER): Delete.
2597 (UCLIBC_DYNAMIC_LINKER): Delete.
2599 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
2600 Richard Biener <rguenther@suse.de>
2602 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
2603 Get address space from operand 0 (BASE).
2605 2014-10-07 Iain Sandoe <iain@codesourcery.com>
2608 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
2610 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
2612 * dwarf2out.c: Remove current_function_has_inlines.
2613 (gen_subprogram_die): Same.
2614 (gen_inlined_subroutine_die): Same.
2616 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
2618 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
2620 (_addcarry_u64): Ditto.
2621 (_addcarryx_u64): Ditto.
2623 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
2625 * cgraph.h (cgraph_node::get_fun): Declare.
2626 * cgraph.c (cgraph_node::get_fun): New method.
2627 * ipa-inline.c (can_inline_edge_p): Use it.
2629 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
2631 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
2632 and -ftrapping-math.
2633 * lto-wrapper.c (merge_and_complain): Likewise.
2634 (run_gcc): Likewise.
2636 2014-10-06 Rong Xu <xur@google.com>
2638 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
2639 * tree-profile.c: (params.h): New include.
2640 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
2641 and __gcov_indirect_call_topn_counters for
2642 indirect_call_topn_profile.
2643 (gimple_init_edge_profiler): New decls for
2644 __gcov_indirect_call_topn_profiler.
2645 (gimple_gen_ic_profiler): Generate the correct profiler call.
2646 (gimple_gen_ic_func_profiler): Fix format.
2647 * value-prof.c (params.h): New include.
2648 (dump_histogram_value): Hanlde indirect_call_topn counters.
2649 (stream_in_histogram_value): Ditto.
2650 (gimple_indirect_call_to_profile): Use indirect_call_topn
2651 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
2652 (gimple_find_values_to_profile): Hanlde indirect_call_topn
2654 * value-prof.h (enum hist_type): Histrogram type for
2655 indirect_call_topn counters.
2656 * profile.c (instrument_values): Instrument
2657 indirect_call_topn counters.
2659 2014-10-06 Rong Xu <xur@google.com>
2661 * Makefile.in: Fix dependence.
2662 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
2663 indirect call topn profiler.
2666 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
2668 * calls.c (expand_call): Do not use the target as the return slot if
2669 it is not sufficiently aligned.
2671 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2673 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
2674 discussion of permutes and why we don't handle them.
2676 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
2678 * config/sparc/predicates.md (int_register_operand): Delete.
2680 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
2682 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
2684 2014-10-06 Jakub Jelinek <jakub@redhat.com>
2686 * ubsan.h (ubsan_get_source_location): New prototype.
2687 * ubsan.c (ubsan_source_location_type): New variable.
2688 Function renamed to ...
2689 (ubsan_get_source_location_type): ... this. Cache
2690 return value in ubsan_source_location_type variable.
2691 (ubsan_source_location, ubsan_create_data): Use
2692 ubsan_get_source_location_type instead of
2693 ubsan_source_location_type.
2694 * asan.c (asan_protect_global): Don't protect globals
2695 with ubsan_get_source_location_type () type.
2696 (asan_add_global): Provide global decl location info
2699 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
2701 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
2704 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
2706 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
2708 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
2710 (ipa_polymorphic_call_context::dump): Fix formating.
2711 (walk_ssa_copies): Add logic avoiding loops; update uses.
2712 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
2714 2014-10-02 Mark Wielaard <mjw@redhat.com>
2717 * dwarf2out.c (gen_subprogram_die): When a member function is
2718 explicitly deleted then add a DW_AT_GNU_deleted attribute.
2719 * langhooks.h (struct lang_hooks_for_decls): Add
2720 function_decl_deleted_p langhook.
2721 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
2722 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
2724 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
2726 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
2727 NULL pointer checks.
2728 (ipa_polymorphic_call_context::get_dynamic_type): Return true
2729 if type doesn't change.
2730 * cgraph.h (cgraph_indirect_call_info): New flag.
2731 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
2732 (cgraph_node::dump): Dump it.
2733 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
2734 of context.get_dynamic_type.
2735 (ipa_make_edge_direct_to_target): Do not speculate
2736 edge that is already speuclative.
2737 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
2738 speculate to __builtin_unreachable
2739 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
2741 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
2743 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
2745 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
2746 get_dynamic_type; drop TODO.
2747 * ipa-polymorphic-call.c
2748 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
2749 for otr_type to be unknown.
2751 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
2753 * common/config/score/score-common.c: Remove.
2754 * config.gcc: Remove support for score-*.
2755 * config/score/constraints.md: Remove.
2756 * config/score/elf.h: Remove.
2757 * config/score/predicates.md: Remove.
2758 * config/score/score-conv.h: Remove.
2759 * config/score/score-generic.md: Remove.
2760 * config/score/score-modes.def: Remove.
2761 * config/score/score-protos.h: Remove.
2762 * config/score/score.c: Remove.
2763 * config/score/score.h: Remove.
2764 * config/score/score.md: Remove.
2765 * config/score/score.opt: Remove.
2766 * doc/md.texi: Don't document score-*.
2768 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
2771 * genconditions.c: Directly include ggc.h before rtl.h.
2773 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2775 * ipa-polymorphic-call.c
2776 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
2777 code determining speculative type.
2778 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
2780 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2782 * altivec.md (altivec_lvsl): New define_expand.
2783 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2784 (altivec_lvsr): New define_expand.
2785 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2786 * rs6000.c (rs6000_expand_builtin): Change to use
2787 altivec_lvs[lr]_direct; remove commented-out code.
2789 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2791 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2792 Issue a warning message when vec_lvsl or vec_lvsr is used with a
2793 little endian target.
2795 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2797 * tree-pretty-print.c (dump_location): Make it extern. Dump also
2799 * tree-pretty-print.h (dump_location): Declare.
2800 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
2801 (pp_gimple_stmt_1): Likewise.
2802 (dump_implicit_edges): Likewise.
2803 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
2807 2014-10-03 David Malcolm <dmalcolm@redhat.com>
2809 * gcc.c (driver::global_initializations): Remove "const" so
2810 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
2811 and decoded_options_count.
2813 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
2815 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
2817 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
2818 TARGET_E500_DOUBLE case here.
2820 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
2825 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
2827 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2829 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
2830 * lto-cgraph.c (lto_output_edge, input_edge): Stream
2831 in_polymorphic_cdtor
2832 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
2833 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
2834 * cgraphclones.c (cgraph_edge::clone): Likewise.
2835 * ipa-prop.c (update_jump_functions_after_inlining,
2836 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
2837 to possible_dynamic_type_change.
2838 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
2839 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2840 IN_POLY_CDOTR argument.
2842 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
2843 for BASE and OUTER_TYPE being NULL.
2844 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2845 in_poly_cdtor parameter.
2847 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2849 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
2850 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
2852 (expand_vec_perm_1): Likewise.
2854 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2855 Uros Bizjak <ubizjak@gmail.com>
2857 PR tree-optimization/61403
2858 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
2859 error in comment. Also optimize 256-bit vectors for AVX2
2860 or AVX (floating vectors only), provided the first permutation
2861 can be performed in one insn.
2863 2014-10-03 David Malcolm <dmalcolm@redhat.com>
2865 * gcc.c (class driver): New class.
2866 (main): Reimplement in terms of driver::main, moving most of the
2867 locals to be locals within individual methods of class driver.
2868 The remaining locals "explicit_link_files", "decoded_options" and
2869 "decoded_options_count" are used by multiple driver:: methods, and
2870 so become member data. Doing so isolates the argc/argv reads and
2871 writes. Replace "goto out" with a special exit code from
2872 new method driver::prepare_infiles. Split out the old
2873 implementation of main into the following...
2874 (driver::main): New function, corresponding to the old "main"
2876 (driver::set_progname): New function, taken from the old
2877 "main" implementation.
2878 (driver::expand_at_files): Likewise.
2879 (driver::decode_argv): Likewise.
2880 (driver::global_initializations): Likewise.
2881 (driver::build_multilib_strings): Likewise.
2882 (driver::set_up_specs): Likewise.
2883 (driver::putenv_COLLECT_GCC): Likewise.
2884 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
2885 (driver::handle_unrecognized_options): Likewise.
2886 (driver::maybe_print_and_exit): Likewise.
2887 (driver::prepare_infiles): Likewise.
2888 (driver::do_spec_on_infiles): Likewise.
2889 (driver::maybe_run_linker): Likewise.
2890 (driver::final_actions): Likewise.
2891 (driver::get_exit_code): Likewise.
2893 2014-10-03 Yury Gribov <y.gribov@samsung.com>
2895 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2896 don't emit empty ctors.
2898 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
2900 * convert.c (convert_to_integer): Do not introduce useless conversions
2901 between integral types.
2903 2014-10-03 David Sherwood <david.sherwood@arm.com>
2905 * ira-int.h (ira_allocno): Mark hard_regno as signed.
2907 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
2909 * lra-constraints.c (inherit_in_ebb): Handle calls with
2910 multiple return values.
2911 * caller-save.c (save_call_clobbered_regs): Likewise.
2913 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2915 * tree-vect-data-refs.c (vect_permute_load_chain,
2916 vect_shift_permute_load_chain): Fix a typo in temporary var names,
2917 suffle3 to shuffle3.
2920 * omp-low.c (taskreg_contexts): New variable.
2921 (scan_omp_parallel): Push newly created context into taskreg_contexts
2922 vector and move record layout code to finish_taskreg_scan.
2923 (scan_omp_task): Likewise.
2924 (finish_taskreg_scan): New function.
2925 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2926 vector elements and release it.
2929 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
2930 of palignr arguments can't be used due to min 0 or max - min
2931 too high, try also op0, op1 order of palignr arguments.
2933 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
2935 * cgraph.h (ipa_polymorphic_call_context):
2936 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
2937 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
2938 * ipa-polymorphic-call.c
2939 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
2940 past end of dynamic types.
2941 (ipa_polymorphic_call_context::stream_out,
2942 speculative_outer_type): Stream dynamic flag.
2943 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
2944 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
2946 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
2948 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
2949 * ipa-prop.c (update_jump_functions_after_inlining,
2950 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
2952 2014-10-02 Teresa Johnson <tejohnson@google.com>
2954 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
2955 up when synthesizing counts to avoid rounding errors.
2957 2014-10-02 Teresa Johnson <tejohnson@google.com>
2960 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
2961 asserts to handle incoming insanities.
2963 2014-10-02 Martin Jambor <mjambor@suse.cz>
2965 PR tree-optimization/63375
2966 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2969 2014-10-02 Olivier Hainque <hainque@adacore.com>
2971 * Makefile.in (CROSS): Define, to @CROSS.
2973 2014-10-02 Jakub Jelinek <jakub@redhat.com>
2976 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
2977 if it expands to a single insn only.
2978 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
2979 fail unless in_order is true. Add forward declaration.
2980 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
2981 is useful for one_operand_p.
2982 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
2984 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
2986 * cgraphclones.c (build_function_type_skip_args): Do not make new
2987 type variant of old.
2989 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
2991 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
2992 when speculation is added.
2993 (ipa_edge_args): Add polymorphic_call_contexts.
2994 (ipa_get_ith_polymorhic_call_context): New accesor.
2995 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
2996 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
2997 (ipa_compute_jump_functions_for_edge): Compute contexts.
2998 (update_jump_functions_after_inlining): Update contexts.
2999 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3000 update dumping; add speculative edge creation.
3001 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3003 (update_indirect_edges_after_inlining): Pass down context.
3004 (ipa_edge_duplication_hook): Duplicate contexts.
3005 (ipa_write_node_info): Stream out contexts.
3006 (ipa_read_node_info): Stream in contexts.
3007 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3009 (try_speculative_devirtualization): New function.
3010 * ipa-utils.h (try_speculative_devirtualization): Declare.
3012 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3014 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3017 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3019 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3022 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3024 * ipa-polymorphic-call.c
3025 (ipa_polymorphic_call_context::restrict_to_inner_class):
3026 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3027 use speculation_consistent_p to do so; Add CONSDER_BASES
3028 and CONSIDER_PLACEMENT_NEW parameters.
3029 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3030 short circuit obvious cases.
3031 (ipa_polymorphic_call_context::dump): Improve formatting.
3032 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3033 combine_speculation_with to record speculations; Do not ICE when
3034 object is located in pointer type decl; do not ICE for methods
3035 of UNION_TYPE; do not record nonpolymorphic types.
3036 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3037 (ipa_polymorphic_call_context::combine_speculation_with): New method.
3038 (ipa_polymorphic_call_context::combine_with): New method.
3039 (ipa_polymorphic_call_context::make_speculative): Move here; use
3040 combine speculation.
3041 * cgraph.h (ipa_polymorphic_call_context): Update
3042 restrict_to_inner_class prototype; add offset_by, make_speculative,
3043 combine_with, useless_p, combine_speculation_with and
3044 speculation_consistent_p methods.
3045 (ipa_polymorphic_call_context::offset_by): New method.
3046 (ipa_polymorphic_call_context::useless_p): New method.
3048 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
3050 PR rtl-optimization/62151
3051 * combine.c (can_combine_p): Allow the destination register of INSN
3052 to be clobbered in I3.
3053 (subst): Do not substitute into clobbers of registers.
3055 2014-10-01 Jakub Jelinek <jakub@redhat.com>
3058 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3059 offset, TARGET_MEM_REF and SSA_NAME.
3061 * config/i386/i386.c (expand_vec_perm_palignr): Handle
3062 256-bit vectors for TARGET_AVX2.
3064 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3068 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3069 argument to avx2_permv2ti.
3071 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3073 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3075 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
3077 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3078 (fmod<mode>3): Ditto.
3079 (fpremxf4_i387): Ditto.
3080 (reminderxf3): Ditto.
3081 (reminder<mode>3): Ditto.
3082 (fprem1xf4_i387): Ditto.
3084 2014-09-30 Teresa Johnson <tejohnson@google.com>
3086 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3087 duplicate_blocks bitmap.
3088 (remove_ctrl_stmt_and_useless_edges): Ditto.
3089 (create_block_for_threading): Ditto.
3090 (compute_path_counts): New function.
3091 (update_profile): Ditto.
3092 (recompute_probabilities): Ditto.
3093 (update_joiner_offpath_counts): Ditto.
3094 (freqs_to_counts_path): Ditto.
3095 (clear_counts_path): Ditto.
3096 (ssa_fix_duplicate_block_edges): Update profile info.
3097 (ssa_create_duplicates): Pass new parameter.
3098 (ssa_redirect_edges): Remove old profile update.
3099 (thread_block_1): New duplicate_blocks bitmap,
3100 remove old profile update.
3101 (thread_single_edge): Pass new parameter.
3103 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
3106 * varasm.c (decode_reg_name_and_count): Check availability for
3107 registers from ADDITIONAL_REGISTER_NAMES.
3109 2014-09-30 David Malcolm <dmalcolm@redhat.com>
3112 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3113 (PLUGIN_HEADERS): Add pass-instances.def.
3115 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
3117 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3119 * config/aarch64/aarch64-simd.md
3120 (aarch64_sqdmull_laneq<mode>): Expand iterator.
3121 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3122 (vqdmulls_lane_s32): Fix return type.
3123 (vqdmulls_laneq_s32): New.
3125 2014-09-30 Jakub Jelinek <jakub@redhat.com>
3128 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3129 or invert_jump_1 if jump isn't any_condjump_p.
3131 2014-09-30 Terry Guo <terry.guo@arm.com>
3133 * config/arm/arm-cores.def (cortex-m7): New core name.
3134 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3136 * config/arm/arm-tables.opt: Regenerated.
3137 * config/arm/arm-tune.md: Regenerated.
3138 * config/arm/arm.h (TARGET_VFP5): New macro.
3139 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3140 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3141 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3142 * doc/invoke.texi: Document new cpu and fpu names.
3144 2014-09-30 Jiong Wang <jiong.wang@arm.com>
3146 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3147 before sinking insn.
3149 2014-09-30 David Sherwood <david.sherwood@arm.com>
3151 * ira-int.h (ira_allocno): Add "wmode" field.
3152 * ira-build.c (create_insn_allocnos): Add new "parent" function
3154 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3155 that cannot be accessed in wmode.
3157 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
3159 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3162 2014-09-29 Andi Kleen <ak@linux.intel.com>
3164 * opts.c (print_filtered_help): Print --param min/max/default
3167 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
3169 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3171 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
3173 * tree-vrp.c (get_single_symbol): New function.
3174 (build_symbolic_expr): Likewise.
3175 (symbolic_range_based_on_p): New predicate.
3176 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3177 for PLUS and MINUS. Do not drop symbolic ranges at the end.
3178 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3179 operand is symbolic and based on the other operand.
3181 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
3183 * config/microblaze/microblaze.md (call_internal1): Use VOID
3184 instead of SI to fix "((void (*)(void)) 0)()" issue
3186 2014-09-29 Nick Clifton <nickc@redhat.com>
3188 * config/msp430/msp430.c (msp430_expand_prologue): Return a
3189 CLOBBER rtx for naked functions.
3190 (msp430_expand_epilogue): Likewise.
3191 (msp430_use_f5_series_hwmult): Cache result.
3192 (use_32bit_hwmult): Cache result.
3193 (msp430_no_hwmult): New function.
3194 (msp430_output_labelref): Use it.
3196 2014-09-29 Jakub Jelinek <jakub@redhat.com>
3199 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3200 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3201 use the alignment of avar rather than ovar.
3203 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
3205 * config/pa/pa.c (pa_output_function_epilogue): Only update
3206 last_address when a nonnote insn is found.
3208 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3211 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3213 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3216 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3217 fix pasto in checking array size.
3219 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3222 * passes.def (pass_tracer): Move before last dominator pass.
3224 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
3226 * gcc.c (try_generate_repro): Remove argument "prog". Change all
3228 (run_attempt): Handle errors of "pex_run" invocation.
3230 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
3232 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3234 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3235 (TARGET_ASAN_SHADOW_OFFSET): Define.
3237 2014-09-26 Martin Liska <mliska@suse.cz>
3239 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3241 * cgraph.h: Likewise.
3242 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3243 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3244 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3245 * tree-ssa-alias.h: Likewise.
3247 2014-09-26 Jakub Jelinek <jakub@redhat.com>
3248 Max Ostapenko <m.ostapenko@partner.samsung.com>
3250 * common.opt: New option.
3251 * doc/invoke.texi: Describe new option.
3252 * gcc.c (execute): Don't free first string early, but at the end
3253 of the function. Call retry_ice if compiler exited with
3255 (main): Factor out common code.
3256 (print_configuration): New function.
3257 (files_equal_p): Likewise.
3258 (check_repro): Likewise.
3259 (run_attempt): Likewise.
3260 (do_report_bug): Likewise.
3261 (append_text): Likewise.
3262 (try_generate_repro): Likewise
3264 2014-09-25 Andi Kleen <ak@linux.intel.com>
3266 * config/i386/i386.c (x86_print_call_or_nop): New function.
3267 (x86_function_profiler): Support -mnop-mcount and
3269 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3270 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3272 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3274 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3275 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3276 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3279 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3281 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3282 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3283 types_odr_comparable): Declare.
3284 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3285 * ipa-polymorphic-call.c: New file.
3286 (contains_polymorphic_type_p, possible_placement_new,
3287 ipa_polymorphic_call_context::restrict_to_inner_class,
3288 contains_type_p, decl_maybe_in_construction_p,
3289 ipa_polymorphic_call_context::stream_out,
3290 ipa_polymorphic_call_context::debug,
3291 ipa_polymorphic_call_context::stream_in,
3292 ipa_polymorphic_call_context::set_by_decl,
3293 ipa_polymorphic_call_context::set_by_invariant,
3295 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3296 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3297 extr_type_from_vtbl_ptr_store, record_known_type
3298 check_stmt_for_type_change,
3299 ipa_polymorphic_call_context::get_dynamic_type): Move here from
3301 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3302 and streamer-hooks.h
3303 (contains_polymorphic_type_p, possible_placement_new,
3304 ipa_polymorphic_call_context::restrict_to_inner_class,
3305 contains_type_p, decl_maybe_in_construction_p,
3306 ipa_polymorphic_call_context::stream_out,
3307 ipa_polymorphic_call_context::debug,
3308 ipa_polymorphic_call_context::stream_in,
3309 ipa_polymorphic_call_context::set_by_decl,
3310 ipa_polymorphic_call_context::set_by_invariant,
3312 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3313 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3314 extr_type_from_vtbl_ptr_store, record_known_type
3315 check_stmt_for_type_change,
3316 ipa_polymorphic_call_context::get_dynamic_type): Move to
3317 ipa-polymorphic-call.c
3318 (type_all_derivations_known_p, types_odr_comparable,
3319 types_must_be_same_for_odr): Export.
3320 (type_known_to_have_no_deriavations_p): New function.
3321 * Makefile.in: Add ipa-polymorphic-call.c
3323 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3325 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3327 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3328 (possible_polymorphic_call_targets): Instead of computing both
3329 speculative and non-speculative answers, do just one at a time.
3330 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3331 (dump_targets): Break out from ...
3332 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3333 and non-speculative lists.
3334 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3335 * ipa-utils.h (possible_polymorphic_call_targets): Update.
3337 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
3339 PR rtl-optimization/63348
3340 * emit-rtl.c (try_split): Do not emit extra barrier.
3342 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
3344 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3345 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3347 (aarch64_<sur>shll2_n<mode>): Likewise.
3348 (aarch64_<sur>shr_n<mode>): Likewise.
3349 (aarch64_<sur>sra_n<mode>: Likewise.
3350 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3351 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3352 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3353 * config/aarch64/iterators.md (ve_mode): New.
3354 (offsetlr): Remap to infix text for use in new predicates.
3355 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3356 (aarch64_simd_shift_imm_hi): Likewise.
3357 (aarch64_simd_shift_imm_si): Likewise.
3358 (aarch64_simd_shift_imm_di): Likewise.
3359 (aarch64_simd_shift_imm_offset_qi): Likewise.
3360 (aarch64_simd_shift_imm_offset_hi): Likewise.
3361 (aarch64_simd_shift_imm_offset_si): Likewise.
3362 (aarch64_simd_shift_imm_offset_di): Likewise.
3363 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3364 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3365 (aarch64_simd_shift_imm_bitsize_si): Likewise.
3366 (aarch64_simd_shift_imm_bitsize_di): Likewise.
3368 2014-09-25 Jiong Wang <jiong.wang@arm.com>
3370 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3371 new created BB as the intersection of live-in from "old_dest" and
3374 2014-09-25 Felix Yang <felix.yang@huawei.com>
3376 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3377 * genautomata.c (merge_states): Ditto.
3379 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
3382 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3383 in instruction sequence.
3385 2014-09-25 Nick Clifton <nickc@redhat.com>
3388 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3389 in instruction sequence.
3391 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3394 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
3395 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
3397 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3398 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3399 Anna Tikhonova <anna.tikhonova@intel.com>
3400 Ilya Tocar <ilya.tocar@intel.com>
3401 Andrey Turetskiy <andrey.turetskiy@intel.com>
3402 Ilya Verbin <ilya.verbin@intel.com>
3403 Kirill Yukhin <kirill.yukhin@intel.com>
3404 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3406 * config/i386/sse.md
3407 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
3408 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
3409 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
3410 (define_expand "<avx512>_perm<mode>_mask"): ... this.
3411 Use VI8F_256_512 mode iterator.
3412 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
3413 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
3415 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3416 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3417 Anna Tikhonova <anna.tikhonova@intel.com>
3418 Ilya Tocar <ilya.tocar@intel.com>
3419 Andrey Turetskiy <andrey.turetskiy@intel.com>
3420 Ilya Verbin <ilya.verbin@intel.com>
3421 Kirill Yukhin <kirill.yukhin@intel.com>
3422 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3424 * config/i386/sse.md
3425 (define_insn "avx_movshdup256<mask_name>"): Add masking.
3426 (define_insn "sse3_movshdup<mask_name>"): Ditto.
3427 (define_insn "avx_movsldup256<mask_name>"): Ditto.
3428 (define_insn "sse3_movsldup<mask_name>"): Ditto.
3429 (define_insn "vec_dupv2df<mask_name>"): Ditto.
3430 (define_insn "*vec_concatv2df"): Add EVEX version.
3432 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3433 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3434 Anna Tikhonova <anna.tikhonova@intel.com>
3435 Ilya Tocar <ilya.tocar@intel.com>
3436 Andrey Turetskiy <andrey.turetskiy@intel.com>
3437 Ilya Verbin <ilya.verbin@intel.com>
3438 Kirill Yukhin <kirill.yukhin@intel.com>
3439 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3441 * config/i386/sse.md
3442 (define_insn "vec_set<mode>_0"): Add EVEX version.
3444 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3445 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3446 Anna Tikhonova <anna.tikhonova@intel.com>
3447 Ilya Tocar <ilya.tocar@intel.com>
3448 Andrey Turetskiy <andrey.turetskiy@intel.com>
3449 Ilya Verbin <ilya.verbin@intel.com>
3450 Kirill Yukhin <kirill.yukhin@intel.com>
3451 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3453 * config/i386/sse.md
3455 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
3457 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3458 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
3459 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
3460 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
3461 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
3462 (define_expand "sse2_cvtpd2ps_mask): New.
3463 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
3464 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
3466 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3467 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3468 Anna Tikhonova <anna.tikhonova@intel.com>
3469 Ilya Tocar <ilya.tocar@intel.com>
3470 Andrey Turetskiy <andrey.turetskiy@intel.com>
3471 Ilya Verbin <ilya.verbin@intel.com>
3472 Kirill Yukhin <kirill.yukhin@intel.com>
3473 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3475 * config/i386/i386.c
3476 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
3477 (ufix_notruncv8dfv8si2_mask_round): ... this.
3478 * config/i386/sse.md
3479 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
3480 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
3481 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
3482 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
3483 (define_expand "sse2_cvtpd2dq"): Delete.
3484 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
3485 make 2nd operand const0 vector.
3486 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
3488 (define_mode_attr pd2udqsuff): New.
3490 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
3491 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
3492 (define_insn "*avx_cvttpd2dq256_2"): Delete.
3493 (define_expand "sse2_cvttpd2dq"): Ditto.
3494 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
3495 make 2nd operand const0 vector.
3497 2014-09-25 Jakub Jelinek <jakub@redhat.com>
3499 PR tree-optimization/63341
3500 * tree-vectorizer.h (vect_create_data_ref_ptr,
3501 vect_create_addr_base_for_vector_ref): Add another tree argument
3502 defaulting to NULL_TREE.
3503 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
3504 argument, pass it down to vect_create_addr_base_for_vector_ref.
3505 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
3506 add that to base_offset too if non-NULL.
3507 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
3508 for dr_explicit_realign_optimized set it to vector byte size
3509 - 1 instead of setting offset, pass byte_offset down to
3510 vect_create_data_ref_ptr.
3512 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
3514 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
3515 forgotten debug output; canonicalize querries more wtih LTO.
3517 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
3519 * cgraph.h (class ipa_polymorphic_call_context): Move here from
3520 ipa-utils.h; add stream_int and stream_out methods.
3521 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
3522 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
3523 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
3525 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3526 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3527 ipa_polymorphic_call_context::clear_speculation,
3528 ipa_polymorphic_call_context::clear_outer_type): Move here from
3530 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
3531 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3532 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3533 ipa_polymorphic_call_context::clear_speculation,
3534 ipa_polymorphic_call_context::clear_outer_type): Likewise.
3535 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
3537 (ipa_polymorphic_call_context::stream_out): New method.
3538 (ipa_polymorphic_call_context::stream_in): New method.
3539 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
3540 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
3542 (ipa_analyze_call_uses): Simplify.
3543 (update_indirect_edges_after_inlining): Do not care about outer_type.
3544 (ipa_write_indirect_edge_info): Update.
3545 (ipa_write_indirect_edge_info): Likewise.
3546 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
3547 (dump_edge_flags): Break out from ...
3548 (cgraph_node::dump): ... here; dump indirect edges.
3550 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
3552 * ipa-utils.h (polymorphic_call_context): Add
3553 metdhos dump, debug and clear_outer_type.
3554 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3555 (ipa_polymorphic_call_context::clear_outer_type): New method.
3556 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
3557 * ipa-devirt.c (types_odr_comparable): New function.
3558 (types_must_be_same_for_odr): New function.
3559 (odr_subtypes_equivalent_p): Simplify.
3560 (possible_placement_new): Break out from ...
3561 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
3562 be more cuatious about returning false in cases the context may be
3563 valid in derived type or via placement new.
3564 (contains_type_p): Clear maybe_derived_type
3565 (ipa_polymorphic_call_context::dump): New method.
3566 (ipa_polymorphic_call_context::debug): New method.
3567 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
3568 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
3569 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3570 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
3571 to suceed on all valid cases; remove confused sanity check.
3572 (dump_possible_polymorphic_call_targets): Simplify.
3574 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
3576 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
3577 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
3578 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
3579 varpool.c: Rename all instances of DECL_ABSTRACT to
3582 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3584 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
3585 special handling for stores whose SET_SRC is an UNSPEC (such as
3588 2014-09-24 Jiong Wang <jiong.wang@arm.com>
3590 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
3591 !REG_P (src) to release more instruction sink opportunities.
3593 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
3595 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
3596 move costs for 128-bit types.
3598 2014-09-24 Martin Jambor <mjambor@suse.cz>
3600 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
3601 when duplicating a PASS_THROUGH jump function when creating a
3604 2014-09-24 Marek Polacek <polacek@redhat.com>
3608 * asan.c (maybe_instrument_call): Add default case.
3609 * ipa-pure-const.c (special_builtin_state): Likewise.
3610 * predict.c (expr_expected_value_1): Likewise.
3611 * lto-streamer-out.c (write_symbol): Initialize variable.
3613 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3615 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
3617 (vmuld_laneq_f64): Likewise.
3618 (vmuls_lane_f32): Likewise.
3619 (vmuls_laneq_f32): Likewise.
3621 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
3624 * varpool.c (varpool_node::add): Pass decl attributes
3625 to lookup_attribute.
3627 2014-09-24 Jakub Jelinek <jakub@redhat.com>
3630 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
3632 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
3634 PR tree-optimization/63266
3635 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
3636 marker for unknown byte value.
3637 (MARKER_MASK): New macro.
3638 (MARKER_BYTE_UNKNOWN): New macro.
3639 (HEAD_MARKER): New macro.
3640 (do_shift_rotate): Mark bytes with unknown values due to sign
3641 extension when doing an arithmetic right shift. Replace hardcoded
3642 mask for marker by new MARKER_MASK macro.
3643 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
3644 numbers accordingly.
3646 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
3647 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3648 Anna Tikhonova <anna.tikhonova@intel.com>
3649 Ilya Tocar <ilya.tocar@intel.com>
3650 Andrey Turetskiy <andrey.turetskiy@intel.com>
3651 Ilya Verbin <ilya.verbin@intel.com>
3652 Kirill Yukhin <kirill.yukhin@intel.com>
3653 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3655 * config/i386/sse.md
3657 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
3659 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
3660 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
3662 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
3663 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3664 Anna Tikhonova <anna.tikhonova@intel.com>
3665 Ilya Tocar <ilya.tocar@intel.com>
3666 Andrey Turetskiy <andrey.turetskiy@intel.com>
3667 Ilya Verbin <ilya.verbin@intel.com>
3668 Kirill Yukhin <kirill.yukhin@intel.com>
3669 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3671 * config/i386/sse.md
3672 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
3673 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
3674 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
3675 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
3676 (define_expand "avx512vl_pshuflw_mask"): New.
3677 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
3678 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
3679 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
3680 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
3681 (define_expand "avx512vl_pshufhw_mask"): New.
3682 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
3684 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
3685 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3686 Anna Tikhonova <anna.tikhonova@intel.com>
3687 Ilya Tocar <ilya.tocar@intel.com>
3688 Andrey Turetskiy <andrey.turetskiy@intel.com>
3689 Ilya Verbin <ilya.verbin@intel.com>
3690 Kirill Yukhin <kirill.yukhin@intel.com>
3691 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3693 * config/i386/i386.c
3694 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
3695 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
3696 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
3697 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
3698 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
3699 * config/i386/sse.md
3700 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
3702 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
3703 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
3705 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
3706 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
3707 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
3708 (define_expand "avx512vl_pshufd_mask"): New.
3709 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
3711 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
3712 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3713 Anna Tikhonova <anna.tikhonova@intel.com>
3714 Ilya Tocar <ilya.tocar@intel.com>
3715 Andrey Turetskiy <andrey.turetskiy@intel.com>
3716 Ilya Verbin <ilya.verbin@intel.com>
3717 Kirill Yukhin <kirill.yukhin@intel.com>
3718 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3720 * config/i386/i386.c
3721 (CODE_FOR_avx2_extracti128): Rename to ...
3722 (CODE_FOR_avx_vextractf128v4di): this.
3723 (CODE_FOR_avx2_inserti128): Rename to ...
3724 (CODE_FOR_avx_vinsertf128v4di): this.
3725 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
3726 CODE_FOR_avx_vextractf128v4di.
3727 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
3728 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
3729 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
3730 CODE_FOR_avx512vl_vinsertv8si.
3731 * config/i386/sse.md
3733 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
3734 AVX512_VEC mode iterator.
3736 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
3739 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
3740 AVX512_VEC_2 mode iterator.
3741 (define_insn "vec_set_lo_<mode><mask_name>"): New.
3742 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3743 (define_expand "avx512vl_vinsert<mode>"): Ditto.
3744 (define_insn "avx2_vec_set_lo_v4di"): Delete.
3745 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
3746 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
3747 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3748 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
3749 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3750 (define_expand "avx2_extracti128"): Delete.
3751 (define_expand "avx2_inserti128"): Ditto.
3753 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
3754 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3755 Anna Tikhonova <anna.tikhonova@intel.com>
3756 Ilya Tocar <ilya.tocar@intel.com>
3757 Andrey Turetskiy <andrey.turetskiy@intel.com>
3758 Ilya Verbin <ilya.verbin@intel.com>
3759 Kirill Yukhin <kirill.yukhin@intel.com>
3760 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3762 * config/i386/sse.md
3763 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
3764 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
3765 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
3766 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
3767 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
3768 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
3769 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
3770 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
3771 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
3772 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
3773 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
3774 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
3775 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
3777 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
3779 PR rtl-optimization/63210
3780 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
3781 HARD_REGNO is not available for CONFLICT_A.
3783 2014-09-23 Andi Kleen <ak@linux.intel.com>
3785 * cgraph.h (symtab_node): Add no_reorder attribute.
3786 (symbol_table::output_asm_statements): Remove.
3787 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
3788 (cgraph_node::create_version_clone): Dito.
3789 (symbol_table::output_asm_statements): Remove.
3790 * trans-mem.c (ipa_tm_create_version_alias): Dito.
3791 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
3792 (output_in_order): Add no_reorder flag. Only handle no_reorder
3794 (symbol_table::compile): Add separate pass for no_reorder nodes.
3795 (process_common_attributes): Set no_reorder flag in symtab node.
3797 (process_function_and_variable_attributes): Pass symtab nodes to
3798 process_common_attributes.
3799 * doc/extend.texi (no_reorder): Document no_reorder attribute.
3800 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
3801 (lto_output_varpool_node): Dito.
3802 (input_overwrite_node): Dito.
3803 (input_varpool_node): Dito.
3804 * varpool.c (varpool_node::add): Set no_reorder attribute.
3805 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
3806 (symbol_table::output_variables): Dito.
3807 * symtab.c (symtab_node::dump_base): Print no_reorder.
3809 2014-09-23 Jiong Wang <jiong.wang@arm.com>
3811 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
3814 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
3816 * configure: Regenerate.
3818 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
3820 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
3821 when result_mode == shift_mode.
3823 2014-09-23 Kostya Serebryany <kcc@google.com>
3825 Update to match the changed asan API.
3826 * asan.c (asan_global_struct): Update the __asan_global definition
3827 to match the new API.
3828 (asan_add_global): Ditto.
3829 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
3832 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3834 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
3835 refine the constraints used on 32/64-bit floating point moves.
3837 (f64_vsx): Likewise.
3840 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
3841 (BOOL_REGS_OP1): Likewise.
3842 (BOOL_REGS_OP2): Likewise.
3843 (BOOL_REGS_UNARY): Likewise.
3844 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
3845 32/64-bit floating point moves. Do not use wa, instead use ww/ws
3846 for moves involving VSX registers. Do not use constraints that
3847 target VSX registers for decimal types.
3848 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
3849 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
3851 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
3853 * tree.h (int_bit_position): Turn into inline function;
3854 implement using wide int.
3855 * tree.c (int_bit_position): Remove.
3857 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
3860 * target-globals.c (target_globals::~target_globals): Fix location
3861 of ira_int destruction.
3863 2014-09-23 Renlin Li <renlin.li@arm.com>
3865 * config/aarch64/aarch64.md (return): New.
3866 (simple_return): Likewise.
3867 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
3868 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
3870 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
3872 * common/config/aarch64/aarch64-common.c:
3873 (default_options aarch_option_optimization_table):
3874 Default to -fsched-pressure.
3876 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
3878 * cfgcleanup.c (try_optimize_cfg): Do not remove label
3879 with LABEL_PRESERVE_P flag set.
3881 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
3882 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3883 Anna Tikhonova <anna.tikhonova@intel.com>
3884 Ilya Tocar <ilya.tocar@intel.com>
3885 Andrey Turetskiy <andrey.turetskiy@intel.com>
3886 Ilya Verbin <ilya.verbin@intel.com>
3887 Kirill Yukhin <kirill.yukhin@intel.com>
3888 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3890 * config/i386/sse.md
3891 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
3892 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
3893 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
3894 (define_insn "sse2_shufpd_v2df_mask"): New.
3896 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
3897 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3898 Anna Tikhonova <anna.tikhonova@intel.com>
3899 Ilya Tocar <ilya.tocar@intel.com>
3900 Andrey Turetskiy <andrey.turetskiy@intel.com>
3901 Ilya Verbin <ilya.verbin@intel.com>
3902 Kirill Yukhin <kirill.yukhin@intel.com>
3903 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3905 * config/i386/sse.md
3906 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
3907 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
3908 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
3909 (define_insn "sse_shufps_v4sf_mask"): New.
3911 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
3912 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3913 Anna Tikhonova <anna.tikhonova@intel.com>
3914 Ilya Tocar <ilya.tocar@intel.com>
3915 Andrey Turetskiy <andrey.turetskiy@intel.com>
3916 Ilya Verbin <ilya.verbin@intel.com>
3917 Kirill Yukhin <kirill.yukhin@intel.com>
3918 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3920 * config/i386/sse.md
3921 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
3922 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
3923 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
3924 (define_insn "unpcklps128_mask"): New.
3926 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
3927 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3928 Anna Tikhonova <anna.tikhonova@intel.com>
3929 Ilya Tocar <ilya.tocar@intel.com>
3930 Andrey Turetskiy <andrey.turetskiy@intel.com>
3931 Ilya Verbin <ilya.verbin@intel.com>
3932 Kirill Yukhin <kirill.yukhin@intel.com>
3933 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3935 * config/i386/sse.md
3936 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
3937 (define_insn "avx512vl_unpckhpd128_mask"): New.
3938 (define_expand "avx_movddup256<mask_name>"): Add masking.
3939 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
3940 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
3941 (define_insn "avx512vl_unpcklpd128_mask"): New.
3943 2014-09-22 Joseph Myers <joseph@codesourcery.com>
3945 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3946 * doc/tm.texi: Regenerate.
3947 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
3948 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3949 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3951 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3952 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3953 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3954 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3955 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3957 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3958 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3959 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3960 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3961 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3962 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3963 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3964 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3965 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3966 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3967 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3970 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
3972 * tree-ssa-ccp.c (prop_value_d): Rename to ...
3973 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
3974 * ipa-prop.c (struct type_change_info): Rename to ...
3975 (prop_type_change_info): ... this; update uses.
3976 * ggc-page.c (globals): Rename to ...
3977 (static struct ggc_globals): ... this; update uses.
3978 * tree-ssa-loop-im.c (mem_ref): Rename to ...
3979 (im_mem_ref): ... this; update uses.
3980 * ggc-common.c (loc_descriptor): Rename to ...
3981 (ggc_loc_descriptor): ... this; update uses.
3982 * lra-eliminations.c (elim_table): Rename to ...
3983 (lra_elim_table): ... this; update uses.
3984 * bitmap.c (output_info): Rename to ...
3985 (bitmap_output_info): ... this; update uses.
3986 * gcse.c (expr): Rename to ...
3987 (gcse_expr) ... this; update uses.
3988 (occr): Rename to ...
3989 (gcse_occr): .. this; update uses.
3990 * tree-ssa-copy.c (prop_value_d): Rename to ...
3991 (prop_value_t): ... this.
3992 * predict.c (block_info_def): Rename to ...
3993 (block_info): ... this; update uses.
3994 (edge_info_def): Rename to ...
3995 (edge_info): ... this; update uses.
3996 * profile.c (bb_info): Rename to ...
3997 (bb_profile_info): ... this; update uses.
3998 * alloc-pool.c (output_info): Rename to ...
3999 (pool_output_info): ... this; update uses.
4000 * ipa-cp.c (topo_info): Rename to ..
4001 (ipa_topo_info): ... this; update uses.
4002 * tree-nrv.c (nrv_data): Rename to ...
4003 (nrv_data_t): ... this; update uses.
4004 * ipa-split.c (bb_info): Rename to ...
4005 (split_bb_info): ... this one.
4006 * profile.h (edge_info): Rename to ...
4007 (edge_profile_info): ... this one; update uses.
4008 * dse.c (bb_info): Rename to ...
4009 (dse_bb_info): ... this one; update uses.
4010 * cprop.c (occr): Rename to ...
4011 (cprop_occr): ... this one; update uses.
4012 (expr): Rename to ...
4013 (cprop_expr): ... this one; update uses.
4015 2014-09-22 Jason Merrill <jason@redhat.com>
4017 * Makefile.in (check-parallel-%): Add @.
4019 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4021 * config/aarch64/geniterators.sh: New.
4022 * config/aarch64/iterators.md (VDQF_DF): New.
4023 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4024 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4026 2014-09-22 Peter A. Bigot <pab@pabigot.com>
4028 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4029 -lnosys when -msim absent.
4031 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
4033 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4035 2014-09-22 Richard Biener <rguenther@suse.de>
4037 * gimplify.c (gimplify_init_constructor): Do not leave
4038 non-GIMPLE vector constructors around.
4039 * tree-cfg.c (verify_gimple_assign_single): Verify that
4040 CONSTRUCTORs have gimple elements.
4042 2014-09-22 Jakub Jelinek <jakub@redhat.com>
4045 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4046 insert a debug source bind stmt setting DEBUG_EXPR_DECL
4047 instead of a normal gimple assignment stmt.
4049 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4051 * config/bfin/bfin.md: Fix use of constraints in define_split.
4053 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4055 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4056 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4058 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4060 * hard-reg-set.h: Include hash-table.h.
4061 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4063 * target-globals.c (target_globals::~target_globals): Call
4064 hard_regs->finalize.
4065 * rtl.h (subreg_shape): New structure.
4066 (shape_of_subreg): New function.
4067 (simplifiable_subregs): Declare.
4068 * reginfo.c (simplifiable_subreg): New structure.
4069 (simplifiable_subregs_hasher): Likewise.
4070 (simplifiable_subregs): New function.
4071 (invalid_mode_changes): Delete.
4072 (alid_mode_changes, valid_mode_changes_obstack): New variables.
4073 (record_subregs_of_mode): Remove subregs_of_mode parameter.
4074 Record valid mode changes in valid_mode_changes.
4075 (find_subregs_of_mode): Remove subregs_of_mode parameter.
4076 Update calls to record_subregs_of_mode.
4077 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4078 handling. Initialize new variables. Update call to
4079 find_subregs_of_mode.
4080 (invalid_mode_change_p): Check new variables instead of
4081 invalid_mode_changes.
4082 (finish_subregs_of_mode): Finalize new variables instead of
4083 invalid_mode_changes.
4084 (target_hard_regs::finalize): New function.
4085 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4086 even when CLASS_CANNOT_CHANGE_MODE is undefined.
4088 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4090 * combine.c (subst): Use simplify_subreg_regno rather than
4091 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4093 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4095 * rtl.h (subreg_info): Expand commentary
4096 * rtlanal.c (subreg_get_info): Likewise.
4098 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4100 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4101 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4102 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4104 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
4106 * config/arm/arm.c: #include "tm-constrs.h"
4107 (thumb1_size_rtx_costs): Adjust rtx costs.
4109 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
4111 * configure.ac (target_header_dir): Move block defining
4112 this to before the block setting inhibit_libc.
4113 (inhibit_libc): When considering $with_headers, just
4114 check it it's explicitly "no". If not, also check if
4115 $target_header_dir/stdio.h is present. If not, set
4117 * configure: Regenerate.
4119 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
4121 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4123 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4125 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
4126 insn for divides by integer powers of two.
4127 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4128 (mod<mode>3): Fix formatting.
4129 (three anonymous define_insn and two define_split): Delete.
4131 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4133 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4134 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4135 (floatdisf2_internal2): Ditto.
4136 (ashrdi3_no_power): Ditto. Fix formatting.
4138 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4140 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4141 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4144 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4146 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4147 constant, use addsi3 directly.
4148 (three anonymous define_insn, two define_split): Delete.
4149 (sub<mode>3): Move. Do not allow constant second operand.
4150 Generate different insn for constant first operand.
4151 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4152 (subf<mode>3_imm): New.
4153 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4154 (*plus_ltu<mode>): Only handle registers.
4155 (*plus_ltu<mode>_1): New. Handle integer third operand.
4156 (*plus_gtu<mode>): Only handle registers.
4157 (*plus_gtu<mode>_1): New. Handle integer third operand.
4159 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4161 * config/rs6000/rs6000.md (iorxor): New code_iterator.
4162 (iorxor): New code_attr.
4163 (IORXOR): New code_attr.
4164 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4165 (ior<mode>3, xor<mode>3): Delete.
4166 (<iorxor><mode>3): New.
4167 (splitter for "big" integer ior, xor): New.
4168 (*bool<mode>3): Move. Also handle AND.
4169 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4170 (splitter for "big" integer ior, xor): Delete.
4172 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4174 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4175 (two anonymous define_insn and two define_split): Delete.
4176 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4178 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4180 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4181 (two anonymous define_insn and two define_split): Delete.
4182 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4184 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4186 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4188 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4190 * config/rs6000/predicates.md (ca_operand): Allow subregs.
4191 (input_operand): Do not allow ca_operand.
4192 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4193 carry bit, allow SImode and Pmode.
4194 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4196 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
4198 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4199 clobbered registers using clobber_reg. Remove UNSPEC decoration.
4200 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4201 (*call_rex64_ms_sysv): Remove.
4202 (*call_value_rex64_ms_sysv): Ditto.
4203 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4205 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
4207 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4210 2014-09-20 Andreas Schwab <schwab@suse.de>
4212 * config/ia64/ia64.md: Remove constraints from define_split
4215 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4217 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4218 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4219 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4220 (get_dynamic_type): Remove.
4221 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4222 (clear_speculation): Bring to ipa-deivrt.h
4223 (get_class_context): Rename to ...
4224 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4225 (contains_type_p): Update.
4226 (get_dynamic_type): Rename to ...
4227 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4228 (possible_polymorphic_call_targets): UPdate.
4229 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4230 * ipa-prop.c (ipa_analyze_call_uses): Update.
4232 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4234 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4235 privatize dynamic TLS variables.
4237 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4239 * diagnostic.c (warning_n): New function.
4240 * diagnostic-core.h (warning_n): Declare.
4241 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4242 output dynamic counts when available.
4244 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4246 PR tree-optimization/63255
4247 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4248 issue in setting body_removed flag.
4250 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4253 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4254 that visibility change is possible
4255 (handle_weakref_attribute): Likewise.
4256 * cgraph.h (symtab_node): Add method get_create and
4257 field refuse_visibility_changes.
4258 (symtab_node::get_create): New method.
4259 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4260 * varasm.c (mark_weak): Verify that visibility change is
4263 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
4265 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4266 for base_reg_operand to be common between LO_SUM and PLUS.
4267 (fusion_gpr_mem_combo): New predicate to match a fused address
4268 that combines the addis and memory offset address.
4270 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4272 (emit_fusion_gpr_load): Likewise.
4274 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4275 signature to pass each argument separately, rather than
4276 using an operands array. Rewrite the insns found by peephole2 to
4277 be a single insn, rather than hoping the insns will still be
4278 together when the peephole pass is done. Drop being called via a
4280 (emit_fusion_gpr_load): Change calling signature to be called from
4281 the fusion_gpr_load_<mode> insns with a combined memory address
4282 instead of the peephole pass passing the addis and offset
4285 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4287 (power8 fusion peephole): Drop support for doing power8 via a
4288 normal peephole that was created by the peephole2 pass.
4289 (power8 fusion peephole2): Create a new insn with the fused
4290 address, so that the fused operation is kept together after
4291 register allocation is done.
4292 (fusion_gpr_load_<mode>): Likewise.
4294 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4297 * tree.c (need_assembler_name_p): Do not mangle variadic types.
4299 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4301 * recog.c (scratch_operand): Do not simply allow all hard registers:
4302 only allow those that are allocatable.
4304 2014-09-19 Felix Yang <felix.yang@huawei.com>
4306 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4307 comments and fix spacing to conform to coding style.
4309 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4311 * genrecog.c (validate_pattern): Allow empty constraints in
4314 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
4316 * dwarf2out.c (decl_ultimate_origin): Update comment.
4317 * tree.c (block_ultimate_origin): Same.
4319 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4321 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4322 Update GCC version name to GCC 5.
4323 (rs6000_function_arg_boundary): Likewise.
4324 (rs6000_function_arg): Likewise.
4326 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4328 * config/sh/sh.md: Fix use of constraints in define_split.
4330 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
4333 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4335 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4337 * doc/md.texi (Modifiers): Consistently use "read/write"
4338 nomenclature rather than "input/output".
4339 * genrecog.c (constraints_supported_in_insn_p): New.
4340 (validate_pattern): If needed, also check constraints on
4341 MATCH_SCRATCH operands.
4342 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4343 operands with no '=' or '+' modifier.
4345 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4347 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4348 scratch register as written.
4350 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4352 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4355 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4357 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4360 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4363 * config/s390/s390.c (s390_emit_epilogue): When doing the return
4364 address load optimization force s390_optimize_prologue to leave it
4365 that way. Only do the optimization if we already decided to push
4366 r14 into a stack slot.
4368 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
4370 * asan.c (build_check_stmt): Alignment arg was added.
4371 (asan_expand_check_ifn): Optimization for alignment >= 8.
4373 2014-09-19 Olivier Hainque <hainque@adacore.com>
4375 * config/i386/vxworksae.h: Remove obsolete definitions.
4376 (STACK_CHECK_PROTECT): Define.
4377 * config/i386/vx-common.h: Remove. Merge contents within
4378 config/i386/vxworks.h.
4379 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4382 2014-09-19 Olivier Hainque <hainque@adacore.com>
4384 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4385 * config/rs6000/t-vxworksmils: New file.
4386 * config/rs6000/vxworksmils.h: New file.
4388 2014-09-19 Olivier Hainque <hainque@adacore.com>
4390 * varasm.c (default_section_type_flags): Flag .persistent.bss
4391 sections as SECTION_BSS.
4393 2014-09-19 Nick Clifton <nickc@redhat.com>
4395 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
4396 pop'ed registers so that DCE does not eliminate them.
4398 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
4401 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
4403 2014-09-18 Joseph Myers <joseph@codesourcery.com>
4405 * system.h (LIBGCC2_TF_CEXT): Poison.
4406 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
4407 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
4408 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
4409 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
4410 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
4411 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
4412 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
4413 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
4414 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
4416 2014-09-19 Kito Cheng <kito@0xlab.org>
4418 * except.h: Fix header guard.
4419 * addresses.h: Add missing header guard.
4420 * cfghooks.h: Likewise.
4421 * collect-utils.h: Likewise.
4422 * collect2-aix.h: Likewise.
4423 * conditions.h: Likewise.
4424 * cselib.h: Likewise.
4425 * dwarf2asm.h: Likewise.
4426 * graphds.h: Likewise.
4427 * graphite-scop-detection.h: Likewise.
4428 * gsyms.h: Likewise.
4429 * hw-doloop.h: Likewise.
4430 * incpath.h: Likewise.
4431 * ipa-inline.h: Likewise.
4432 * ipa-ref.h: Likewise.
4433 * ira-int.h: Likewise.
4435 * lra-int.h: Likewise.
4437 * lto-section-names.h: Likewise.
4438 * read-md.h: Likewise.
4439 * reload.h: Likewise.
4440 * rtl-error.h: Likewise.
4441 * sdbout.h: Likewise.
4442 * targhooks.h: Likewise.
4443 * tree-affine.h: Likewise.
4444 * xcoff.h: Likewise.
4445 * xcoffout.h: Likewise.
4447 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
4450 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
4453 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
4456 * lra.c (lra): Call recog_init.
4458 2014-09-18 Jakub Jelinek <jakub@redhat.com>
4461 * asan.c (transform_statements): Don't instrument clobber statements.
4463 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4465 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
4466 to neon_load1_1reg<q>.
4468 2014-09-17 Jakub Jelinek <jakub@redhat.com>
4471 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
4472 if there are only debug stmts after the noreturn call, instead
4473 remove the debug stmts.
4475 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
4477 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
4478 (odr_types_equivalent_p): Use pair hash.
4479 (odr_subtypes_equivalent_p): Likewise, do structural compare
4480 on ODR types that may be mismatched.
4481 (warn_odr): Support warning when only one field is given.
4482 (odr_types_equivalent_p): Strenghten comparsions made;
4484 (add_type_duplicate): Update VISITED hash set.
4486 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4488 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
4489 Enable selection of 'posix' or no thread model.
4491 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
4493 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
4494 when architecture is older than ARMv7.
4496 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
4499 * config/pa/pa.c (pa_function_value): Directly handle aggregates
4500 that fit exactly in a word or double word.
4502 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
4504 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
4507 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
4508 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4509 Anna Tikhonova <anna.tikhonova@intel.com>
4510 Ilya Tocar <ilya.tocar@intel.com>
4511 Andrey Turetskiy <andrey.turetskiy@intel.com>
4512 Ilya Verbin <ilya.verbin@intel.com>
4513 Kirill Yukhin <kirill.yukhin@intel.com>
4514 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4516 * config/i386/i386.c
4517 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
4518 * config/i386/sse.md
4519 (define_mode_iterator VI48F_256): New.
4520 (define_mode_attr extract_type): Ditto.
4521 (define_mode_attr extract_suf): Ditto.
4522 (define_mode_iterator AVX512_VEC): Ditto.
4524 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
4526 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
4528 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
4530 (define_mode_attr extract_type_2): Ditto.
4531 (define_mode_attr extract_suf_2): Ditto.
4532 (define_mode_iterator AVX512_VEC_2): Ditto.
4534 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
4535 AVX512_VEC_2 mode iterator.
4536 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4537 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
4538 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4539 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4540 (define_split for V16FI mode): Ditto.
4541 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4542 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4543 (define_split for VI8F_256 mode): Ditto.
4544 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4545 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4546 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4547 (define_split for VI4F_256 mode): Ditto.
4548 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
4549 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4550 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4551 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
4552 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
4553 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
4554 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
4555 Update `type' attribute, remove explicit `memory' attribute calculation.
4557 2014-09-16 Kito Cheng <kito@0xlab.org>
4559 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
4560 ira_spilled_reg_stack_slots_num if using lra.
4561 (do_reload): Remove release ira_spilled_reg_stack_slots part.
4562 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
4563 make sure not using lra.
4564 (ira_reuse_stack_slot): Likewise.
4565 (ira_mark_new_stack_slot): Likewise.
4567 2014-09-15 Andi Kleen <ak@linux.intel.com>
4569 * function.c (allocate_struct_function): Force
4570 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
4571 profiling is disabled.
4573 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
4575 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
4576 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
4577 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
4578 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
4579 macro with statically checked member functions.
4580 * rtl.h (rtx_insn::deleted): New method.
4581 (rtx_insn::set_deleted): Likewise.
4582 (rtx_insn::set_undeleted): Likewise.
4583 (INSN_DELETED_P): Remove.
4585 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
4587 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
4588 result of emit_jump_insn_before to a new variable.
4589 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
4590 (mark_jump_label_1): Likewise.
4591 (mark_jump_label_asm): Likewise.
4592 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
4593 * rtl.h (mark_jump_label): Adjust.
4595 2014-09-15 Jakub Jelinek <jakub@redhat.com>
4597 * Makefile.in (dg_target_exps): Remove.
4598 (check_gcc_parallelize): Change to just an upper bound number.
4599 (check-%-subtargets): Always print the non-parallelized goals.
4600 (check_p_vars, check_p_comma, check_p_subwork): Remove.
4601 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
4602 check_p_numbers3, check_p_numbers4, check_p_numbers5,
4603 check_p_numbers6): New variables.
4604 (check_p_numbers): Set to sequence from 1 to 9999.
4605 (check_p_subdirs): Set to sequence from 1 to minimum of
4606 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
4608 (check-%, check-parallel-%): Rewritten so that for parallelized
4609 testing each job runs all the *.exp files, with
4610 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
4612 2014-09-15 David Malcolm <dmalcolm@redhat.com>
4614 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
4616 (arc_sets_cc_p): Likewise.
4617 * config/arc/arc.c (arc_print_operand): Use methods of
4618 "final_sequence" for clarity, and to enable strengthening of
4619 locals "jump" and "delay" from rtx to rtx_insn *.
4620 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
4621 rtx_insn *; use method of rtx_sequence for typesafety.
4622 (arc_get_insn_variants): Use insn method of rtx_sequence for
4624 (arc_pad_return): Likewise.
4625 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
4626 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
4627 dyn_cast to rtx_sequence *, using insn method for typesafety.
4628 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
4629 rtx_sequence * and use insn method when invoking get_attr_length.
4630 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
4631 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
4632 rtx_sequence *, introducing a local "seq", using its insn method
4633 from typesafety and clarity.
4634 (add_sched_insns_for_speculation): Strengthen local "next" from
4636 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
4637 (predicate_insn): Likewise.
4638 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
4640 * config/cris/cris.c (cris_notice_update_cc): Likewise.
4641 * config/epiphany/epiphany-protos.h
4642 (extern void epiphany_insert_mode_switch_use): Likewise for param
4644 (get_attr_sched_use_fpu): Likewise for param.
4645 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
4646 Likewise for param "insn".
4647 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
4648 param "insn" of "target_insert_mode_switch_use" callback.
4649 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
4650 (frv_issues_to_branch_unit_p): Likewise.
4651 (frv_pack_insn_p): Likewise.
4652 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
4653 const rtx * (i.e. mutable rtx_def * const *) to
4655 * config/i386/i386-protos.h (standard_sse_constant_opcode):
4656 Strengthen first param from rtx to rtx_insn *.
4657 (output_fix_trunc): Likewise.
4658 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
4659 (output_fix_trunc): Likewise.
4660 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
4662 (min_insn_size): Likewise for param "insn".
4663 (get_mem_group): Likewise.
4665 (get_insn_path): Likewise.
4666 (get_insn_group): Likewise.
4667 (count_num_restricted): Likewise.
4668 (fits_dispatch_window): Likewise.
4669 (add_insn_window): Likewise.
4670 (add_to_dispatch_window): Likewise.
4671 (debug_insn_dispatch_info_file): Likewise.
4672 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
4674 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
4675 "cmp" and local "prev".
4676 (m32c_output_compare): Likewise for param "insn".
4677 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
4678 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
4679 (define_predicate "large_insn_p"): Likewise.
4680 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
4681 param from rtx to rtx_insn *.
4682 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
4683 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
4684 (m68k_sched_attr_size): Likewise.
4685 (sched_get_opxy_mem_type): Likewise for param "insn".
4686 (m68k_sched_attr_op_mem): Likewise.
4687 (sched_mem_operand_p): Likewise.
4688 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
4689 * config/mep/mep.c (mep_multi_slot): Likewise.
4690 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
4692 (mips_sync_loop_insns): Likewise.
4693 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
4694 method of "final_sequence" for typesafety.
4695 (mips_process_sync_loop): Strengthen param "insn" from rtx to
4697 (mips_output_sync_loop): Likewise.
4698 (mips_sync_loop_insns): Likewise.
4699 (mips_74k_agen_init): Likewise.
4700 (mips_sched_init): Use NULL rather than NULL_RTX when working with
4702 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
4703 Strengthen param "insn" from rtx to rtx_insn *.
4704 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
4706 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
4708 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
4709 "insn". Use method of rtx_sequence for typesafety.
4710 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
4712 (branch_needs_nop_p): Likewise.
4713 (use_skip_p): Likewise.
4714 (pa_insn_refs_are_delayed): Likewise.
4715 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
4716 for locals "insn", "ninsn".
4717 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
4719 (is_cracked_insn): Likewise.
4720 (is_branch_slot_insn): Likewise.
4721 (is_nonpipeline_insn): Likewise.
4722 (insn_terminates_group_p): Likewise.
4723 (insn_must_be_first_in_group): Likewise.
4724 (insn_must_be_last_in_group): Likewise.
4725 (force_new_group): Likewise for param "next_insn".
4726 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
4728 (s390_sched_score): Likewise.
4729 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
4730 (rtx sfunc_uses_reg): Likewise for sole param.
4731 * config/sh/sh.c (sh_print_operand): Use insn method of
4732 final_sequence for typesafety.
4733 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
4734 Use insn method of final_sequence for typesafety.
4735 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
4736 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
4738 (eligible_for_return_delay): Likewise.
4739 (eligible_for_sibcall_delay): Likewise.
4740 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
4741 (eligible_for_return_delay): Likewise.
4742 (eligible_for_sibcall_delay): Likewise.
4743 * config/stormy16/stormy16-protos.h
4744 (xstormy16_output_cbranch_hi): Likewise for final param.
4745 (xstormy16_output_cbranch_si): Likewise.
4746 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
4747 (xstormy16_output_cbranch_si): Likewise.
4748 * config/v850/v850-protos.h (notice_update_cc): Likewise.
4749 * config/v850/v850.c (notice_update_cc): Likewise.
4751 * final.c (get_attr_length_1): Strengthen param "insn" and param
4752 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
4753 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
4754 (get_attr_min_length): Likewise.
4755 (shorten_branches): Likewise for signature of locals "length_fun"
4756 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
4757 from a checked cast and use its methods for clarity and to enable
4758 strengthening local "inner_insn" from rtx to rtx_insn *.
4759 * genattr.c (gen_attr): When writing out the prototypes of the
4760 various generated "get_attr_" functions, strengthen the params of
4761 the non-const functions from rtx to rtx_insn *.
4762 Similarly, strengthen the params of insn_default_length,
4763 insn_min_length, insn_variable_length_p, insn_current_length.
4764 (main): Similarly, strengthen the param of num_delay_slots,
4765 internal_dfa_insn_code, insn_default_latency, bypass_p,
4766 insn_latency, min_issue_delay, print_reservation,
4767 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
4768 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
4769 to hook_int_rtx_insn_unreachable.
4770 * genattrtab.c (write_attr_get): When writing out the generated
4771 "get_attr_" functions, strengthen the param "insn" from rtx to
4772 rtx_insn *, eliminating a checked cast.
4773 (make_automaton_attrs): When writing out prototypes of
4774 "internal_dfa_insn_code_", "insn_default_latency_" functions
4775 and the "internal_dfa_insn_code" and "insn_default_latency"
4776 callbacks, strengthen their params from rtx to rtx_insn *
4777 * genautomata.c (output_internal_insn_code_evaluation): When
4778 writing out code, add a checked cast from rtx to rtx_insn * when
4779 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
4780 (output_dfa_insn_code_func): Strengthen param of generated
4781 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
4782 (output_trans_func): Likewise for generated function
4784 (output_internal_insn_latency_func): When writing out generated
4785 function "internal_insn_latency", rename params from "insn" and
4786 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
4787 locals "insn" and "insn2" as rtx_insn * with checked casts once
4788 we've proven that we're not dealing with const0_rtx.
4789 (output_insn_latency_func): Strengthen param of generated
4790 function "insn_latency" from rtx to rtx_insn *.
4791 (output_print_reservation_func): Likewise for generated function
4792 "print_reservation".
4793 (output_insn_has_dfa_reservation_p): Likewise for generated
4794 function "insn_has_dfa_reservation_p".
4795 * hooks.c (hook_int_rtx_unreachable): Rename to...
4796 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
4797 from rtx to rtx_insn *.
4798 * hooks.h (hook_int_rtx_unreachable): Likewise.
4799 (extern int hook_int_rtx_insn_unreachable): Likewise.
4800 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
4801 (get_attr_min_length): Likewise.
4802 * recog.c (get_enabled_alternatives): Likewise.
4803 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
4804 * reorg.c (find_end_label): Introduce local rtx "pat" and
4805 strengthen local "insn" from rtx to rtx_insn *.
4806 (redundant_insn): Use insn method of "seq" rather than element for
4807 typesafety; strengthen local "control" from rtx to rtx_insn *.
4808 * resource.c (mark_referenced_resources): Add checked cast to
4809 rtx_insn * within INSN/JUMP_INSN case.
4810 (mark_set_resources): Likewise.
4811 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
4814 2014-09-15 David Malcolm <dmalcolm@redhat.com>
4816 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
4817 param "label" from rtx to rtx_insn *.
4818 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
4820 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
4821 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
4822 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4823 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4824 * final.c (default_label_align_after_barrier_max_skip): Strengthen
4825 param from rtx to rtx_insn *.
4826 (default_loop_align_max_skip): Likewise.
4827 (default_label_align_max_skip): Likewise.
4828 (default_jump_align_max_skip): Likewise.
4829 * target.def (label_align_after_barrier_max_skip): Likewise.
4830 (loop_align_max_skip): Likewise.
4831 (label_align_max_skip): Likewise.
4832 (jump_align_max_skip): Likewise.
4833 * targhooks.h (default_label_align_after_barrier_max_skip):
4835 (default_loop_align_max_skip): Likewise.
4836 (default_label_align_max_skip): Likewise.
4837 (default_jump_align_max_skip): Likewise.
4839 2014-09-15 David Malcolm <dmalcolm@redhat.com>
4841 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
4842 from const_rtx to const rtx_insn *. Update union members from rtx
4844 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
4845 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
4846 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
4847 strengthen both params from const_rtx to const rtx_insn *.
4848 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
4849 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
4850 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
4852 * target.def (can_follow_jump): Strengthen both params from
4853 const_rtx to const rtx_insn *, and update default implementation
4854 from hook_bool_const_rtx_const_rtx_true to
4855 hook_bool_const_rtx_insn_const_rtx_insn_true.
4857 2014-09-15 David Malcolm <dmalcolm@redhat.com>
4859 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
4860 "insn" from rtx to rtx_insn *.
4861 * sched-int.h (deps_start_bb): Likewise for 2nd param.
4863 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
4864 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4865 Anna Tikhonova <anna.tikhonova@intel.com>
4866 Ilya Tocar <ilya.tocar@intel.com>
4867 Andrey Turetskiy <andrey.turetskiy@intel.com>
4868 Ilya Verbin <ilya.verbin@intel.com>
4869 Kirill Yukhin <kirill.yukhin@intel.com>
4870 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4872 * config/i386/sse.md
4873 (define_insn "vcvtph2ps<mask_name>"): Add masking.
4874 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
4875 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
4876 (define_expand "vcvtps2ph_mask"): New.
4877 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
4878 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
4879 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
4881 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
4882 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4883 Anna Tikhonova <anna.tikhonova@intel.com>
4884 Ilya Tocar <ilya.tocar@intel.com>
4885 Andrey Turetskiy <andrey.turetskiy@intel.com>
4886 Ilya Verbin <ilya.verbin@intel.com>
4887 Kirill Yukhin <kirill.yukhin@intel.com>
4888 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4890 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
4892 (define_mode_iterator VI24_AVX512BW_1): Ditto.
4893 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
4894 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
4895 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
4896 also for TARGET_AVX512VL.
4897 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
4899 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
4901 * doc/install.texi (Options specification): add
4902 --disable-libsanitizer item.
4904 2014-09-14 James Clarke <jrtc27@jrtc27.com>
4905 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4908 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
4910 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
4911 kernel version check to avoid incrementing it after every major OS X
4913 (darwin_default_min_version): Avoid static memory buffer.
4915 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
4917 * tree.c (need_assembler_name_p): Store C++ type mangling only
4920 2014-09-13 Marek Polacek <polacek@redhat.com>
4922 * tree.c (protected_set_expr_location): Don't check whether T is
4925 2014-09-12 DJ Delorie <dj@redhat.com>
4927 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
4928 (extend_and_shift1_hipsi2): Likewise.
4929 (extend_and_shift2_hipsi2): Likewise.
4931 2014-09-12 David Malcolm <dmalcolm@redhat.com>
4933 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
4934 with NULL when dealing with an insn.
4935 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
4936 from rtx to rtx_insn *.
4937 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
4938 const_rtx to const rtx_insn *.
4939 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
4941 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
4943 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
4946 2014-09-12 Joseph Myers <joseph@codesourcery.com>
4948 * target.def (libgcc_floating_mode_supported_p): New hook.
4949 * targhooks.c (default_libgcc_floating_mode_supported_p): New
4951 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
4952 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
4953 (LIBGCC2_HAS_TF_MODE): Remove.
4954 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
4955 * doc/tm.texi: Regenerate.
4956 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
4958 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
4959 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
4960 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
4961 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
4962 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4963 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
4964 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
4965 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
4966 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
4967 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
4969 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
4970 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4971 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4972 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4973 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4974 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4975 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4976 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
4977 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
4978 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
4979 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4980 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
4981 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
4982 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
4984 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
4986 (ia64_libgcc_floating_mode_supported_p): New function.
4987 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
4988 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
4989 (IA64_NO_LIBGCC_TFMODE): Define.
4990 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
4991 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
4993 (pdp11_scalar_mode_supported_p): New function.
4994 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
4995 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
4997 2014-09-12 Richard Biener <rguenther@suse.de>
5000 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5002 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
5004 * tree.c (integer_each_onep): New function.
5005 * tree.h (integer_each_onep): Declare it.
5006 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5007 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5008 (X & 1) == 0 for vector and complex.
5010 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5012 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5014 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
5015 cost to spilling from integer to FP registers.
5017 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5019 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5021 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5022 are now handled correctly.
5024 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5026 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5027 handling of CALLER_SAVE_REGS and POINTER_REGS.
5029 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5031 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5032 the number of hard registers.
5034 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5035 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5036 Anna Tikhonova <anna.tikhonova@intel.com>
5037 Ilya Tocar <ilya.tocar@intel.com>
5038 Andrey Turetskiy <andrey.turetskiy@intel.com>
5039 Ilya Verbin <ilya.verbin@intel.com>
5040 Kirill Yukhin <kirill.yukhin@intel.com>
5041 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5043 * config/i386/sse.md
5044 (define_mode_iterator VI48_AVX512VL): New.
5045 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5046 "avx512f_vternlog<mode>_maskz" and update mode iterator.
5047 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5048 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5049 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5050 "avx512f_vternlog<mode>_mask" and update mode iterator.
5051 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5052 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5054 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5055 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5056 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5057 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5058 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5059 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5061 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5062 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5063 Anna Tikhonova <anna.tikhonova@intel.com>
5064 Ilya Tocar <ilya.tocar@intel.com>
5065 Andrey Turetskiy <andrey.turetskiy@intel.com>
5066 Ilya Verbin <ilya.verbin@intel.com>
5067 Kirill Yukhin <kirill.yukhin@intel.com>
5068 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5070 * config/i386/sse.md (VI128_256): Delete.
5071 (define_mode_iterator VI124_256): New.
5072 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5073 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5074 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5075 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5076 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5077 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5078 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5079 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5081 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5082 in presence of AVX-512.
5084 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5085 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5086 Anna Tikhonova <anna.tikhonova@intel.com>
5087 Ilya Tocar <ilya.tocar@intel.com>
5088 Andrey Turetskiy <andrey.turetskiy@intel.com>
5089 Ilya Verbin <ilya.verbin@intel.com>
5090 Kirill Yukhin <kirill.yukhin@intel.com>
5091 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5093 * config/i386/sse.md
5094 (define_expand "<avx512>_gathersi<mode>"): Rename from
5095 "avx512f_gathersi<mode>".
5096 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5097 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5098 (define_expand "<avx512>_gatherdi<mode>"): Rename from
5099 "avx512f_gatherdi<mode>".
5100 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5101 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5103 (define_expand "<avx512>_scattersi<mode>"): Rename from
5104 "avx512f_scattersi<mode>".
5105 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5106 (define_expand "<avx512>_scatterdi<mode>"): Rename from
5107 "avx512f_scatterdi<mode>".
5108 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5110 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
5112 * ira.h (ira_finish_once): Delete.
5113 * ira-int.h (target_ira_int::~target_ira_int): Declare.
5114 (target_ira_int::free_ira_costs): Likewise.
5115 (target_ira_int::free_register_move_costs): Likewise.
5116 (ira_finish_costs_once): Delete.
5117 * ira.c (free_register_move_costs): Replace with...
5118 (target_ira_int::free_register_move_costs): ...this new function.
5119 (target_ira_int::~target_ira_int): Define.
5120 (ira_init): Call free_register_move_costs as a member function rather
5121 than a global function.
5122 (ira_finish_once): Delete.
5123 * ira-costs.c (free_ira_costs): Replace with...
5124 (target_ira_int::free_ira_costs): ...this new function.
5125 (ira_init_costs): Call free_ira_costs as a member function rather
5126 than a global function.
5127 (ira_finish_costs_once): Delete.
5128 * target-globals.c (target_globals::~target_globals): Call the
5129 target_ira_int destructor.
5130 * toplev.c: Include lra.h.
5131 (finalize): Call lra_finish_once rather than ira_finish_once.
5133 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
5135 * common.opt (flto-odr-type-merging): New flag.
5136 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5137 (types_same_for_odr): Likewise.
5138 (odr_subtypes_equivalent_p): Likewise.
5139 (add_type_duplicate): Do not walk type variants.
5140 (register_odr_type): New function.
5141 * ipa-utils.h (register_odr_type): Declare.
5142 (odr_type_p): New function.
5143 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5145 * doc/invoke.texi (-flto-odr-type-merging): Document.
5146 * tree.c (need_assembler_name_p): Compute ODR names when asked
5148 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5150 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
5153 * config/i386/i386.c (ix86_option_override_internal): Also turn
5154 off OPTION_MASK_ABI_X32 for -m16.
5156 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5158 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5161 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
5164 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5165 Directly forward to __*_DENORM_MIN__.
5167 2014-09-11 David Malcolm <dmalcolm@redhat.com>
5169 * rtl.h (LABEL_REF_LABEL): New macro.
5171 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5172 of XEXP (, 0), where we know that we have a LABEL_REF.
5173 * cfgbuild.c (make_edges): Likewise.
5174 (purge_dead_tablejump_edges): Likewise.
5175 * cfgexpand.c (convert_debug_memory_address): Likewise.
5176 * cfgrtl.c (patch_jump_insn): Likewise.
5177 * combine.c (distribute_notes): Likewise.
5178 * cse.c (hash_rtx_cb): Likewise.
5179 (exp_equiv_p): Likewise.
5180 (fold_rtx): Likewise.
5181 (check_for_label_ref): Likewise.
5182 * cselib.c (rtx_equal_for_cselib_1): Likewise.
5183 (cselib_hash_rtx): Likewise.
5184 * emit-rtl.c (mark_label_nuses): Likewise.
5185 * explow.c (convert_memory_address_addr_space): Likewise.
5186 * final.c (output_asm_label): Likewise.
5187 (output_addr_const): Likewise.
5188 * gcse.c (add_label_notes): Likewise.
5189 * genconfig.c (walk_insn_part): Likewise.
5190 * genrecog.c (validate_pattern): Likewise.
5191 * ifcvt.c (cond_exec_get_condition): Likewise.
5192 (noce_emit_store_flag): Likewise.
5193 (noce_get_alt_condition): Likewise.
5194 (noce_get_condition): Likewise.
5195 * jump.c (maybe_propagate_label_ref): Likewise.
5196 (mark_jump_label_1): Likewise.
5197 (redirect_exp_1): Likewise.
5198 (rtx_renumbered_equal_p): Likewise.
5199 * lra-constraints.c (operands_match_p): Likewise.
5200 * reload.c (operands_match_p): Likewise.
5201 (find_reloads): Likewise.
5202 * reload1.c (set_label_offsets): Likewise.
5203 * reorg.c (get_branch_condition): Likewise.
5204 * rtl.c (rtx_equal_p_cb): Likewise.
5205 (rtx_equal_p): Likewise.
5206 * rtlanal.c (reg_mentioned_p): Likewise.
5207 (rtx_referenced_p): Likewise.
5208 (get_condition): Likewise.
5209 * sched-vis.c (print_value): Likewise.
5210 * varasm.c (const_hash_1): Likewise.
5211 (compare_constant): Likewise.
5212 (const_rtx_hash_1): Likewise.
5213 (output_constant_pool_1): Likewise.
5215 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5217 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5218 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5220 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5221 cr6_test_for_lt_reverse): Ditto.
5223 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
5226 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5228 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5230 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5231 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5232 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5233 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5236 (aarch64_fold_builtin): Remove all reinterpret cases.
5238 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5240 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5242 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5243 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5244 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5245 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5246 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5247 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5248 aarch64_reinterpretv2df<mode>): Delete.
5250 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5252 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5253 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5254 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5255 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5256 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5257 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5258 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5259 vreinterpret_u32_f64): Use cast.
5261 * config/aarch64/iterators.md (VD_RE): Delete.
5263 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5265 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5266 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5267 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5268 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5269 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5270 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5271 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5272 Replace inline assembler with __aarch64_vset_lane_any.
5274 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
5276 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5278 (vmull_high_lane_s32): Likewise.
5279 (vmull_high_lane_u16): Likewise.
5280 (vmull_high_lane_u32): Likewise.
5282 2014-09-11 Jason Merrill <jason@redhat.com>
5285 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5287 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
5290 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5291 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
5292 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5294 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5295 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5296 Anna Tikhonova <anna.tikhonova@intel.com>
5297 Ilya Tocar <ilya.tocar@intel.com>
5298 Andrey Turetskiy <andrey.turetskiy@intel.com>
5299 Ilya Verbin <ilya.verbin@intel.com>
5300 Kirill Yukhin <kirill.yukhin@intel.com>
5301 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5303 * config/i386/sse.md
5304 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5305 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5306 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5308 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5309 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5311 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5313 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5314 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5315 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5316 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5317 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5318 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5319 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5320 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5322 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5324 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5325 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5326 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5328 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5330 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5331 to access removed nodes.
5333 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5335 PR tree-optimization/63186
5336 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5337 (mark_nonssa_use): Likewise.
5338 (verify_non_ssa_vars): Verify all header blocks for label
5341 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5342 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5343 Anna Tikhonova <anna.tikhonova@intel.com>
5344 Ilya Tocar <ilya.tocar@intel.com>
5345 Andrey Turetskiy <andrey.turetskiy@intel.com>
5346 Ilya Verbin <ilya.verbin@intel.com>
5347 Kirill Yukhin <kirill.yukhin@intel.com>
5348 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5350 * config/i386/sse.md
5351 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5352 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5353 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5354 "<avx2_avx512f>_permvar<mode><mask_name>".
5355 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5356 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5357 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5358 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5360 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5361 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5362 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5363 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5365 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5367 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5368 V2DF, V4SF, DF, and DI modes.
5369 (vsx_fmav2df2): Likewise.
5370 (vsx_float_fix_<mode>2): Likewise.
5371 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5373 2014-09-10 Xinliang David Li <davidxl@google.com>
5376 * config/arm/arm.md (movcond_addsi): Handle case where source
5377 and target operands are the same.
5379 2014-09-10 David Malcolm <dmalcolm@redhat.com>
5381 * final.c (this_is_asm_operands): Strengthen this variable from
5382 rtx to const rtx_insn *.
5383 * output.h (this_is_asm_operands): Likewise.
5384 * rtl-error.c (location_for_asm): Strengthen param "insn" from
5385 const_rtx to const rtx_insn *.
5386 (diagnostic_for_asm): Likewise.
5387 * rtl-error.h (error_for_asm): Likewise.
5388 (warning_for_asm): Likewise.
5390 2014-09-10 David Malcolm <dmalcolm@redhat.com>
5392 * genextract.c (print_header): When writing out insn_extract to
5393 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
5394 * recog.h (insn_extract): Strengthen the param from rtx to
5397 2014-09-10 Mike Stump <mikestump@comcast.net>
5399 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
5402 2014-09-10 Martin Jambor <mjambor@suse.cz>
5404 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
5405 (analyze): Do not set analyze flag if expand_thunk returns false;.
5406 (create_wrapper): Likewise.
5407 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5409 2014-09-10 Martin Jambor <mjambor@suse.cz>
5412 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
5413 new decl properly. Analyze the new thunk if it is expanded.
5415 2014-09-10 Andreas Schwab <schwab@suse.de>
5417 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
5418 [USED_FOR_TARGET]: Define.
5420 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
5422 * config/mips/mips.c (mips_secondary_reload_class): Handle
5425 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
5427 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
5430 2014-09-10 Jakub Jelinek <jakub@redhat.com>
5432 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
5433 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
5434 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
5435 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
5436 flag_delete_null_pointer_checks for them.
5437 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
5438 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
5439 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
5440 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
5441 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
5443 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
5444 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
5445 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
5446 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
5447 * doc/invoke.texi (-fsanitize=nonnull-attribute,
5448 -fsanitize=returns-nonnull-attribute): Document.
5450 * ubsan.h (struct ubsan_mismatch_data): Removed.
5451 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5452 * ubsan.c (ubsan_source_location): For unknown locations,
5453 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
5454 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5455 Allow more than one location and arbitrary extra arguments passed
5456 in ... instead of through MISMATCH pointer.
5457 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
5458 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5459 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
5462 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
5463 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5464 Anna Tikhonova <anna.tikhonova@intel.com>
5465 Ilya Tocar <ilya.tocar@intel.com>
5466 Andrey Turetskiy <andrey.turetskiy@intel.com>
5467 Ilya Verbin <ilya.verbin@intel.com>
5468 Kirill Yukhin <kirill.yukhin@intel.com>
5469 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5471 * config/i386/sse.md
5472 (define_mode_iterator VI48F): New.
5473 (define_insn "<avx512>_compress<mode>_mask"): Rename from
5474 "avx512f_compress<mode>_mask" and update mode iterator.
5475 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
5476 "avx512f_compressstore<mode>_mask" and update mode iterator.
5477 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
5478 "avx512f_expand<mode>_maskz" and update mode iterator.
5479 (define_insn "<avx512>_expand<mode>_mask"): Rename from
5480 "avx512f_expand<mode>_mask" and update mode iterator.
5482 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
5483 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5484 Anna Tikhonova <anna.tikhonova@intel.com>
5485 Ilya Tocar <ilya.tocar@intel.com>
5486 Andrey Turetskiy <andrey.turetskiy@intel.com>
5487 Ilya Verbin <ilya.verbin@intel.com>
5488 Kirill Yukhin <kirill.yukhin@intel.com>
5489 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5491 * config/i386/i386.c
5492 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
5493 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
5494 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
5495 avx512dq_rangepv4sf_mask.
5496 * config/i386/sse.md
5497 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
5499 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
5500 (define_insn "reduces<mode>"): Ditto.
5501 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
5503 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
5504 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
5505 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
5507 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
5508 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5509 Anna Tikhonova <anna.tikhonova@intel.com>
5510 Ilya Tocar <ilya.tocar@intel.com>
5511 Andrey Turetskiy <andrey.turetskiy@intel.com>
5512 Ilya Verbin <ilya.verbin@intel.com>
5513 Kirill Yukhin <kirill.yukhin@intel.com>
5514 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5516 * config/i386/i386.c
5517 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
5518 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
5519 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
5520 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
5521 avx512vl_getmantv2df_mask.
5522 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
5523 avx512f_vgetmantv4sf_round.
5524 * config/i386/sse.md
5525 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
5526 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
5528 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
5529 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
5530 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
5531 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
5533 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
5534 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
5535 update mode iterator.
5537 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
5538 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
5541 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
5542 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
5543 update mode iterator.
5544 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
5545 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
5548 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
5549 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
5551 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
5552 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
5553 update mode iterator.
5554 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
5555 "avx512f_getmant<mode><round_saeonly_name>".
5557 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5560 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
5562 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
5563 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5564 Anna Tikhonova <anna.tikhonova@intel.com>
5565 Ilya Tocar <ilya.tocar@intel.com>
5566 Andrey Turetskiy <andrey.turetskiy@intel.com>
5567 Ilya Verbin <ilya.verbin@intel.com>
5568 Kirill Yukhin <kirill.yukhin@intel.com>
5569 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5571 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
5572 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
5573 (define_mode_iterator FMAMODE_AVX512): New.
5574 (define_mode_iterator FMAMODE): Remove conditions.
5575 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
5576 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
5577 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
5579 (define_mode_iterator FMAMODE_NOVF512): Remove.
5580 (define_insn "*fma_fmadd_<mode>"): Rename from
5581 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
5582 FMAMODE mode iterator.
5583 (define_mode_iterator VF_SF_AVX512VL): New.
5584 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
5585 Use VF_SF_AVX512VL mode iterator.
5586 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
5587 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5589 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
5590 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5592 (define_insn "*fma_fmsub_<mode>"): Rename from
5593 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
5594 FMAMODE mode iterator.
5595 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
5596 Use VF_SF_AVX512VL mode iterator.
5597 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
5598 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5600 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
5601 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5603 (define_insn "*fma_fnmadd_<mode>"): Rename from
5604 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
5605 use FMAMODE mode iterator.
5606 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
5607 Use VF_SF_AVX512VL mode iterator.
5608 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
5609 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5611 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
5612 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5614 (define_insn "*fma_fnmsub_<mode>"): Rename from
5615 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
5616 FMAMODE mode iterator.
5617 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
5618 Use VF_SF_AVX512VL mode iterator.
5619 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
5620 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5622 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
5623 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5625 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
5626 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
5627 use VF_AVX512VL mode iterator.
5628 (define_insn "*fma_fmaddsub_<mode>"): Rename from
5629 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
5631 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
5632 Use VF_SF_AVX512VL mode iterator.
5633 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
5634 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5636 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
5637 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5639 (define_insn "*fma_fmsubadd_<mode>"): Rename from
5640 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
5641 remove usage of subst.
5642 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
5643 Use VF_SF_AVX512VL mode iterator.
5644 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
5645 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5647 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
5648 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5651 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
5654 * calls.c (precompute_arguments): Check
5655 promoted_for_signed_and_unsigned_p and set the promoted mode.
5656 (promoted_for_signed_and_unsigned_p): New function.
5657 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
5658 and set the promoted mode.
5659 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
5660 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
5661 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
5663 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
5665 * opth-gen.awk: Generate mapping from cpp message reasons to the
5666 options that enable them.
5667 * doc/options.texi (CppReason): Document.
5669 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
5671 * doc/invoke.texi (Wnormalized=): Update.
5673 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
5676 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
5677 operands. Split off the constant operand alternative to ...
5678 (*bool<mode>3_imm): New.
5680 2014-09-09 David Malcolm <dmalcolm@redhat.com>
5682 * rtl.h (single_set_2): Strengthen first param from const_rtx to
5683 const rtx_insn *, and move prototype to above...
5684 (single_set): ...this. Convert this from a macro to an inline
5685 function, enforcing the requirement that the param is a const
5687 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
5689 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5690 Strengthen both params from rtx to rtx_insn *.
5691 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
5692 Likewise; introduce locals "producer_set", "consumer_set", using
5693 them in place of "producer" and "consumer" when dealing with SET
5695 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
5696 when invoking single_set in region guarded by INSN_P.
5697 (avr_out_bitop): Likewise.
5698 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
5699 region guarded by GET_CODE check, using methods to strengthen
5700 local "this_insn" from rtx to rtx_insn *, and for clarity.
5701 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
5702 Strengthen local "insn" from rtx to rtx_insn *.
5703 (define_insn_and_split "xload<mode>_A"): Likewise.
5704 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
5706 (find_load): Likewise for return type.
5707 (workaround_speculation): Likewise for both locals named
5709 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
5711 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
5713 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
5715 * config/h8300/h8300.c (notice_update_cc): Likewise.
5716 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
5717 "insn" and "dep_insn".
5718 (exact_store_load_dependency): Likewise for both params.
5719 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
5720 since this now clashes with inline function. Instead, delay
5721 calling single_set until the point where its needed, and then
5722 assign the result to "compare_set" and rework the conditional that
5724 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
5725 local "last" from rtx to rtx_insn *.
5726 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
5728 (mips_store_data_bypass_p): Likewise for both params.
5729 * config/mips/mips.c (mips_load_store_insns): Likewise for second
5731 (mips_store_data_bypass_p): Likewise for both params.
5732 (mips_orphaned_high_part_p): Likewise for param "insn".
5733 * config/mn10300/mn10300.c (extract_bundle): Likewise.
5734 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
5735 Introduce local rtx "insn2_pat".
5736 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
5738 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
5739 Introduce local rtx "set", using it in place of "insn" for the
5740 result of single_set. This appears to fix a bug, since the call
5741 to find_regno_note on a SET does nothing.
5742 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
5743 params from rtx to rtx_insn *.
5744 (set_to_load_agen): Likewise.
5745 * config/s390/s390.c (s390_label_align): Likewise for local
5746 "prev_insn". Introduce new rtx locals "set" and "src", using
5747 them in place of "prev_insn" for the results of single_set
5748 and SET_SRC respectively.
5749 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
5750 Introduce new rtx local "set" using in place of "jump" for the
5751 result of single_set. Use SET_SRC (set) rather than plain
5753 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
5755 (noncall_uses_reg): Likewise.
5756 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
5757 guarded by GET_CODE check, using its methods for clarity, and to
5758 enable strengthening local "this_insn" from rtx to rtx_insn *.
5759 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
5760 "insn" from rtx to rtx_insn *.
5761 (define_expand "umulhisi3"): Likewise.
5762 (define_expand "smulsi3_highpart"): Likewise.
5763 (define_expand "umulsi3_highpart"): Likewise.
5764 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5765 local "after". Replace GET_CODE check with a dyn_cast,
5766 introducing new local rtx_sequence * "seq", using insn method for
5769 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
5770 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
5771 place of "insn" once we're dealing with patterns rather than the
5773 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
5774 (scan_trace): Likewise for local "elt", updating lookups within
5775 sequence to use insn method rather than element method.
5776 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
5778 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
5779 * ifcvt.c (noce_try_abs): Likewise for local "insn".
5780 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
5781 invoking single_set.
5782 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
5783 "insn" from rtx to rtx_insn *.
5784 (skip_usage_debug_insns): Likewise for return type, adding a
5786 (check_secondary_memory_needed_p): Likewise for local "insn".
5787 (inherit_reload_reg): Likewise.
5788 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
5789 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
5791 (store_data_bypass_p): Likewise for both params.
5792 (if_test_bypass_p): Likewise.
5793 * recog.h (store_data_bypass_p): Likewise for both params.
5794 (if_test_bypass_p): Likewise.
5795 * reload.c (find_equiv_reg): Likewise for local "where".
5796 * reorg.c (delete_jump): Likewise for param "insn".
5797 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
5798 to const rtx_insn *.
5799 * store-motion.c (replace_store_insn): Likewise for param "del".
5800 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
5801 and use its methods for clarity, and to strengthen local "del"
5802 from rtx to rtx_insn *.
5803 (build_store_vectors): Use insn method of "st" when calling
5804 replace_store_insn for typesafety and clarity.
5806 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5808 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
5809 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
5810 on how to make it legal in future.
5812 2014-09-09 David Malcolm <dmalcolm@redhat.com>
5814 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
5816 (restinsn): Likewise.
5817 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
5819 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
5821 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
5823 (arc_hazard): Likewise for both params.
5824 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
5825 checked casts to rtx_sequence * and uses of the insn method for
5827 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
5828 (arc_adjust_insn_length): Likewise for param "insn".
5829 (struct insn_length_parameters_s): Likewise for first param of
5830 "get_variants" callback field.
5831 (arc_get_insn_variants): Likewise for first param and local
5832 "inner". Replace a check of GET_CODE with a dyn_cast to
5833 rtx_sequence *, using methods for type-safety and clarity.
5834 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
5835 rtx_sequence * and uses of the insn method for type-safety when
5836 invoking arc_adjust_insn_length.
5837 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
5839 (arm_address_offset_is_imm): Likewise.
5840 (struct tune_params): Likewise for params 1 and 3 of the
5841 "sched_adjust_cost" callback field.
5842 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
5843 params 1 and 3 ("insn" and "dep").
5844 (xscale_sched_adjust_cost): Likewise.
5845 (fa726te_sched_adjust_cost): Likewise.
5846 (cortexa7_older_only): Likewise for param "insn".
5847 (cortexa7_younger): Likewise.
5848 (arm_attr_length_move_neon): Likewise.
5849 (arm_address_offset_is_imm): Likewise.
5850 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
5851 * config/avr/avr.c (avr_notice_update_cc): Likewise.
5852 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
5853 (workaround_speculation): Likewise for local "last_condjump".
5854 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
5855 (shadow_or_blockage_p): Likewise.
5856 (get_unit_reqs): Likewise.
5857 (get_unit_operand_masks): Likewise.
5858 (c6x_registers_update): Likewise.
5859 (returning_call_p): Likewise.
5860 (can_use_callp): Likewise.
5861 (convert_to_callp): Likewise.
5862 (find_last_same_clock): Likwise for local "t".
5863 (reorg_split_calls): Likewise for local "shadow".
5864 (hwloop_pattern_reg): Likewise for param "insn".
5865 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
5866 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
5867 (frv_extract_membar): Likewise.
5868 (frv_optimize_membar_local): Strengthen param "last_membar" from
5869 rtx * to rtx_insn **.
5870 (frv_optimize_membar_global): Strengthen param "membar" from rtx
5872 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
5874 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
5875 both params from rtx to rtx_insn *.
5876 (ia64_ld_address_bypass_p): Likewise.
5877 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
5879 (ia64_safe_type): Likewise.
5880 (group_barrier_needed): Likewise.
5881 (safe_group_barrier_needed): Likewise.
5882 (ia64_single_set): Likewise.
5883 (is_load_p): Likewise.
5884 (record_memory_reference): Likewise.
5885 (get_mode_no_for_insn): Likewise.
5886 (important_for_bundling_p): Likewise.
5887 (unknown_for_bundling_p): Likewise.
5888 (ia64_st_address_bypass_p): Likewise for both params.
5889 (ia64_ld_address_bypass_p): Likewise.
5890 (expand_vselect): Introduce new local rtx_insn * "insn", using it
5891 in place of rtx "x" after the emit_insn call.
5892 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
5893 Strengthen param from rtx to rtx_insn *.
5894 (ix86_agi_dependent): Likewise for both params.
5895 (ix86_attr_length_immediate_default): Likewise for param 1.
5896 (ix86_attr_length_address_default): Likewise for param.
5897 (ix86_attr_length_vex_default): Likewise for param 1.
5898 * config/i386/i386.c (ix86_attr_length_immediate_default):
5899 Likewise for param "insn".
5900 (ix86_attr_length_address_default): Likewise.
5901 (ix86_attr_length_vex_default): Likewise.
5902 (ix86_agi_dependent): Likewise for both params.
5903 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
5904 (vselect_insn): Likewise for this variable.
5905 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
5907 (m68k_sched_attr_opy_type): Likewise.
5908 * config/m68k/m68k.c (sched_get_operand): Likewise.
5909 (sched_attr_op_type): Likewise.
5910 (m68k_sched_attr_opx_type): Likewise.
5911 (m68k_sched_attr_opy_type): Likewise.
5912 (sched_get_reg_operand): Likewise.
5913 (sched_get_mem_operand): Likewise.
5914 (m68k_sched_address_bypass_p): Likewise for both params.
5915 (sched_get_indexed_address_scale): Likewise.
5916 (m68k_sched_indexed_address_bypass_p): Likewise.
5917 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
5918 (m68k_sched_indexed_address_bypass_p): Likewise.
5919 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
5920 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
5922 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
5923 params from rtx to rtx_insn *.
5924 (mips_fmadd_bypass): Likewise.
5925 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
5926 (mips_linked_madd_p): Likewise.
5927 (mips_macc_chains_last_hilo): Likewise for this variable.
5928 (mips_macc_chains_record): Likewise for param.
5929 (vr4130_last_insn): Likewise for this variable.
5930 (vr4130_swap_insns_p): Likewise for both params.
5931 (mips_ls2_variable_issue): Likewise for param.
5932 (mips_need_noat_wrapper_p): Likewise for param "insn".
5933 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
5934 in place of "x" after the emit_insn.
5935 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
5936 params from rtx to rtx_insn *.
5937 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
5938 (pa_combine_instructions): Introduce local "par" for result of
5939 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
5941 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
5942 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
5943 (rl78_alloc_physical_registers_op1): Likewise.
5944 (rl78_alloc_physical_registers_op2): Likewise.
5945 (rl78_alloc_physical_registers_ro1): Likewise.
5946 (rl78_alloc_physical_registers_cmp): Likewise.
5947 (rl78_alloc_physical_registers_umul): Likewise.
5948 (rl78_alloc_address_registers_macax): Likewise.
5949 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
5950 * config/s390/predicates.md (execute_operation): Likewise for
5952 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
5954 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
5955 (addr_generation_dependency_p): Likewise for param "insn".
5956 (s390_agen_dep_p): Likewise for both params.
5957 (s390_fpload_toreg): Likewise for param "insn".
5958 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
5959 * config/sh/sh.c (sh_loop_align): Likewise for param and local
5961 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
5962 * config/sh/sh_treg_combine.cc
5963 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
5965 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
5966 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
5967 "and_insn", "load", "shift".
5968 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
5970 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
5971 for XEXP (note, 0) of the REG_CC_SETTER note.
5972 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
5973 rtx_insn *, eliminating a checked cast made redundant by this.
5974 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
5976 * genattr.c (main): When writing out the prototype to
5977 const_num_delay_slots, strengthen the param from rtx to
5979 * genattrtab.c (write_const_num_delay_slots): Likewise when
5980 writing out the implementation of const_num_delay_slots.
5981 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
5982 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
5983 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
5984 favor of new rtx locals "src" and "set" and new local rtx_insn *
5986 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
5988 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
5989 locals "cond", "if_then_else", "set" and new rtx_insn * locals
5991 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
5992 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
5993 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
5994 the top-level scope, replacing with new more tightly-scoped rtx
5995 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
5996 "new_insn", "copy_of_insn_b", and make local rtx "set" more
5998 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6000 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6002 (ira_setup_alts): Likewise for param "insn".
6003 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6004 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6006 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6007 new more-tightly scoped rtx locals "add3_insn", "insn",
6008 "add2_insn" and rtx_insn * "move_insn".
6009 * postreload-gcse.c (eliminate_partially_redundant_load): Add
6010 checked cast on result of gen_move_insn when invoking
6012 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6014 (verify_changes): Add a checked cast on "object" when invoking
6016 (extract_insn_cached): Strengthen param "insn" from rtx to
6018 (extract_constrain_insn_cached): Likewise.
6019 (extract_insn): Likewise.
6020 * recog.h (insn_invalid_p): Likewise for param 1.
6021 (recog_memoized): Likewise for param.
6022 (extract_insn): Likewise.
6023 (extract_constrain_insn_cached): Likewise.
6024 (extract_insn_cached): Likewise.
6025 * reload.c (can_reload_into): Likewise for local "test_insn".
6026 * reload.h (cleanup_subreg_operands): Likewise for param.
6027 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6028 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6029 result of emit_insn. Remove a checked cast made redundant by this
6031 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6033 * sel-sched.c (get_reg_class): Likewise.
6035 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
6036 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6038 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6039 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6041 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6043 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6045 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6046 const rtx_insn *, and from rtx to rtx_insn * for the other
6048 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6049 INSN_LOCATION, since we know INSN_P holds.
6050 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6051 (insn_file): Likewise.
6052 (insn_scope): Likewise.
6053 (insn_location): Likewise.
6055 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6056 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6057 for the result of gen_load_const_gp.
6058 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6059 param from rtx to rtx_insn *.
6060 * config/rs6000/rs6000.c (output_call): Likewise.
6061 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6062 introducing a checked cast to rtx_sequence * and use of the insn
6064 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6065 from rtx to rtx_insn *.
6066 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6067 (insn_line): Likewise.
6068 (insn_file): Likewise.
6069 (insn_location): Likewise.
6070 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6071 from rtx to rtx_insn *.
6072 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6073 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6074 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6076 * reorg.c (relax_delay_slots): Strengthen locals named "after"
6077 from rtx to rtx_insn *; use methods of "pat" for type-safety.
6079 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6081 * combine.c (try_combine): Eliminate checked cast on result of
6083 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6084 autogenerated one by strengthening the return type and params 2 and 3
6085 from rtx to rtx_insn *, and by naming the params.
6086 * gengenrtl.c (special_rtx): Add INSN to those that are
6088 * rtl.h (gen_rtx_INSN): New prototype.
6090 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6092 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6094 (no_equiv): Likewise.
6095 (update_equiv_regs): Likewise.
6096 (setup_reg_equiv): Likewise. Strengthen locals "elem",
6097 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6098 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
6100 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6101 from rtx to rtx_insn_list *.
6102 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6103 rtx_insn_list * and use methods for clarity and typesafety.
6104 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6106 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
6107 redundant check on INSN_P (insns): this cannot hold, as "insns" is
6108 an INSN_LIST, not an insn.
6109 (reverse_equiv_p): Strengthen local "insns" from rtx to
6110 rtx_insn_list * and use methods for clarity and typesafety.
6111 (contains_reloaded_insn_p): Likewise for local "list".
6113 2014-09-09 Jiong Wang <jiong.wang@arm.com>
6115 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6116 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6117 (arm_builtin_vectorized_function): Likewise.
6118 * config/arm/arm_neon_builtins.def: New macro for copysignf.
6119 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6121 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
6123 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6124 * builtins.h (default_target_builtins): Likewise.
6125 * gcse.h (default_target_gcse): Likewise.
6126 * target-globals.h (target_globals): Add a destructor. Convert
6127 void-pointer fields back to their real type and change from
6128 GTY((atomic)) to GTY((skip)).
6129 (restore_target_globals): Remove casts accordingly.
6130 * target-globals.c (save_target_globals): Use XCNEW rather than
6131 ggc_internal_cleared_alloc to allocate non-GC structures.
6132 Use ggc_cleared_alloc to allocate the target_globals structure
6134 (target_globals::~target_globals): Define.
6136 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6138 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6139 mnemonic instead of fldmfdd.
6140 * config/arm/arm.c (vfp_output_fstmd): Rename to...
6141 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
6142 Output vpush when address register is SP.
6143 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6144 (vfp_output_vstmd): ... This.
6145 * config/arm/vfp.md (push_multi_vfp): Update call to
6148 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6150 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6152 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6154 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6155 (*sqrtdf2_vfp): Likewise.
6156 (*cmpsf_vfp): Likewise.
6157 (*cmpsf_trap_vfp): Likewise.
6158 (*cmpdf_vfp): Likewise.
6159 (*cmpdf_trap_vfp): Likewise.
6161 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6163 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6164 (*truncdfsf2_vfp): Likewise.
6165 (*truncsisf2_vfp): Likewise.
6166 (*truncsidf2_vfp): Likewise.
6167 (fixuns_truncsfsi2): Likewise.
6168 (fixuns_truncdfsi2): Likewise.
6169 (*floatsisf2_vfp): Likewise.
6170 (*floatsidf2_vfp): Likewise.
6171 (floatunssisf2): Likewise.
6172 (floatunssidf2): Likewise.
6174 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6176 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6177 (*muldf3_vfp): Likewise.
6178 (*mulsf3negsf_vfp): Likewise.
6179 (*muldf3negdf_vfp): Likewise.
6180 (*mulsf3addsf_vfp): Likewise.
6181 (*muldf3adddf_vfp): Likewise.
6182 (*mulsf3subsf_vfp): Likewise.
6183 (*muldf3subdf_vfp): Likewise.
6184 (*mulsf3negsfaddsf_vfp): Likewise.
6185 (*fmuldf3negdfadddf_vfp): Likewise.
6186 (*mulsf3negsfsubsf_vfp): Likewise.
6187 (*muldf3negdfsubdf_vfp): Likewise.
6189 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6191 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6192 (*absdf2_vfp): Likewise.
6193 (*negsf2_vfp): Likewise.
6194 (*negdf2_vfp): Likewise.
6195 (*addsf3_vfp): Likewise.
6196 (*adddf3_vfp): Likewise.
6197 (*subsf3_vfp): Likewise.
6198 (*subdf3_vfp): Likewise.
6199 (*divsf3_vfp): Likewise.
6200 (*divdf3_vfp): Likewise.
6202 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6204 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6206 (arm_print_operand): Don't convert real values to decimal
6207 representation in default case.
6208 (fp_immediate_constant): Delete.
6209 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6210 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6212 (*thumb2_movsi_vfp): Likewise.
6213 (*movdi_vfp): Likewise.
6214 (*movdi_vfp_cortexa8): Likewise.
6215 (*movhf_vfp_neon): Likewise.
6216 (*movhf_vfp): Likewise.
6217 (*movsf_vfp): Likewise.
6218 (*thumb2_movsf_vfp): Likewise.
6219 (*movdf_vfp): Likewise.
6220 (*thumb2_movdf_vfp): Likewise.
6221 (*movsfcc_vfp): Likewise.
6222 (*thumb2_movsfcc_vfp): Likewise.
6223 (*movdfcc_vfp): Likewise.
6224 (*thumb2_movdfcc_vfp): Likewise.
6226 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
6228 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6232 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6235 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6236 Use qualifier_immediate for last operand. Rename to...
6237 (aarch64_types_ternop_lane_qualifiers): ... This.
6238 (TYPES_QUADOP): Rename to...
6239 (TYPES_TERNOP_LANE): ... This.
6240 (aarch64_simd_expand_args): Return const0_rtx when encountering user
6241 error. Change return of 0 to return of NULL_RTX.
6242 (aarch64_crc32_expand_builtin): Likewise.
6243 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6244 ICE when expanding unknown builtin.
6245 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6246 TERNOP_LANE qualifiers.
6247 (sqdmlsl_lane): Likewise.
6248 (sqdmlal_laneq): Likewise.
6249 (sqdmlsl_laneq): Likewise.
6250 (sqdmlal2_lane): Likewise.
6251 (sqdmlsl2_lane): Likewise.
6252 (sqdmlal2_laneq): Likewise.
6253 (sqdmlsl2_laneq): Likewise.
6255 2014-09-09 Nick Clifton <nickc@redhat.com>
6257 * doc/invoke.texi (Optimization Options): Add missing @gol to the
6259 (S/390 and zSeries Options): Remove superfluous word from the
6260 description of the -mhotpatch option.
6262 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
6264 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6265 * ira.c: #include "shrink-wrap.h"
6266 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6267 * ifcvt.c: #include "shrink-wrap.h"
6268 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6270 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
6272 * common/config/picochip/picochip-common.c: Remove.
6273 * config.gcc: Remove support for picochip.
6274 * config/picochip/constraints.md: Remove.
6275 * config/picochip/dfa_space.md: Remove.
6276 * config/picochip/dfa_speed.md: Remove.
6277 * config/picochip/picochip-protos.h: Remove.
6278 * config/picochip/picochip.c: Remove.
6279 * config/picochip/picochip.h: Remove.
6280 * config/picochip/picochip.md: Remove.
6281 * config/picochip/picochip.opt: Remove.
6282 * config/picochip/predicates.md: Remove.
6283 * config/picochip/t-picochip: Remove.
6284 * doc/md.texi: Don't document picochi.
6286 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6288 * basic-block.h (control_flow_insn_p): Strengthen param from
6289 const_rtx to const rtx_insn *.
6290 * cfgbuild.c (control_flow_insn_p): Likewise.
6292 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6294 * gcse.c (modify_mem_list): Strengthen this variable from
6295 vec<rtx> * to vec<rtx_insn *> *.
6296 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6298 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6299 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6300 (record_last_mem_set_info): Strengthen param "insn" from rtx to
6302 (record_last_set_info): Likewise for local "last_set_insn".
6304 2014-09-08 DJ Delorie <dj@redhat.com>
6306 * doc/invoke.texi (MSP430 Options): Add -minrt.
6308 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6310 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
6311 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6312 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6314 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6316 (adjust_splat): New function.
6317 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6318 (dump_swap_insn_table): Add case for SH_SPLAT.
6320 2014-09-08 Richard Biener <rguenther@suse.de>
6323 * tree-inline.c (copy_loops): The source loop header should
6325 (tree_function_versioning): If loops need fixup after removing
6326 unreachable blocks fix them.
6327 * omp-low.c (simd_clone_adjust): Do not add incr block to
6328 loop under construction.
6330 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
6332 * config/aarch64/aarch64-builtins.c
6333 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6335 2014-09-08 Joseph Myers <joseph@codesourcery.com>
6337 * config/i386/cygming.h (TF_SIZE): Remove.
6338 * config/i386/darwin.h (TF_SIZE): Remove.
6339 * config/i386/dragonfly.h (TF_SIZE): Remove.
6340 * config/i386/freebsd.h (TF_SIZE): Remove.
6341 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6342 * config/i386/openbsdelf.h (TF_SIZE): Remove.
6343 * config/i386/sol2.h (TF_SIZE): Remove.
6344 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6345 * config/ia64/linux.h (TF_SIZE): Remove.
6346 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6347 * doc/tm.texi: Regenerate.
6348 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6350 2014-09-08 Joseph Myers <joseph@codesourcery.com>
6352 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6354 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6356 * doc/tm.texi: Regenerate.
6357 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6359 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6360 * config/cris/cris.h (__make_dp): Remove.
6362 2014-09-08 Richard Biener <rguenther@suse.de>
6365 * cfgloop.c (mark_loop_for_removal): Track former header
6367 * cfgloop.h (struct loop): Add former_header member unconditionally.
6368 * loop-init.c (fix_loop_structure): Enable bogus loop removal
6369 diagnostic unconditionally.
6371 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6374 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6375 constraint for operand0 and remove write only modifier from operand3.
6377 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
6379 PR rtl-optimization/62208
6380 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6381 rather than const0_rtx in eq/ne-xor simplifications.
6383 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
6385 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6386 (arc_output_mi_thunk): Likewise.
6388 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6389 arguments to silence bogus warning.
6391 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
6394 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
6396 2014-09-06 Tom de Vries <tom@codesourcery.com>
6398 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
6399 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
6400 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6402 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
6405 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
6406 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
6408 2014-09-05 Easwaran Raman <eraman@google.com>
6410 PR rtl-optimization/62146
6411 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
6412 hoisted instruction unconditional.
6414 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
6417 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
6418 Do not allow any_mask_operand for operands[2].
6419 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
6421 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6423 * config/arc/arc.c (arc_print_operand): Use insn method of
6424 final_sequence for type-safety.
6425 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
6426 "insn" from rtx to rtx_insn *.
6427 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
6428 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6429 Likewise for locals "branch", "label".
6430 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
6431 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
6432 (same_cmp_following_p): Likewise for locals "i2", "i3".
6433 * config/sh/sh_optimize_sett_clrt.cc
6434 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
6435 param "cbranch_insn".
6436 * function.c (convert_jumps_to_returns): Likewis for local "jump".
6437 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
6438 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
6440 (condjump_p): Likewise.
6441 (condjump_in_parallel_p): Likewise.
6443 (any_uncondjump_p): Likewise.
6444 (any_condjump_p): Likewise.
6445 (condjump_label): Likewise.
6446 (returnjump_p): Strengthen param "insn" from rtx to
6448 (onlyjump_p): Strengthen param "insn" from const_rtx to
6450 (jump_to_label_p): Likewise.
6451 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
6452 (invert_jump): Likewise.
6453 * reorg.c (simplejump_or_return_p): Add checked cast when calling
6455 (get_jump_flags): Strengthen param "insn" from rtx to
6457 (get_branch_condition): Likewise.
6458 (condition_dominates_p): Likewise.
6459 (make_return_insns): Move declaration of local "pat" earlier, to
6460 after we've handled NONJUMP_INSN_P and non-sequences, using its
6461 methods to simplify the code and for type-safety.
6462 * rtl.h (find_constant_src): Strengthen param from const_rtx to
6464 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
6465 (condjump_p): Strengthen param from const_rtx to
6467 (any_condjump_p): Likewise.
6468 (any_uncondjump_p): Likewise.
6470 (condjump_label): Likewise.
6471 (simplejump_p): Likewise.
6472 (returnjump_p): Likewise.
6473 (onlyjump_p): Likewise.
6474 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
6475 (invert_jump): Likewise.
6476 (condjump_in_parallel_p): Strengthen param from const_rtx to
6478 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
6479 to const rtx_insn *.
6480 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
6481 to const rtx_insn *.
6482 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
6484 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6486 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
6487 above the conditional, and convert the check on GET_CODE to a
6488 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
6489 the conditional. Simplify the conditional by using methods of
6492 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6494 * haifa-sched.c (check_clobbered_conditions): Strengthen local
6495 "link" from rtx to rtx_insn_list *, and use its methods for
6496 clarity and type-safety.
6497 (toggle_cancelled_flags): Likewise.
6498 (restore_last_backtrack_point): Likewise.
6499 (queue_to_ready): Use insn method of "link" in one place.
6500 (schedule_block): Strengthen local "link" from rtx to
6501 rtx_insn_list *, and use its methods for clarity and type-safety.
6503 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6505 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
6506 param "insn" from const_rtx to const rtx_insn *.
6507 (sched_get_reverse_condition_uncached): Likewise.
6508 (sched_get_condition_with_rev): Likewise.
6509 (sched_has_condition_p): Likewise.
6510 (sched_insns_conditions_mutex_p): Likewise for both params.
6511 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
6512 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
6513 (setup_insn_reg_uses): Move local "list" to be more tightly
6514 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
6515 its methods for clarity and type-safety.
6516 (sched_analyze_1): Strengthen local "pending" from rtx to
6517 rtx_insn_list *, and local "pending_mem" from rtx to
6518 rtx_expr_list *. Use methods of each for clarity and type-safety.
6519 (sched_analyze_2): Likewise.
6520 (sched_analyze_insn): Likewise.
6522 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
6523 param from const_rtx to const rtx_insn *.
6524 (sched_insns_conditions_mutex_p): Likewise for both params.
6525 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
6528 * system.h (CONST_CAST_RTX_INSN): New macro.
6530 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6532 * recog.c (peep2_attempt): Strengthen return type from rtx to
6534 (peep2_update_life): Likewise for params "last", "prev", removing
6535 a checked cast made redundant by this.
6536 (peephole2_optimize): Likewise for local "last".
6538 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6540 * basic-block.h (set_block_for_insn): Eliminate this macro in
6542 * rtl.h (set_block_for_insn): New inline function, imposing the
6543 requirement that the "insn" param is an rtx_insn *.
6545 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6547 * caller-save.c (setup_save_areas): Strengthen local "insn" from
6549 * final.c (get_call_reg_set_usage): Likewise for first param,
6550 eliminating a checked cast.
6551 * regs.h (get_call_reg_set_usage): Likewise for first param.
6552 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
6553 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
6554 cast, replacing references to "x" with "call_insn" where
6556 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
6557 rtx_insn *, adding a checked cast.
6559 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6561 * output.h (final_scan_insn): Strengthen first param from rtx to
6564 * final.c (final_scan_insn): Likewise, renaming it back from
6565 "uncast_insn" to "insn", eliminating the checked cast.
6567 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
6568 "vec" with an rtx_sequence * "seq", taking a copy of
6569 "final_sequence", and using methods of "seq" for clarity, and for
6570 type-safety in the calls to final_scan_insn.
6571 * config/mips/mips.c (mips_output_conditional_branch): Use methods
6572 of "final_sequence" for clarity, and for type-safety in the call to
6574 * config/sh/sh.c (print_slot): Strengthen param from rtx to
6575 rtx_sequence * and rename from "insn" to "seq".
6577 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6579 * jump.c (delete_related_insns): Introduce a new local "table" by
6580 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
6581 get_labels method of "table" to simplify access to the labels in
6584 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6586 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
6587 f_minmaxs, f_minmaxd types.
6589 2014-09-05 Richard Biener <rguenther@suse.de>
6591 * cfgloop.c (mark_loop_for_removal): Record former header
6592 when ENABLE_CHECKING.
6593 * cfgloop.h (strut loop): Add former_header member when
6595 * loop-init.c (fix_loop_structure): Sanity check loops
6596 marked for removal if they re-appeared.
6598 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6600 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
6601 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
6603 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
6604 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
6605 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
6606 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
6607 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
6608 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
6609 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
6610 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
6611 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
6612 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
6613 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
6614 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
6615 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
6616 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
6617 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
6618 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
6619 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
6620 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
6621 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
6622 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
6623 with int{32,16,8}_t.
6625 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6627 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
6628 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
6629 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
6630 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
6631 Remove temporary __asm__ and reimplement.
6633 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6635 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
6636 handling cmge, cmgt, cmeq, cmtst.
6638 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
6639 cmlt, cmgeu, cmgtu, cmtst): Remove.
6641 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
6642 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
6643 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
6644 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
6646 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6648 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
6650 (aarch64_fold_builtin): Update pattern for cmtst.
6652 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
6655 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
6657 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
6658 Switch operands, separate out more cases, refactor.
6660 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
6662 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
6663 argument; rename old version to...
6664 (aarch64_const_vec_all_same_in_range_p): ...this.
6665 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
6667 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
6669 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6671 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
6672 Remove qualifier_const_pointer, update comment.
6674 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6676 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
6678 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6680 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
6681 varargs with pointer parameter.
6682 (aarch64_simd_expand_builtin): pass pointer into previous.
6684 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6686 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
6689 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
6691 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
6692 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
6693 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
6694 Replace temporary asm with call to builtin.
6695 (vrbit_p8, vrbitq_p8): New functions.
6697 2014-09-05 Richard Biener <rguenther@suse.de>
6699 * cfgloop.c (mark_loop_for_removal): New function.
6700 * cfgloop.h (mark_loop_for_removal): Declare.
6701 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
6702 (merge_blocks): Likewise.
6703 (duplicate_block): Likewise.
6704 * except.c (sjlj_emit_dispatch_table): Likewise.
6705 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
6706 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
6707 (thread_through_loop_header): Likewise.
6709 2014-09-05 Richard Biener <rguenther@suse.de>
6712 * fold-const.c (try_move_mult_to_index): Remove.
6713 (fold_binary_loc): Do not call it.
6714 * tree-data-ref.c (dr_analyze_indices): Strip conversions
6715 from the base object again.
6717 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6719 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
6722 2014-09-05 Bin Cheng <bin.cheng@arm.com>
6725 * config/arm/arm.md (setmem): New pattern.
6726 * config/arm/arm-protos.h (struct tune_params): New fields.
6727 (arm_gen_setmem): New prototype.
6728 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
6729 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
6730 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
6731 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
6732 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
6733 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
6734 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
6735 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
6736 (arm_const_inline_cost): New function.
6737 (arm_block_set_max_insns): New function.
6738 (arm_block_set_non_vect_profit_p): New function.
6739 (arm_block_set_vect_profit_p): New function.
6740 (arm_block_set_unaligned_vect): New function.
6741 (arm_block_set_aligned_vect): New function.
6742 (arm_block_set_unaligned_non_vect): New function.
6743 (arm_block_set_aligned_non_vect): New function.
6744 (arm_block_set_vect, arm_gen_setmem): New functions.
6746 2014-09-05 Bin Cheng <bin.cheng@arm.com>
6748 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
6750 2014-09-05 Bin Cheng <bin.cheng@arm.com>
6752 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
6754 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
6756 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
6758 * valtrack.h: Adjust.
6760 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
6762 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
6764 (emit_jump_insn_before_noloc): Likewise.
6765 (emit_call_insn_before_noloc): Likewise.
6766 (emit_label_before): Likewise.
6767 (emit_label_after): Likewise.
6768 (emit_insn_before_setloc): Likewise.
6769 (emit_jump_insn_before_setloc): Likewise.
6770 (emit_call_insn_before_setloc): Likewise.
6771 (emit_call_insn_before): Likewise.
6774 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6776 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
6777 rtx_insn *, eliminating a checked cast.
6779 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6781 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
6782 const_rtx to const rtx_insn *.
6783 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
6786 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6788 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
6789 fixup_args_size_notes.
6790 * expr.c (fixup_args_size_notes): Strengthen first two params from
6791 rtx to rtx_insn *, eliminating a checked cast.
6792 * rtl.h (fixup_args_size_notes): Strengthen first two params from
6795 2014-09-05 David Malcolm <dmalcolm@redhat.com>
6797 * haifa-sched.c (get_ready_element): Strengthen return type from
6799 * sched-int.h (get_ready_element): Likewise.
6801 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
6804 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
6805 indexed_or_indirect_operand instead of memory_operand.
6806 (floatsi<mode>2_lfiwzx_mem): Ditto.
6808 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
6810 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
6811 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
6812 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
6814 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
6816 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
6818 (get_last_nonnote_insn): Likewise.
6819 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
6820 * resource.c (find_basic_block): Likewise.
6822 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
6825 2014-09-04 David Malcolm <dmalcolm@redhat.com>
6827 * genattr.c (main): Within the prototype of insn_latency written
6828 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
6829 * genautomata.c (output_internal_maximal_insn_latency_func):
6830 Within the implementation of insn_latency written out to
6831 insn-automata.c, strengthen both params from rtx to rtx_insn *,
6832 eliminating a pair of checked casts.
6834 2014-09-04 David Malcolm <dmalcolm@redhat.com>
6836 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
6839 * rtl.h (eh_returnjump_p): Likewise.
6841 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
6843 * Makefile.in (TAGS): Handle constructs in timevar.def.
6845 2014-09-04 Guozhi Wei <carrot@google.com>
6848 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
6849 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
6850 it into two patterns.
6851 (move_lo_quad_internal_be_<mode>): Likewise.
6853 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
6855 * doc/options.texi: Document that Var and Init are required if CPP
6857 * optc-gen.awk: Require Var and Init if CPP is given.
6858 * common.opt (Wpedantic): Use Init.
6860 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6862 * config/rs6000/rs6000.c (special_handling_values): Add
6864 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
6865 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
6866 as swappable with special handling SH_EXTRACT. Remove
6867 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
6869 (adjust_extract): New function.
6870 (handle_special_swappables): Add default to case statement; add
6871 case for SH_EXTRACT that calls adjust_extract.
6872 (dump_swap_insn_table): Handle SH_EXTRACT.
6874 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6876 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
6877 selection of 0th memory doubleword, regardless of endianness.
6879 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6881 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
6883 2014-09-04 Alan Modra <amodra@gmail.com>
6886 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
6889 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
6891 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
6892 * targhooks.c (default_dwarf_frame_reg_mode): New function.
6893 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
6894 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
6895 * doc/tm.texi: Regenerate.
6896 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
6897 selection logic to default_dwarf_frame_reg_mode.
6899 2014-09-03 Marek Polacek <polacek@redhat.com>
6901 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
6904 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
6906 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
6907 the automodified register.
6909 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
6911 * output.h (get_some_local_dynamic_name): Declare.
6912 * final.c (some_local_dynamic_name): New variable.
6913 (get_some_local_dynamic_name): New function.
6914 (final_end_function): Clear some_local_dynamic_name.
6915 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
6916 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6917 (print_operand): Report an error if '%&' is used inappropriately.
6918 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
6919 (get_some_local_dynamic_name_1): Delete.
6920 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
6921 (rs6000_get_some_local_dynamic_name): Delete.
6922 (rs6000_get_some_local_dynamic_name_1): Delete.
6923 (print_operand): Report an error if '%&' is used inappropriately.
6924 * config/s390/s390.c (machine_function): Remove some_ld_name.
6925 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6926 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
6927 * config/sparc/sparc.c: Include rtl-iter.h.
6928 (machine_function): Remove some_ld_name.
6929 (sparc_print_operand): Report an error if '%&' is used inappropriately.
6930 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6932 2014-09-03 Richard Henderson <rth@redhat.com>
6934 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
6935 (aarch64_popwb_pair_reg): Remove.
6936 (aarch64_set_frame_expr): Remove.
6937 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
6938 the restore ops performed by the insns generated.
6939 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
6940 insn. Perform the calls_eh_return addition later; do not attempt to
6941 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
6942 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
6943 special markup at all. Load cfun->machine->frame.hard_fp_offset
6944 into a local variable.
6945 (aarch64_frame_pointer_required): Don't check calls_alloca.
6947 2014-09-03 Richard Biener <rguenther@suse.de>
6949 * opts.c (default_options_optimization): Adjust
6950 max-combine-insns to 2 for -Og.
6952 2014-09-03 Martin Jambor <mjambor@suse.cz>
6955 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
6956 pass-trough jump functions correctly.
6958 2014-09-03 Martin Jambor <mjambor@suse.cz>
6961 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
6962 created replacements in ascending order of offsets.
6963 (known_aggs_to_agg_replacement_list): Likewise.
6965 2014-09-03 Martin Liska <mliska@suse.cz>
6967 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
6968 is set to set uninitialized value for vnresult.
6970 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
6972 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
6973 for TARGET_MUST_PASS_IN_STACK.
6975 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
6977 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
6978 for TARGET_ARG_PARTIAL_BYTES.
6980 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
6982 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
6983 instructions for varargs implementation.
6984 (nds32_expand_epilogue): Emit stack adjustment instructions for
6985 varargs implementation.
6987 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
6989 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
6990 optimization detection.
6992 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
6994 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
6996 (nds32_function_arg_advance): Deal with nameless arguments.
6997 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
6998 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
6999 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7001 2014-09-03 Richard Biener <rguenther@suse.de>
7003 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7004 (struct bb_bitmap_sets): Remove deferred member.
7005 (BB_DEFERRED): Remove.
7006 (defer_or_phi_translate_block): Remove.
7007 (compute_antic_aux): Remove deferring of blocks, assert
7008 proper iteration order.
7009 (compute_antic): Do not set BB_DEFERRED.
7010 (eliminate): Allocate el_avail of proper size initially.
7012 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7014 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7015 according to the value of crtl->args.pretend_args_size.
7017 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7019 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7020 varargs information.
7022 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7024 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7025 implementation for TARGET_SETUP_INCOMING_VARARGS.
7026 (nds32_strict_argument_naming): Refine comment.
7027 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7028 Define for future implementation.
7030 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
7032 * config/i386/adxintrin.h (_subborrow_u32): New.
7033 (_addcarry_u32): Ditto.
7034 (_subborrow_u64): Ditto.
7035 (_addcarry_u64): Ditto.
7036 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7038 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7039 __builtin_ia32_sbb_u64
7041 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7043 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7045 (nds32_function_arg_advance): Likewise.
7046 (nds32_init_cumulative_args): Likewise.
7047 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7048 (NDS32_FIRST_GPR_REGNUM): Define.
7049 (NDS32_LAST_GPR_REGNUM): Define.
7050 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7051 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7052 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7053 (machine_function): Use GRP-specific stuff.
7055 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7057 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7058 (nds32_expand_epilogue): Likewise.
7059 (nds32_expand_prologue_v3push): Likewise.
7060 (nds32_expand_epilogue_v3pop): Likewise.
7062 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7064 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7065 v3push/v3pop for variadic function.
7066 * config/nds32/nds32.md (prologue, epilogue): Likewise.
7068 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7070 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7071 Check rtx for varargs implementation.
7072 (nds32_output_stack_pop): Likewise.
7073 * config/nds32/nds32-protos.h: Have a rtx argument for
7074 nds32_output_stack_push and nds32_output_stack_pop.
7075 * config/nds32/nds32.md: Likewise.
7077 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7079 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7080 to check if FUNC is an interrupt service routine.
7081 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7083 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7085 * config/nds32/nds32.h (machine_function): Add some fields for variadic
7086 arguments implementation.
7088 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7090 * config/nds32/nds32-predicates.c
7091 (nds32_valid_stack_push_pop): Rename to ...
7092 (nds32_valid_stack_push_pop_p): ... this.
7093 * config/nds32/nds32-protos.h: Likewise.
7094 * config/nds32/predicates.md: Likewise.
7096 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7098 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7099 (nds32_emit_stack_v3push): ... this.
7100 (nds32_gen_stack_v3pop): Rename to ...
7101 (nds32_emit_stack_v3pop): ... this and consider CFA restore
7104 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7106 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7107 (nds32_emit_stack_push_multiple): ... this.
7108 (nds32_gen_stack_pop_multiple): Rename to ...
7109 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7112 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7115 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7116 and add a second splitter to handle the remaining cases.
7118 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7120 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7122 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7124 * cfgexpand.c (label_rtx_for_bb): Change type to
7125 hash_map<basic_block, rtx_code_label *> *.
7126 (expand_gimple_basic_block): Adjust.
7127 (pass_expand::execute): Likewise.
7129 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7131 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7132 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7133 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7134 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7135 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7136 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7137 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7140 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7142 * alloc-pool.c: Include coretypes.h.
7143 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7144 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7145 hash_set instead of htab.
7146 * ggc-page.c (in_gc): New variable.
7147 (ggc_free): Do nothing if a collection is taking place.
7148 (ggc_collect): Set in_gc appropriately.
7149 * ggc.h (gt_ggc_mx(const char *)): New function.
7150 (gt_pch_nx(const char *)): Likewise.
7151 (gt_ggc_mx(int)): Likewise.
7152 (gt_pch_nx(int)): Likewise.
7153 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7154 (hash_map::hash_entry::pch_nx): Likewise.
7155 (hash_map::hash_entry::pch_nx_helper): Likewise.
7156 (hash_map::hash_map): Adjust.
7157 (hash_map::create_ggc): New function.
7158 (gt_ggc_mx): Likewise.
7159 (gt_pch_nx): Likewise.
7160 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7161 (default_hashset_traits::pch_nx): Likewise.
7162 (hash_set::hash_entry::ggc_mx): Likewise.
7163 (hash_set::hash_entry::pch_nx): Likewise.
7164 (hash_set::hash_entry::pch_nx_helper): Likewise.
7165 (hash_set::hash_set): Adjust.
7166 (hash_set::create_ggc): New function.
7167 (hash_set::elements): Likewise.
7168 (gt_ggc_mx): Likewise.
7169 (gt_pch_nx): Likewise.
7170 * hash-table.h (hash_table::hash_table): Adjust.
7171 (hash_table::m_ggc): New member.
7172 (hash_table::~hash_table): Adjust.
7173 (hash_table::expand): Likewise.
7174 (hash_table::empty): Likewise.
7175 (gt_ggc_mx): New function.
7176 (hashtab_entry_note_pointers): Likewise.
7177 (gt_pch_nx): Likewise.
7179 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7181 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
7182 built-in definition.
7183 (XVCVUXDDP_SCALE): Likewise.
7184 (XVCVDPSXDS_SCALE): Likewise.
7185 (XVCVDPUXDS_SCALE): Likewise.
7186 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7187 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7188 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7189 VSX_BUILTIN_XVCVDPUXDS_SCALE.
7190 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7192 * config/rs6000/rs6000.c (real.h): New include.
7193 (rs6000_scale_v2df): New function.
7194 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7195 (UNSPEC_VSX_XVCVUXDDP): Likewise.
7196 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7197 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7198 (vsx_xvcvsxddp_scale): New define_expand.
7199 (vsx_xvcvsxddp): New define_insn.
7200 (vsx_xvcvuxddp_scale): New define_expand.
7201 (vsx_xvcvuxddp): New define_insn.
7202 (vsx_xvcvdpsxds_scale): New define_expand.
7203 (vsx_xvcvdpsxds): New define_insn.
7204 (vsx_xvcvdpuxds_scale): New define_expand.
7205 (vsx_xvcvdpuxds): New define_insn.
7206 * doc/extend.texi (vec_ctf): Add new prototypes.
7207 (vec_cts): Likewise.
7208 (vec_ctu): Likewise.
7209 (vec_splat): Likewise.
7210 (vec_div): Likewise.
7211 (vec_mul): Likewise.
7213 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7216 * config/arm/neon.md
7217 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7218 <v_cmp_result>): New pattern.
7219 * config/arm/iterators.md (NEON_VCVT): New int iterator.
7220 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7221 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7222 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7223 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7224 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7226 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7229 * config/arm/iterators.md (FIXUORS): New code iterator.
7230 (VCVT): New int iterator.
7231 (su_optab): New code attribute.
7233 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7235 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7237 * config/aarch64/predicates.md (aarch64_comparison_operation):
7238 New special predicate.
7239 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7240 aarch64_comparison_operation instead of matching an operator.
7241 Update operand numbers.
7242 (csinc3<mode>_insn): Likewise.
7243 (*csinv3<mode>_insn): Likewise.
7244 (*csneg3<mode>_insn): Likewise.
7245 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7246 * config/aarch64/aarch64.c (aarch64_get_condition_code):
7247 Return -1 instead of aborting on invalid condition codes.
7248 (aarch64_print_operand): Update aarch64_get_condition_code callsites
7249 to assert that the returned condition code is valid.
7250 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7252 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
7254 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7255 tree.def, and gimple.def
7257 2014-09-02 Jakub Jelinek <jakub@redhat.com>
7258 Balaji V. Iyer <balaji.v.iyer@intel.com>
7259 Igor Zamyatin <igor.zamyatin@intel.com>
7261 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7262 (__cilkrts_cilk_for_64): Likewise.
7263 * cilk-common.c (declare_cilk_for_builtin): New function.
7264 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7265 __cilkrts_cilk_for_64 bultins.
7266 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7268 (cilk_for_32_fndecl): New define.
7269 (cilk_for_64_fndecl): Likewise.
7270 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7271 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7272 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7273 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7274 GF_OMP_FOR_COMBINED_INTO.
7275 * gimplify.c (gimplify_scan_omp_clauses): Added
7276 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7277 (gimplify_adjust_omp_clauses): Ditto.
7278 (gimplify_omp_for): Added CILK_FOR case.
7279 (gimplify_expr): Ditto.
7280 * omp-low.c: Include cilk.h.
7281 (extract_omp_for_data): Set appropriate kind for
7282 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7283 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7284 (create_omp_child_function_name): Added second argument to handle
7286 (cilk_for_check_loop_diff_type): New function.
7287 (expand_cilk_for_call): Likewise.
7288 (expand_cilk_for): Likewise.
7289 (create_omp_child_function): Set cilk_for_count; handle the cases when
7290 it is true; call create_omp_child_function_name with second argument.
7291 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7292 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7293 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7294 * tree-nested.c (convert_nonlocal_omp_clauses): Added
7295 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7296 (convert_local_omp_clauses): Ditto.
7297 * tree-pretty-print.c (dump_omp_clause): Added
7298 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7299 (dump_generic_node): Added CILK_FOR case.
7300 * tree.c (omp_clause_num_ops): New element
7301 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7302 (omp_clause_code_name): New element _Cilk_for_count_.
7303 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7304 * tree.def: Add tree code for CILK_FOR.
7306 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7308 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7309 (ppc403-compare): Add "exts with dot" case.
7310 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7311 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7312 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7313 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7314 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7315 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7316 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7317 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7318 cell-cmp-microcoded): Similarly.
7319 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7320 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7321 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7322 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7323 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7324 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7325 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7326 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7327 (power6-compare): Add "exts with dot" case.
7328 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7329 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7330 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7332 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7333 if avoiding Cell microcode.
7334 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7335 (is_cracked_insn): Ditto.
7336 (insn_must_be_first_in_group): Ditto.
7337 * config/rs6000/rs6000.md (dot): Adjust comment.
7338 (cell_micro): Handle exts+dot.
7339 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7340 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7341 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7342 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7343 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7344 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7345 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7347 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7349 * config/rs6000/rs6000.md (QHSI): Delete.
7350 (EXTQI, EXTHI, EXTSI): New mode iterators.
7351 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7352 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7353 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7354 9 anonymous instructions, and 8 splitters): Delete.
7355 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7356 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7357 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7358 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7359 *zero_extendsi<mode>2_dot2): New.
7361 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7363 * config/rs6000/rs6000.md (any_extend): New code iterator.
7364 (u, su): New code attributes.
7365 (dmode, DMODE): New mode attributes.
7366 (<su>mul<mode>3_highpart): New.
7367 (*<su>mul<mode>3_highpart): New.
7368 (<su>mulsi3_highpart_le): New.
7369 (<su>muldi3_highpart_le): New.
7370 (<su>mulsi3_highpart_64): New.
7371 (<u>mul<mode><dmode>3): New.
7372 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7374 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7377 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7379 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7380 *mulsi3_internal2, and two splitters): Delete.
7381 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7383 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7385 2014-09-02 Richard Biener <rguenther@suse.de>
7387 PR tree-optimization/62695
7388 * tree-ssa-structalias.c (find_func_clobbers): Add missing
7391 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
7394 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
7396 2014-09-01 Andi Kleen <ak@linux.intel.com>
7398 * file-find.c (add_prefix_begin): Add.
7399 (do_add_prefix): Rename from add_prefix with first argument.
7400 (add_prefix): Add new wrapper.
7401 * file-find.h (add_prefix_begin): Add.
7402 * gcc-ar.c (main): Support -B option.
7404 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
7406 * genemit.c: Include dumpfile.h.
7407 (gen_split): Print name of splitter function to dump file.
7409 2014-09-01 Richard Biener <rguenther@suse.de>
7411 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
7412 Use stack auto_vecs for constraint expressions.
7413 (find_func_aliases_for_call): Likewise.
7414 (find_func_aliases): Likewise.
7415 (find_func_clobbers): Likewise.
7417 2014-09-01 Richard Biener <rguenther@suse.de>
7419 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
7420 operands vector in most cases. Remove redundant code.
7422 2014-09-01 Olivier Hainque <hainque@adacore.com>
7424 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
7425 $WIND_BASE instead of designating a harcoded arbitrary home dir.
7426 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
7428 2014-09-01 Richard Biener <rguenther@suse.de>
7430 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
7431 copy_reference_ops_from_call, vn_nary_op_compute_hash,
7432 vn_reference_compute_hash, vn_reference_insert): Remove.
7433 (vn_reference_lookup_call): New function.
7434 * tree-ssa-sccvn.c (vn_reference_compute_hash,
7435 copy_reference_ops_from_ref, copy_reference_ops_from_call,
7436 vn_reference_insert, vn_nary_op_compute_hash): Make static.
7437 (create_reference_ops_from_call): Remove.
7438 (vn_reference_lookup_3): Properly update shared_lookup_references.
7439 (vn_reference_lookup_pieces): Assert that we updated
7440 shared_lookup_references properly.
7441 (vn_reference_lookup): Likewise.
7442 (vn_reference_lookup_call): New function.
7443 (visit_reference_op_call): Use it. Avoid re-building the
7445 (visit_reference_op_load): Remove redundant lookup.
7446 (visit_reference_op_store): Perform special tail-merging work
7447 only when possibly doing tail-merging.
7448 (visit_use): Likewise.
7449 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
7451 2014-09-01 Jakub Jelinek <jakub@redhat.com>
7454 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
7455 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
7456 (find_inc): Revert 2014-08-13 change.
7458 2014-09-01 Marek Polacek <polacek@redhat.com>
7461 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
7462 Change the type of V to unsigned HOST_WIDE_INT.
7464 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
7466 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
7467 the size of byte markers.
7468 (do_shift_rotate): Fix confusion between host, target and marker byte
7470 (verify_symbolic_number_p): Likewise.
7471 (find_bswap_or_nop_1): Likewise.
7472 (find_bswap_or_nop): Likewise.
7474 2014-09-01 Olivier Hainque <hainque@adacore.com>
7476 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
7477 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
7479 2014-09-01 Jakub Jelinek <jakub@redhat.com>
7481 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
7482 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
7483 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
7485 2014-09-01 Yury Gribov <y.gribov@samsung.com>
7489 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
7490 (build_check_stmt): Likewise.
7491 (instrument_strlen_call): Likewise.
7492 (asan_expand_check_ifn): Likewise and fix types.
7493 (maybe_cast_to_ptrmode): New function.
7495 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7497 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
7499 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
7501 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
7503 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
7505 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
7506 prefix to function labels when generating fast indirect calls.
7508 2014-08-30 David Malcolm <dmalcolm@redhat.com>
7512 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
7513 param back from rtx_insn * to rtx. Rename param from "label" to
7514 "label_or_return", reintroducing "label" as an rtx_insn * after
7515 we've ensured it's not a RETURN.
7516 (first_active_target_insn): Likewise for return type and param;
7517 add a checked cast to rtx_insn * once we've ensured "insn" is not
7519 (steal_delay_list_from_target): Convert param "pnew_thread" back
7520 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
7522 (own_thread_p): Convert param "thread" back from an rtx_insn * to
7523 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
7524 cast once we've established we're not dealing with a RETURN,
7525 renaming subsequent uses of "thread" to "thread_insn".
7526 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
7528 (follow_jumps): Convert return type and param "label" from
7529 rtx_insn * back to rtx. Move initialization of "value" to after
7530 the handling for ANY_RETURN_P, adding a checked cast there to
7531 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
7532 rename to "this_label_or_return", reintroducing "this_label" as
7533 an rtx_insn * once we've handled the case where it could be an
7535 (fill_slots_from_thread): Rename param "thread" to
7536 "thread_or_return", converting from an rtx_insn * back to an rtx.
7537 Reintroduce name "thread" as an rtx_insn * local with a checked
7538 cast once we've handled the case of it being an ANY_RETURN_P.
7539 Convert local "new_thread" from an rtx_insn * back to an rtx.
7540 Add a checked cast when assigning to "trial" from "new_thread".
7541 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
7542 checked cast to rtx_insn * from "new_thread" when invoking
7544 (fill_eager_delay_slots): Convert locals "target_label",
7545 "insn_at_target" from rtx_insn * back to rtx.
7546 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
7547 (relax_delay_slots): Convert locals "trial", "target_label" from
7548 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
7549 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
7550 invoking update_block.
7551 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
7552 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
7554 * resource.h (mark_target_live_regs): Undo erroneous conversion
7555 of second param of r214693, converting it back from rtx_insn * to
7556 rtx, since it could be a RETURN.
7558 * resource.c (find_dead_or_set_registers): Similarly, convert
7559 param "jump_target" back from an rtx_insn ** to an rtx *, as we
7560 could be writing back a RETURN. Rename local rtx_insn * "next" to
7561 "next_insn", and introduce "lab_or_return" as a local rtx,
7562 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
7563 (mark_target_live_regs): Undo erroneous conversion
7564 of second param of r214693, converting it back from rtx_insn * to
7565 rtx, since it could be a RETURN. Rename it from "target" to
7566 "target_maybe_return", reintroducing the name "target" as a local
7567 rtx_insn * with a checked cast, after we've handled the case of
7570 2014-08-29 DJ Delorie <dj@redhat.com>
7572 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
7573 pointer size up to a power of two.
7574 * defaults.h (DWARF2_ADDR_SIZE): Round up.
7575 (POINTER_SIZE_UNITS): New, rounded up value.
7576 * dwarf2asm.c (size_of_encoded_value): Use it.
7577 (dw2_output_indirect_constant_1): Likewise.
7578 * expmed.c (init_expmed_one_conv): We now know the sizes of
7580 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
7581 * optabs.c (expand_float): Use precision, not size.
7582 (expand_fix): Likewise.
7583 * simplify-rtx (simplify_unary_operation_1): Likewise.
7584 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7585 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
7586 (default_assemble_integer) Likewise.
7587 (dump_tm_clone_pairs): Likewise.
7588 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
7589 * var-tracking.c (adjust_mems): Allow partial-int modes also.
7590 (prepare_call_arguments): Likewise.
7591 * stor-layout.c (finalize_type_size): Preserve precision.
7592 (layout_type): Use precision, not size.
7594 * expr.c (convert_move): If the target has an explicit converter,
7597 2014-08-29 David Malcolm <dmalcolm@redhat.com>
7599 * gdbinit.in: Skip various inline functions in rtl.h when
7602 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
7605 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
7607 2014-08-29 Richard Biener <rguenther@suse.de>
7609 PR tree-optimization/62291
7610 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
7611 exactly the vector size needed and use quick_push.
7612 (phi_translate_1): Adjust comment.
7613 (valid_in_sets): Remove block argument and remove pointless
7615 (dependent_clean): Adjust for removal of block argument.
7617 (compute_antic_aux): Likewise.
7618 (compute_partial_antic_aux): Likewise.
7620 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
7621 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7622 Anna Tikhonova <anna.tikhonova@intel.com>
7623 Ilya Tocar <ilya.tocar@intel.com>
7624 Andrey Turetskiy <andrey.turetskiy@intel.com>
7625 Ilya Verbin <ilya.verbin@intel.com>
7626 Kirill Yukhin <kirill.yukhin@intel.com>
7627 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7629 * config/i386/sse.md
7630 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
7631 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
7632 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
7633 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
7635 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
7636 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7637 Anna Tikhonova <anna.tikhonova@intel.com>
7638 Ilya Tocar <ilya.tocar@intel.com>
7639 Andrey Turetskiy <andrey.turetskiy@intel.com>
7640 Ilya Verbin <ilya.verbin@intel.com>
7641 Kirill Yukhin <kirill.yukhin@intel.com>
7642 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7644 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
7645 * config/i386/sse.md
7646 (define_mode_iterator VI4_128_8_256): New.
7647 (define_mode_iterator VI2_128_4_256): Ditto.
7648 (define_mode_iterator PMOV_DST_MODE): Rename into
7649 (define_mode_iterator PMOV_DST_MODE_1): this.
7650 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
7651 Use PMOV_DST_MODE_1 mode iterator.
7652 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7654 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7656 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
7657 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
7658 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
7659 (define_mode_iterator PMOV_DST_MODE_2): New.
7660 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
7661 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
7662 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
7664 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
7665 (define_mode_attr pmov_dst_3): Ditto.
7666 (define_mode_attr pmov_dst_zeroed_3): Ditto.
7667 (define_mode_attr pmov_suff_3): Ditto.
7668 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
7669 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
7670 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
7671 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
7672 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
7673 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
7674 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
7675 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
7676 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
7677 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
7678 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
7679 (define_mode_attr pmov_dst_4): Ditto.
7680 (define_mode_attr pmov_dst_zeroed_4): Ditto.
7681 (define_mode_attr pmov_suff_4): Ditto.
7682 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
7683 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
7684 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
7685 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
7686 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
7687 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
7688 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
7689 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
7690 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
7691 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
7692 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
7694 2014-08-29 Richard Biener <rguenther@suse.de>
7696 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
7697 NON_LVALUE_EXPR in gimple.
7699 2014-08-29 Richard Biener <rguenther@suse.de>
7702 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
7703 from previous refactoring.
7704 (gimple_fold_builtin_strncpy): Likewise.
7706 2014-08-29 David Malcolm <dmalcolm@redhat.com>
7709 * function.c (assign_parm_setup_reg): Remove erroneous checked
7710 cast to rtx_insn * on result of gen_extend_insn in favor of
7711 introducing a new local rtx "pat".
7713 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7715 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
7717 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
7719 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7721 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
7722 (next_insn): Likewise.
7723 * emit-rtl.c (next_insn): Likewise.
7724 (previous_insn): Likewise.
7725 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
7726 "insn" and "next" from rtx to rtx_insn *.
7727 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
7728 "insn", "insn1", "vliw_start", "prologue_end_note",
7729 "last_insn_in_packet".
7731 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7733 * shrink-wrap.h (active_insn_between): Strengthen both params from
7735 * function.c (active_insn_between): Likewise.
7737 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7739 * genattr.c (main): When writing out insn-attr.h, strengthen param
7740 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
7741 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
7742 writing out the definition of dfa_clear_single_insn_cache to the
7743 generated insn-automata.c
7745 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7747 * resource.h (clear_hashed_info_for_insn): Strengthen param from
7749 (incr_ticks_for_insn): Likewise.
7750 (init_resource_info): Likewise.
7752 * resource.c (init_resource_info): Likewise.
7753 (clear_hashed_info_for_insn): Likewise.
7754 (incr_ticks_for_insn): Likewise.
7756 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
7758 (steal_delay_list_from_target): Use methods of "seq".
7759 (try_merge_delay_insns): Use methods of "merged_insns".
7760 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
7761 (reorg_redirect_jump): Likewise for param "jump".
7763 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7765 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
7767 * config/s390/s390.c (s390_split_branches): Eliminate top-level
7768 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
7770 (s390_mainpool_finish): In three places, split out a local rtx
7771 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
7772 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
7773 and split another local rtx "insn" out into rtx "pat" and
7775 * config/sh/sh.c (output_branchy_insn): Rather than working
7776 directly on operands[9], introduce local rtx_code_label *
7777 variables named "lab" in two places, working on them, and then
7778 assigning them to operands[9], so that the intervening operations
7779 are known by the type system to be on insns.
7781 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7783 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
7786 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
7787 in invocation of INSN_HAS_LOCATION.
7789 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7791 * config/rs6000/altivec.h (vec_xl): New #define.
7792 (vec_xst): Likewise.
7793 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
7794 (XXSPLTD_V2DI): Likewise.
7795 (DIV_V2DI): Likewise.
7796 (UDIV_V2DI): Likewise.
7797 (MUL_V2DI): Likewise.
7798 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7799 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
7800 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
7801 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
7802 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
7803 (UNSPEC_VSX_DIVSD): Likewise.
7804 (UNSPEC_VSX_DIVUD): Likewise.
7805 (UNSPEC_VSX_MULSD): Likewise.
7806 (vsx_mul_v2di): New insn-and-split.
7807 (vsx_div_v2di): Likewise.
7808 (vsx_udiv_v2di): Likewise.
7809 (vsx_xxspltd_<mode>): New insn.
7811 2014-08-28 David Malcolm <dmalcolm@redhat.com>
7813 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
7815 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
7816 (NEXT_INSN): Likewise.
7817 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
7818 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
7820 (no_labels_between_p): Likewise for both params.
7822 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
7823 cast when using NEXT_INSN on operands[2].
7824 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
7825 "insn" from rtx to rtx_insn *, adding a checked cast.
7826 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
7828 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
7830 (arc_text_label): Likewise for param "insn".
7831 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
7833 (arc_ccfsm_record_condition): Likewise for param "jump".
7834 (arc_text_label): Likewise for local "label".
7835 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
7836 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
7837 a method for typesafety. Add a checked cast.
7838 * config/arc/constraints.md (Clb): Add a checked cast when getting
7839 the CODE_LABEL from a LABEL_REF.
7840 * config/arm/arm.c (require_pic_register): Strengthen locals
7841 "seq", "insn" from rtx to rtx_insn *.
7842 (create_fix_barrier): Likewise for locals "selected", "next".
7843 (thumb1_reorg): Likewise for locals "prev", "insn".
7844 (arm_expand_prologue): Likewise for local "last".
7845 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
7847 (thumb2_output_casesi): Likewise for operands[2].
7848 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
7849 strengthen local "insn" from rtx to rtx_insn *.
7850 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
7851 type and param "insn".
7852 (find_prev_insn_start): Likewise.
7853 (hwloop_optimize): Likewise for locals "insn", "last_insn",
7855 (gen_one_bundle): Likewise for loal "t".
7856 (find_load): Likewise for param "insn".
7857 (workaround_speculation): Likewise for locals "insn", "next",
7858 "target", "next_tgt".
7859 * config/c6x/c6x.c (assign_reservations): Likewise for both params
7860 and for locals "insn", "within", "last".
7861 (count_unit_reqs): Likewise for params "head", "tail" and local
7863 (try_rename_operands): Likewise for params "head", "tail".
7864 (reshuffle_units): Likewise for locals "head", "tail", "insn".
7865 (struct c6x_sched_context): Likewise for fields
7866 "last_scheduled_insn", "last_scheduled_iter0".
7867 (init_sched_state): Replace NULL_RTX with NULL.
7868 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
7870 (undo_split_delayed_nonbranch): Likewise for param and for local
7872 (conditionalize_after_sched): Likewise for local "insn".
7873 (bb_earliest_end_cycle): Likewise.
7874 (filter_insns_above): Likewise for locals "insn", "next".
7875 (hwloop_optimize): Remove redundant checked cast.
7876 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
7877 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
7879 (cris_simple_epilogue): Likewise.
7880 (cris_expand_prologue): Likewise.
7881 (cris_expand_epilogue): Likewise.
7882 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
7883 local "insn" from rtx to rtx_insn *.
7884 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
7885 (struct frv_packet_group): Likewise for the elements within array
7886 fields "insns", "sorted", and for field "nop".
7887 (frv_packet): Likewise for the elements within array field
7889 (frv_add_insn_to_packet): Likewise for param "insn".
7890 (frv_insert_nop_in_packet): Likewise for param "insn" and local
7892 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
7893 (frv_sort_insn_group_1): Likewise for local "insn".
7894 (frv_optimize_membar_local): Likewise.
7895 (frv_align_label): Likewise for locals "x", "last", "barrier",
7897 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
7899 (ia64_sched_init): Likewise for local "insn".
7900 (scheduled_good_insn): Likewise for param "last".
7901 (struct _ia64_sched_context): Likewise for field
7902 "last_scheduled_insn".
7903 (ia64_init_sched_context): Replace NULL_RTX with NULL.
7904 (struct bundle_state): Likewise for field "insn".
7905 (issue_nops_and_insn): Likewise for param "insn".
7906 (get_next_important_insn): Likewise for return type and both
7908 (ia64_add_bundle_selector_before): Likewise for param "insn".
7909 (bundling): Likewise for params "prev_head_insn", "tail" and
7910 locals "insn", "next_insn", "b". Eliminate top-level local rtx
7911 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
7912 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
7913 Strengthen final param from rtx to rtx_insn *.
7914 (iq2000_move_1word): Likewise for second param.
7915 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
7916 param "cur_insn" and local "next_insn".
7917 (iq2000_move_1word): Likewise for param "insn".
7918 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
7919 casts when using NEXT_INSN on operands[1].
7920 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
7921 "insn" from rtx to rtx_insn *.
7922 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
7923 "x", introducing local rtx_insn * "insn" for when working with the
7924 CODE_LABEL of the LABEL_REF.
7925 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
7927 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
7929 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
7931 (conditionalize_block): Likewise for return type and param.
7932 (mcore_is_dead): Likewise for param "first" and local "insn".
7933 (emit_new_cond_insn): Likewise for return type.
7934 (conditionalize_block): Likewise for return type, param, and
7935 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
7937 (conditionalize_optimization): Likewise for local "insn".
7938 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
7940 * config/microblaze/microblaze.md: Add checked casts when using
7942 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
7943 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
7944 and rtx_insn * "insn".
7945 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
7946 checked cast when using NEXT_INSN on operands[2].
7947 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
7948 local "insn" from rtx to rtx_insn *.
7949 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
7951 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
7952 Add a checked cast when using NEXT_INSN on operands[1].
7953 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
7955 (pa_output_cbranch): Likewise for final param.
7956 (pa_output_lbranch): Likewise for second param.
7957 (pa_output_bb): Likewise for third param.
7958 (pa_output_bvb): Likewise.
7959 (pa_output_dbra): Likewise for second param.
7960 (pa_output_movb): Likewise.
7961 (pa_output_parallel_movb): Likewise.
7962 (pa_output_parallel_addb): Likewise.
7963 (pa_output_millicode_call): Likewise for first param.
7964 (pa_output_mul_insn): Likewise for second param.
7965 (pa_output_div_insn): Likewise for third param.
7966 (pa_output_mod_insn): Likewise for second param.
7967 (pa_jump_in_call_delay): Likewise for param.
7968 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
7969 (pa_output_div_insn): Likewise.
7970 (pa_output_mod_insn): Likewise.
7971 (pa_output_cbranch): Likewise.
7972 (pa_output_lbranch): Likewise.
7973 (pa_output_bb): Likewise.
7974 (pa_output_bvb): Likewise.
7975 (pa_output_dbra): Likewise.
7976 (pa_output_movb): Likewise.
7977 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
7978 to simplify and for typesafety.
7979 (pa_output_call): Use method of rtx_sequence *.
7980 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
7981 (pa_jump_in_call_delay): Likewise.
7982 (pa_output_parallel_movb): Likewise.
7983 (pa_output_parallel_addb): Likewise.
7984 (pa_following_call): Likewise.
7985 (pa_combine_instructions): Likewise for locals "anchor",
7987 (pa_can_combine_p): Likewise for params "anchor", "floater" and
7988 locals "start", "end".
7989 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
7990 param "insn" and local "local_insn".
7991 (picochip_final_prescan_insn): Likewise for local "local_insn".
7992 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
7994 (uses_TOC): Likewise.
7995 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
7996 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
7997 splitting out to more tightly-scoped locals, 3 as rtx and one as
7999 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8001 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8003 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8005 (fixup_addr_diff_vecs): Likewise.
8006 (reg_unused_after): Likewise for param 2.
8007 (sh_can_redirect_branch): Likewise for both params.
8008 (check_use_sfunc_addr): Likewise for param 1.
8009 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8010 (find_barrier): Likewise for local "last_got".
8011 (gen_block_redirect): Likewise for return type, param "jump" and
8012 locals "prev", "scan", "next", "insn".
8013 (struct far_branch): Likewise for fields "near_label",
8014 "insert_place", "far_label".
8015 (gen_far_branch): Likewise for local "jump".
8016 (fixup_addr_diff_vecs): Likewise for param "first" and locals
8018 (barrier_align): Likewise for param and for locals "prev", "x".
8019 Introduce local rtx_sequence * "prev_seq" and use insn method for
8020 typesafety and clarity.
8021 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8022 (get_dest_uid): Likewise for local "dest".
8023 (split_branches): Likewise for locals "next", "beyond", "label",
8024 "block", "far_label". Add checked casts when assigning to
8025 bp->far_label and "far_label".
8026 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8027 (sequence_insn_p): Likewise.
8028 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
8029 more loop-scoped rtx "insn" when walking LABEL_REFS.
8030 (sh_can_redirect_branch): Strengthen both params from rtx to
8032 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
8033 new local rtx_sequence * "seq" via a dyn_cast, and use a method
8034 for clarity and typesafety.
8035 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8036 "insn" from rtx to rtx_insn *.
8037 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8038 when using NEXT_INSN on the CODE_LABEL in operands[2].
8039 (define_insn "casesi_worker_2"): Likewise.
8040 (define_insn "casesi_shift_media"): Likewise.
8041 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8043 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8044 Strengthen field "insn" from rtx to rtx_insn *.
8045 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8046 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8047 param "start_insn" and local "start_insn".
8048 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8050 (find_set_of_reg_bb): Likewise for param "insn".
8051 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8052 (trace_reg_uses): Likewise for param "start_insn".
8053 (sh_treg_combine::cbranch_trace): Likewise for field
8055 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8057 (sh_treg_combine::record_set_of_reg): Likewise for param
8058 "start_insn" and local "i".
8059 (sh_treg_combine::can_remove_cstore): Likewise for local
8061 (sh_treg_combine::try_optimize_cbranch): Likewise for param
8063 (sh_treg_combine::execute): Likewise for local "i".
8064 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8066 (sparc_check_64): Likewise for second param.
8067 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8068 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
8069 dyn_cast, using its insn method for typesafety and clarity.
8070 (empty_delay_slot): Strengthen param "insn" from rtx to
8072 (set_extends): Likewise.
8073 (sparc_check_64): Likewise.
8074 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8075 for locals "seq", "last_insn".
8076 (combine_bnp): Likewise for param "insn".
8077 (xstormy16_reorg): Likewise for local "insn".
8078 * config/v850/v850.c (substitute_ep_register): Likewise for params
8079 "first_insn", "last_insn" and local "insn".
8080 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8081 elements of "regs" array, and local "insn".
8082 * except.c (emit_note_eh_region_end): Likewise for param "insn".
8083 * final.c (final_sequence): Strengthen this global from rtx to
8085 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8087 (final_scan_insn): Update assignment to "final_sequence" to be
8088 from "seq", the cast version of "body", for type-safety.
8089 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8090 "insns" from rtx to rtx_insn *.
8091 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8092 * genattr.c (main): When writing out generated insn-attr.h,
8093 strengthen params 1 and 3 of eligible_for_delay,
8094 eligible_for_annul_true, eligible_for_annul_false from rtx to
8096 * genattrtab.c (write_eligible_delay): Likewise when writing out
8097 generated insn-attrtab.c; also local "insn" the generated
8099 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8101 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8102 "start_label" from rtx to rtx_insn *.
8103 * ira.c (decrease_live_ranges_number): Likewise for local "p".
8104 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8105 "insns" and local "insn".
8106 (validate_equiv_mem): Likewise for param "start" and local "insn".
8107 (memref_used_between_p): Likewise for params "start", "end" and
8109 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8111 * loop-doloop.c (doloop_optimize): Within region guarded by
8112 INSN_P (doloop_pat), introduce a new local rtx_insn *
8113 "doloop_insn" via a checked cast, and use it for typesafety,
8114 eventually writing the value back into doloop_pat.
8115 * output.h (final_sequence): Strengthen this global from rtx to
8117 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8118 reintroducing "insn" as an rtx_insn * via a checked cast.
8119 Strengthen param "attempt" and local "new_insn"from rtx to
8121 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8123 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8124 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8125 "p" in favor of more tightly-scoped replacements, sometimes rtx
8126 and sometimes rtx_insn *, as appropriate.
8127 (delete_output_reload): Eliminate top-level rtx "i1", splitting
8128 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8129 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
8130 local "trial" from rtx to rtx_insn *.
8131 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8132 rtx to rtx_insn *. Strenghten local "pat" from rtx to
8133 rtx_sequence * and use methods for clarity and typesafety.
8134 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8135 rtx to rtx_insn *. Strenghten local "li" from rtx to
8136 rtx_insn_list * and use its methods for clarity and typesafety.
8137 (steal_delay_list_from_target): Strengthen param "insn" from rtx
8139 (steal_delay_list_from_fallthrough): Likewise.
8140 (try_merge_delay_insns): Likewise for param "thread" and locals
8141 "trial", "next_trial", "delay_insn".
8142 (redundant_insn): Likewise for param "target" and local "trial".
8143 (own_thread_p): Likewise for param "thread" and locals
8144 "active_insn", "insn".
8145 (get_label_before): Likewise for param "insn".
8146 (fill_simple_delay_slots): Likewise for local "new_label"; use
8147 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8148 (label_before_next_insn): Strengthen return type and local "insn"
8149 from rtx to rtx_insn *.
8150 (relax_delay_slots): Likewise for locals "other", "tmp".
8151 (make_return_insns): Likewise for param "first" and locals "insn",
8152 "jump_insn", "prev". Move declaration of "pat" to its assignment
8153 and strengthen from rtx to rtx_sequence *. Use its methods for
8154 clarity and typesafety.
8155 * rtlanal.c (no_labels_between_p): Strengthen params from
8156 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
8158 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8159 from const_rtx to const rtx_insn *.
8160 (reg_set_between_p): Rename param "from_insn" to
8161 "uncast_from_insn", and reintroduce "from_insn" as a
8162 const rtx_insn * via a checked cast.
8163 (modified_between_p): Likewise for param "start" as "uncast_start".
8164 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8165 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8166 "tmp", head" from rtx to rtx_insn *.
8167 (recompute_rev_top_order): Likewise for local "insn".
8168 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8169 * store-motion.c (build_store_vectors): Likewise for local "insn".
8170 Strengthen local "st" from rtx to rtx_insn_list * and use methods
8171 for clarity and typesafety.
8172 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8174 (computation_cost): Likewise for local "seq".
8175 (get_address_cost): Likewise.
8177 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8179 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8181 (label_is_jump_target_p): Likewise for second param.
8183 * rtlanal.c (tablejump_p): Likewise for param "insn".
8184 (label_is_jump_target_p): Likewise for param "jump_insn".
8186 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8188 * rtl.h (find_first_parameter_load): Strengthen return type and
8189 both params from rtx to rtx_insn *.
8190 * rtlanal.c (find_first_parameter_load): Strengthen return type,
8191 both params and locals "before", "first_set" from rtx to
8192 rtx_insn *. Remove now-redundant cast.
8193 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8195 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8197 * rtl.h (find_last_value): Delete.
8198 * rtlanal.c (find_last_value): Delete.
8200 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8202 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8203 from rtx to rtx_insn *.
8204 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8205 rtx "note" with new local rtx_insn * "new_head" when calculating
8206 head insn of new basic block.
8207 * combine.c (combine_split_insns): Strengthen return type and local
8208 "ret" from rtx to rtx_insn *.
8209 (likely_spilled_retval_p): Likewise for locals "use" and "p".
8210 (try_combine): Eliminate local "m_split", splitting into new
8211 locals "m_split_insn" and "m_split_pat".
8212 (find_split_point): Strengthen local "seq" from rtx into
8214 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8215 locals "label", "branch".
8216 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8218 (define_expand "umulsi3_highpart"): Likewise for local "insn".
8219 * dse.c (note_add_store_info): Likewise for fields "first",
8221 (note_add_store): Likewise for local "insn".
8222 (emit_inc_dec_insn_before): Likewise for locals "insn",
8224 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8225 (replace_read): Likewise for locals "insns", "this_insn".
8226 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8227 (notice_eh_throw): Likewise for param "insn".
8228 (before_next_cfi_note): Likewise for return type, param, and local
8230 (connect_traces): Likewise for local "note".
8231 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8232 (verify_rtl_sharing): Likewise.
8233 (unshare_all_rtl_in_chain): Likewise for param "insn".
8234 (get_first_nonnote_insn): Likewise for local "insn".
8235 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
8236 "seq" and use its methods to clarify things.
8237 (next_insn): Strengthen return type from rtx to rtx_insn *.
8238 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8239 local rtx_insn * using a checked cast, dropping a checked cast
8240 made redundant by this change. Use a cast to and method of
8241 rtx_sequence to clarify the code.
8242 (previous_insn): Rename param "insn" to "uncast_insn" and
8243 reintroduce "insn" as a local rtx_insn * using a checked cast,
8244 dropping a checked cast made redundant by this change. Use a cast
8245 to and method of rtx_sequence to clarify the code.
8246 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8247 reintroduce "insn" as a local rtx_insn * using a checked cast,
8248 dropping a checked cast made redundant by this change.
8249 (next_nonnote_insn_bb): Likewise.
8250 (prev_nonnote_insn): Likewise.
8251 (prev_nonnote_insn_bb): Likewise.
8252 (next_nondebug_insn): Likewise.
8253 (prev_nondebug_insn): Likewise.
8254 (next_nonnote_nondebug_insn): Likewise.
8255 (prev_nonnote_nondebug_insn): Likewise.
8256 (next_real_insn): Likewise.
8257 (prev_real_insn): Likewise.
8258 (next_active_insn): Likewise.
8259 (prev_active_insn): Likewise.
8260 (next_cc0_user): Likewise. Use rtx_sequence and a method for
8262 (prev_cc0_setter): Likewise.
8263 (try_split): Rename param "trial" to "uncast_trial" and
8264 reintroduce "insn" as a local rtx_insn * using a checked cast,
8265 dropping checked casts made redundant by this change.
8266 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8268 (remove_insn): Rename param "insn" to "uncast_insn" and
8269 reintroduce "insn" as a local rtx_insn * using a checked cast.
8270 (emit_pattern_after_setloc): Likewise for param "after", as
8272 (emit_pattern_after): Likewise. Strengthen local "prev" from
8274 (emit_pattern_before_setloc): Rename param "before" to
8275 "uncast_before" and reintroduce "before" as a local rtx_insn *
8276 using a checked cast. Strengthen locals "first", "last" from
8278 (emit_pattern_before): Likewise rename/cast param "before" to
8279 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8280 * except.c (copy_reg_eh_region_note_forward): Strengthen param
8281 "first" and local "insn" from rtx to rtx_insn *.
8282 (copy_reg_eh_region_note_backward): Likewise for param "last"
8284 * expr.c (fixup_args_size_notes): Rename param "last" to
8285 "uncast_last" and reintroduce "last" as a local rtx_insn *
8286 using a checked cast. Strengthen local "insn" from rtx to
8288 * function.c (set_insn_locations): Strengthen param "insn" from
8290 (record_insns): Likewise for param "insns" and local "tmp".
8291 (active_insn_between): Rename param "tail" to
8292 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8293 using a checked cast.
8294 (thread_prologue_and_epilogue_insns): Split out top-level local
8295 rtx "seq" into three different rtx_insn * locals. Strengthen
8296 local "prologue_seq" from rtx to rtx_insn *.
8297 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8298 from rtx to rtx_insn *.
8299 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8300 (priority): Likewise for locals "prev_first", "twin".
8301 (setup_insn_max_reg_pressure): Likewise for param "after".
8302 (sched_setup_bb_reg_pressure_info): Likewise.
8303 (no_real_insns_p): Strengthen params from const_rtx to
8305 (schedule_block): Strengthen local "next_tail" from rtx to
8307 * ifcvt.c (find_active_insn_before): Strengthen return type and
8308 param "insn" from rtx to rtx_insn *.
8309 (find_active_insn_after): Likewise.
8310 (cond_exec_process_insns): Likewise for param "start" and local "insn".
8311 (cond_exec_process_if_block): Likewise for locals "then_start",
8312 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8313 (noce_process_if_block): Likewise for local "jump".
8314 (merge_if_block): Likewise for two locals named "end".
8315 (cond_exec_find_if_block): Likewise for local "last_insn".
8316 * jump.c (delete_related_insns): Rename param "insn" to
8317 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8318 checked cast. Strengthen local "p" from rtx to rtx_insn *.
8319 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8321 (split_reg): Likewise.
8322 * lra.c (lra_process_new_insns): Likewise.
8323 * modulo-sched.c (permute_partial_schedule): Strengthen param
8324 "last" from rtx to rtx_insn *.
8325 * optabs.c (add_equal_note): Likewise for param "insns" and local
8327 (expand_binop_directly): Add checked casts to rtx_insn * within
8328 NEXT_INSN (pat) uses.
8329 (expand_unop_direct): Likewise.
8330 (maybe_emit_unop_insn): Likewise.
8331 * recog.c (peep2_attempt): Strengthen locals "last",
8332 "before_try", "x" from rtx to rtx_insn *.
8333 * reorg.c (optimize_skip): Strengthen return type and local
8334 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
8335 and locals "trial", "next_trial" from rtx to rtx_insn *.
8336 * resource.c (next_insn_no_annul): Strengthen return type and
8337 param "insn" from rtx to rtx_insn *. Use a cast to and method of
8338 rtx_sequence to clarify the code.
8339 (mark_referenced_resources): Add a checked cast to rtx_insn *
8340 within PREV_INSN (x).
8341 (find_dead_or_set_registers): Strengthen return type, param
8342 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8343 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
8345 (mark_target_live_regs): Strengthen params "insns" and "target",
8346 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8347 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
8349 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8350 from rtx to rtx_insn *.
8351 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8352 from rtx to rtx_insn *.
8353 (copy_reg_eh_region_note_backward): Likewise.
8354 (unshare_all_rtl_in_chain): Likewise for sole param.
8355 (dump_rtl_slim): Strengthen second and third params from const_rtx
8356 to const rtx_insn *.
8357 * sched-deps.c (sched_free_deps): Strengthen params "head" and
8358 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8359 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8360 "next_tail" from rtx to rtx_insn *.
8361 (begin_move_insn): Likewise for local "next".
8362 * sched-int.h (sched_free_deps): Likewise for first and second
8364 (no_real_insns_p): Strengthen both params from const_rtx to
8366 (sched_setup_bb_reg_pressure_info): Strengthen second params from
8368 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8370 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8371 and locals "insn", "tail" from const_rtx to const rtx_insn *.
8372 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8374 (debug_rtl_slim): Strengthen params "first" and "last" from
8375 const_rtx to const rtx_insn *.
8376 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8377 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8378 (convert_to_simple_return): Likewise for param "returnjump".
8379 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8381 (convert_to_simple_return): Likewise for param "returnjump".
8382 * valtrack.c (propagate_for_debug): Likewise for params
8384 * valtrack.h (propagate_for_debug): Likewise for second param.
8386 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8388 * output.h (insn_current_reference_address): Strengthen param
8389 from rtx to rtx_insn *.
8390 * final.c (insn_current_reference_address): Likewise.
8392 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8394 * basic-block.h (inside_basic_block_p): Strengthen param from
8395 const_rtx to const rtx_insn *.
8396 * cfgbuild.c (inside_basic_block_p): Likewise.
8398 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8400 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
8402 (get_trace_info): Likewise for param "insn".
8403 (save_point_p): Likewise.
8404 (maybe_record_trace_start): Likewise for both params.
8405 (maybe_record_trace_start_abnormal): Likewise.
8406 (create_trace_edges): Likewise for sole param and for three of the
8408 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
8409 to rtx_insn *, and update a call to pat->element to pat->insn.
8411 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8413 * function.h (struct expr_status): Convert field "x_forced_labels"
8414 from rtx_expr_list * to rtx_insn_list *.
8416 * cfgbuild.c (make_edges): Convert local "x" from an
8417 rtx_expr_list * to an rtx_insn_list *, replacing use of
8418 "element" method with "insn" method.
8419 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8420 * except.c (sjlj_emit_dispatch_table): Replace use of
8421 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
8423 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
8424 rtx_expr_list * to an rtx_insn_list *, replacing use of
8425 "element" method with "insn" method.
8426 * reload1.c (set_initial_label_offsets): Likewise for local "x".
8427 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
8428 rtx_insn *, adding a checked cast. Replace use of
8429 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
8431 (expand_label): Likewise for local "label_r".
8433 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8435 * function.h (struct rtl_data): Convert field
8436 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
8438 * rtl.h (remove_node_from_insn_list): New prototype.
8440 * builtins.c (expand_builtin): When prepending to
8441 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8443 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
8444 to rtx_insn_list *, and use its "insn" method rather than
8446 * cfgrtl.c (delete_insn): Use new function
8447 remove_node_from_insn_list rather than
8448 remove_node_from_expr_list.
8449 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
8450 to rtx_insn_list *, and use its "insn" method rather than
8452 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8453 * reload1.c (set_initial_label_offsets): Likewise for local "x".
8454 * rtlanal.c (remove_node_from_insn_list): New function, adapted
8455 from remove_node_from_expr_list.
8456 * stmt.c (expand_label): When prepending to
8457 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8460 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8462 * function.h (struct rtl_data): Strengthen fields "x_return_label"
8463 and "x_naked_return_label" from rtx to rtx_code_label *.
8465 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8467 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
8468 (SET_NEXT_INSN): Likewise.
8469 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
8471 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
8472 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
8473 to split out the SEQUENCE from local "bundle", strengthening the
8474 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
8475 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
8476 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
8477 and the type of the elements of the "slot" array from rtx to
8479 (reorg_split_calls): Likewise for locals "insn" and "next", and
8480 the type of the elements of the "slot" array.
8482 * config/frv/frv.c (frv_nops): Likewise for the elements of this
8484 (frv_function_prologue): Likewise for locals "insn", "next",
8486 (frv_register_nop): Introduce a local "nop_insn" to be the
8487 rtx_insn * containing rtx "nop".
8489 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
8490 used as an insn and sometimes as a pattern, so rename it to
8491 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
8492 using it where dealing with the core insn.
8494 * config/picochip/picochip.c (reorder_var_tracking_notes):
8495 Strengthen locals "insn", "next", "last_insn", "queue",
8496 "next_queue", "prev" from rtx to rtx_insn *.
8498 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
8499 the second param is an rtx_insn ** rather than an rtx **.
8500 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
8501 from rtx to rtx_sequence *, and introduce local named "sequence",
8502 using methods of rtx_sequence to clarify the code.
8503 (remove_insn): Introduce local rtx_sequence * named "sequence" and
8505 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
8506 Rename param "after" to "uncast_after", reintroducing "after" as a
8507 local rtx_insn * with a checked cast.
8508 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
8509 reintroducing "after" as a local rtx_insn * with a checked cast.
8510 Strengthen local "last" from rtx to rtx_insn * and remove the
8511 now-redundant checked casts.
8512 (copy_delay_slot_insn): Strengthen return type and param from rtx
8515 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
8516 "last" from rtx to rtx_insn *.
8518 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8520 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
8521 param from rtx to rtx_insn *.
8523 * emit-rtl.c (copy_delay_slot_insn): Likewise.
8525 * reorg.c (skip_consecutive_labels): Strengthen return type, param
8526 and local "insn" from rtx to rtx_insn *.
8527 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
8528 (unfilled_slots_next): Likewise.
8529 (function_return_label): Strengthen from rtx to rtx_code_label *.
8530 (function_simple_return_label): Likewise.
8531 (first_active_target_insn): Strengthen return type and param from
8533 (find_end_label): Strengthen return type from rtx to
8534 rtx_code_label *; strengthen locals as appropriate.
8535 (emit_delay_sequence): Strengthen return type, param "insn" and
8536 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
8537 and local "li" from rtx to rtx_insn_list *, using methods of
8538 rtx_insn_list for clarity and typesafety.
8539 (add_to_delay_list): Strengthen return type and param "insn" from
8540 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
8541 rtx_insn_list * and use methods of rtx_insn_list.
8542 (delete_from_delay_slot): Strengthen return type, param "insn",
8543 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
8544 Strengthen local "seq" from rtx to rtx_sequence *, and local
8545 "delay_list" from rtx to rtx_insn_list *, using methods of
8546 rtx_sequence for clarity and type-safety.
8547 (delete_scheduled_jump): Add checked cast when invoking
8548 delete_from_delay_slot. Strengthen local "trial" from rtx to
8550 (optimize_skip): Strengthen return type and local "delay_list"
8551 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
8553 (steal_delay_list_from_target): Strengthen return type, param
8554 "delay_list" and local "new_delay_list" from rtx to
8555 rtx_insn_list *. Strengthen param "seq" from rtx to
8556 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
8558 Split out local "temp" into multiple more-tightly scoped locals:
8559 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
8560 of rtx_insn_list and rtx_sequence for clarity and typesafety.
8561 Strengthen locals named "trial" from rtx to rtx_insn *.
8562 (steal_delay_list_from_fallthrough): Strengthen return type and
8563 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
8564 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
8565 Strengthen local "trial" from rtx to rtx_insn *.
8566 (try_merge_delay_insns): Strength local "merged_insns" from rtx
8567 to rtx_insn_list * and use its methods. Strengthen local "pat"
8568 from rtx to rtx_sequence * and use its methods. Strengthen locals
8569 "dtrial" and "new_rtx" from rtx to rtx_insn *.
8570 (get_label_before): Strengthen return type and local "label" from
8572 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
8573 "next_trial", "next", prev". Strengthen local "delay_list" from
8574 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
8576 (follow_jumps): Strengthen return type, param "label" and locals
8577 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
8578 (fill_slots_from_thread): Strengthen return type, param
8579 "delay_list" from rtx to rtx_insn_list *. Strengthen params
8580 "insn", "thread", "opposite_thread" and locals "new_thread",
8581 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
8582 "sequence" from a checked cast to rtx_sequence so that we can call
8583 steal_delay_list_from_target and steal_delay_list_from_fallthrough
8584 with an rtx_sequence *.
8585 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
8586 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
8587 Strengthen local "delay_list" from rtx to rtx_insn_list *.
8588 (relax_delay_slots): Strengthen param "first" and locals "insn",
8589 "next", "trial", "delay_insn", "target_label" from rtx to
8590 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
8591 Introduce a local "trial_seq" for PATTERN (trial) of type
8592 rtx_sequence *, in both cases using methods of rtx_sequence.
8593 (dbr_schedule): Strengthen param "first" and locals "insn",
8594 "next", "epilogue_insn" from rtx to rtx_insn *.
8596 2014-08-28 Richard Biener <rguenther@suse.de>
8598 PR tree-optimization/62283
8599 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8600 Do not peel loops for alignment where the vector loop likely
8601 doesn't run at least VF times.
8603 2014-08-28 Bin Cheng <bin.cheng@arm.com>
8605 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
8606 important_candidates. Consider all important candidates if
8607 IVS doesn't give any result. Remove check on ivs->upto.
8608 (try_add_cand_for): Call iv_ca_add_use only once.
8610 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8611 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8612 Anna Tikhonova <anna.tikhonova@intel.com>
8613 Ilya Tocar <ilya.tocar@intel.com>
8614 Andrey Turetskiy <andrey.turetskiy@intel.com>
8615 Ilya Verbin <ilya.verbin@intel.com>
8616 Kirill Yukhin <kirill.yukhin@intel.com>
8617 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8619 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
8620 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
8622 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
8623 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8624 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8625 (define_insn "*mul<mode>3"): Add EVEX version.
8627 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8628 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8629 Anna Tikhonova <anna.tikhonova@intel.com>
8630 Ilya Tocar <ilya.tocar@intel.com>
8631 Andrey Turetskiy <andrey.turetskiy@intel.com>
8632 Ilya Verbin <ilya.verbin@intel.com>
8633 Kirill Yukhin <kirill.yukhin@intel.com>
8634 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8636 * config/i386/sse.md
8637 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
8638 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
8639 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
8640 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
8641 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
8642 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
8643 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
8644 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
8645 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
8646 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
8647 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
8648 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
8649 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
8650 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
8651 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
8652 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
8654 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8655 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8656 Anna Tikhonova <anna.tikhonova@intel.com>
8657 Ilya Tocar <ilya.tocar@intel.com>
8658 Andrey Turetskiy <andrey.turetskiy@intel.com>
8659 Ilya Verbin <ilya.verbin@intel.com>
8660 Kirill Yukhin <kirill.yukhin@intel.com>
8661 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8663 * config/i386/sse.md
8664 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
8665 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
8666 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
8668 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8669 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8670 Anna Tikhonova <anna.tikhonova@intel.com>
8671 Ilya Tocar <ilya.tocar@intel.com>
8672 Andrey Turetskiy <andrey.turetskiy@intel.com>
8673 Ilya Verbin <ilya.verbin@intel.com>
8674 Kirill Yukhin <kirill.yukhin@intel.com>
8675 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8677 * config/i386/sse.md
8678 (define_mode_iterator VI128_256): New.
8679 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
8681 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8682 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8683 Anna Tikhonova <anna.tikhonova@intel.com>
8684 Ilya Tocar <ilya.tocar@intel.com>
8685 Andrey Turetskiy <andrey.turetskiy@intel.com>
8686 Ilya Verbin <ilya.verbin@intel.com>
8687 Kirill Yukhin <kirill.yukhin@intel.com>
8688 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8690 * config/i386/sse.md
8691 (define_mode_iterator VI8_256_512): New.
8692 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
8694 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
8695 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
8697 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
8699 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8701 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
8702 pointer to the cumulative reloc value and return the value for
8704 (compute_reloc_for_rtx): Take a const_rtx. Call
8705 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
8706 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
8707 for_each_rtx for the CONST case.
8709 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8711 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
8712 (mark_constants_in_pattern): ...this new function to iterate over
8714 (mark_constants): Update accordingly.
8716 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8718 * varasm.c: Include rtl-iter.h.
8719 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
8720 Remove the pointer to the cumulative hashval_t and just return
8721 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
8722 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8723 Accumulate the hashval_ts here instead of const_rtx_hash_1.
8725 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8727 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
8728 Give real type of data parameter. Remove return value.
8729 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
8730 to iterate over subrtxes.
8732 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8734 * var-tracking.c (use_narrower_mode_test): Turn from being a
8735 for_each_rtx callback to being a function that examines each
8737 (adjust_mems): Update accordingly.
8739 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8741 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
8742 callback to being a function that examines each subrtx itself.
8743 Remove handling of null rtxes.
8744 (add_uses): Update accordingly.
8746 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8748 * var-tracking.c: Include rtl-iter.h.
8749 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
8750 to being a function that examines each subrtx itself.
8751 (use_type): Update accordingly.
8753 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8755 * store-motion.c: Include rtl-iter.h.
8756 (extract_mentioned_regs_1): Delete.
8757 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
8758 for_each_rtx to iterate over subrtxes.
8760 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8762 * sel-sched.c: Include rtl-iter.h
8763 (count_occurrences_1): Delete.
8764 (count_occurrences_equiv): Turn rtxes into const_rtxes.
8765 Use FOR_EACH_SUBRTX rather than for_each_rtx.
8767 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8769 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
8770 * rtlanal.c (tls_referenced_p_1): Delete.
8771 (tls_referenced_p): Take a const_rtx rather than an rtx.
8772 Use FOR_EACH_SUBRTX rather than for_each_rtx.
8774 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8776 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
8777 (for_each_inc_dec): Take an rtx rather than an rtx *.
8778 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
8779 (cselib_record_sets): Likewise.
8780 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
8781 (check_for_inc_dec): Likewise.
8782 * rtlanal.c (for_each_inc_dec_ops): Delete.
8783 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
8784 rather than a pointer to the memory address. Replace
8785 for_each_inc_dec_ops argument with separate function and data
8786 arguments. Abort on non-autoinc addresses.
8787 (for_each_inc_dec_find_mem): Delete.
8788 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
8789 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
8791 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8793 * rtl.h (find_all_hard_regs): Declare.
8794 * rtlanal.c (find_all_hard_regs): New function.
8795 (record_hard_reg_uses_1): Delete.
8796 (record_hard_reg_uses): Use find_all_hard_regs.
8798 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8800 * rtl.h (replace_label_data): Delete.
8801 (replace_label): Take the old label, new label and update-nuses flag
8802 as direct arguments. Return void.
8803 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
8804 * rtlanal.c (replace_label): Update interface as above. Handle
8805 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
8806 iterator. Use FOR_EACH_SUBRTX_PTR.
8808 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8810 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
8811 with const_rtx parameters.
8812 * varasm.c (get_pool_constant): Likewise.
8813 * rtlanal.c (rtx_referenced_p_1): Delete.
8814 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8815 Assert that the rtx we're looking for is nonnull. Allow searches
8816 for constant pool SYMBOL_REFs.
8818 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8820 * reload1.c: Include rtl-iter.h.
8821 (note_reg_elim_costly): Turn from being a for_each_rtx callback
8822 to being a function that examines each subrtx itself.
8823 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
8825 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8827 * regcprop.c (cprop_find_used_regs_1): Delete.
8828 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8830 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8832 * regcprop.c: Include rtl-iter.h.
8833 (kill_value): Take a const_rtx.
8834 (kill_autoinc_value): Turn from being a for_each_rtx callback
8835 to being a function that examines each subrtx itself.
8836 (copyprop_hardreg_forward_1): Update accordingly.
8838 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8840 * reg-stack.c: Include rtl-iter.h.
8841 (subst_stack_regs_in_debug_insn): Delete.
8842 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
8843 instead of for_each_rtx.
8845 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8847 * lower-subreg.c (find_decomposable_subregs): Turn from being
8848 a for_each_rtx callback to being a function that examines each
8849 subrtx itself. Remove handling of null rtxes.
8850 (decompose_multiword_subregs): Update accordingly.
8852 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8854 * lower-subreg.c (adjust_decomposed_uses): Delete.
8855 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
8856 Remove handling of null rtxes.
8858 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8860 * lower-subreg.c: Include rtl-iter.h.
8861 (resolve_subreg_use): Turn from being a for_each_rtx callback
8862 to being a function that examines each subrtx itself. Remove
8863 handling of null rtxes.
8864 (resolve_reg_notes, resolve_simple_move): Update accordingly.
8865 (decompose_multiword_subregs): Likewise.
8867 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8869 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
8870 to being a function that examines each subrtx itself.
8871 (simplify_using_condition, simplify_using_initial_values): Update
8874 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8876 * loop-iv.c: Include rtl-iter.h.
8877 (find_single_def_src): New function.
8878 (replace_single_def_regs): Turn from being a for_each_rtx callback
8879 to being a function that examines each subrtx itself.
8880 (replace_in_expr, simplify_using_initial_values): Update accordingly.
8882 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8884 * jump.c (eh_returnjump_p_1): Delete.
8885 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8886 Remove handling of null rtxes.
8888 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8890 * jump.c: Include rtl-iter.h.
8891 (returnjump_p_1): Delete.
8892 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8893 Remove handling of null rtxes.
8895 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8897 * ira.c: Include rtl-iter.h.
8898 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
8899 to being a function that examines each subrtx itself. Remove
8900 handling of null rtxes.
8901 (update_equiv_regs): Update call accordingly.
8903 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8905 * fwprop.c: Include rtl-iter.h.
8906 (varying_mem_p): Turn from being a for_each_rtx callback to being
8907 a function that examines each subrtx itself.
8908 (propagate_rtx): Update accordingly.
8910 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8912 * function.c: Include rtl-iter.h
8913 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
8914 callback to being a function that examines each subrtx itself.
8915 Return the changed flag.
8916 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
8917 (instantiate_virtual_regs): Update calls accordingly.
8919 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8921 * final.c: Include rtl-iter.h.
8922 (mark_symbol_ref_as_used): Delete.
8923 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
8926 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8928 * emit-rtl.c: Include rtl-iter.h.
8929 (find_auto_inc): Turn from being a for_each_rtx callback to being
8930 a function that examines each subrtx itself. Assume the first operand
8931 to an RTX_AUTOINC is the automodified register.
8932 (try_split): Update call accordingly.
8934 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8936 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
8937 Return a bool, inverting the result so that 0/false means "not ok".
8938 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
8939 subrtxes of a CONST.
8940 (mem_loc_descriptor, add_const_value_attribute)
8941 (resolve_addr_in_expr): Update calls accordingly.
8943 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8945 * dwarf2out.c: Include rtl-iter.h.
8946 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
8947 Remove unused data parameter. Return a bool, inverting the result
8948 so that 0/false means "not ok".
8949 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
8950 instead of for_each_rtx.
8952 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8954 * dse.c: Include rtl-iter.h.
8955 (check_mem_read_rtx): Change void * parameter to real type.
8956 Remove return value.
8957 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
8958 for_each_rtx. Don't handle null rtxes.
8960 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8962 * df-problems.c: Include rtl-iter.h.
8963 (find_memory): Turn from being a for_each_rtx callback to being
8964 a function that examines each subrtx itself. Continue to look for
8965 volatile references even after a nonvolatile one has been found.
8966 (can_move_insns_across): Update calls accordingly.
8968 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8970 * ddg.c (walk_mems_2, walk_mems_1): Delete.
8971 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
8972 to iterate over subrtxes. Return a bool rather than an int.
8974 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8976 * ddg.c: Include rtl-iter.h.
8977 (mark_mem_use_1): Rename to...
8978 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
8979 instead of for_each_rtx.
8980 (mem_read_insn_p): Update accordingly.
8982 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8984 * cse.c (change_cc_mode_args): Delete.
8985 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
8986 a function that examines each subrtx itself. Take the fields of
8987 change_cc_mode_args as argument and return void.
8988 (cse_change_cc_mode_insn): Update calls accordingly.
8990 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8992 * cse.c (is_dead_reg): Change argument to const_rtx.
8993 (dead_debug_insn_data): Delete.
8994 (is_dead_debug_insn): Expand commentary. Turn from being a
8995 for_each_rtx callback to being a function that examines
8996 each subrtx itself. Take the fields of dead_debug_insn_data
8998 (delete_trivially_dead_insns): Update call accordingly.
9000 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9002 * cse.c (check_for_label_ref): Move earlier in file. Turn from
9003 being a for_each_rtx callback to being a function that examines
9005 (cse_extended_basic_block): Update call accordingly.
9007 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9009 * cse.c (check_dependence_data): Delete.
9010 (check_dependence): Change from being a for_each_rtx callback to being
9011 a function that examines all subrtxes itself. Don't handle null rtxes.
9012 (invalidate): Update call accordingly.
9014 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9016 * cse.c: Include rtl-iter.h.
9017 (approx_reg_cost_1): Delete.
9018 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9019 Don't handle null rtxes.
9021 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9023 * cfgcleanup.c: Include rtl-iter.h.
9024 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9025 to being a function that examines each subrtx itself.
9026 (thread_jump): Update accordingly.
9028 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9030 * combine-stack-adj.c: Include rtl-iter.h.
9031 (record_stack_refs_data): Delete.
9032 (record_stack_refs): Turn from being a for_each_rtx callback
9033 to being a function that examines each subrtx itself.
9034 Take a pointer to the reflist. Invert sense of return value
9035 so that true means success and false means failure. Don't
9037 (combine_stack_adjustments_for_block): Update accordingly.
9039 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9041 * combine.c (record_truncated_value): Turn from being a for_each_rtx
9042 callback to a function that takes an rtx and returns a bool
9043 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9046 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9048 * combine.c: Include rtl-iter.h.
9049 (unmentioned_reg_p_1): Delete.
9050 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9051 Don't handle null rtxes.
9053 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9055 * calls.c: Include rtl-iter.h.
9056 (internal_arg_pointer_based_exp_1): Delete.
9057 (internal_arg_pointer_based_exp): Take a const_rtx.
9058 Use FOR_EACH_SUBRTX to iterate over subrtxes.
9060 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9062 * caller-save.c: Include rtl-iter.h.
9063 (add_used_regs_1): Delete.
9064 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9065 to iterate over subrtxes. Assert that any remaining pseudos
9068 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9070 * bt-load.c: Include rtl-iter.h.
9071 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9072 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
9073 to iterate over subrtxes.
9074 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9075 find_btr_use rather than btr_referenced_p.
9077 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9079 * alias.c: Include rtl-iter.h.
9080 (refs_newer_value_cb): Delete.
9081 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9083 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9085 * rtl-iter.h: New file.
9086 * rtlanal.c: Include it.
9087 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9088 (generic_subrtx_iterator <T>::add_single_to_queue)
9089 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9090 (generic_subrtx_iterator <T>::free_array): New functions.
9091 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9092 (generic_subrtx_iterator <const_rtx_accessor>)
9093 (generic_subrtx_iterator <rtx_var_accessor>
9094 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9095 (setup_reg_subrtx_bounds): New function.
9096 (init_rtlanal): Call it.
9098 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
9101 * config/sh/sh.md (ashlsi3): Handle negative shift count for
9103 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9105 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
9107 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9109 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9111 * rtl.h (JUMP_LABEL_AS_INSN): New.
9113 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9115 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9117 (alloc_EXPR_LIST): Strengthen return type from rtx to
9119 (remove_free_EXPR_LIST_node): Likewise for param.
9120 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9121 from rtx to rtx_expr_list *.
9122 * sched-int.h (struct deps_desc): Strengthen fields
9123 "pending_read_mems" and "pending_write_mems" from rtx to
9126 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9127 rtx to rtx_expr_list *.
9128 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9129 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9131 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
9132 from rtx to rtx_expr_list *.
9133 * loop-iv.c (simplify_using_initial_values): Strengthen local
9134 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9135 "pnote_next" from rtx * to rtx_expr_list **.
9136 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
9137 param "exprp" from rtx * to rtx_expr_list **.
9138 (add_insn_mem_dependence): Strengthen local "mem_list" from
9139 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
9141 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9142 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
9143 param "old_mems_p" from rtx * to rtx_expr_list **.
9144 * var-tracking.c (struct adjust_mem_data): Strengthen field
9145 "side_effects" from rtx to rtx_expr_list *.
9146 (adjust_insn): Replace NULL_RTX with NULL when assigning to
9148 (prepare_call_arguments): Likewise.
9150 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9152 * function.h (struct rtl_data): Strengthen field
9153 "x_stack_slot_list" from rtx to rtx_expr_list *.
9155 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9156 when assigning to stack_slot_list.
9158 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9160 * function.h (struct rtl_data): Strengthen field
9161 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9162 * rtl.h (remove_node_from_expr_list): Strengthen second param from
9163 rtx * to rtx_expr_list **.
9165 * cfgbuild.c (make_edges): In loop over
9166 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9167 rtx_expr_list *, and use methods of the latter class to clarify
9169 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9170 rtx_expr_list *, and use methods of the latter class to clarify
9172 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9173 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9174 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9175 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
9176 to rtx_expr_list *. Use methods of the latter class to clarify
9179 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9181 * function.h (struct expr_status): Strengthen field
9182 "x_forced_labels" from rtx to rtx_expr_list *.
9184 * cfgbuild.c (make_edges): Split local "x" into two locals,
9185 strengthening one from rtx to rtx_expr_list *, and using methods
9187 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9188 loop over forced_labels, introduce strengthen it from rtx to
9189 rtx_expr_list *, using methods to clarify the code.
9190 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9191 to rtx_expr_list *, using methods of said class to clarify the
9193 * reload1.c (set_initial_label_offsets): Split local "x" into two
9194 per-loop variables, strengthening the first from rtx to
9195 rtx_expr_list * and using methods.
9197 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9199 * coretypes.h (class rtx_expr_list): Add forward declaration.
9200 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9201 * gengenrtl.c (special_rtx): Add EXPR_LIST.
9202 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9203 invariant: GET_CODE (X) == EXPR_LIST.
9204 (is_a_helper <rtx_expr_list *>::test): New.
9205 (rtx_expr_list::next): New.
9206 (rtx_expr_list::element): New.
9207 (gen_rtx_EXPR_LIST): New.
9209 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9211 * varasm.c (mark_constants): Convert a GET_CODE check into a
9212 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9213 Use methods of rtx_sequence to clarify the code.
9215 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9217 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9218 local "seq" via a checked cast, and use methods of rtx_sequence
9219 to simplify the code.
9221 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9223 * resource.c (mark_referenced_resources): Strengthen local
9224 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9225 using methods of rtx_sequence to clarify the code.
9226 (find_dead_or_set_registers): Within the switch statement, convert
9227 a GET_CODE check to a dyn_cast, introducing local "seq". Within
9228 the JUMP_P handling, introduce another local "seq", adding a
9229 checked cast to rtx_sequence *. In both cases, use methods of
9230 rtx_sequence to clarify the code.
9231 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9232 via a checked cast, and use methods of rtx_sequence to simplify
9235 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9237 * reorg.c (redundant_insn): In two places in the function, replace
9238 a check of GET_CODE with a dyn_cast, introducing local "seq", and
9239 usings methods of rtx_sequence to clarify the code.
9241 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9243 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9244 local "seq" with a checked cast, and use methods of rtx_sequence
9245 to clarify the code.
9247 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9249 * function.c (contains): Introduce local "seq" for PATTERN (insn),
9250 with a checked cast, in the region for where we know it's a
9251 SEQUENCE. Use methods of rtx_sequence.
9253 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9255 * final.c (get_attr_length_1): Replace GET_CODE check with a
9256 dyn_cast, introducing local "seq" and the use of methods of
9258 (shorten_branches): Likewise, introducing local "body_seq".
9259 Strengthen local "inner_insn" from rtx to rtx_insn *.
9260 (reemit_insn_block_notes): Replace GET_CODE check with a
9261 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9262 Use methods of rtx_sequence.
9263 (final_scan_insn): Likewise, introducing local "seq" for when
9264 "body" is known to be a SEQUENCE, using its methods.
9266 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9268 * except.c (can_throw_external): Strengthen local "seq" from rtx
9269 to rtx_sequence *. Use methods of rtx_sequence.
9270 (insn_nothrow_p): Likewise.
9272 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9274 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9275 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9276 Use methods of rtx_sequence.
9277 (scan_trace): Likewise for local "pat".
9279 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9281 * coretypes.h (class rtx_sequence): Add forward declaration.
9282 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9283 invariant: GET_CODE (X) == SEQUENCE.
9284 (is_a_helper <rtx_sequence *>::test): New.
9285 (is_a_helper <const rtx_sequence *>::test): New.
9286 (rtx_sequence::len): New.
9287 (rtx_sequence::element): New.
9288 (rtx_sequence::insn): New.
9290 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9292 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9294 (alloc_INSN_LIST): Strengthen return type from rtx to
9296 (copy_INSN_LIST): Likewise for return type and param.
9297 (concat_INSN_LIST): Likewise for both params and return type.
9298 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9299 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
9300 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9301 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
9303 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9304 "implicit_sets", "control_uses", "clobbers" from rtx to
9306 (struct deps_desc): Likewise for fields "pending_read_insns",
9307 "pending_write_insns", "pending_jump_insns",
9308 "last_pending_memory_flush", "last_function_call",
9309 "last_function_call_may_noreturn", "sched_before_next_call",
9310 "sched_before_next_jump".
9311 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9312 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9314 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9315 from rtx to rtx_insn_list *.
9316 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9319 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9320 to rtx_insn_list **.
9321 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9323 (queue_insn): Likewise for local "link".
9324 (struct haifa_saved_data): Strengthen field "insn_queue" from
9325 rtx * to rtx_insn_list **.
9326 (save_backtrack_point): Update allocation of save->insn_queue to
9327 reflect the strengthening of elements from rtx to rtx_insn_list *.
9328 (queue_to_ready): Strengthen local "link" from rtx to
9329 rtx_insn_list *; use methods "next" and "insn" when traversing the
9331 (early_queue_to_ready): Likewise for locals "link", "next_link",
9333 (schedule_block): Update allocation of insn_queue to reflect the
9334 strengthening of elements from rtx to rtx_insn_list *. Strengthen
9335 local "link" from rtx to rtx_insn_list *, and use methods when
9337 (add_to_speculative_block): Strengthen locals "twins" and
9338 "next_node" from rtx to rtx_insn_list *, and use methods when
9339 working with them. Strengthen local "twin" from rtx to
9340 rtx_insn *, eliminating a checked cast.
9341 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9342 from rtx to rtx_insn_list *, and use methods when working with
9345 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9346 from rtx to rtx_insn_list *, adding a checked cast.
9347 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9349 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9350 "newlink" from rtx to rtx_insn_list *. Strengthen local
9351 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
9352 from rtx to rtx_insn *.
9353 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9354 from rtx to rtx_insn_list *. Use methods of the latter class.
9355 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9356 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9357 (remove_free_INSN_LIST_node): Strengthen return type and local
9358 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
9359 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
9360 rtx_insn_list *, using "insn" method.
9362 * sched-deps.c (add_dependence_list): Strengthen param "list"
9363 from rtx to rtx_insn_list *, and use methods when working with it.
9364 (add_dependence_list_and_free): Strengthen param "listp" from
9365 rtx * to rtx_insn_list **.
9366 (remove_from_dependence_list): Strenghten param "listp" from rtx *
9367 to rtx_insn_list **, and use methods when working with *listp.
9368 (remove_from_both_dependence_lists): Strengthen param "listp" from
9369 rtx * to rtx_insn_list **
9370 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9371 to rtx_insn_list **. Eliminate local "link", in favor of two new
9372 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9374 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9375 by introducing local "cond_deps".
9376 (remove_from_deps): Strengthen param "insn" from rtx to
9379 * sched-rgn.c (concat_insn_mem_list): Strengthen param
9380 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9381 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9382 Use methods of rtx_insn_list.
9384 * store-motion.c (struct st_expr): Strengthen fields
9385 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9386 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9388 (find_moveable_store): Split out "tmp" into multiple more-tightly
9389 scoped locals. Use methods of rtx_insn_list *.
9390 (compute_store_table): Strengthen local "tmp" from rtx to
9391 rtx_insn *. Use methods of rtx_insn_list *.
9393 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9395 * coretypes.h (class rtx_insn_list): Add forward declaration.
9396 * rtl.h (class rtx_insn_list): New subclass of rtx_def
9397 (is_a_helper <rtx_insn_list *>::test): New.
9398 (rtx_insn_list::next): New.
9399 (rtx_insn_list::insn): New.
9400 (gen_rtx_INSN_LIST): Add prototype.
9401 * emit-rtl.c (gen_rtx_INSN_LIST): New.
9402 * gengenrtl.c (special_rtx): Add INSN_LIST.
9404 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9406 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
9407 "prev" from rtx to rtx_insn *.
9409 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9411 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
9412 functions. Require merely an rtx for now, not an rtx_insn *.
9413 (BLOCK_FOR_INSN): Likewise.
9414 (INSN_LOCATION): Likewise.
9415 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
9417 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9419 * rtl.h (PATTERN): Convert this macro into a pair of inline
9420 functions, for now, requiring const_rtx and rtx.
9422 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9424 * target.def (unwind_emit): Strengthen param "insn" from rtx to
9426 (final_postscan_insn): Likewise.
9427 (adjust_cost): Likewise.
9428 (adjust_priority): Likewise.
9429 (variable_issue): Likewise.
9430 (macro_fusion_pair_p): Likewise.
9431 (dfa_post_cycle_insn): Likewise.
9432 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
9433 (first_cycle_multipass_issue): Likewise.
9434 (dfa_new_cycle): Likewise.
9435 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
9436 (speculate_insn): Likewise for param "insn".
9437 (gen_spec_check): Likewise for params "insn" and "label".
9438 (get_insn_spec_ds): Likewise for param "insn".
9439 (get_insn_checked_ds): Likewise.
9440 (dispatch_do): Likewise.
9441 (dispatch): Likewise.
9442 (cannot_copy_insn_p): Likewise.
9443 (invalid_within_doloop): Likewise.
9444 (legitimate_combined_insn): Likewise.
9448 * doc/tm.texi: Automatically updated to reflect changes to
9451 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
9453 (schedule_block): Likewise.
9454 (sched_init): Likewise.
9455 (sched_speculate_insn): Strengthen param "insn" from rtx to
9457 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
9459 * hooks.c (hook_bool_rtx_true): Rename to...
9460 hook_bool_rtx_insn_true): ...this, and strengthen first param from
9462 (hook_constcharptr_const_rtx_null): Rename to...
9463 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9464 first param from const_rtx to const rtx_insn *.
9465 (hook_bool_rtx_int_false): Rename to...
9466 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9467 param from rtx to rtx_insn *.
9468 (hook_void_rtx_int): Rename to...
9469 (hook_void_rtx_insn_int): ...this, and strengthen first param from
9472 * hooks.h (hook_bool_rtx_true): Rename to...
9473 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
9475 (hook_bool_rtx_int_false): Rename to...
9476 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9477 param from rtx to rtx_insn *.
9478 (hook_void_rtx_int): Rename to...
9479 (hook_void_rtx_insn_int): ...this, and strengthen first param from
9481 (hook_constcharptr_const_rtx_null): Rename to...
9482 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9483 first param from const_rtx to const rtx_insn *.
9485 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
9486 and local "prev" from rtx to rtx_insn *.
9488 * sched-int.h (sched_speculate_insn): Strengthen first param from
9491 * sel-sched.c (create_speculation_check): Likewise for local "label".
9492 * targhooks.c (default_invalid_within_doloop): Strengthen param
9493 "insn" from const_rtx to const rtx_insn *.
9494 * targhooks.h (default_invalid_within_doloop): Strengthen param
9495 from const_rtx to const rtx_insn *.
9497 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
9498 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
9500 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
9502 (arc_invalid_within_doloop): Likewise, with const.
9504 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
9505 (arm_cannot_copy_insn_p): Likewise for param "insn".
9506 (arm_unwind_emit): Likewise.
9508 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
9511 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
9512 (c6x_variable_issue): Likewise. Removed now-redundant checked
9514 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
9516 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
9517 Likewise for param "insn".
9518 (epiphany_mode_after): Likewise.
9519 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
9520 params "insn", "dep_insn".
9521 (epiphany_mode_needed): Likewise for param "insn".
9522 (epiphany_mode_after): Likewise.
9524 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
9525 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
9526 (ix86_avx_u128_mode_needed): Likewise.
9527 (ix86_i387_mode_needed): Likewise.
9528 (ix86_mode_needed): Likewise.
9529 (ix86_avx_u128_mode_after): Likewise.
9530 (ix86_mode_after): Likewise.
9531 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
9532 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
9533 (ix86_adjust_priority): Likewise for param "insn".
9534 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
9535 (do_dispatch): Likewise.
9536 (has_dispatch): Likewise.
9537 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
9539 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
9540 reflect renaming of default hook implementation from
9541 hook_constcharptr_const_rtx_null to
9542 hook_constcharptr_const_rtx_insn_null.
9543 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
9545 (ia64_variable_issue): Likewise for param "insn".
9546 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
9547 (ia64_dfa_new_cycle): Likewise.
9548 (ia64_get_insn_spec_ds): Likewise.
9549 (ia64_get_insn_checked_ds): Likewise.
9550 (ia64_speculate_insn): Likewise.
9551 (ia64_gen_spec_check): Likewise for params "insn", "label".
9552 (ia64_asm_unwind_emit): Likewise for param "insn".
9554 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
9556 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
9558 (m68k_sched_variable_issue): Likewise for param "insn".
9560 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
9563 * config/microblaze/microblaze.c (microblaze_adjust_cost):
9564 Likewise for params "insn", "dep".
9566 * config/mips/mips.c (mips_adjust_cost): Likewise.
9567 (mips_variable_issue): Likewise for param "insn".
9568 (mips_final_postscan_insn): Likewise.
9570 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
9571 for params "insn", "dep".
9573 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
9575 (pa_adjust_priority): Likewise for param "insn".
9577 * config/picochip/picochip.c (picochip_sched_adjust_cost):
9578 Likewise for params "insn", "dep_insn".
9580 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
9582 (rs6000_variable_issue): Likewise.
9583 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
9584 (rs6000_debug_adjust_cost): Likewise.
9585 (rs6000_adjust_priority): Likewise for param "insn".
9586 (rs6000_use_sched_lookahead_guard): Likewise.
9587 (get_next_active_insn): Likewise for return type and both params.
9588 (redefine_groups): Likewise for params "prev_head_insn", "tail"
9589 and locals "insn", "next_insn".
9590 (pad_groups): Likewise.
9592 * config/s390/s390.c (s390_adjust_priority): Likewise for param
9594 (s390_cannot_copy_insn_p): Likewise.
9595 (s390_sched_variable_issue): Likewise for third param, eliminating
9597 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
9598 default hook implementation from hook_constcharptr_const_rtx_null
9599 to hook_constcharptr_const_rtx_insn_null.
9601 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
9602 from rtx to rtx_insn *.
9603 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
9604 (sh_variable_issue): Likewise for param "insn".
9605 (sh_dfa_new_cycle): Likewise.
9606 (sh_mode_needed): Likewise.
9607 (sh_mode_after): Likewise.
9609 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
9610 params "insn", "dep_insn".
9611 (hypersparc_adjust_cost): Likewise.
9612 (sparc_adjust_cost): Likewise.
9614 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
9615 param, eliminated checked cast.
9616 (spu_sched_adjust_cost): Likewise for first and third params.
9618 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
9619 params "insn" and "dep_insn" from rtx to rtx_insn *.
9621 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
9623 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9625 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
9626 (set_is_load_p): ...this, updating to work on a SET pattern rather
9628 (is_store_insn): Rename to...
9629 (set_is_store_p): ...this, updating to work on a SET pattern
9630 rather than an insn.
9631 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
9632 top of function to where it is needed. Rewrite the bogus
9633 condition that checks for "insn" and "dep" being PARALLEL to
9634 instead use single_set, introducing locals "insn_set" and
9635 "dep_set". Given that we only ever returned "cost" for a non-pair
9636 of SETs, bail out early if we don't have a pair of SET.
9637 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
9638 use the new locals "insn_set" and "dep_set", and update calls to
9639 is_load_insn and is_store_insn to be calls to set_is_load_p and
9642 2014-08-27 Guozhi Wei <carrot@google.com>
9645 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
9646 amount before using it.
9648 2014-08-27 Richard Biener <rguenther@suse.de>
9650 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
9651 get_maxval_strlen inside a more useful API.
9652 (gimple_fold_builtin_with_strlen): Remove and fold into ...
9653 (gimple_fold_builtin): ... caller.
9654 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
9655 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
9656 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
9657 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
9658 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
9659 gimple_fold_builtin_sprintf): Adjust to compute maxval
9662 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
9665 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
9667 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
9668 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9669 Anna Tikhonova <anna.tikhonova@intel.com>
9670 Ilya Tocar <ilya.tocar@intel.com>
9671 Andrey Turetskiy <andrey.turetskiy@intel.com>
9672 Ilya Verbin <ilya.verbin@intel.com>
9673 Kirill Yukhin <kirill.yukhin@intel.com>
9674 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9676 * config/i386/sse.md
9677 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
9678 Use `concat_tg_mode' attribute to determine asm register size.
9680 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
9681 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9682 Anna Tikhonova <anna.tikhonova@intel.com>
9683 Ilya Tocar <ilya.tocar@intel.com>
9684 Andrey Turetskiy <andrey.turetskiy@intel.com>
9685 Ilya Verbin <ilya.verbin@intel.com>
9686 Kirill Yukhin <kirill.yukhin@intel.com>
9687 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9689 * config/i386/sse.md
9690 (define_mode_iterator VI48_AVX512VL): New.
9691 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
9692 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
9693 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
9694 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9695 with VI1): Change mode iterator.
9696 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9697 with VI_ULOADSTORE_BW_AVX512VL): New.
9698 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9699 with VI_ULOADSTORE_F_AVX512VL): Ditto.
9700 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9701 with VI1): Change mode iterator.
9702 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9703 with VI_ULOADSTORE_BW_AVX512VL): New.
9704 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9705 with VI_ULOADSTORE_F_AVX512VL): Ditto.
9706 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9707 with VI1): Change mode iterator.
9708 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9709 with VI_ULOADSTORE_BW_AVX512VL): New.
9710 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9711 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
9712 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
9713 (define_insn "<avx512>_storedqu<mode>_mask" with
9714 VI48_AVX512VL): New.
9715 (define_insn "<avx512>_storedqu<mode>_mask" with
9716 VI12_AVX512VL): Ditto.
9718 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
9719 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9720 Anna Tikhonova <anna.tikhonova@intel.com>
9721 Ilya Tocar <ilya.tocar@intel.com>
9722 Andrey Turetskiy <andrey.turetskiy@intel.com>
9723 Ilya Verbin <ilya.verbin@intel.com>
9724 Kirill Yukhin <kirill.yukhin@intel.com>
9725 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9727 * config/i386/sse.md
9728 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
9729 (define_mode_iterator VI48_AVX512BW): New.
9730 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
9731 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9732 with VI48_AVX2_48_AVX512F): New.
9733 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9734 with VI2_AVX512VL): Ditto.
9736 2014-08-27 Richard Biener <rguenther@suse.de>
9739 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
9740 (fold_builtin_3): Do not fold strcat_chk here.
9741 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
9743 (gimple_fold_builtin): Fold strcat_chk here.
9745 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
9747 * dwarf2out.h (dwarf2out_decl): Remove prototype.
9748 * dwarf2out.c (dwarf2out_decl): Make static.
9750 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
9752 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
9754 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9756 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
9757 from rtx to rtx_insn *.
9758 (cselib_lookup_from_insn): Likewise for final param.
9759 (cselib_subst_to_values_from_insn): Likewise.
9760 (cselib_add_permanent_equiv): Likewise.
9762 * cselib.c (cselib_current_insn): Likewise for this variable.
9763 (cselib_subst_to_values_from_insn): Likewise for param "insn".
9764 (cselib_lookup_from_insn): Likewise.
9765 (cselib_add_permanent_equiv): Likewise for param "insn" and local
9766 "save_cselib_current_insn".
9767 (cselib_process_insn): Replace use of NULL_RTX with NULL.
9769 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
9770 from rtx to rtx_insn *.
9772 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9774 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
9777 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9779 * df.h (df_dump_insn_problem_function): Strengthen first param of
9780 this callback from const_rtx to const rtx_insn *.
9781 (struct df_insn_info): Strengthen field "insn" from rtx to
9783 (DF_REF_INSN): Eliminate this function, reinstating the older
9785 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
9786 (df_reg_defined): Likewise.
9787 (df_find_use): Likewise.
9788 (df_reg_used): Likewise.
9789 (df_dump_insn_top): Strengthen param 1 from const_rtx to
9791 (df_dump_insn_bottom): Likewise.
9792 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
9793 (df_insn_debug_regno): Likewise.
9794 (debug_df_insn): Likewise.
9795 (df_rd_simulate_one_insn): Likewise for param 2.
9796 (df_word_lr_simulate_defs): Likewise for param 1.
9797 (df_word_lr_simulate_uses): Likewise.
9798 (df_md_simulate_one_insn): Likewise for param 2.
9799 (df_simulate_find_noclobber_defs): Likewise for param 1.
9800 (df_simulate_find_defs): Likewise.
9801 (df_simulate_defs): Likewise.
9802 (df_simulate_uses): Likewise.
9803 (df_simulate_one_insn_backwards): Likewise for param 2.
9804 (df_simulate_one_insn_forwards): Likewise.
9805 (df_uses_create): Likewise for param 2.
9806 (df_insn_create_insn_record): Likewise for param 1.
9807 (df_insn_delete): Likewise.
9808 (df_insn_rescan): Likewise.
9809 (df_insn_rescan_debug_internal): Likewise.
9810 (df_insn_change_bb): Likewise.
9811 (df_notes_rescan): Likewise.
9812 * rtl.h (remove_death): Likewise for param 2.
9813 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
9815 * sched-int.h (reemit_notes): Strengthen param from rtx to
9817 * valtrack.h (propagate_for_debug): Likewise for param 1.
9819 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
9820 local "tmp_rtx" from const_rtx to const rtx_insn *.
9821 * combine.c (remove_death): Strengthen param "insn" from rtx to
9823 (move_deaths): Likewise for local "where_dead".
9824 * cse.c (delete_trivially_dead_insns): Introduce local
9825 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
9826 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
9828 (df_reg_defined): Likewise.
9829 (df_find_use): Likewise.
9830 (df_reg_used): Likewise.
9831 (df_dump_insn_problem_data): Strengthen param "insn" from
9832 const_rtx to const rtx_insn *.
9833 (df_dump_insn_top): Likewise.
9834 (df_dump_insn_bottom): Likewise.
9835 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
9836 (df_insn_debug_regno): Likewise.
9837 (debug_df_insn): Likewise.
9838 (DF_REF_INSN): Delete.
9839 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
9840 from rtx to rtx_insn *.
9841 (df_chain_insn_top_dump): Strengthen param "insn" from
9842 const_rtx to const rtx_insn *.
9843 (df_chain_insn_bottom_dump): Likewise.
9844 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
9846 (df_word_lr_simulate_uses): Likewise.
9847 (df_print_note): Likewise.
9848 (df_remove_dead_and_unused_notes): Likewise.
9849 (df_set_unused_notes_for_mw): Likewise.
9850 (df_set_dead_notes_for_mw): Likewise.
9851 (df_create_unused_note): Likewise.
9852 (df_simulate_find_defs): Likewise.
9853 (df_simulate_find_uses): Likewise.
9854 (df_simulate_find_noclobber_defs): Likewise.
9855 (df_simulate_defs): Likewise.
9856 (df_simulate_uses): Likewise.
9857 (df_simulate_one_insn_backwards): Likewise.
9858 (df_simulate_one_insn_forwards): Likewise.
9859 (df_md_simulate_one_insn): Likewise.
9860 * df-scan.c (df_uses_create): Likewise.
9861 (df_insn_create_insn_record): Likewise.
9862 (df_insn_delete): Likewise.
9863 (df_insn_rescan): Likewise.
9864 (df_insn_rescan_debug_internal): Likewise.
9865 (df_insn_change_bb): Likewise.
9866 (df_notes_rescan): Likewise.
9867 (df_refs_add_to_chains): Likewise.
9868 (df_insn_refs_verify): Likewise.
9869 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
9870 when invoking df_insn_delete.
9871 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
9872 (set_unique_reg_note): Add checked cast.
9873 * final.c (cleanup_subreg_operands): Likewise.
9874 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
9875 "insn" from rtx to rtx_insn *.
9876 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
9877 "last" from rtx to rtx_insn *.
9878 * ira-emit.c (change_regs_in_insn): New function.
9879 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
9880 Invoke change_regs_in_insn rather than change_regs.
9881 * ira.c (update_equiv_regs): Strengthen locals "insn",
9882 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
9883 for_each_rtx_in_insn rather than for_each_rtx.
9884 * recog.c (confirm_change_group): Add checked casts.
9885 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
9887 (peep2_fill_buffer): Add checked cast.
9888 * rtlanal.c (remove_note): Likewise.
9889 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
9890 locals "next" "end" from rtx to rtx_insn *.
9892 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9894 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
9896 (struct reg_use_data): Likewise for field "insn".
9897 (insn_cost): Likewise for param.
9898 (real_insn_for_shadow): Likewise for return type and param.
9899 (increase_insn_priority): Likewise for param 1.
9900 (debug_dependencies): Likewise for both params.
9902 * haifa-sched.c (insn_delay): Likewise for param "insn".
9903 (real_insn_for_shadow): Likewise for return type and param "insn".
9904 (update_insn_after_change): Likewise for param "insn".
9905 (recompute_todo_spec): Likewise for param "next" and locals "pro",
9907 (insn_cost): Likewise for param "insn".
9908 (increase_insn_priority): Likewise.
9909 (calculate_reg_deaths): Likewise.
9910 (setup_insn_reg_pressure_info): Likewise.
9911 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
9912 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
9913 (model_recompute): Likewise.
9914 (must_restore_pattern_p): Likewise for param "next".
9915 (model_excess_cost): Likewise for param "insn".
9916 (queue_remove): Likewise.
9917 (adjust_priority): Likewise for param "prev".
9918 (update_register_pressure): Likewise for param "insn".
9919 (setup_insn_max_reg_pressure): Likewise for local "insn".
9920 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
9921 (model_add_to_schedule): Likewise.
9922 (model_reset_queue_indices): Likewise for local "insn".
9923 (unschedule_insns_until): Strengthen local "recompute_vec" from
9924 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
9925 "con" from rtx to rtx_insn *.
9926 (restore_last_backtrack_point): Likewise for both locals "x". Add
9928 (estimate_insn_tick): Likewise for param "insn".
9929 (commit_schedule): Likewise for params "prev_head", "tail" and
9931 (verify_shadows): Likewise for locals "i1", "i2".
9932 (dump_insn_stream): Likewise for params "head", "tail" and locals
9933 "next_tail", "insn".
9934 (schedule_block): Likewise for locals "insn", "x". Add a checked
9936 (fix_inter_tick): Likewise for params "head", "tail".
9937 (create_check_block_twin): Likewise for local "jump".
9938 (haifa_change_pattern): Likewise for param "insn".
9939 (haifa_speculate_insn): Likewise.
9940 (dump_new_block_header): Likewise for params "head", "tail".
9941 (fix_jump_move): Likewise for param "jump".
9942 (move_block_after_check): Likewise.
9943 (sched_init_insn_luid): Likewise for param "insn".
9944 (sched_init_luids): Likewise for local "insn".
9945 (insn_luid): Likewise for param "insn".
9946 (init_h_i_d): Likewise.
9947 (haifa_init_h_i_d): Likewise for local "insn".
9948 (haifa_init_insn): Likewise for param "insn".
9949 * sched-deps.c (add_dependence): Likewise for local "real_pro",
9951 (create_insn_reg_use): Likewise for param "insn".
9952 (setup_insn_reg_uses): Likewise. Add a checked cast.
9953 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
9954 "tail" from rtx to rtx_insn *.
9955 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
9956 "insn", "next_tail".
9958 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9960 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
9961 from rtx to rtx_insn *.
9962 (model_add_to_schedule): Likewise for locals "start", "end",
9965 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9967 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
9969 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
9970 "to" and locals "insn", "next", "copy". Remove now-redundant
9973 2014-08-26 David Malcolm <dmalcolm@redhat.com>
9975 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
9976 rtx_insn * and param 4 from rtx * to rtx_insn **.
9977 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
9978 param 2 from rtx * to rtx_insn **.
9980 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
9981 rtx_insn * and final param from rtx * to rtx_insn **.
9983 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
9984 from rtx to rtx_insn *.
9985 (try_head_merge_bb): Likewise for both locals named "move_upto".
9986 * df-problems.c (can_move_insns_across): Likewise for params
9987 "from", "to", "across_from", "across_to" and locals "insn",
9988 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
9990 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
9991 from rtx to rtx_insn *.
9992 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
9993 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
9994 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
9996 (noce_try_abs): Likewise.
9997 (noce_get_condition): Likewise for param "jump". Strengthen param
9998 "earliest" from rtx * to rtx_insn **.
9999 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10001 (find_cond_trap): Likewise.
10002 (dead_or_predicable): Likewise for local "earliest".
10003 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
10005 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10006 and local "prev". Strengthen param "earliest" from rtx * to
10008 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10009 Strengthen param "earliest" from rtx * to rtx_insn **.
10011 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10013 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10014 "to" and local "insn" from rtx to rtx_insn *.
10016 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10018 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10019 from rtx to rtx_insn *.
10020 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10021 (code_motion_path_driver): Likewise for local "last_insn".
10022 (simplify_changed_insns): Likewise for local "insn".
10024 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10026 * rtl.h (push_to_sequence): Strengthen param from rtx to
10028 (push_to_sequence2): Likewise for both params.
10029 (delete_insns_since): Likewise for param.
10030 (reorder_insns_nobb): Likewise for all three params.
10031 (set_new_first_and_last_insn): Likewise for both params.
10033 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10034 rtx_insn *. Remove now-redundant cast.
10035 (set_last_insn): Likewise.
10037 * builtins.c (expand_builtin_return): Strengthen local
10038 "call_fusage" from rtx to rtx_insn *.
10039 * cfgrtl.c (create_basic_block_structure): Likewise for local
10041 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10042 "first", "last" and local "insn".
10043 (delete_insns_since): Likewise for param "from".
10044 (reorder_insns_nobb): Likewise for params "from", "to", "after"
10046 (push_to_sequence): Likewise for param "first" and local "last".
10047 (push_to_sequence2): Likewise for params "first" and "last".
10048 * lra.c (emit_add3_insn): Likewise for local "last".
10049 (lra_emit_add): Likewise.
10050 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10052 (process_address_1): Likewise for locals "insn", last".
10053 * modulo-sched.c (ps_first_note): Likewise for return type.
10054 * optabs.c (expand_binop_directly): Likewise for param "last".
10056 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10058 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10060 * emit-rtl.c (get_last_insn_anywhere): Likewise.
10062 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10064 * function.h (struct sequence_stack): Strengthen fields "first"
10065 and "last" from rtx to rtx_insn *.
10066 (struct emit_status): Likewise for fields "x_first_insn" and
10069 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10070 (set_first_insn): Add checked cast.
10071 (get_last_insn): Remove now-redundant checked cast.
10072 (set_last_insn): Add checked cast.
10074 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10075 "saved_first" and "saved_last" from rtx to rtx_insn *.
10077 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10079 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10080 (unlink_insn_chain): Strengthen both params from rtx to
10083 * cfgrtl.c (cfg_layout_function_header): Likewise for this
10085 (unlink_insn_chain): Likewise for params "first" and "last".
10086 Remove now-redundant checked cast.
10087 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10088 (fixup_reorder_chain): Strengthen local "insn" from rtx to
10090 * emit-rtl.c (link_insn_into_chain): Likewise for all three
10092 (add_insn): Likewise for param "insn" and local "prev".
10093 (add_insn_after_nobb): Likewise for both params and local "next".
10094 (add_insn_before_nobb): Likewise for both params and local "prev".
10095 (add_insn_after): Rename param "after" to "uncast_after",
10096 introducing local "after" with another checked cast.
10097 (add_insn_before): Rename params "insn" and "before", giving them
10098 "uncast_" prefixes, adding the old names back using checked casts.
10099 (emit_note_after): Likewise for param "after".
10100 (emit_note_before): Likewise for param "before".
10101 (emit_label): Add a checked cast.
10103 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10105 * cselib.h (cselib_record_sets_hook): Strengthen initial param
10106 "insn" from rtx to rtx_insn *.
10108 * cselib.c (cselib_record_sets_hook): Likewise.
10110 * var-tracking.c (add_with_sets): Likewise, renaming back from
10111 "uncast_insn" to "insn" and eliminating the checked cast from rtx
10114 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10116 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10117 and "header_" from rtx to rtx_insn *.
10118 (struct basic_block_d): Likewise for field "head_" within "x"
10119 field of union basic_block_il_dependent.
10120 (BB_HEAD): Drop function...
10121 (SET_BB_HEAD): ...and this function in favor of...
10122 (BB_HEAD): ...reinstate macro.
10123 (BB_END): Drop function...
10124 (SET_BB_END): ...and this function in favor of...
10125 (BB_END): ...reinstate macro.
10126 (BB_HEADER): Drop function...
10127 (SET_BB_HEADER): ...and this function in favor of...
10128 (BB_HEADER): ...reinstate macro.
10130 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10131 (fix_crossing_unconditional_branches): Likewise.
10132 * caller-save.c (save_call_clobbered_regs): Likewise.
10133 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10134 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10135 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10136 (merge_blocks_move_successor_nojumps): Likewise.
10137 (outgoing_edges_match): Update use of for_each_rtx to
10138 for_each_rtx_in_insn.
10139 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10140 (expand_gimple_cond): Likewise.
10141 (expand_gimple_tailcall): Likewise.
10142 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10144 (construct_exit_block): Drop use of SET_BB_END.
10145 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10147 (delete_insn): Rename param "insn" to "uncast_insn", introducing
10148 a new local "insn" with a checked cast to rtx_insn *. Drop use of
10149 SET_BB_HEAD and SET_BB_END.
10150 (create_basic_block_structure): Drop use of SET_BB_HEAD and
10152 (rtl_delete_block): Drop use of SET_BB_HEAD.
10153 (rtl_split_block): Drop use of SET_BB_END.
10154 (emit_nop_for_unique_locus_between): Likewise.
10155 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10156 (block_label): Drop use of SET_BB_HEAD.
10157 (fixup_abnormal_edges): Drop use of SET_BB_END.
10158 (record_effective_endpoints): Drop use of SET_BB_HEADER.
10159 (relink_block_chain): Likewise.
10160 (fixup_reorder_chain): Drop use of SET_BB_END.
10161 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10162 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10163 rtx_insn **. Drop use of SET_BB_HEADER.
10164 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10166 (BB_HEAD): Delete this function.
10167 (SET_BB_HEAD): Likewise.
10168 (BB_END): Likewise.
10169 (SET_BB_END): Likewise.
10170 (BB_HEADER): Likewise.
10171 (SET_BB_HEADER): Likewise.
10172 * emit-rtl.c (add_insn_after): Rename param "insn" to
10173 "uncast_insn", adding a new local "insn" and a checked cast to
10174 rtx_insn *. Drop use of SET_BB_END.
10175 (remove_insn): Strengthen locals "next" and "prev" from rtx to
10176 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
10177 (reorder_insns): Drop use of SET_BB_END.
10178 (emit_insn_after_1): Strengthen param "first" and locals "last",
10179 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
10180 (emit_pattern_after_noloc): Add checked cast.
10181 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10182 (restore_other_notes): Likewise.
10183 (move_insn): Likewise.
10184 (sched_extend_bb): Likewise.
10185 (fix_jump_move): Likewise.
10186 * ifcvt.c (noce_process_if_block): Likewise.
10187 (dead_or_predicable): Likewise.
10188 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10189 * reg-stack.c (change_stack): Drop use of SET_BB_END.
10190 * sel-sched-ir.c (sel_move_insn): Likewise.
10191 * sel-sched.c (move_nop_to_previous_block): Likewise.
10193 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10195 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10197 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10199 * basic-block.h (create_basic_block_structure): Strengthen params
10200 1 "head" and 2 "end" from rtx to rtx_insn *.
10201 * cfgrtl.c (create_basic_block_structure): Likewise.
10202 (rtl_create_basic_block): Update casts from void * to rtx to
10203 rtx_insn *, so that we can pass them as rtx_insn * to
10204 create_basic_block_structure.
10205 * sel-sched-ir.c (sel_create_basic_block): Likewise.
10207 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10209 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10211 (check_for_inc_dec): Strengthen param "insn" from rtx to
10214 * cselib.h (cselib_process_insn): Likewise.
10216 * cselib.c (cselib_record_sets): Likewise.
10217 (cselib_process_insn): Likewise.
10219 * dse.c (struct insn_info): Likewise for field "insn".
10220 (check_for_inc_dec_1): Likewise for local "insn".
10221 (check_for_inc_dec): Likewise for param "insn".
10222 (scan_insn): Likewise.
10223 (dse_step1): Likewise for local "insn".
10225 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10226 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
10228 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10230 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10231 from rtx to rtx_insn *.
10232 (DEP_PRO): Delete this function and...
10233 (SET_DEP_PRO): ...this function in favor of...
10234 (DEP_PRO): ...reinstate this macro.
10235 (DEP_CON): Delete this function and...
10236 (SET_DEP_CON): ...this function in favor of...
10237 (DEP_CON): ...reinstate this old macro.
10238 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10239 (init_dep): Likewise.
10240 (set_priorities): Likewise for both params.
10241 (sd_copy_back_deps): Likewise for params 1 and 2.
10243 * haifa-sched.c (priority): Likewise for param "insn" and local
10245 (set_priorities): Likewise for params "head" and "tail" and local
10247 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10249 (add_to_speculative_block): Add a checked cast.
10250 (create_check_block_twin): Drop use of SET_DEP_CON.
10251 (add_jump_dependencies): Strengthen params "insn" and "jump" from
10254 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10255 Drop use of SET_DEP_PRO
10256 (init_dep): Strengthen params "pro" and "con" from rtx to
10258 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
10259 use of SET_DEP_CON.
10262 (SET_DEP_PRO): Delete.
10263 (SET_DEP_CON): Delete.
10265 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10267 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10268 from rtx to rtx_insn *.
10269 (VINSN_INSN_RTX): Eliminate rvalue function and...
10270 (SET_VINSN_INSN): ...lvalue function in favor of...
10271 (VINSN_INSN_RTX): reinstate this old macro.
10273 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10274 in favor of VINSN_INSN_RTX.
10275 (VINSN_INSN_RTX): Delete this function.
10276 (SET_VINSN_INSN_RTX): Likewise.
10278 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10280 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10281 (BND_TO): Delete this function and...
10282 (SET_BND_TO): ...this functions in favor of...
10283 (BND_TO): ...reinstating this macro.
10284 (struct _fence): Strengthen field "executing_insns" from
10285 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
10286 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10287 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10288 and param "insn" from rtx to insn_t.
10289 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10292 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10294 (rtx_vec_t): Likewise.
10295 (struct sched_deps_info_def): Strengthen param of "start_insn"
10296 callback from rtx to rtx_insn *. Likewise for param "insn2" of
10297 "note_mem_dep" callback and first param of "note_dep" callback.
10299 * haifa-sched.c (add_to_speculative_block): Strengthen param
10300 "insn" from rtx to rtx_insn *.
10301 (clear_priorities): Likewise.
10302 (calc_priorities): Likewise for local "insn".
10304 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10305 Remove redundant checked cast.
10306 (haifa_note_mem_dep): Likewise for param "pending_insn".
10307 (haifa_note_dep): Likewise for param "elem".
10308 (note_mem_dep): Likewise for param "e".
10309 (sched_analyze_1): Add checked casts.
10310 (sched_analyze_2): Likewise.
10312 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10313 from rtx to rtx_insn *.
10314 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10315 from vec<rtx> * to vec<rtx_insn *> *.
10317 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10319 (flist_add): Strengthen param "executing_insns" from
10320 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10321 (advance_deps_context): Remove now-redundant checked cast.
10322 (init_fences): Replace uses of NULL_RTX with NULL.
10323 (merge_fences): Strengthen params "last_scheduled_insn" and
10324 "sched_next" from rtx to rtx_insn * and "executing_insns" from
10325 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10326 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10327 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10328 an instruction, rather than doing double-duty as a pattern.
10329 (return_nop_to_pool): Update for change of insn_t.
10330 (deps_init_id): Remove now-redundant checked cast.
10331 (struct sched_scan_info_def): Strengthen param of "init_insn"
10332 callback from rtx to insn_t.
10333 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10334 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10336 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10337 "end" from rtx to rtx_insn *.
10338 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10339 (rtx insn_rtx, bool force_unique_p)
10340 (BND_TO): Delete function.
10341 (SET_BND_TO): Delete function.
10343 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10345 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10346 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10348 (undo_transformations): Likewise for param "insn".
10349 (update_liveness_on_insn): Likewise.
10350 (compute_live_below_insn): Likewise for param "insn" and local
10352 (update_data_sets): Likewise for param "insn".
10353 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10354 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10355 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10357 (move_cond_jump): Likewise for param "insn".
10358 (move_cond_jump): Drop use of SET_BND_TO.
10359 (compute_av_set_on_boundaries): Likewise.
10360 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10361 (update_and_record_unavailable_insns): Strengthen local "bb_end"
10362 from rtx to rtx_insn *.
10363 (maybe_emit_renaming_copy): Likewise for param "insn".
10364 (maybe_emit_speculative_check): Likewise.
10365 (handle_emitting_transformations): Likewise.
10366 (remove_insn_from_stream): Likewise.
10367 (code_motion_process_successors): Strengthen local "succ" from rtx
10370 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10372 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10373 ilist_t, not _xlist_t;
10374 (ILIST_INSN): Define in terms of new union field "insn".
10375 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10377 (struct _list_node): Add new field "insn" to the union, of type
10379 (ilist_add): Replace macro with an inline function, requiring an
10381 (ilist_remove): Define this macro directly in terms of
10382 _list_remove, rather than indirectly via _xlist_remove.
10383 (ilist_clear): Likewise, in terms of _list_clear rather than
10385 (ilist_is_in_p): Replace macro with an inline function, requiring
10387 (_list_iter_cond_insn): New function.
10388 (ilist_iter_remove): Define this macro directly in terms of
10389 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10390 (ilist_iterator): Define directly in terms of _list_iterator
10391 rather than indirectly through _xlist_iterator.
10392 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
10393 than in terms of _FOR_EACH_X.
10394 (FOR_EACH_INSN_1): Likewise.
10396 2014-08-26 Joseph Myers <joseph@codesourcery.com>
10400 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
10401 DECL_HARD_REGISTER and return for invalid register specifications.
10402 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
10403 DECL_HARD_REGISTER, call expand_one_error_var.
10404 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
10405 CC_REGNUM with non-MODE_CC modes.
10406 (arm_regno_class): Return NO_REGS for PC_REGNUM.
10408 2014-08-26 Marek Polacek <polacek@redhat.com>
10411 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
10413 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
10415 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
10416 qi cost; add di cost.
10417 (cortexa57_addrcost_table): Likewise.
10419 2014-08-26 Marek Polacek <polacek@redhat.com>
10422 * expr.c (is_aligning_offset): Remove logical not.
10424 2014-08-26 Marek Polacek <polacek@redhat.com>
10427 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
10428 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
10430 2014-08-26 Richard Biener <rguenther@suse.de>
10432 PR tree-optimization/62175
10433 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10434 expand possibly trapping operations.
10436 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10438 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
10439 "insn" from rtx to rtx_insn *.
10440 (permute_load): Likewise for param "insn".
10441 (permute_store): Likewise.
10442 (handle_special_swappables): Likewise for local "insn".
10443 (replace_swap_with_copy): Likewise for locals "insn" and
10445 (rs6000_analyze_swaps): Likewise for local "insn".
10447 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10449 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
10452 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10454 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
10455 "note_list" from rtx to rtx_insn *.
10456 (BB_NOTE_LIST): Replace this function and...
10457 (SET_BB_NOTE_LIST): ...this function with...
10458 (BB_NOTE_LIST): ...the former macro implementation.
10460 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
10461 local "from_start" from rtx to rtx_insn *. Strengthen param
10462 "to_endp" from rtx * to rtx_insn **.
10464 * haifa-sched.c (concat_note_lists): Likewise.
10465 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
10467 (sel_restore_notes): Likewise.
10468 (move_bb_info): Likewise.
10469 (BB_NOTE_LIST): Delete this function.
10470 (SET_BB_NOTE_LIST): Delete this function.
10471 * sel-sched.c (create_block_for_bookkeeping): Eliminate
10472 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
10474 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10476 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
10477 from rtx * to rtx_insn **.
10478 (reorder2): Likewise.
10479 (dependencies_evaluation_hook): Strengthen params "head", "tail"
10480 from rtx to rtx_insn *.
10482 * doc/tm.texi: Update mechanically for above change to target.def.
10484 * sched-int.h (note_list): Strengthen this variable from rtx to
10486 (remove_notes): Likewise for both params.
10487 (restore_other_notes): Likewise for return type and first param.
10488 (struct ready_list): Strengthen field "vec" from rtx * to
10490 (struct dep_replacement): Strenghten field "insn" from rtx to
10492 (struct deps_desc): Likewise for fields "last_debug_insn",
10494 (struct haifa_sched_info): Likewise for callback field
10495 "can_schedule_ready_p"'s param, for first param of "new_ready"
10496 callback field, for both params of "rank" callback field, for
10497 first field of "print_insn" callback field (with a const), for
10498 both params of "contributes_to_priority" callback, for param
10499 of "insn_finishes_block_p" callback, for fields "prev_head",
10500 "next_tail", "head", "tail", for first param of "add_remove_insn"
10501 callback, for first param of "begin_schedule_ready" callback, for
10502 both params of "begin_move_insn" callback, and for second param
10503 of "advance_target_bb" callback.
10504 (add_dependence): Likewise for params 1 and 2.
10505 (sched_analyze): Likewise for params 2 and 3.
10506 (deps_analyze_insn): Likewise for param 2.
10507 (ready_element): Likewise for return type.
10508 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10509 (try_ready): Strenghten param from rtx to rtx_insn *.
10510 (sched_emit_insn): Likewise for return type.
10511 (record_delay_slot_pair): Likewise for params 1 and 2.
10512 (add_delay_dependencies): Likewise for param.
10513 (contributes_to_priority): Likewise for both params.
10514 (find_modifiable_mems): Likewise.
10516 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
10517 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
10518 "first_older_only_insn" from rtx to rtx_insn *.
10519 (arm_sched_reorder): Strengthen param "ready" from rtx * to
10522 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
10523 "last_scheduled_iter0" from rtx to rtx_insn *.
10524 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
10525 (c6x_sched_reorder_1): Strengthen param "ready" and locals
10526 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
10527 "insn" from rtx to rtx_insn *.
10528 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
10530 (c6x_sched_reorder2): Strengthen param "ready" and locals
10531 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
10532 "insn" from rtx to rtx_insn *.
10533 (c6x_variable_issue): Add a checked cast when assigning from insn
10534 to ss.last_scheduled_iter0.
10535 (split_delayed_branch): Strengthen param "insn" and local "i1"
10536 from rtx to rtx_insn *.
10537 (split_delayed_nonbranch): Likewise.
10538 (undo_split_delayed_nonbranch): Likewise for local "insn".
10539 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
10540 "entry_after", "end_packet", "head_insn", "tail_insn",
10541 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
10542 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
10543 to rtx_insn **. Remove now-redundant checked cast on last_insn,
10544 but add a checked cast on loop->start_label. Consolidate calls to
10545 avoid assigning result of gen_spkernel to "insn", now an
10548 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
10549 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
10551 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
10552 rtx_insn **. Strengthen locals "top", "next" from rtx to
10554 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
10555 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
10556 (add_parameter_dependencies): Strengthen params "call", "head" and
10557 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
10558 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
10559 (add_dependee_for_func_arg): Likewise for param "arg" and local
10561 (ix86_dependencies_evaluation_hook): Likewise for params "head",
10562 "tail" and locals "insn", "first_arg".
10564 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
10565 for params "head", "tail" and locals "insn", "next", "next_tail".
10566 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
10567 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
10568 "insn", "lowest", "highest" from rtx to rtx_insn *.
10569 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
10571 (ia64_sched_reorder2): Likewise.
10573 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
10574 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
10575 from rtx * to rtx_insn **.
10576 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
10578 (mep_print_sched_insn): Strengthen param "insn" from rtx to
10580 (mep_sched_reorder): Strengthen param "ready" from rtx * to
10581 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
10584 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
10585 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
10587 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
10588 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
10589 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
10591 (vr4130_reorder): Likewise.
10592 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
10594 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
10596 (mips_sched_reorder): Likewise.
10597 (mips_sched_reorder2): Likewise.
10599 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
10601 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
10602 Strengthen local "tmp" from rtx to rtx_insn *.
10603 (rs6000_sched_reorder2): Likewise.
10605 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
10606 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
10607 (s390_sched_reorder): Strengthen param "ready" from rtx * to
10608 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
10610 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
10611 "tmp2" from rtx to rtx_insn *.
10612 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
10613 Strengthen local "insn" from rtx to rtx_insn *.
10614 (ready_reorder): Strengthen param "ready" from rtx * to
10615 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
10616 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
10617 (sh_reorder2): Likewise.
10619 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
10620 local "insn" from rtx to rtx_insn *.
10622 * haifa-sched.c (note_list): Strengthen this variable from rtx to
10624 (scheduled_insns): Strengthen this variable from vec<rtx> to
10626 (set_modulo_params): Likewise for locals "i1", "i2".
10627 (record_delay_slot_pair): Likewise for params "i1", "i2".
10628 (add_delay_dependencies): Likewise for param "insn".
10629 (cond_clobbered_p): Likewise.
10630 (recompute_todo_spec): Likewise for local "prev".
10631 (last_scheduled_insn): Likewise for this variable.
10632 (nonscheduled_insns_begin): Likewise.
10633 (model_set_excess_costs): Strengthen param "insns" from rtx * to
10635 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
10637 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
10638 Strengthen local "insn" from rtx to rtx_insn *.
10639 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
10640 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10641 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
10642 (ready_remove_first): Likewise for return type and local "t".
10643 (ready_element): Likewise for return type.
10644 (ready_remove): Likewise for return type and local "t".
10645 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
10646 (check_clobbered_conditions): Strengthen local "x" from rtx to
10647 rtx_insn *, adding a checked cast.
10648 (schedule_insn): Likewise for param "insn".
10649 (remove_notes): Likewise for params "head", "tail" and locals
10650 "next_tail", "insn", "next".
10651 (struct haifa_saved_data): Likewise for fields
10652 "last_scheduled_insn", "nonscheduled_insns_begin".
10653 (save_backtrack_point): Update for change to field "vec" of
10655 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
10657 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
10658 from rtx to rtx_insn *
10659 (resolve_dependencies): Strengthen param "insn" from rtx to
10661 (restore_other_notes): Likewise for return type, for param "head"
10662 and local "note_head".
10663 (undo_all_replacements): Likewise for local "insn".
10664 (first_nonscheduled_insn): Likewise for return type and local "insn".
10665 (queue_to_ready): Likewise for local "insn", adding checked casts.
10666 (early_queue_to_ready): Likewise for local "insn".
10667 (debug_ready_list_1): Strengthen local "p" from rtx * to
10669 (move_insn): Strengthen param "insn" and local "note" from rtx to
10671 (insn_finishes_cycle_p): Likewise for param "insn".
10672 (max_issue): Likewise for local "insn".
10673 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
10675 (commit_schedule): Strengthen param "prev_head" and local "insn"
10676 from rtx to rtx_insn *
10677 (prune_ready_list): Likewise for local "insn".
10678 (schedule_block): Likewise for locals "prev_head", "head", "tail",
10679 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
10680 (set_priorities): Likewise for local "prev_head".
10681 (try_ready): Likewise for param "next".
10682 (fix_tick_ready): Likewise.
10683 (change_queue_index): Likewise.
10684 (sched_extend_ready_list): Update for change to field "vec" of
10686 (generate_recovery_code): Strengthen param "insn" from rtx to
10688 (begin_speculative_block): Likewise.
10689 (create_check_block_twin): Likewise for param "insn" and locals
10690 "label", "check", "twin". Introduce local "check_pat" to avoid
10691 "check" being used as a plain rtx before being used as an insn.
10692 (fix_recovery_deps): Add a checked cast to rtx_insn * when
10693 extracting elements from ready_list.
10694 (sched_remove_insn): Strengthen param "insn" from rtx to
10696 (sched_emit_insn): Likewise for return type.
10697 (ready_remove_first_dispatch): Likewise for return type and local
10700 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
10702 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
10705 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
10706 from rtx to rtx_insn *.
10707 (add_dependence_list): Likewise for param "insn". Add a checked
10709 (add_dependence_list_and_free): Strengthen param "insn" from rtx
10710 to rtx_insn *. Strengthen param "list_p" from rtx * to
10712 (chain_to_prev_insn): Strengthen param "insn" and locals
10713 "prec_nonnote", "i" from rtx to rtx_insn *.
10714 (flush_pending_lists): Likewise for param "insn".
10715 (cur_insn): Likewise for this variable.
10716 (haifa_start_insn): Add a checked cast.
10717 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
10718 (sched_analyze_reg): Likewise for param "insn".
10719 (sched_analyze_1): Likewise.
10720 (sched_analyze_2): Likewise. Add checked casts.
10721 (sched_analyze_insn): Likewise. Also for local "prev".
10722 (deps_analyze_insn): Likewise for param "insn".
10723 (sched_analyze): Likewise for params "head", "tail" and local "insn".
10724 (add_dependence_1): Likewise for params "insn", "elem".
10725 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
10726 (parse_add_or_inc): Likewise for param "insn".
10727 (find_inc): Likewise for local "inc_cand".
10728 (find_modifiable_mems): Likewise for params "head", "tail" and
10729 locals "insn", "next_tail".
10731 * sched-ebb.c (init_ready_list): Likewise for local "insn".
10732 (begin_schedule_ready): Likewise for param "insn".
10733 (begin_move_insn): Likewise for params "insn" and "last".
10734 (ebb_print_insn): Strengthen param "insn" from const_rtx to
10736 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
10737 (ebb_contributes_to_priority): Likewise for params "next", "insn".
10738 (ebb_add_remove_insn): Likewise for param "insn".
10739 (advance_target_bb): Likewise.
10741 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
10743 (check_live): Likewise for param "insn".
10744 (init_ready_list): Likewise for local "insn".
10745 (can_schedule_ready_p): Likewise for param "insn".
10746 (begin_schedule_ready): Likewise.
10747 (new_ready): Likewise for param "next".
10748 (rgn_print_insn): Likewise for param "insn".
10749 (rgn_rank): Likewise for params "insn1", "insn2".
10750 (contributes_to_priority): Likewise for params "next", "insn".
10751 (rgn_insn_finishes_block_p): Likewise for param "insn".
10752 (add_branch_dependences): Likewise for params "head", "tail" and
10753 locals "insn", "last".
10754 (rgn_add_remove_insn): Likewise for param "insn".
10755 (advance_target_bb): Likewise.
10757 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
10758 const_rtx to const rtx_insn *.
10760 * sel-sched-dump.h (sel_print_insn): Likewise.
10762 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
10763 (deps_init_id): Likewise.
10765 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
10766 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
10769 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10771 * output.h (final_start_function): Strengthen param 1 from rtx to
10774 * final.c (final_start_function): Likewise, renaming back from
10775 "uncast_first" to "first", and dropping the checked cast from rtx
10778 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10780 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
10781 * final.c (final): Likewise. Rename param back from
10782 "uncast_first" to "first" and eliminate the checked cast from rtx
10785 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10787 * output.h (shorten_branches): Strengthen param from rtx to
10790 * final.c (shorten_branches): Likewise, renaming param back from
10791 "uncast_first" to "first", and dropping the checked cast from rtx
10794 * genattr.c (gen_attr): Likewise when writing out the prototype of
10797 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10799 * sched-int.h (struct haifa_sched_info): Strengthen fields
10800 "prev_head" and "next_tail" from rtx to rtx_insn *.
10802 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10804 * rtl.h (rtx_jump_table_data::get_labels): New method.
10805 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
10806 with use of the new rtx_jump_table_data::get_labels method.
10807 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
10808 to rtx_jump_table_data *. Simplify by using get_labels method.
10809 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
10810 a dyn_cast, introducing local "table", using it to replace
10811 label-lookup logic with a get_labels method call.
10812 (patch_jump_insn): Simplify using get_labels method.
10813 * dwarf2cfi.c (create_trace_edges): Likewise.
10814 * rtlanal.c (label_is_jump_target_p): Likewise.
10816 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10818 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
10821 * emit-rtl.c (unshare_all_rtl_1): Likewise.
10822 (unshare_all_rtl_again): Likewise, also for local "p".
10824 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10826 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
10828 * cfgrtl.c (delete_insn_and_edges): Likewise.
10830 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10832 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
10833 from rtx to rtx_insn *.
10835 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
10837 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10839 * function.c (thread_prologue_and_epilogue_insns): Likewise for
10840 locals "returnjump", "epilogue_end", "insn", "next".
10842 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
10843 "returnjump" from rtx * to rtx_insn **.
10844 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
10846 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10848 * basic-block.h (struct edge_def). Strengthen "r" within
10849 union edge_def_insns from rtx to rtx_insn *.
10851 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
10852 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
10854 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
10855 from rtx to rtx_insn *.
10856 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
10858 * postreload-gcse.c (reg_killed_on_edge): Likewise.
10859 (reg_used_on_edge): Likewise.
10860 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
10861 (gt_pch_nx): New overload for rtx_insn *&.
10862 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
10863 from rtx to rtx_insn *.
10865 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10867 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
10868 from rtx to rtx_insn *.
10869 (BB_FOOTER): Replace function with access macro.
10870 (SET_BB_FOOTER): Delete.
10872 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
10874 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10875 (emit_barrier_after_bb): Likewise.
10876 (record_effective_endpoints): Likewise.
10877 (relink_block_chain): Likewise.
10878 (fixup_fallthru_exit_predecessor): Likewise.
10879 (cfg_layout_duplicate_bb): Likewise.
10880 (cfg_layout_split_block): Likewise.
10881 (cfg_layout_delete_block): Likewise.
10882 (cfg_layout_merge_blocks): Likewise.
10883 (BB_FOOTER): Delete function.
10884 (SET_BB_FOOTER): Delete function.
10885 * combine.c (update_cfg_for_uncondjump): Replace uses of
10886 SET_BB_FOOTER with BB_FOOTER.
10888 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10890 * except.h (struct eh_landing_pad_d): Strengthen field
10891 "landing_pad" from rtx to rtx_code_label *.
10893 * except.c (sjlj_emit_dispatch_table): Likewise for param
10895 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
10897 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10899 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
10900 first param from rtx to rtx_insn *.
10901 * config/xtensa/xtensa.c (struct machine_function): Likewise for
10902 field "set_frame_ptr_insn".
10903 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
10904 "csend" from rtx to rtx_code_label *.
10905 (xtensa_expand_atomic): Likewise for local "csloop".
10906 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
10908 (xtensa_call_tls_desc): Likewise for return type and locals
10909 "call_insn", "insns".
10910 (xtensa_legitimize_tls_address): Likewise for local "insns".
10911 (xtensa_expand_prologue): Likewise for locals "insn", "first".
10913 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10915 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
10916 first param from rtx to rtx_insn *.
10917 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
10920 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10922 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
10923 Strengthen param 1 from rtx to rtx_insn *.
10924 (tilepro_output_cbranch): Likewise.
10925 (tilepro_adjust_insn_length): Likewise.
10926 (tilepro_final_prescan_insn): Likewise for sole param.
10928 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
10929 Likewise for local "last".
10930 (cbranch_predicted_p): Likewise for param "insn".
10931 (tilepro_output_simple_cbranch_with_opcode): Likewise.
10932 (tilepro_output_cbranch_with_opcode): Likewise.
10933 (tilepro_output_cbranch): Likewise.
10934 (frame_emit_load): Likewise for return type and locals "seq",
10936 (emit_sp_adjust): Likewise for return type and local "insn".
10937 (tilepro_expand_epilogue): Likewise for locals "last_insn",
10939 (tilepro_adjust_insn_length): Likewise for param "insn".
10940 (next_insn_to_bundle): Likewise for return type and params
10942 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
10943 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
10945 (match_addli_pcrel): Likewise for param "insn".
10946 (replace_addli_pcrel): Likewise.
10947 (match_auli_pcrel): Likewise.
10948 (replace_auli_pcrel): Likewise.
10949 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
10951 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10952 "queue", "next_queue", "prev".
10953 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
10954 (tilepro_final_prescan_insn): Likewise for param "insn".
10956 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10958 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
10959 Strengthen param 1 from rtx to rtx_insn *.
10960 (tilegx_output_cbranch): Likewise.
10961 (tilegx_adjust_insn_length): Likewise.
10962 (tilegx_final_prescan_insn): Likewise for sole param.
10964 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
10966 (cbranch_predicted_p): Likewise for param "insn".
10967 (tilegx_output_simple_cbranch_with_opcode): Likewise.
10968 (tilegx_output_cbranch_with_opcode): Likewise.
10969 (tilegx_output_cbranch): Likewise.
10970 (frame_emit_load): Likewise for return type.
10971 (set_frame_related_p): Likewise for locals "seq", "insn".
10972 (emit_sp_adjust): Likewise for return type, and for local "insn".
10973 Introduce local "pat" for use in place of "insn" where the latter
10974 isn't an instruction.
10975 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
10976 from rtx to rtx_insn *.
10977 (tilegx_adjust_insn_length): Likewise for param "insn".
10978 (next_insn_to_bundle): Likewise for return type and params "r" and
10980 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
10982 (replace_insns): Likewise for params "old_insn", "new_insns".
10983 (replace_mov_pcrel_step1): Likewise for param "insn" and local
10985 (replace_mov_pcrel_step2): Likewise.
10986 (replace_mov_pcrel_step3): Likewise.
10987 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
10989 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10990 "queue", "next_queue", "prev".
10991 (tilegx_output_mi_thunk): Likewise for local "insn".
10992 (tilegx_final_prescan_insn): Likewise for param "insn".
10994 2014-08-25 David Malcolm <dmalcolm@redhat.com>
10996 * config/spu/spu.c (frame_emit_store): Strengthen return type from
10998 (frame_emit_load): Likewise.
10999 (frame_emit_add_imm): Likewise, also for local "insn".
11000 (spu_expand_prologue): Likewise for local "insn".
11001 (struct spu_bb_info): Likewise for field "prop_jump".
11002 (emit_nop_for_insn): Likewise for param "insn" and local
11004 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11006 (spu_emit_branch_hint): Likewise for params "before", "branch" and
11007 locals "hint", "insn".
11008 (get_branch_target): Likewise for param "branch".
11009 (insn_clobbers_hbr): Likewise for param "insn".
11010 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11011 locals "insn", "before_4", "before_16".
11012 (insert_hbrp): Likewise for local "insn".
11013 (spu_machine_dependent_reorg): Likewise for locals "branch",
11014 "insn", "next", "bbend".
11015 (uses_ls_unit): Likewise for param "insn".
11016 (get_pipe): Likewise.
11017 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11018 introducing a checked cast.
11019 (spu_sched_adjust_cost): Likewise for params "insn" and
11021 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11022 (spu_sms_res_mii): Likewise.
11024 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11026 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11027 from rtx to rtx_insn *.
11028 (output_cbranch): Likewise for param 6.
11029 (output_return): Likewise for param 1.
11030 (output_sibcall): Likewise.
11031 (output_v8plus_shift): Likewise.
11032 (output_v8plus_mult): Likewise.
11033 (output_v9branch): Likewise for param 7.
11034 (output_cbcond): Likewise for param 3.
11036 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11038 (sparc_legitimize_pic_address): Likewise.
11039 (sparc_emit_call_insn): Likewise.
11040 (emit_save_or_restore_regs): Likewise.
11041 (emit_window_save): Likewise for return type and local "insn".
11042 (sparc_expand_prologue): Likewise for local "insn".
11043 (sparc_flat_expand_prologue): Likewise.
11044 (output_return): Likewise for param "insn".
11045 (output_sibcall): Likewise for param "insn" and local "delay".
11046 (output_ubranch): Likewise for param "insn".
11047 (output_cbranch): Likewise.
11048 (output_cbcond): Likewise.
11049 (output_v9branch): Likewise.
11050 (output_v8plus_shift): Likewise.
11051 (sparc_output_mi_thunk): Likewise for local "insn".
11052 (get_some_local_dynamic_name): Likewise.
11053 (output_v8plus_mult): Likewise for param "insn".
11055 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11057 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11058 from rtx to rtx_insn *.
11059 (output_branchy_insn): Likewise for param 3.
11060 (output_far_jump): Likewise for param 1.
11061 (final_prescan_insn): Likewise.
11062 (sh_insn_length_adjustment): Likewise for sole param.
11064 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11065 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11067 (sh_emit_compare_and_set): Likewise for local "lab".
11068 (output_far_jump): Strengthen param "insn" and local "prev" from
11070 (output_branchy_insn): Likewise for param "insn" and local
11072 (output_ieee_ccmpeq): Likewise for param "insn".
11073 (struct label_ref_list_d): Strengthen field "label" from rtx to
11075 (pool_node): Likewise.
11076 (pool_window_label): Likewise for this global.
11077 (add_constant): Likewise for return type and locals "lab", "new_rtx".
11078 (dump_table): Strengthen params "start", "barrier" and local
11079 "scan" from rtx to rtx_insn *.
11080 (broken_move): Likewise for param "insn".
11081 (untangle_mova): Likewise for params "first_mova" and "new_mova".
11082 Strengthen param "first_mova" from rtx * to rtx_insn **.
11083 (mova_p): Likewise for param "insn".
11084 (fixup_mova): Likewise for param "mova".
11085 (find_barrier): Likewise for return type, params "mova" and
11086 "from", and locals "barrier_before_mova", "found_barrier",
11087 "good_barrier", "orig", "last_symoff", "next". Strengthen local
11088 "label" from rtx to rtx_code_label *.
11089 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11091 (sh_reorg): Likewise for locals "link", "scan", "barrier".
11092 (split_branches): Likewise for param "first" and local "insn".
11093 (final_prescan_insn): Likewise for param "insn".
11094 (sequence_insn_p): Likewise for locals "prev", "next".
11095 (sh_insn_length_adjustment): Likewise for param "insn".
11096 (sh_can_redirect_branch): Likewise for local "insn".
11097 (find_r0_life_regions): Likewise for locals "end", "insn".
11098 (sh_output_mi_thunk): Likewise for local "insns".
11100 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11102 * config/score/score.c (score_output_mi_thunk): Strengthen local
11103 "insn" from rtx to rtx_insn *.
11104 (score_prologue): Likewise.
11106 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11108 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11109 1 from rtx to rtx_insn *.
11110 (s390_emit_jump): Likewise for return type.
11111 (s390_emit_call): Likewise.
11112 (s390_load_got): Likewise.
11114 * config/s390/s390.c (last_scheduled_insn): Likewise for this
11116 (s390_match_ccmode): Likewise for param "insn".
11117 (s390_emit_jump): Likewise for return type.
11118 (s390_split_branches): Likewise for local "label".
11119 (struct constant): Strengthen field "label" from rtx to
11121 (struct constant_pool): Likewise for field "label". Strengthen
11122 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11124 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11126 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11127 (s390_end_pool): Likewise.
11128 (s390_dump_pool): Likewise for local "insn".
11129 (s390_mainpool_start): Likewise.
11130 (s390_chunkify_start): Likewise.
11131 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11132 with insns. Strengthen locals "label", "jump", "barrier", "next",
11133 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11134 (s390_chunkify_finish): Strengthen local "insn" from rtx to
11136 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11137 "jump", "label", "next_insn".
11138 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11139 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11141 (s390_load_got): Likewise for return type and local "insns".
11142 (s390_save_gprs_to_fprs): Likewise for local "insn".
11143 (s390_restore_gprs_from_fprs): Likewise.
11144 (pass_s390_early_mach::execute): Likewise.
11145 (s390_emit_prologue): Likewise for local "insns".
11146 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11148 (s390_emit_call): Strengthen return type and local "insn" from
11150 (s390_emit_tpf_eh_return): Likewise for local "insn".
11151 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11152 "next_insn", introducing locals "s_pat", "rpat" to allow this.
11153 (s390_fix_long_loop_prediction): Likewise for param "insn" and
11155 (s390_non_addr_reg_read_p): Likewise for param "insn".
11156 (find_cond_jump): Likewise for return type and param "insn".
11157 (s390_swap_cmp): Likewise for param "insn".
11158 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11159 "prev_insn", "next_insn".
11160 (s390_reorg): Likewise for locals "insn", "target".
11161 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11162 (s390_sched_variable_issue): For now, rename param "insn" to
11163 "uncast_insn", introducing a checked cast.
11164 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11166 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11167 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
11169 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11171 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11172 param from rtx to rtx_insn *.
11173 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11175 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11177 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11178 4 from rtx to rtx_insn *.
11179 (rs6000_final_prescan_insn): Likewise for first param.
11180 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11182 (rs6000_get_some_local_dynamic_name): Likewise.
11183 (output_cbranch): Likewise for param "insn".
11184 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11185 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11186 (rs6000_emit_allocate_stack): Likewise for local "insn".
11187 (load_cr_save): Likewise.
11188 (restore_saved_cr): Likewise.
11189 (restore_saved_lr): Likewise.
11190 (emit_cfa_restores): Likewise.
11191 (rs6000_output_function_epilogue): Likewise for locals "insn" and
11192 "deleted_debug_label".
11193 (rs6000_output_mi_thunk): Likewise for local "insn".
11194 (rs6000_final_prescan_insn): Likewise for param "insn".
11196 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11198 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11199 Strengthen param "insn" from rtx to rtx_insn *.
11200 * config/picochip/picochip.c (picochip_current_prescan_insn):
11201 Likewise for this variable.
11202 (picochip_final_prescan_insn): Likewise for param "insn".
11204 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11206 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11207 from rtx to rtx_insn *.
11208 (pa_output_indirect_call): Likewise.
11209 (pa_adjust_insn_length): Likewise.
11210 (pa_attr_length_millicode_call): Likewise.
11211 (pa_attr_length_call): Likewise.
11212 (pa_attr_length_indirect_call): Likewise.
11214 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11216 (pa_attr_length_millicode_call): Likewise.
11217 (pa_attr_length_call): Likewise.
11218 (pa_output_call): Likewise.
11219 (pa_attr_length_indirect_call): Likewise.
11220 (pa_output_indirect_call): Likewise.
11222 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11224 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11225 Strengthen first param from rtx to rtx_insn *.
11226 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11229 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11231 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11232 type from rtx to rtx_insn *.
11233 (mips_expand_call): Likewise.
11234 (mips_adjust_insn_length): Likewise for first param.
11235 (mips_output_conditional_branch): Likewise.
11236 (mips_output_order_conditional_branch): Likewise.
11237 (mips_final_prescan_insn): Likewise.
11239 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11240 rtx_insn * for the SEQUENCE case.
11241 (SEQ_END): Likewise.
11242 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11243 (mips_emit_call_insn): Likewise, also for local "insn".
11244 (mips16_gp_pseudo_reg): Likewise for local "scan".
11245 (mips16_build_call_stub): Likewise for return type and for local
11246 "insn". Introduce a new local "pattern" so that "insn" can indeed
11248 (mips_expand_call): Strengthen return type and local "insn" from
11250 (mips_block_move_loop): Strengthen local "label" from rtx to
11252 (mips_expand_synci_loop): Likewise for locals "label",
11254 (mips_set_frame_expr): Strengthen local "insn" from rtx to
11256 (mips16e_collect_argument_saves): Likewise for locals "insn",
11258 (mips_find_gp_ref): Likewise for param of callback for "pred"
11259 param, and for local "insn".
11260 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11261 (mips_insn_has_flexible_gp_ref_p): Likewise.
11262 (mips_epilogue_emit_cfa_restores): Likewise for return type and
11264 (mips_epilogue_set_cfa): Likewise for local "insn".
11265 (mips_expand_epilogue): Likewise.
11266 (mips_adjust_insn_length): Likewise for param "insn".
11267 (mips_output_conditional_branch): Likewise.
11268 (mips_output_order_conditional_branch): Likewise.
11269 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11270 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11271 "falu2_turn_enabled_insn".
11272 (mips_builtin_branch_and_move): Strengthen locals "true_label",
11273 "done_label" from rtx to rtx_code_label *.
11274 (struct mips16_constant): Likewise for field "label".
11275 (mips16_add_constant): Likewise for return type.
11276 (mips16_emit_constants_1): Strengthen return type and param "insn"
11277 from rtx to rtx_insn *.
11278 (mips16_emit_constants): Likewise for param "insn".
11279 (mips16_insn_length): Likewise.
11280 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11281 to rtx_code_label *.
11282 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11283 from rtx to rtx_insn *.
11284 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11285 "jump". Strengthen local "label" from rtx to rtx_code_label *.
11286 (r10k_simplify_address): Strengthen param "insn" and local
11287 "def_insn" from rtx to rtx_insn *.
11288 (r10k_safe_address_p): Strengthen param "insn" from rtx to
11290 (r10k_needs_protection_p_1): Update target type of cast of data
11291 from to rtx to rtx_insn *.
11292 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11293 rtx * to rtx_insn **.
11294 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11296 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11297 (mips_call_expr_from_insn): Likewise for param "insn".
11298 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11299 (mips_find_pic_call_symbol): Likewise for param "insn".
11300 (mips_annotate_pic_calls): Likewise for local "insn".
11301 (mips_sim_insn): Likewise for this variable.
11302 (struct mips_sim): Likewise for field "insn" within elements of
11304 (mips_sim_wait_reg): Likewise for param "insn".
11305 (mips_sim_wait_regs): Likewise.
11306 (mips_sim_wait_units): Likewise.
11307 (mips_sim_wait_insn): Likewise.
11308 (mips_sim_issue_insn): Likewise.
11309 (mips_sim_finish_insn): Likewise.
11310 (mips_seq_time): Likewise for param "seq" and local "insn".
11311 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11312 locals "first", "second".
11313 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11314 "last", "last2", "next".
11315 (mips_avoid_hazard): Likewise for params "after", "insn".
11316 (mips_reorg_process_insns): Likewise for locals "insn",
11317 "last_insn", "subinsn", "next_insn".
11318 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11319 (mips16_split_long_branches): Likewise for locals "insn" "jump",
11321 (mips_output_mi_thunk): Likewise for local "insn".
11322 (mips_final_prescan_insn): Likewise for param "insn".
11324 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11326 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11327 Strengthen return type and local "insns" from rtx to rtx_insn *.
11328 (microblaze_legitimize_tls_address): Likewise for local "insns".
11329 (microblaze_block_move_loop): Strengthen local "label" from rtx
11330 to rtx_code_label *.
11331 (microblaze_expand_prologue): Strengthen two locals named "insn"
11332 from rtx to rtx_insn *.
11333 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11334 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11335 "insn". Strengthen locals "div_label", "div_end_label" from rtx
11336 to rtx_code_label *.
11338 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11340 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11341 param from rtx to rtx_insn *.
11342 (mep_reuse_lo): Likewise for third param.
11343 (mep_use_post_modify_p): Likewise for first param.
11344 (mep_core_address_length): Likewise.
11345 (mep_cop_address_length): Likewise.
11346 (mep_final_prescan_insn): Likewise.
11347 (mep_store_data_bypass_p): Likewise for both params.
11348 (mep_mul_hilo_bypass_p): Likewise.
11349 (mep_ipipe_ldc_p): Likewise for param.
11351 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11352 (mep_rewrite_mult): Likewise.
11353 (mep_rewrite_mulsi3): Likewise.
11354 (mep_rewrite_maddsi3): Likewise.
11355 (mep_reuse_lo_p_1): Likewise.
11356 (mep_reuse_lo_p): Likewise.
11357 (mep_frame_expr): Likewise.
11358 (mep_make_parallel): Likewise for both params.
11359 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11361 (mep_use_post_modify_p): Likewise for param "insn".
11362 (mep_core_address_length): Likewise.
11363 (mep_cop_address_length): Likewise.
11364 (mep_reg_set_in_function): Likewise for local "insn".
11365 (mep_asm_without_operands_p): Likewise.
11366 (F): Likewise for return type and param "x".
11367 (add_constant): Likewise for local "insn".
11368 (maybe_dead_move): Likewise for return type and local "insn".
11369 (mep_expand_prologue): Likewise for local "insn".
11370 (mep_final_prescan_insn): Likewise for param "insn".
11371 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11372 "next", "follow", "x".
11373 (mep_insert_repeat_label_last): Likewise for return type, param
11374 "last_insn", and locals "next", "prev". Strengthen param "label"
11375 from rtx to rtx_code_label *.
11376 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11378 (struct mep_doloop_end): Likewise for fields "insn" and
11380 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11381 Strengthen local "repeat_label" from rtx to rtx_code_label *.
11382 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11384 (mep_invert_branch): Likewise for params "insn" and "after".
11385 (mep_reorg_erepeat): Likewise for param "insns" and locals
11386 "insn", "prev", "new_last", "barrier", "user". Strengthen local
11387 "l" from rtx to rtx_code_label *.
11388 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11389 from rtx to rtx_insn *.
11390 (mep_reorg_addcombine): Likewise for param "insns" and locals
11392 (add_sp_insn_p): Likewise for param "insn".
11393 (mep_reorg_noframe): Likewise for param "insns" and locals
11394 "start_frame_insn", "end_frame_insn", "next".
11395 (mep_reorg): Likewise for local "insns".
11396 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
11398 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
11399 (mep_mul_hilo_bypass_p): Likewise.
11400 (mep_ipipe_ldc_p): Likewise for param "insn".
11401 (mep_make_bundle): Likewise for return type, param "cop" and local
11402 "insn", splitting out the latter into a new local "seq" for when it
11403 is a SEQUENCE rather than an insn.
11404 (core_insn_p): Likewise for param "insn".
11405 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
11406 "last", "first", "note", "prev", "core_insn".
11408 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11410 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
11412 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
11413 (m68k_final_prescan_insn): Likewise for first param.
11415 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
11416 (m68k_set_frame_related): Likewise for param "insn".
11417 (output_btst): Likewise for param "insn".
11418 (m68k_final_prescan_insn): Likewise.
11419 (m68k_move_to_reg): Likewise for local "insn".
11420 (m68k_call_tls_get_addr): Likewise for local "insns".
11421 (m68k_call_m68k_read_tp): Likewise.
11422 (strict_low_part_peephole_ok): Likewise for param "first_insn".
11423 (m68k_output_mi_thunk): Likewise for local "insn".
11425 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11427 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
11428 first param from rtx to rtx_insn *.
11429 (iq2000_adjust_insn_length): Likewise.
11430 (iq2000_output_conditional_branch): Likewise.
11431 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
11432 "insn" and local "nop_insn".
11433 (iq2000_annotate_frame_insn): Likewise for param "insn".
11434 (iq2000_expand_prologue): Likewise for both locals "insn".
11435 (iq2000_adjust_insn_length): Likewise for param "insn".
11436 (iq2000_output_conditional_branch): Likewise.
11438 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11440 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
11441 "insns" from rtx to rtx_insn *.
11442 (ia64_emit_cond_move): Likewise for locals "insn", "first".
11443 (struct spill_fill_data): Likewise for field "init_after" and for
11444 elements of array field "prev_insn".
11445 (spill_restore_mem): Likewise for locals "insn", "first".
11446 (do_spill): Likewise for local "insn".
11447 (do_restore): Likewise.
11448 (ia64_expand_prologue): Likewise.
11449 (ia64_expand_epilogue): Likewise.
11450 (emit_insn_group_barriers): Likewise for locals "insn",
11452 (emit_all_insn_group_barriers): Likewise for locals "insn",
11454 (dfa_stop_insn): Likewise for this global.
11455 (dfa_pre_cycle_insn): Likewise.
11456 (ia64_nop): Likewise.
11457 (final_emit_insn_group_barriers): Likewise for locals "insn",
11459 (emit_predicate_relation_info): Likewise for locals "head", "n",
11461 (ia64_reorg): Likewise for local "insn".
11462 (ia64_output_mi_thunk): Likewise.
11463 (expand_vec_perm_interleave_2): Likewise for local "seq".
11465 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11467 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
11468 param 1 "insn" from rtx to rtx_insn *.
11469 (ix86_use_lea_for_mov): Likewise.
11470 (ix86_avoid_lea_for_addr): Likewise.
11471 (ix86_split_lea_for_addr): Likewise.
11472 (ix86_lea_for_add_ok): Likewise.
11473 (ix86_output_call_insn): Likewise.
11475 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
11476 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
11477 (ix86_output_function_epilogue): Likewise for locals "insn",
11478 "deleted_debug_label".
11479 (legitimize_tls_address): Likewise for local "insn".
11480 (get_some_local_dynamic_name): Likewise.
11481 (increase_distance): Likewise for params "prev", "next".
11482 (distance_non_agu_define_in_bb): Likewise for params "insn",
11483 "start" and locals "prev", "next".
11484 (distance_non_agu_define): Likewise for param "insn".
11485 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
11486 locals "next", "prev".
11487 (distance_agu_use): Likewise for param "insn".
11488 (ix86_lea_outperforms): Likewise.
11489 (ix86_ok_to_clobber_flags): Likewise.
11490 (ix86_avoid_lea_for_add): Likewise.
11491 (ix86_use_lea_for_mov): Likewise.
11492 (ix86_avoid_lea_for_addr): Likewise.
11493 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
11494 (ix86_split_lea_for_addr): Likewise for param "insn".
11495 (ix86_lea_for_add_ok): Likewise for param "insn".
11496 (ix86_expand_carry_flag_compare): Likewise for local
11498 (ix86_expand_int_movcc): Likewise.
11499 (ix86_output_call_insn): Likewise for param "insn".
11500 (ix86_output_call_insn): Likewise for local "i".
11501 (x86_output_mi_thunk): Introduce local "insn", using it in place
11502 of "tmp" when dealing with insns.
11503 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
11505 (ix86_pad_returns): Likewise for locals "ret", "prev".
11506 (ix86_count_insn_bb): Likewise for local "insn".
11507 (ix86_pad_short_function): Likewise for locals "ret", "insn".
11508 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
11509 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
11510 (expand_vec_perm_interleave2): Likewise for local "seq".
11511 (expand_vec_perm_vperm2f128_vblend): Likewise.
11512 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
11513 call to for_each_rtx with for_each_rtx_in_insn.
11515 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11517 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
11518 "label" from rtx to rtx_code_label *.
11519 (ix86_expand_prologue): Likewise.
11520 (ix86_expand_split_stack_prologue): Likewise for locals "label",
11522 (ix86_split_idivmod): Likewise for locals "end_label" and
11524 (ix86_expand_branch): Likewise for local "label2".
11525 (ix86_expand_aligntest): Likewise for return type and local "label".
11526 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
11528 (expand_movmem_epilogue): Likewise for the various locals named
11530 (expand_setmem_epilogue): Likewise.
11531 (expand_small_movmem_or_setmem): Likewise for local "label".
11532 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11533 Strengthen param "done_label" from rtx * to rtx_code_label **.
11534 Strengthen locals "loop_label" and "label" from rtx to
11536 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11537 Likewise for locals "loop_label", "label".
11538 (ix86_expand_set_or_movmem): Likewise for locals "label",
11539 "jump_around_label", "hot_label".
11540 (ix86_expand_strlensi_unroll_1): Likewise for locals
11541 "align_2_label", align_3_label", "align_4_label", "end_0_label",
11543 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
11544 (void ix86_emit_i387_log1p): Likewise for locals "label1",
11545 "label2", "jump_label".
11546 (ix86_expand_sse_compare_and_jump): Likewise for return type and
11548 (ix86_expand_lfloorceil): Likewise for local "label".
11549 (ix86_expand_rint): Likewise.
11550 (ix86_expand_floorceildf_32): Likewise.
11551 (ix86_expand_floorceil): Likewise.
11552 (ix86_expand_rounddf_32): Likewise.
11553 (ix86_expand_trunc): Likewise.
11554 (ix86_expand_truncdf_32): Likewise.
11555 (ix86_expand_round): Likewise.
11557 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11559 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
11560 first param from rtx to rtx_insn *.
11561 (h8300_insn_length_from_table): Likewise.
11562 * config/h8300/h8300.c (F): Likewise for return type and param
11564 (Fpa): Add a checked cast to rtx_insn *.
11565 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
11567 (final_prescan_insn): Likewise for param "insn".
11568 (h8300_binary_length): Likewise.
11569 (h8300_insn_length_from_table): Likewise.
11571 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11573 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
11574 Strengthen first param "insn" from rtx to rtx_insn *.
11576 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
11578 (frame_insn): Likewise for return type. Introduce local "insn"
11579 for use in place of local "x" for use as an rtx_insn *.
11580 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
11581 (epiphany_expand_prologue): Likewise for local "insn".
11582 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
11583 * config/epiphany/resolve-sw-modes.c
11584 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
11587 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11589 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
11590 param from rtx to rtx_insn *.
11591 (c6x_final_prescan_insn): Likewise for first param.
11593 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
11594 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
11595 (c6x_expand_compare): Strengthen local "insns" from rtx to
11597 (c6x_get_unit_specifier): Likewise for param "insn".
11598 (c6x_print_unit_specifier_field): Likewise.
11599 (c6x_final_prescan_insn): Likewise.
11600 (emit_add_sp_const): Likewise for local "insn".
11601 (c6x_expand_prologue): Likewise.
11603 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11605 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
11606 param 1 from rtx to rtx_insn *.
11607 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
11608 the various locals named "insn".
11609 (expand_epilogue_reg_restore): Likewise.
11610 (frame_related_constant_load): Likewise.
11611 (add_to_reg): Likewise.
11612 (emit_link_insn): Likewise.
11613 (do_link): Likewise.
11614 (expand_interrupt_handler_prologue): Likewise.
11615 (branch_dest): Likewise for param "branch".
11616 (asm_conditional_branch): Likewise for param "insn".
11617 (gen_one_bundle): Likewise for elements of param "slot" and local
11619 (bfin_gen_bundles): Likewise for locals "insn", "next" and
11620 elements of local "slot".
11621 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11622 "queue", "next_queue", "prev".
11623 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
11624 (add_sched_insns_for_speculation): Likewise for local "insn".
11626 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11628 * config/avr/avr-protos.h (output_movqi): Strengthen first param
11629 from rtx to rtx_insn *.
11630 (output_movhi): Likewise.
11631 (output_movsisf): Likewise.
11632 (avr_out_tstsi): Likewise.
11633 (avr_out_tsthi): Likewise.
11634 (avr_out_tstpsi): Likewise.
11635 (avr_out_compare): Likewise.
11636 (avr_out_compare64): Likewise.
11637 (avr_out_movpsi): Likewise.
11638 (ashlqi3_out): Likewise.
11639 (ashlhi3_out): Likewise.
11640 (ashlsi3_out): Likewise.
11641 (ashrqi3_out): Likewise.
11642 (ashrhi3_out): Likewise.
11643 (ashrsi3_out): Likewise.
11644 (lshrqi3_out): Likewise.
11645 (lshrhi3_out): Likewise.
11646 (lshrsi3_out): Likewise.
11647 (avr_out_ashlpsi3): Likewise.
11648 (avr_out_ashrpsi3): Likewise.
11649 (avr_out_lshrpsi3): Likewise.
11650 (avr_out_fract): Likewise.
11651 (avr_out_sbxx_branch): Likewise.
11652 (avr_out_round): Likewise.
11653 (avr_out_xload): Likewise.
11654 (avr_out_movmem): Likewise.
11655 (adjust_insn_length): Likewise.
11656 (avr_out_lpm): Likewise.
11657 (reg_unused_after): Likewise.
11658 (_reg_unused_after): Likewise.
11659 (avr_jump_mode): Likewise for second param.
11660 (jump_over_one_insn): Likewise for first param.
11661 (avr_final_prescan_insn): Likewise.
11662 (out_shift_with_cnt): Likewise for second param.
11664 * config/avr/avr.c (get_sequence_length): Likewise for param
11665 "insns" and local "insn".
11666 (emit_push_byte): Likewise for local "insn".
11667 (emit_push_sfr): Likewise.
11668 (avr_prologue_setup_frame): Likewise for locals "insn",
11669 "fp_plus_insns", "sp_plus_insns".
11670 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
11672 (avr_jump_mode): Likewise for param "insn".
11673 (avr_final_prescan_insn): Likewise.
11674 (avr_find_unused_d_reg): Likewise.
11675 (avr_out_lpm_no_lpmx): Likewise.
11676 (avr_out_lpm): Likewise.
11677 (avr_out_xload): Likewise.
11678 (output_movqi): Likewise.
11679 (output_movhi): Likewise.
11680 (out_movqi_r_mr): Likewise.
11681 (out_movhi_r_mr): Likewise.
11682 (out_movsi_r_mr): Likewise.
11683 (out_movsi_mr_r): Likewise.
11684 (output_movsisf): Likewise.
11685 (avr_out_load_psi): Likewise.
11686 (avr_out_store_psi): Likewise.
11687 (avr_out_movpsi): Likewise.
11688 (out_movqi_mr_r): Likewise.
11689 (avr_out_movhi_mr_r_xmega): Likewise.
11690 (out_movhi_mr_r): Likewise.
11691 (compare_condition): Likewise for param "insn" and local "next".
11692 (compare_sign_p): Likewise for param "insn".
11693 (compare_diff_p): Likewise.
11694 (compare_eq_p): Likewise.
11695 (avr_out_compare): Likewise.
11696 (avr_out_compare64): Likewise.
11697 (avr_out_tsthi): Likewise.
11698 (avr_out_tstpsi): Likewise.
11699 (avr_out_tstsi): Likewise.
11700 (out_shift_with_cnt): Likewise.
11701 (ashlqi3_out): Likewise.
11702 (ashlhi3_out): Likewise.
11703 (avr_out_ashlpsi3): Likewise.
11704 (ashlsi3_out): Likewise.
11705 (ashrqi3_out): Likewise.
11706 (ashrhi3_out): Likewise.
11707 (avr_out_ashrpsi3): Likewise.
11708 (ashrsi3_out): Likewise.
11709 (lshrqi3_out): Likewise.
11710 (lshrhi3_out): Likewise.
11711 (avr_out_lshrpsi3): Likewise.
11712 (lshrsi3_out): Likewise.
11713 (avr_out_fract): Likewise.
11714 (avr_out_round): Likewise.
11715 (avr_adjust_insn_length): Likewise.
11716 (reg_unused_after): Likewise.
11717 (_reg_unused_after): Likewise.
11718 (avr_compare_pattern): Likewise.
11719 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
11720 and locals "branch1", "branch2", "insn2", "jump".
11721 (avr_reorg): Likewise for local "insn".
11722 (avr_2word_insn_p): Likewise for param "insn".
11723 (jump_over_one_insn_p): Likewise.
11724 (avr_out_sbxx_branch): Likewise.
11725 (avr_out_movmem): Likewise.
11727 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11729 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
11730 param from rtx to rtx_insn *.
11731 (thumb1_final_prescan_insn): Likewise.
11732 (thumb2_final_prescan_insn): Likewise.
11734 * config/arm/arm.c (emit_set_insn): Strengthen return type from
11736 (struct minipool_node): Likewise for field "insn".
11737 (dump_minipool): Likewise for param "scan".
11738 (create_fix_barrier): Likewise for local "from". Strengthen local
11739 "label" from rtx to rtx_code_label *.
11740 (push_minipool_barrier): Strengthen param "insn" from rtx to
11742 (push_minipool_fix): Likewise.
11743 (note_invalid_constants): Likewise.
11744 (thumb2_reorg): Likewise for local "insn".
11745 (arm_reorg): Likewise.
11746 (thumb2_final_prescan_insn): Likewise for param
11747 "insn" and local "first_insn".
11748 (arm_final_prescan_insn): Likewise for param "insn" and locals
11749 "start_insn", "this_insn".
11750 (arm_debugger_arg_offset): Likewise for param "insn".
11751 (thumb1_emit_multi_reg_push): Likewise for return type and local
11753 (thumb1_final_prescan_insn): Likewise for param "insn".
11754 (thumb_far_jump_used_p): Likewise for local "insn".
11755 (thumb1_expand_prologue): Likewise.
11756 (arm_expand_epilogue_apcs_frame): Likewise.
11757 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
11758 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
11759 from rtx to rtx_code_label *.
11760 (arm_split_atomic_op): Likewise for local "label".
11761 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
11763 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11765 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
11766 first param from rtx to rtx_insn *.
11767 (arc_verify_short): Likewise.
11768 (arc_short_long): Likewise.
11769 (arc_need_delay): Likewise.
11771 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
11773 (arc_ccfsm_advance): Likewise for param "insn" and locals
11774 "start_insn", "this_insn".
11775 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
11776 (arc_ccfsm_post_advance): Likewise for param "insn".
11777 (arc_next_active_insn): Likewise for return type and param "insn".
11778 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
11779 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
11780 (output_short_suffix): Likewise for local "insn".
11781 (arc_final_prescan_insn): Likewise for param "insn". Remove
11782 now-redundant checked cast.
11783 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
11784 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
11785 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
11786 for use where lc_set became an insn.
11787 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
11789 (arc_get_insn_variants): Likewise for local "prev".
11790 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
11792 (arc_predicate_delay_insns): Likewise for local "insn".
11793 (arc_pad_return): Likewise for local "prev". For now, add a
11794 checked cast when extracting the insn from "final_sequence".
11795 (arc_short_long): Likewise for param "insn".
11796 (arc_need_delay): Likewise for param "insn" and local "next".
11797 (arc_label_align): Likewise for locals "prev", "next".
11799 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11801 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
11802 "insn" from rtx to rtx_insn *.
11803 (alpha_gp_save_rtx): Likewise for local "seq".
11804 (alpha_instantiate_decls): Likewise for local "top".
11805 (get_some_local_dynamic_name): Likewise for local "insn".
11806 (alpha_does_function_need_gp): Likewise.
11807 (set_frame_related_p): Likewise for return type and for locals
11809 (emit_frame_store_1): Likewise for local "insn".
11810 (alpha_expand_prologue): Likewise for locals "insn", "seq".
11811 (alpha_end_function): Likewise for local "insn".
11812 (alpha_output_mi_thunk_osf): Likewise.
11813 (alphaev4_insn_pipe): Likewise for param "insn".
11814 (alphaev5_insn_pipe): Likewise.
11815 (alphaev4_next_group): Likewise for return type and param 1
11817 (alphaev5_next_group): Likewise.
11818 (alpha_align_insns_1): Likewise for return type and param 1 of
11819 callback param "next_group", and for locals "i", "next", "prev",
11820 "where", "where2", "insn".
11822 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
11824 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
11825 rather than modifying the stmt.
11827 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11829 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
11830 cgraph_state conversion.
11832 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11834 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11835 Strengthen local "insns" from rtx to rtx_insn *.
11836 (aarch64_set_frame_expr): Likewise for local "insn".
11837 (aarch64_save_or_restore_fprs): Likewise.
11838 (aarch64_save_or_restore_callee_save_registers): Likewise.
11839 (aarch64_expand_prologue): Likewise.
11840 (aarch64_expand_epilogue): Likewise.
11841 (aarch64_output_mi_thunk): Likewise.
11842 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
11843 "label2" from rtx to rtx_code_label *.
11844 (aarch64_split_atomic_op): Likewise for local "label".
11846 2014-08-25 Martin Liska <mliska@suse.cz>
11848 * cgraph.h (symtab_node):
11849 (bool needed_p (void)): created from decide_is_symbol_needed
11850 (bool referred_to_p (void)): created from referred_to_p
11851 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
11852 * cgraph.h (cgraph_node):
11853 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
11854 (void expand (void)): created from expand_function
11855 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
11856 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
11857 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
11858 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
11859 * cgraph.h (varpool_node):
11860 (static void add (tree decl): created from varpool_add_new_variable
11861 * cgraph.h (cgraph_edge):
11862 void remove (void);
11863 (void remove_caller (void)): created from cgraph_edge_remove_caller
11864 (void remove_callee (void)): created from cgraph_edge_remove_callee
11865 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
11866 created from cgraph_set_call_stmt
11867 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
11868 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
11869 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
11870 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
11871 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
11872 created from cgraph_speculative_call_info
11873 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
11874 int freq_scale, bool update_original)): created from cgraph_clone_edge
11875 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
11876 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
11877 (bool recursive_p (void)): created from cgraph_edge_recursive_p
11878 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
11879 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
11880 (static void rebuild_references (void)): created from cgraph_rebuild_references
11881 * cgraph.h (symbol_table):
11882 (create_reference): renamed from add_reference
11883 (maybe_create_reference): renamed from maybe_add_reference
11884 (void register_symbol (symtab_node *node)): new function
11885 (void clear_asm_symbols (void)): new function
11886 (void unregister (symtab_node *node)): new function
11887 (void release_symbol (cgraph_node *node, int uid)): new function
11888 (cgraph_node * allocate_cgraph_symbol (void)): new function
11889 (void initialize (void)): created from cgraph_init
11890 (symtab_node *first_symbol (void)):new function
11891 (asm_node *first_asm_symbol (void)):new function
11892 (symtab_node *first_defined_symbol (void)):new function
11893 (varpool_node *first_variable (void)):new function
11894 (varpool_node *next_variable (varpool_node *node)):new function
11895 (varpool_node *first_static_initializer (void)):new function
11896 (varpool_node *next_static_initializer (varpool_node *node)):new function
11897 (varpool_node *first_defined_variable (void)):new function
11898 (varpool_node *next_defined_variable (varpool_node *node)):new function
11899 (cgraph_node *first_defined_function (void)):new function
11900 (cgraph_node *next_defined_function (cgraph_node *node)):new function
11901 (cgraph_node *first_function (void)):new function
11902 (cgraph_node *next_function (cgraph_node *node)):new function
11903 (cgraph_node *first_function_with_gimple_body (void)):new function
11904 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
11905 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
11906 created from symtab_remove_unreachable_nodes
11907 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
11908 (void process_new_functions (void)): created from cgraph_process_new_functions
11909 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
11910 (bool output_variables (void)): created from varpool_node::output_variables
11911 (void output_asm_statements (void)): created from output_asm_statements
11912 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
11913 (void compile (void)): created from compile
11914 (void output_weakrefs (void)): created from output_weakrefs
11915 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
11916 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
11917 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
11918 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
11919 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
11920 created from cgraph_next_function_with_gimple_body
11921 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
11922 created from cgraph_remove_edge_removal_hook
11923 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
11924 created from cgraph_add_node_removal_hook
11925 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
11926 created from cgraph_remove_node_removal_hook
11927 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
11928 created from varpool_add_node_removal_hook
11929 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
11930 created from varpool_remove_node_removal_hook
11931 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
11932 created from cgraph_add_function_insertion_hook
11933 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
11934 created from cgraph_remove_function_insertion_hook
11935 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
11936 created from varpool_add_variable_insertion_hook
11937 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
11938 created from varpool_remove_variable_insertion_hook
11939 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
11940 created from cgraph_add_edge_duplication_hook
11941 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
11942 created from cgraph_remove_edge_duplication_hook
11943 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
11944 created from cgraph_add_node_duplication_hook
11945 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
11946 created from cgraph_remove_node_duplication_hook
11947 (void call_edge_removal_hooks (cgraph_edge *e)):
11948 created from cgraph_call_edge_removal_hooks
11949 (void call_cgraph_insertion_hooks (cgraph_node *node)):
11950 created from call_function_insertion_hooks
11951 (void call_cgraph_removal_hooks (cgraph_node *node)):
11952 created from cgraph_call_node_removal_hooks
11953 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
11954 created from cgraph_node::call_duplication_hooks
11955 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
11956 created from cgraph_call_edge_duplication_hooks
11957 (void call_varpool_removal_hooks (varpool_node *node)):
11958 created from varpool_call_node_removal_hooks
11959 (void call_varpool_insertion_hooks (varpool_node *node)):
11960 created from varpool_call_variable_insertion_hooks
11961 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
11962 created from insert_to_assembler_name_hash
11963 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
11964 created from unlink_from_assembler_name_hash
11965 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
11966 created from symtab_prevail_in_asm_name_hash
11967 (void symtab_initialize_asm_name_hash (void)):
11968 created from symtab_initialize_asm_name_hash
11969 (void change_decl_assembler_name (tree decl, tree name)):
11970 created from change_decl_assembler_name
11971 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
11972 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
11973 created from decl_assembler_name_hash
11974 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
11975 created from decl_assembler_name_equal
11976 (static hashval_t hash_node_by_assembler_name (const void *p)):
11977 created from hash_node_by_assembler_name
11978 (static int eq_assembler_name (const void *p1, const void *p2)):
11979 created from eq_assembler_name
11981 2014-08-25 Marek Polacek <polacek@redhat.com>
11983 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
11985 2014-08-25 Petr Murzin <petr.murzin@intel.com>
11987 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
11988 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
11989 SWI1248_AVX512BW mode iterator.
11991 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
11994 * config/sh/predicates.md (general_extend_operand): Disable
11995 TRUNCATE before reload completes.
11997 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
11999 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12001 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
12004 * config/sh/sh.opt (musermode): Allow negative form.
12005 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12006 targets that don't support it.
12007 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12008 Document -mno-usermode option.
12010 2014-08-24 Kito Cheng <kito@0xlab.org>
12012 * system.h (CALLER_SAVE_PROFITABLE): Poison.
12013 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12014 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12015 * doc/tm.texi: Regenerate.
12017 2014-08-24 Kito Cheng <kito@0xlab.org>
12019 * ira.c: Fix typo in comment.
12021 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
12023 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12024 Deprecate c++1y. Change language to reflect greater confidence in C++14.
12026 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
12029 * config/pa/pa.c (pa_output_function_epilogue): Don't set
12030 last_address when the current function is a thunk.
12031 (pa_asm_output_mi_thunk): When we don't have named sections or they
12032 are not being used, check that thunk can reach the stub table with a
12035 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12037 * web.c (union_match_dups): Strengthen param "insn" from rtx to
12039 (pass_web::execute): Likewise for local "insn".
12041 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12043 * var-tracking.c (struct micro_operation_def): Strengthen field
12044 "insn" from rtx to rtx_insn *.
12045 (struct emit_note_data_def): Likewise.
12046 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12047 (vt_stack_adjustments): Likewise for local "insn".
12048 (adjust_insn): Likewise for param "insn".
12049 (val_store): Likewise.
12050 (val_resolve): Likewise.
12051 (struct count_use_info): Likewise for field "insn".
12052 (log_op_type): Likewise for param "insn".
12053 (reverse_op): Likewise.
12054 (prepare_call_arguments): Likewise.
12055 (add_with_sets): The initial param takes an insn, but we can't
12056 yet strengthen it from rtx to rtx_insn * since it's used as a
12057 cselib_record_sets_hook callback. For now rename initial param
12058 from "insn" to "uncast_insn", and introduce a local "insn" of
12059 the stronger rtx_insn * type, with a checked cast.
12060 (compute_bb_dataflow): Strengthen local "insn" from rtx to
12062 (emit_note_insn_var_location): Likewise.
12063 (emit_notes_for_changes): Likewise.
12064 (emit_notes_for_differences): Likewise.
12065 (next_non_note_insn_var_location): Likewise for return type and
12067 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12068 (vt_initialize): Likewise for local "insn".
12069 (delete_debug_insns): Likewise for locals "insn" and "next".
12071 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12073 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12075 (mark_constant_pool): Likewise for local "insn".
12077 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12079 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12081 (dead_debug_promote_uses): Likewise.
12082 (dead_debug_insert_temp): Likewise.
12084 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12086 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12087 from const_rtx to const rtx_insn *.
12088 (store_killed_after): Likewise. Strengthen locals "last", "act"
12089 from rtx to rtx_insn *.
12090 (store_killed_before): Strengthen param "insn" from const_rtx to
12091 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
12092 (find_moveable_store): Strengthen param "insn" from rtx to
12094 (compute_store_table): Likewise for local "insn".
12095 (insert_insn_start_basic_block): Likewise for param "insn" and
12096 locals "prev", "before", "insn".
12097 (insert_store): For now, add a checked cast to rtx_insn * on the
12098 result of gen_move_insn.
12099 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12101 (replace_store_insn): Likewise. For now, add a checked cast to
12102 rtx_insn * on the result of gen_move_insn.
12104 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12106 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12108 (expand_sjlj_dispatch_table): Likewise.
12110 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12112 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12113 "insn" from rtx to rtx_insn *.
12115 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12117 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12118 "insn" from rtx to rtx_insn *.
12119 (dup_block_and_redirect): Likewise for param 3 "before".
12121 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12122 from rtx to rtx_insn *.
12123 (move_insn_for_shrink_wrap): Likewise.
12124 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12125 (dup_block_and_redirect): Likewise for param "before" and local
12127 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12129 (convert_to_simple_return): Likewise for local "start".
12131 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12132 Strengthen local "insn" from rtx to rtx_insn *, for use when
12133 invoking requires_stack_frame_p.
12135 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12137 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12139 (speculate_expr): Likewise for locals "orig_insn_rtx",
12141 (eq_transformed_insns): Likewise for locals "i1", "i2".
12142 (check_for_new_jump): Likewise for return type and local "end".
12143 (find_new_jump): Likewise for return type and local "jump".
12144 (sel_split_edge): Likewise for local "jump".
12145 (sel_create_recovery_block): Likewise.
12146 (sel_redirect_edge_and_branch_force): Likewise.
12147 (sel_redirect_edge_and_branch): Likewise.
12149 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12151 * sel-sched.c (substitute_reg_in_expr): Strengthen local
12152 "new_insn" from rtx to rtx_insn *.
12153 (create_insn_rtx_with_rhs): Likewise for return type and for local
12155 (create_insn_rtx_with_lhs): Likewise.
12156 (create_speculation_check): Likewise for local "insn_rtx".
12157 (implicit_clobber_conflict_p): Likewise for local "insn".
12158 (get_expr_cost): Likewise.
12159 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12160 (move_cond_jump): Likewise for locals "next", "prev", "link",
12161 "head", "from", "to".
12163 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12165 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12166 "next" from rtx to rtx_insn *.
12167 (find_conditional_protection): Likewise for local "next".
12168 (is_conditionally_protected): Likewise for local "insn1".
12169 (is_pfree): Likewise for locals "insn1", "insn2".
12171 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12173 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12174 from rtx to rtx_insn *.
12176 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12177 locals "insn1", "insn2" from rtx to rtx_insn *.
12178 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12179 locals "insn", "prev", "last_jump", "next_tail".
12180 (schedule_ebb): Likewise for params "head", "tail".
12181 (schedule_ebbs): Likewise for locals "tail", "head".
12183 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12184 to rtx_insn on "last_insn" in one of the invocations of
12187 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12189 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12190 "elem", "insn" from rtx to rtx_insn *.
12191 (change_spec_dep_to_hard): Likewise.
12192 (get_back_and_forw_lists): Likewise for local "con".
12193 (sd_add_dep): Likewise for locals "elem", "insn".
12194 (sd_resolve_dep): Likewise for locals "pro", "con".
12195 (sd_unresolve_dep): Likewise.
12196 (sd_delete_dep): Likewise.
12197 (chain_to_prev_insn): Likewise for local "pro".
12198 (find_inc): Likewise for locals "pro", "con".
12200 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12202 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12204 (reg_set_between_p): Strengthen local "insn" from const_rtx to
12206 (modified_between_p): Strengthen local "insn" from rtx to
12208 (remove_reg_equal_equiv_notes_for_regno): Likewise.
12209 (keep_with_call_p): Strengthen local "i2" from const_rtx to
12212 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12214 * resource.c (next_insn_no_annul): Strengthen local "next" from
12216 (mark_referenced_resources): Likewise for local "insn".
12218 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12220 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12222 (find_reloads): Likewise for param 1.
12223 (subst_reloads): Likewise for sole param.
12224 (find_equiv_reg): Likwise for param 2.
12225 (regno_clobbered_p): Likwise for param 2.
12226 (reload): Likewise for param 1.
12228 * caller-save.c (save_call_clobbered_regs): Strengthen local
12229 "insn" from rtx to rtx_insn *.
12230 (insert_one_insn): Likewise for local "insn".
12232 * reload.c (this_insn): Likewise for this global.
12233 (find_reloads): Likewise for param "insn".
12234 (find_reloads_toplev): Likewise.
12235 (find_reloads_address): Likewise.
12236 (subst_reg_equivs): Likewise.
12237 (update_auto_inc_notes): Likewise.
12238 (find_reloads_address_1): Likewise.
12239 (find_reloads_subreg_address): Likewise.
12240 (subst_reloads): Likewise.
12241 (find_equiv_reg): Likewise, also for local "p".
12242 (regno_clobbered_p): Likewise for param "insn".
12244 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12246 (spill_reg_store): Likewise for the elements of this array.
12247 (remove_init_insns): Likewise for local "equiv_insn".
12248 (will_delete_init_insn_p): Likewise for param "insn".
12249 (reload): Likewise for param ""first" and local "insn".
12250 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12252 (calculate_elim_costs_all_insns): Likewise.
12253 (delete_caller_save_insns): Likewise.
12254 (spill_failure): Likewise for param "insn".
12255 (delete_dead_insn): Likewise.
12256 (set_label_offsets): Likewise.
12257 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12259 (elimination_costs_in_insn): Likewise for param "insn".
12260 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12261 when referring to an insn.
12262 (set_initial_label_offsets): Likewise.
12263 (set_offsets_for_label): Strengthen param "insn" from rtx to
12265 (init_eliminable_invariants): Likewise for param "first" and local
12267 (fixup_eh_region_note): Likewise for param "insn".
12268 (reload_as_needed): Likewise for locals "prev", "insn",
12269 "old_next", "old_prev", "next".
12270 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12272 (reload_inheritance_insn): Strengthen elements of this array from
12274 (failed_reload): Likewise for param "insn".
12275 (choose_reload_regs): Likewise for local "insn". Replace use of
12276 NULL_RTX with NULL when referring to an insn.
12277 (input_reload_insns): Strengthen elements of this array from rtx
12279 (other_input_address_reload_insns): Likewise for this global.
12280 (other_input_reload_insns): Likewise for this global.
12281 (input_address_reload_insns): Likwise for the elements of this
12283 (inpaddr_address_reload_insns): Likwise for the elements of this
12285 (output_reload_insns): Likewise for the elements of this array.
12286 (output_address_reload_insns): Likewise for the elements of this
12288 (outaddr_address_reload_insns): Likewise for the elements of this
12290 (operand_reload_insns): Likewise for this global.
12291 (other_operand_reload_insns): Likewise for this global.
12292 (other_output_reload_insns): Likewise for the elements of this
12294 (new_spill_reg_store): Likewise for the elements of this
12296 (emit_input_reload_insns): Likewise for locals "insn", "temp".
12297 Strengthen local "where" from rtx * to rtx_insn **.
12298 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12299 from rtx to rtx_insn *.
12300 (do_input_reload): Likewise for local "insn".
12301 (do_output_reload): Likewise for local "insn".
12302 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12303 (emit_insn_if_valid_for_reload): Likewise for return type and local
12304 "last". Add checked cast to rtx_insn when returning "insn" since
12305 this has been through emit_insn.
12306 (gen_reload): Strengthen return type and locals "last", "insn", "set"
12307 from rtx to rtx_insn *. Add checked cast to rtx_insn when
12308 returning "insn" since it's been through
12309 emit_insn_if_valid_for_reload at this point.
12310 (delete_output_reload): Strengthen param "insn" and locals
12311 "output_reload_insn", "i2" from rtx to rtx_insn *.
12312 (delete_address_reloads): Likewise for params "dead_insn",
12313 "current_insn" and locals "prev", "next".
12314 (delete_address_reloads_1): Likewise for params "dead_insn",
12315 "current_insn" and locals "prev", "i2".
12316 (inc_for_reload): Likewise for locals "last", "add_insn".
12317 (add_auto_inc_notes): Strengthen param "insn" from rtx to
12320 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12321 param of this duplicate of the prototype from reload.h
12323 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12325 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12327 (regstat_bb_compute_calls_crossed): Likewise.
12329 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12331 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12333 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12335 (regrename_analyze): Strengthen local "insn" from rtx to
12337 (scan_rtx_reg): Likewise for param "insn".
12338 (scan_rtx_address): Likewise.
12339 (scan_rtx): Likewise.
12340 (restore_operands): Likewise.
12341 (record_out_operands): Likewise.
12342 (build_def_use): Likewise for local "insn". Replace use of
12343 NULL_RTX with NULL when dealing with an insn.
12345 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12347 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12348 * reginfo.c (reg_scan): Likewise, also for local "insn".
12349 (reg_scan_mark_refs): Likewise for param "insn".
12350 (init_subregs_of_mode): Likewise for local "insn".
12352 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12354 * regcprop.c (struct queued_debug_insn_change): Strengthen field
12355 "insn" from rtx to rtx_insn *.
12356 (replace_oldest_value_reg): Likewise for param "insn".
12357 (replace_oldest_value_addr): Likewise.
12358 (replace_oldest_value_mem): Likewise.
12359 (apply_debug_insn_changes): Likewise for local "last_insn".
12360 (copyprop_hardreg_forward_1): Likewise for local "insn".
12362 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12364 * reg-stack.c (next_flags_user): Strengthen return type and param
12365 "insn" from rtx to rtx_insn *.
12366 (straighten_stack): Likewise for param "insn".
12367 (check_asm_stack_operands): Likewise.
12368 (remove_regno_note): Likewise.
12369 (emit_pop_insn): Likewise for return type, param "insn", local
12371 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
12372 "limit" from rtx to rtx_insn *.
12373 (swap_to_top): Likewise for param "insn".
12374 (move_for_stack_reg): Likewise.
12375 (move_nan_for_stack_reg): Likewise.
12376 (swap_rtx_condition): Likewise.
12377 (compare_for_stack_reg): Likewise.
12378 (subst_all_stack_regs_in_debug_insn): Likewise.
12379 (subst_stack_regs_pat): Likewise, and local "insn2".
12380 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12382 (subst_stack_regs): Likewise.
12383 (change_stack): Likewise.
12384 (convert_regs_1): Likewise for locals "insn", "next".
12386 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12388 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12390 (combine_set_extension): Likewise for param "curr_insn".
12391 (transform_ifelse): Likewise for param "def_insn".
12392 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
12393 from vec<rtx> * to vec<rtx_insn *> *.
12394 (is_cond_copy_insn): Likewise for param "insn".
12395 (struct ext_state): Strengthen the four vec fields from vec<rtx>
12396 to vec<rtx_insn *>.
12397 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
12398 local "def_insn" from rtx to rtx_insn *.
12399 (get_sub_rtx): Likewise for param "def_insn".
12400 (merge_def_and_ext): Likewise.
12401 (combine_reaching_defs): Likewise.
12402 (add_removable_extension): Likewise for param "insn".
12403 (find_removable_extensions): Likewise for local "insn".
12404 (find_and_remove_re): Likewise for locals "curr_insn" and
12405 "def_insn". Strengthen locals "reinsn_del_list" and
12406 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
12408 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12410 * recog.c (split_insn): Strengthen param "insn" and locals
12411 "first", "last" from rtx to rtx_insn *.
12412 (split_all_insns): Likewise for locals "insn", "next".
12413 (split_all_insns_noflow): Likewise.
12415 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12417 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
12419 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12420 (debug_rtx_find): Likewise for param 1 "x".
12422 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
12423 const_rtx to const rtx_insn *. Likewise for local "insn".
12424 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12425 (debug_rtx_find): Likewise for param 1 "x".
12426 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
12427 from const_rtx to const rtx_insn * within the appropriate cases of
12428 the switch statement.
12430 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
12431 Strengthen local "insns" from rtx to rtx_insn * since this is
12432 passed to a call to debug_rtx_list.
12434 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12436 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
12439 * function.c (stack_protect_epilogue): Add checked cast to
12440 rtx_insn for now when invoking predict_insn_def.
12442 * predict.c (predict_insn): Strengthen param "insn" from rtx to
12444 (predict_insn_def): Likewise.
12445 (rtl_predict_edge): Likewise for local "last_insn".
12446 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
12448 (combine_predictions_for_insn): Strengthen param "insn" from rtx
12450 (bb_estimate_probability_locally): Likewise for local "last_insn".
12451 (expensive_function_p): Likewise for local "insn".
12453 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
12454 local "jmp", since this is used when invoking predict_insn_def.
12456 2014-08-22 Marek Polacek <polacek@redhat.com>
12459 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
12461 2014-08-22 Marek Polacek <polacek@redhat.com>
12464 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
12465 a comparison in parens.
12466 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
12469 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12471 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
12474 * cprop.c (fis_get_condition): Likewise.
12476 * postreload.c (reload_cse_regs): Likewise for param "first".
12477 (reload_cse_simplify): Likewise for param "insn".
12478 (reload_cse_regs_1): Likewise for local "insn".
12479 (reload_cse_simplify_set): Likewise for param "insn".
12480 (reload_cse_simplify_operands): Likewise.
12481 (struct reg_use): Likewise for field "insn".
12482 (reload_combine_purge_insn_uses): Likewise for param "insn".
12483 (fixup_debug_insns): Likewise for params "from", "to" and local
12485 (try_replace_in_use): Likewise for local "use_insn".
12486 (reload_combine_recognize_const_pattern): Likewise for param
12487 "insn" and locals "add_moved_after_insn", "use_insn".
12488 (reload_combine_recognize_pattern): Likewise for param "insn" and
12490 (reload_combine): Likewise for locals "insn", "prev".
12491 (reload_combine_note_use): Likewise for param "insn".
12492 (move2add_use_add2_insn): Likewise.
12493 (move2add_use_add3_insn): Likewise.
12494 (reload_cse_move2add): Likewise, also for local "next".
12495 (move2add_note_store): Likewise for local "insn".
12497 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12499 * postreload-gcse.c (struct occr): Strengthen field "insn" from
12501 (struct unoccr): Likewise.
12502 (struct modifies_mem): Likewise.
12503 (alloc_mem): Likewise for local "insn".
12504 (insert_expr_in_table): Likewise for param "insn".
12505 (dump_expr_hash_table_entry): Likewise for local "insn".
12506 (oprs_unchanged_p): Likewise for param "insn".
12507 (load_killed_in_block_p): Likewise for local "setter".
12508 (record_last_reg_set_info): Likewise for param "insn".
12509 (record_last_reg_set_info_regno): Likewise.
12510 (record_last_mem_set_info): Likewise.
12511 (record_last_set_info): Likewise for local "last_set_insn".
12512 (record_opr_changes): Likewise for param "insn".
12513 (hash_scan_set): Likewise.
12514 (compute_hash_table): Likewise for local "insn".
12515 (get_avail_load_store_reg): Likewise for param "insn".
12516 (eliminate_partially_redundant_load): Likewise, also for locals
12517 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
12519 (eliminate_partially_redundant_loads): Likewise for local "insn".
12521 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12523 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
12525 (expand_binop): Likewise for locals "entry_last", "last", "insns"
12526 (expand_twoval_unop): Likewise for locals entry_last", "last".
12527 (expand_twoval_binop): Likewise.
12528 (expand_twoval_binop_libfunc): Likewise for local "insns".
12529 (widen_leading): Likewise for local "last".
12530 (expand_doubleword_clz): Likewise for local "seq". Strengthen
12531 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
12532 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
12533 (expand_parity): Likewise for locals "last" and "seq".
12534 (expand_ffs): Likewise for local "seq". Strengthen local
12535 "nonzero_label" from rtx to rtx_code_label *.
12536 (expand_absneg_bit): Strengthen local "insns" from rtx to
12538 (expand_unop_direct): Likewise for local "last".
12539 (expand_unop): Likewise for locals "last", "insns".
12540 (expand_abs_nojump): Likewise for local "last".
12541 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
12542 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
12544 (expand_copysign_absneg): Strengthen local "label" from rtx to
12546 (expand_copysign_bit): Strengthen local "insns" from rtx to
12548 (struct no_conflict_data): Likewise for fields "first", "insn".
12549 (emit_libcall_block_1): Likewise for param "insns" and locals
12550 "next", "last", "insn".
12551 (emit_libcall_block): For now, add a checked cast to rtx_insn *
12552 on "insns" when invoking emit_libcall_block_1. Ultimately we
12553 want to strengthen insns itself.
12554 (prepare_cmp_insn): Strengthen local "last" from rtx to
12556 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
12557 (prepare_float_lib_cmp): Likewise for local "insns".
12558 (emit_conditional_move): Likewise for local "last".
12559 (emit_conditional_add): Likewise.
12560 (have_sub2_insn): Likewise for local "seq".
12561 (expand_float): Likewise for local "insns". Strengthen locals
12562 "label", "neglabel" from rtx to rtx_code_label *.
12563 (expand_fix): Likewise for locals "last", "insn", "insns" (to
12564 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
12565 (expand_fixed_convert): Likewise for local "insns" (to
12567 (expand_sfix_optab): Likewise for local "last".
12568 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
12569 to rtx_code_label *.
12570 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
12571 from rtx to rtx_insn *.
12572 (expand_atomic_fetch_op): Likewise for local "insn".
12573 (maybe_legitimize_operand_same_code): Likewise for local "last".
12574 (maybe_legitimize_operands): Likewise.
12576 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12578 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
12579 "insn" from rtx to rtx_insn *.
12580 (ps_rtl_insn): Likewise for return type.
12581 (doloop_register_get): Likewise for params "head", "tail" and
12582 locals "insn", "first_insn_not_to_check".
12583 (schedule_reg_move): Likewise for local "this_insn".
12584 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
12585 of gen_move_insn for now.
12586 (reset_sched_times): Strengthen local "insn" from rtx to
12588 (permute_partial_schedule): Likewise.
12589 (duplicate_insns_of_cycles): Likewise for local "u_insn".
12590 (dump_insn_location): Likewise for param "insn".
12591 (loop_canon_p): Likewise for local "insn".
12592 (sms_schedule): Likewise.
12593 (print_partial_schedule): Likewise.
12594 (ps_has_conflicts): Likewise.
12596 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12598 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
12599 "tailp" from rtx * to rtx_insn **.
12601 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
12602 from rtx to rtx_insn *.
12603 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
12604 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
12605 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
12607 * modulo-sched.c (const_iteration_count): Strengthen return type
12608 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
12609 use of NULL_RTX with NULL when working with insns.
12610 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
12612 (sms_schedule): Likewise.
12613 * sched-rgn.c (init_ready_list): Likewise, also for locals
12614 "src_head" and "src_next_tail".
12615 (compute_block_dependences): Likewise.
12616 (free_block_dependencies): Likewise.
12617 (debug_rgn_dependencies): Likewise.
12618 (free_rgn_deps): Likewise.
12619 (compute_priorities): Likewise.
12620 (schedule_region): Likewise.
12621 * sel-sched.c (find_ebb_boundaries): Likewise.
12623 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
12624 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
12626 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12628 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
12629 from rtx to rtx_insn *.
12630 (new_seginfo): Likewise for param "insn".
12631 (create_pre_exit): Likewise for locals "last_insn",
12632 "before_return_copy", "return_copy".
12633 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
12636 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12638 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
12639 from rtx to rtx_insn *.
12640 (lra_push_insn): Likewise for 1st param.
12641 (lra_push_insn_and_update_insn_regno_info): Likewise.
12642 (lra_pop_insn): Likewise for return type.
12643 (lra_invalidate_insn_data): Likewise for 1st param.
12644 (lra_set_insn_deleted): Likewise.
12645 (lra_delete_dead_insn): Likewise.
12646 (lra_process_new_insns): Likewise for first 3 params.
12647 (lra_set_insn_recog_data): Likewise for 1st param.
12648 (lra_update_insn_recog_data): Likewise.
12649 (lra_set_used_insn_alternative): Likewise.
12650 (lra_invalidate_insn_regno_info): Likewise.
12651 (lra_update_insn_regno_info): Likewise.
12652 (lra_former_scratch_operand_p): Likewise.
12653 (lra_eliminate_regs_1): Likewise.
12654 (lra_get_insn_recog_data): Likewise.
12656 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
12659 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
12661 (substitute_within_insn): New.
12662 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
12663 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
12664 Replace call to "substitute" with call to substitute_within_insn.
12666 * lra-constraints.c (curr_insn): Strengthen from rtx to
12668 (get_equiv_with_elimination): Likewise for param "insn".
12669 (match_reload): Strengthen params "before" and "after" from rtx *
12671 (emit_spill_move): Likewise for return type. Add a checked cast
12672 to rtx_insn * on result of gen_move_insn for now.
12673 (check_and_process_move): Likewise for local "before". Replace
12674 NULL_RTX with NULL when referring to insns.
12675 (process_addr_reg): Strengthen params "before" and "after" from
12676 rtx * to rtx_insn **.
12677 (insert_move_for_subreg): Likewise.
12678 (simplify_operand_subreg): Strengthen locals "before" and "after"
12679 from rtx to rtx_insn *.
12680 (process_address_1): Strengthen params "before" and "after" from
12681 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
12683 (process_address): Strengthen params "before" and "after" from
12684 rtx * to rtx_insn **.
12685 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
12686 (curr_insn_transform): Strengthen locals "before" and "after"
12687 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
12689 (loc_equivalence_callback): Update cast of "data", changing
12690 resulting type from rtx to rtx_insn *.
12691 (substitute_pseudo_within_insn): New.
12692 (inherit_reload_reg): Strengthen param "insn" from rtx to
12693 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
12694 NULL when referring to insns. Add a checked cast to rtx_insn *
12695 when using usage_insn to invoke lra_update_insn_regno_info.
12696 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
12697 likewise for locals "restore", "save". Add checked casts to
12698 rtx_insn * when using usage_insn to invoke
12699 lra_update_insn_regno_info and lra_process_new_insns. Replace
12700 NULL_RTX with NULL when referring to insns.
12701 (split_if_necessary): Strengthen param "insn" from rtx to
12703 (update_ebb_live_info): Likewise for params "head", "tail" and local
12705 (get_last_insertion_point): Likewise for return type and local "insn".
12706 (get_live_on_other_edges): Likewise for local "last".
12707 (inherit_in_ebb): Likewise for params "head", "tail" and locals
12708 "prev_insn", "next_insn", "restore".
12709 (remove_inheritance_pseudos): Likewise for local "prev_insn".
12710 (undo_optional_reloads): Likewise for local "insn".
12712 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
12714 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
12716 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
12718 (spill_pseudos): Likewise for local "insn".
12719 (init_elimination): Likewise.
12720 (process_insn_for_elimination): Likewise for param "insn".
12722 * lra-lives.c (curr_insn): Likewise.;
12724 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
12725 (remove_pseudos): Likewise for param "insn".
12726 (spill_pseudos): Likewise for local "insn".
12727 (lra_final_code_change): Likewise for locals "insn", "curr".
12729 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
12730 (lra_set_insn_deleted): Likewise.
12731 (lra_delete_dead_insn): Likewise, and for local "prev".
12732 (new_insn_reg): Likewise for param "insn".
12733 (lra_set_insn_recog_data): Likewise.
12734 (lra_update_insn_recog_data): Likewise.
12735 (lra_set_used_insn_alternative): Likewise.
12736 (get_insn_freq): Likewise.
12737 (invalidate_insn_data_regno_info): Likewise.
12738 (lra_invalidate_insn_regno_info): Likewise.
12739 (lra_update_insn_regno_info): Likewise.
12740 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
12742 (lra_push_insn_1): Strengthen param "insn" from rtx to
12744 (lra_push_insn): Likewise.
12745 (lra_push_insn_and_update_insn_regno_info): Likewise.
12746 (lra_pop_insn): Likewise for return type and local "insn".
12747 (push_insns): Likewise for params "from", "to", and local "insn".
12748 (setup_sp_offset): Likewise for params "from", "last" and locals
12750 (lra_process_new_insns): Likewise for params "insn", "before",
12751 "after" and local "last".
12752 (struct sloc): Likewise for field "insn".
12753 (lra_former_scratch_operand_p): Likewise for param "insn".
12754 (remove_scratches): Likewise for locals "insn", "last".
12755 (check_rtl): Likewise for local "insn".
12756 (add_auto_inc_notes): Likewise for param "insn".
12757 (update_inc_notes): Likewise for local "insn".
12758 (lra): Replace NULL_RTX with NULL when referring to insn.
12760 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12762 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
12764 (resolve_reg_notes): Likewise.
12765 (resolve_simple_move): Likewise for return type, param "insn", and
12766 locals "insns", "minsn".
12767 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
12768 (resolve_use): Likewise.
12769 (resolve_debug): Likewise.
12770 (find_decomposable_shift_zext): Likewise.
12771 (resolve_shift_zext): Likewise for return type, param "insn", and
12772 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
12773 (decompose_multiword_subregs): Likewise for local "insn",
12774 "orig_insn", "decomposed_shift", "end".
12776 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12778 * basic-block.h (basic_block split_edge_and_insert): Strengthen
12779 param "insns" from rtx to rtx_insn *.
12781 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
12783 (struct iv_to_split): Likewise.
12784 (loop_exit_at_end_p): Likewise for local "insn".
12785 (split_edge_and_insert): Likewise for param "insns".
12786 (compare_and_jump_seq): Likewise for return type, param "cinsn",
12787 and locals "seq", "jump".
12788 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
12789 "branch_code"; update invocations of compare_and_jump_seq to
12790 eliminate NULL_RTX in favor of NULL.
12791 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
12793 (reset_debug_uses_in_loop): Likewise.
12794 (analyze_insn_to_expand_var): Likewise for param "insn".
12795 (analyze_iv_to_split_insn): Likewise.
12796 (analyze_insns_in_loop): Likewise for local "insn".
12797 (insert_base_initialization): Likewise for param
12798 "insn" and local "seq".
12799 (split_iv): Likewise for param "insn" and local "seq".
12800 (expand_var_during_unrolling): Likewise for param "insn".
12801 (insert_var_expansion_initialization): Likewise for local "seq".
12802 (combine_var_copies_in_loop_exit): Likewise.
12803 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
12805 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
12806 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
12809 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12811 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
12813 (iv_analyze_result): Likewise.
12814 (iv_analyze_expr): Likewise.
12817 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
12818 local "def_insn" from rtx to rtx_insn *.
12819 (get_biv_step_1): Likewise for local "insn".
12820 (iv_analyze_expr): Likewise for param "insn".
12821 (iv_analyze_def): Likewise for local "insn".
12822 (iv_analyze_op): Likewise for param "insn".
12823 (iv_analyze): Likewise.
12824 (iv_analyze_result): Likewise.
12826 (suitable_set_for_replacement): Likewise.
12827 (simplify_using_initial_values): Likewise for local "insn".
12828 (iv_number_of_iterations): Likewise for param "insn".
12829 (check_simple_exit): Add checked cast to rtx_insn when invoking
12830 iv_number_of_iterations for now (until get_condition is
12833 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
12834 "insn" from rtx to rtx_insn *.
12835 (analyze_insns_in_loop): Likewise for local "insn".
12837 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12839 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
12841 (struct invariant): Likewise.
12842 (hash_invariant_expr_1): Likewise for param "insn".
12843 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
12844 (find_exits): Likewise for local "insn".
12845 (create_new_invariant): Likewise for param "insn".
12846 (check_dependencies): Likewise.
12847 (find_invariant_insn): Likewise.
12848 (record_uses): Likewise.
12849 (find_invariants_insn): Likewise.
12850 (find_invariants_bb): Likewise for local "insn".
12851 (get_pressure_class_and_nregs): Likewise for param "insn".
12852 (calculate_loop_reg_pressure): Likewise for local "insn".
12854 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12856 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
12858 (add_test): Likewise for locals "seq", "jump".
12859 (doloop_modify): Likewise for locals "sequence", "jump_insn".
12861 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12863 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
12865 (rebuild_jump_labels_chain): Likewise for param "chain".
12867 * cfgexpand.c (pass_expand::execute): Add checked cast to
12868 rtx_insn * when calling rebuild_jump_labels_chain in region where
12869 we know e->insns.r is non-NULL.
12871 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
12873 (rebuild_jump_labels): Likewise.
12874 (rebuild_jump_labels_chain): Likewise for param "chain".
12875 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
12876 (init_label_info): Likewise for param "f".
12877 (maybe_propagate_label_ref): Likewise for params "jump_insn",
12878 "prev_nonjump_insn".
12879 (mark_all_labels): Likewise for param "f" and locals "insn",
12880 "prev_nonjump_insn".
12882 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12884 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
12885 from rtx to rtx_insn *insn.
12886 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
12887 (ira_add_allocno_copy): Likewise.
12888 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
12890 (ira_create_copy): Likewise.
12891 (ira_add_allocno_copy): Likewise.
12892 (create_bb_allocnos): Likewise for local "insn".
12893 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
12894 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
12895 process_regs_for_copy for rtx_insn * param.
12896 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
12897 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
12898 process_regs_for_copy for rtx_insn * param.
12899 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
12900 * ira-costs.c (record_reg_classes): Likewise for param "insn".
12901 (record_operand_costs): Likewise.
12902 (scan_one_insn): Likewise for return type, and for param "insn".
12903 (process_bb_for_costs): Likewise for local "insn".
12904 (process_bb_node_for_hard_reg_moves): Likewise.
12905 * ira-emit.c (struct move): Likewise for field "insn".
12906 (create_move): Eliminate use of NULL_RTX when dealing with an
12908 (emit_move_list): Strengthen return type and locals "result",
12909 "insn" from rtx to rtx_insn *insn.
12910 (emit_moves): Likewise for locals "insns", "tmp".
12911 (ira_emit): Likewise for local "insn".
12912 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
12914 (find_call_crossed_cheap_reg): Likewise.
12915 (process_bb_node_lives): Likewise for local "insn".
12916 * ira.c (decrease_live_ranges_number): Likewise.
12917 (compute_regs_asm_clobbered): Likewise.
12918 (build_insn_chain): Likewise.
12919 (find_moveable_pseudos): Likewise, also locals "def_insn",
12920 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
12921 to rtx_insn **. Add a checked cast when assigning from
12922 "closest_use" into closest_uses array in a region where we know
12923 it's a non-NULL insn.
12924 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
12926 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
12927 "last_interesting_insn", "uin".
12928 (move_unallocated_pseudos): Likewise for locals "def_insn",
12929 "move_insn", "newinsn".
12931 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12933 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
12934 Strengthen locals "done_label", "do_error" from rtx to
12936 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
12937 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
12939 (ubsan_expand_si_overflow_neg_check): Likewise for locals
12940 "done_label", "do_error" to rtx_code_label * and local "last" to
12942 (ubsan_expand_si_overflow_mul_check): Likewise for locals
12943 "done_label", "do_error", "large_op0", "small_op0_large_op1",
12944 "one_small_one_large", "both_ops_large", "after_hipart_neg",
12945 "after_lopart_neg", "do_overflow", "hipart_different" to
12946 rtx_code_label * and local "last" to rtx_insn *.
12948 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12950 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
12951 "insn" and "move_insn" from rtx to rtx_insn *.
12953 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12955 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
12957 (cheap_bb_rtx_cost_p): Likewise.
12958 (first_active_insn): Likewise for return type and local "insn".
12959 (last_active_insn): Likewise for return type and locals "insn",
12961 (struct noce_if_info): Likewise for fields "jump", "insn_a",
12963 (end_ifcvt_sequence): Likewise for return type and locals "insn",
12965 (noce_try_move): Likewise for local "seq".
12966 (noce_try_store_flag): Likewise.
12967 (noce_try_store_flag_constants): Likewise.
12968 (noce_try_addcc): Likewise.
12969 (noce_try_store_flag_mask): Likewise.
12970 (noce_try_cmove): Likewise.
12971 (noce_try_minmax): Likewise.
12972 (noce_try_abs): Likewise.
12973 (noce_try_sign_mask): Likewise.
12974 (noce_try_bitop): Likewise.
12975 (noce_can_store_speculate_p): Likewise for local "insn".
12976 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
12978 (check_cond_move_block): Likewise for local "insn".
12979 (cond_move_convert_if_block): Likewise.
12980 (cond_move_process_if_block): Likewise for locals "seq",
12982 (noce_find_if_block): Likewise for local "jump".
12983 (merge_if_block): Likewise for local "last".
12984 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
12985 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
12986 (block_has_only_trap): Likewise for return type and local "trap".
12987 (find_if_case_1): Likewise for local "jump".
12988 (dead_or_predicable): Likewise for locals "head", "end", "jump",
12991 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12993 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
12994 "last_insn", "loop_end" from rtx to rtx_insn *.
12996 * hw-doloop.c (scan_loop): Likewise for local "insn".
12997 (discover_loop): Likewise for param "tail_insn".
12998 (discover_loops): Likewise for local "tail".
13000 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13001 cast to rtx_insn * when assigning from an rtx local to a
13002 hwloop_info's "last_insn" field.
13004 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13006 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13007 (add_delay_dependencies): Strengthen local "pro" from rtx to
13009 (recompute_todo_spec): Likewise.
13010 (dep_cost_1): Likewise for locals "insn", "used".
13011 (schedule_insn): Likewise for local "dbg".
13012 (schedule_insn): Likewise for locals "pro", "next".
13013 (unschedule_insns_until): Likewise for local "con".
13014 (restore_pattern): Likewise for local "next".
13015 (estimate_insn_tick): Likewise for local "pro".
13016 (resolve_dependencies): Likewise for local "next".
13017 (fix_inter_tick): Likewise.
13018 (fix_tick_ready): Likewise for local "pro".
13019 (add_to_speculative_block): Likewise for locals "check", "twin",
13021 (sched_extend_bb): Likewise for locals "end", "insn".
13022 (init_before_recovery): Likewise for local "x".
13023 (sched_create_recovery_block): Likewise for local "barrier".
13024 (create_check_block_twin): Likewise for local "pro".
13025 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13027 (unlink_bb_notes): Update for change to type of bb_header.
13028 Strengthen locals "prev", "label", "note", "next" from rtx to
13030 (clear_priorities): Likewise for local "pro".
13032 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13034 * gcse.c (struct occr): Strengthen field "insn" from rtx to
13036 (test_insn): Likewise for this global.
13037 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13039 (oprs_anticipatable_p): Likewise.
13040 (oprs_available_p): Likewise.
13041 (insert_expr_in_table): Strengthen param "insn" from rtx to
13043 (hash_scan_set): Likewise.
13044 (hash_scan_clobber): Likewise.
13045 (hash_scan_call): Likewise.
13046 (hash_scan_insn): Likewise.
13047 (compute_hash_table_work): Likewise for local "insn".
13048 (process_insert_insn): Likewise for return type and local "pat".
13049 (insert_insn_end_basic_block): Likewise for locals "new_insn",
13050 "pat", "pat_end", "maybe_cc0_setter".
13051 (pre_edge_insert): Likewise for local "insn".
13052 (pre_insert_copy_insn): Likewise for param "insn".
13053 (pre_insert_copies): Likewise for local "insn".
13054 (struct set_data): Likewise for field "insn".
13055 (single_set_gcse): Likewise for param "insn".
13056 (gcse_emit_move_after): Likewise.
13057 (pre_delete): Likewise for local "insn".
13058 (update_bb_reg_pressure): Likewise for param "from" and local
13060 (should_hoist_expr_to_dom): Likewise for param "from".
13061 (hoist_code): Likewise for local "insn".
13062 (get_pressure_class_and_nregs): Likewise for param "insn".
13063 (calculate_bb_reg_pressure): Likewise for local "insn".
13064 (compute_ld_motion_mems): Likewise.
13066 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13068 * genpeep.c (main): Rename param back from "uncast_ins1" to
13069 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
13072 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13074 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
13077 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13078 documentation to state it is only for VSX operations.
13080 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13081 constraint only active if VSX.
13083 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13084 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13085 (lfiwzx): Likewise.
13087 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13089 * fwprop.c (single_def_use_dom_walker::before_dom_children):
13090 Strengthen local "insn" from rtx to rtx_insn *.
13091 (use_killed_between): Likewise for param "target_insn".
13092 (all_uses_available_at): Likewise for param "target_insn" and
13094 (update_df_init): Likewise for params "def_insn", "insn".
13095 (update_df): Likewise for param "insn".
13096 (try_fwprop_subst): Likewise for param "def_insn" and local
13098 (free_load_extend): Likewise for param "insn".
13099 (forward_propagate_subreg): Likewise for param "def_insn" and
13101 (forward_propagate_asm): Likewise for param "def_insn" and local
13103 (forward_propagate_and_simplify): Likewise for param "def_insn"
13104 and local "use_insn".
13105 (forward_propagate_into): Likewise for locals "def_insn" and
13108 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13110 * function.c (emit_initial_value_sets): Strengthen local "seq"
13111 from rtx to rtx_insn *.
13112 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13114 (instantiate_virtual_regs): Likewise for local "insn".
13115 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13116 (reorder_blocks_1): Likewise for param "insns" and local "insn".
13117 (expand_function_end): Likewise for locals "insn" and "seq".
13118 (epilogue_done): Likewise for local "insn".
13119 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13121 (reposition_prologue_and_epilogue_notes): Likewise for locals
13122 "insn", "last", "note", "first".
13123 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13124 (pass_match_asm_constraints::execute): Likewise for local "insn".
13126 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13128 * output.h (final_scan_insn): Strengthen return type from rtx to
13130 (final_forward_branch_p): Likewise for param.
13131 (current_output_insn): Likewise for this global.
13133 * final.c (rtx debug_insn): Likewise for this variable.
13134 (current_output_insn): Likewise.
13135 (get_attr_length_1): Rename param "insn" to "uncast_insn",
13136 adding "insn" back in as an rtx_insn * with a checked cast, so
13137 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13139 (compute_alignments): Strengthen local "label" from rtx to
13141 (shorten_branches): Rename param from "first" to "uncast_first",
13142 introducing a new local rtx_insn * "first" using a checked cast to
13143 effectively strengthen "first" from rtx to rtx_insn * without
13144 affecting the type signature. Strengthen locals "insn", "seq",
13145 "next", "label" from rtx to rtx_insn *.
13146 (change_scope): Strengthen param "orig_insn" and local "insn" from
13148 (final_start_function): Rename param from "first" to "uncast_first",
13149 introducing a new local rtx_insn * "first" using a checked cast to
13150 effectively strengthen "first" from rtx to rtx_insn * without
13151 affecting the type signature. Strengthen local "insn" from rtx to
13153 (dump_basic_block_info): Strengthen param "insn" from rtx to
13155 (final): Rename param from "first" to "uncast_first",
13156 introducing a new local rtx_insn * "first" using a checked cast to
13157 effectively strengthen "first" from rtx to rtx_insn * without
13158 affecting the type signature. Strengthen locals "insn", "next"
13159 from rtx to rtx_insn *.
13160 (output_alternate_entry_point): Strengthen param "insn" from rtx to
13162 (call_from_call_insn): Strengthen param "insn" from rtx to
13164 (final_scan_insn): Rename param from "insn" to "uncast_insn",
13165 introducing a new local rtx_insn * "insn" using a checked cast to
13166 effectively strengthen "insn" from rtx to rtx_insn * without
13167 affecting the type signature. Strengthen return type and locals
13168 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
13169 now-redundant checked cast to rtx_insn * from both invocations of
13170 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
13171 introducing a local "call_insn" for use when invoking
13172 call_from_call_insn.
13173 (notice_source_line): Strengthen param "insn" from rtx to
13175 (leaf_function_p): Likewise for local "insn".
13176 (final_forward_branch_p): Likewise.
13177 (leaf_renumber_regs): Likewise for param "first".
13178 (rest_of_clean_state): Likewise for locals "insn" and "next".
13179 (self_recursive_call_p): Likewise for param "insn".
13180 (collect_fn_hard_reg_usage): Likewise for local "insn".
13181 (get_call_fndecl): Likewise for param "insn".
13182 (get_call_cgraph_rtl_info): Likewise.
13183 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13184 introducing a new local rtx_insn * "insn" using a checked cast to
13185 effectively strengthen "insn" from rtx to rtx_insn * without
13186 affecting the type signature.
13188 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13189 cast when assigning from param "insn" to current_output_insn.
13190 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13191 so that we can assign it back to current_output_insn.
13193 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13195 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13196 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13197 atmxt540s and atmxt540sreva devices.
13198 * config/avr/avr-tables.opt: Regenerate.
13199 * config/avr/t-multilib: Regenerate.
13200 * doc/avr-mmcu.texi: Regenerate.
13202 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13204 * expr.c (convert_move): Strengthen local "insns" from rtx to
13206 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13207 "top_label" from rtx to rtx_code_label *.
13208 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13210 (emit_single_push_insn): Likewise for locals "prev", "last".
13211 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13212 to rtx_code_label *.
13213 (store_constructor): Likewise for locals "loop_start", "loop_end".
13214 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13216 (expand_expr_real_2): Likewise.
13217 (expand_expr_real_1): Strengthen local "label" from rtx to
13220 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13222 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13223 from rtx to rtx_insn *.
13224 (store_bit_field_1): Likewise.
13225 (extract_bit_field_1): Likewise.
13226 (expand_mult_const): Likewise for local "insns".
13227 (expmed_mult_highpart): Strengthen local "label" from rtx to
13229 (expand_smod_pow2): Likewise.
13230 (expand_sdiv_pow2): Likewise.
13231 (expand_divmod): Strengthen locals "last", "insn" from rtx to
13232 rtx_insn *. Strengthen locals "label", "label1", "label2",
13233 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13234 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13235 (emit_store_flag): Likewise.
13236 (emit_store_flag_force): Strengthen local "label" from rtx to
13238 (do_cmp_and_jump): Likewise for param "label".
13240 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13242 * explow.c (force_reg): Strengthen local "insn" from rtx to
13244 (adjust_stack_1): Likewise.
13245 (allocate_dynamic_stack_space): Likewise. Strengthen locals
13246 "final_label", "available_label", "space_available" from rtx to
13248 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13249 (anti_adjust_stack_and_probe): Likewise.
13251 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13253 * except.h (sjlj_emit_function_exit_after): Strengthen param
13254 "after" from rtx to rtx_insn *. This is only called with
13255 result of get_last_insn (in function.c) so type-change should be
13258 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13259 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13260 to rtx_insn *. These fields are only used from except.c so this
13261 type-change should be self-contained to this patch.
13263 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13264 local "last" from rtx to rtx_insn *.
13265 (dw2_build_landing_pads): Likewise for local "seq".
13266 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13267 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13268 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
13270 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13272 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13273 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13274 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13275 referring to an insn. Strengthen local "dispatch_label" from
13276 rtx to rtx_code_label *.
13277 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13279 (expand_eh_return): Strengthen local "around_label" from
13280 rtx to rtx_code_label *.
13281 (convert_to_eh_region_ranges): Strengthen locals "iter",
13282 "last_action_insn", "first_no_action_insn",
13283 "first_no_action_insn_before_switch",
13284 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13286 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13288 * dwarf2out.c (last_var_location_insn): Strengthen this variable
13289 from rtx to rtx_insn *.
13290 (cached_next_real_insn): Likewise.
13291 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13292 working with insns.
13293 (dwarf2out_var_location): Strengthen locals "next_real",
13294 "next_note", "expected_next_loc_note", "last_start", "insn" from
13297 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13299 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13300 from rtx to rtx_insn *.
13301 (create_pseudo_cfg): Likewise for local "insn".
13303 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13305 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13306 from rtx to rtx_insn *.
13307 (df_bb_regno_last_def_find): Likewise.
13309 * df-problems.c (df_rd_bb_local_compute): Likewise.
13310 (df_lr_bb_local_compute): Likewise.
13311 (df_live_bb_local_compute): Likewise.
13312 (df_chain_remove_problem): Likewise.
13313 (df_chain_create_bb): Likewise.
13314 (df_word_lr_bb_local_compute): Likewise.
13315 (df_remove_dead_eq_notes): Likewise for param "insn".
13316 (df_note_bb_compute): Likewise for local "insn".
13317 (simulate_backwards_to_point): Likewise.
13318 (df_md_bb_local_compute): Likewise.
13320 * df-scan.c (df_scan_free_bb_info): Likewise.
13321 (df_scan_start_dump): Likewise.
13322 (df_scan_start_block): Likewise.
13323 (df_install_ref_incremental): Likewise for local "insn".
13324 (df_insn_rescan_all): Likewise.
13325 (df_reorganize_refs_by_reg_by_insn): Likewise.
13326 (df_reorganize_refs_by_insn_bb): Likewise.
13327 (df_recompute_luids): Likewise.
13328 (df_bb_refs_record): Likewise.
13329 (df_update_entry_exit_and_calls): Likewise.
13330 (df_bb_verify): Likewise.
13332 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13334 * ddg.h (struct ddg_node): Strengthen fields "insn" and
13335 "first_note" from rtx to rtx_insn *.
13336 (get_node_of_insn): Likewise for param 2 "insn".
13337 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13339 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13341 (mem_write_insn_p): Likewise.
13342 (mem_access_insn_p): Likewise.
13343 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13344 (def_has_ccmode_p): Likewise for param "insn".
13345 (add_cross_iteration_register_deps): Likewise for locals
13346 "def_insn" and "use_insn".
13347 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13348 (build_intra_loop_deps): Likewise for local "src_insn".
13349 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13351 (get_node_of_insn): Likewise for param "insn".
13353 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13355 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13356 (deletable_insn_p): Strengthen param "insn" from rtx to
13357 rtx_insn *. Add checked cast to rtx_call_insn when invoking
13358 find_call_stack_args, since this is guarded by CALL_P (insn).
13359 (marked_insn_p): Strengthen param "insn" from rtx to
13361 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
13362 invoking find_call_stack_args, since this is guarded by
13364 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13365 rtx_insn *; we know this is an insn since this was called by
13366 mark_nonreg_stores.
13367 (mark_nonreg_stores_2): Likewise.
13368 (mark_nonreg_stores): Strengthen param "insn" from rtx to
13370 (find_call_stack_args): Strengthen param "call_insn" from rtx to
13371 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13373 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13374 from rtx to rtx_insn *.
13375 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13376 "next", "ref_insn".
13377 (delete_unmarked_insns): Likewise for locals "insn", "next".
13378 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13379 (mark_reg_dependencies): Likewise for param "insn".
13380 (rest_of_handle_ud_dce): Likewise for local "insn".
13381 (word_dce_process_block): Likewise.
13382 (dce_process_block): Likewise.
13384 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13386 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13387 from rtx to rtx_insn *.
13388 (struct change_cc_mode_args): Likewise for field "insn".
13389 (this_insn): Strengthen from rtx to rtx_insn *.
13390 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13392 (validate_canon_reg): Strengthen param "insn" from rtx to
13394 (canon_reg): Likewise.
13395 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
13397 (record_jump_equiv): Strengthen param "insn" from rtx to
13399 (try_back_substitute_reg): Likewise, also for locals "prev",
13401 (find_sets_in_insn): Likewise for param "insn".
13402 (canonicalize_insn): Likewise.
13403 (cse_insn): Likewise. Add a checked cast.
13404 (invalidate_from_clobbers): Likewise for param "insn".
13405 (invalidate_from_sets_and_clobbers): Likewise.
13406 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
13408 (cse_prescan_path): Strengthen local "insn" from rtx to
13410 (cse_extended_basic_block): Likewise for locals "insn" and
13412 (cse_main): Likewise for param "f".
13413 (check_for_label_ref): Likewise for local "insn".
13414 (set_live_p): Likewise for second param ("insn").
13415 (insn_live_p): Likewise for first param ("insn") and for local
13417 (cse_change_cc_mode_insn): Likewise for first param "insn".
13418 (cse_change_cc_mode_insns): Likewise for first and second params
13420 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
13422 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
13425 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
13426 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13427 Anna Tikhonova <anna.tikhonova@intel.com>
13428 Ilya Tocar <ilya.tocar@intel.com>
13429 Andrey Turetskiy <andrey.turetskiy@intel.com>
13430 Ilya Verbin <ilya.verbin@intel.com>
13431 Kirill Yukhin <kirill.yukhin@intel.com>
13432 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13434 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
13436 * config/i386/sse.md
13437 (define_mode_iterator VI248_AVX2): Delete.
13438 (define_mode_iterator VI2_AVX2_AVX512BW): New.
13439 (define_mode_iterator VI48_AVX2): Ditto.
13440 (define_insn <shift_insn><mode>3): Delete.
13441 (define_insn "<shift_insn><mode>3<mask_name>" with
13442 VI2_AVX2_AVX512BW): New.
13443 (define_insn "<shift_insn><mode>3<mask_name>" with
13446 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
13447 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13448 Anna Tikhonova <anna.tikhonova@intel.com>
13449 Ilya Tocar <ilya.tocar@intel.com>
13450 Andrey Turetskiy <andrey.turetskiy@intel.com>
13451 Ilya Verbin <ilya.verbin@intel.com>
13452 Kirill Yukhin <kirill.yukhin@intel.com>
13453 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13455 * config/i386/sse.md
13456 (define_mode_iterator VI4F_BRCST32x2): New.
13457 (define_mode_attr 64x2_mode): Ditto.
13458 (define_mode_attr 32x2mode): Ditto.
13459 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
13460 with VI4F_BRCST32x2): Ditto.
13461 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
13462 with V16FI mode iterator): Ditto.
13463 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13464 with V16FI): Ditto.
13465 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13466 with VI8F_BRCST64x2): Ditto.
13468 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
13469 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13470 Anna Tikhonova <anna.tikhonova@intel.com>
13471 Ilya Tocar <ilya.tocar@intel.com>
13472 Andrey Turetskiy <andrey.turetskiy@intel.com>
13473 Ilya Verbin <ilya.verbin@intel.com>
13474 Kirill Yukhin <kirill.yukhin@intel.com>
13475 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13477 * config/i386/sse.md
13478 (define_mode_iterator VI8_AVX512VL): New.
13479 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
13481 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
13483 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
13484 (define_mode_iterator V48_AVX512VL): New.
13485 (define_mode_iterator V12_AVX512VL): Ditto.
13486 (define_insn <avx512>_load<mode>_mask): Split into two similar
13487 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
13488 Refactor output template.
13489 (define_insn "<avx512>_store<mode>_mask"): Ditto.
13491 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13493 * cprop.c (struct occr): Strengthen field "insn" from rtx to
13495 (reg_available_p): Likewise for param "insn".
13496 (insert_set_in_table): Likewise.
13497 (hash_scan_set): Likewise.
13498 (hash_scan_insn): Likewise.
13499 (make_set_regs_unavailable): Likewise.
13500 (compute_hash_table_work): Likewise for local "insn".
13501 (reg_not_set_p): Strengthen param "insn" from const_rtx to
13503 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
13504 (try_replace_reg): Likewise.
13505 (find_avail_set): Likewise.
13506 (cprop_jump): Likewise for params "setcc", "jump".
13507 (constprop_register): Likewise for param "insn".
13508 (cprop_insn): Likewise.
13509 (do_local_cprop): Likewise.
13510 (local_cprop_pass): Likewise for local "insn".
13511 (bypass_block): Likewise for params "setcc" and "jump".
13512 (bypass_conditional_jumps): Likewise for locals "setcc" and
13514 (one_cprop_pass): Likewise for local "insn".
13516 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13518 * compare-elim.c (struct comparison_use): Strengthen field "insn"
13519 from rtx to rtx_insn *.
13520 (struct comparison): Likewise, also for field "prev_clobber".
13521 (conforming_compare): Likewise for param "insn".
13522 (arithmetic_flags_clobber_p): Likewise.
13523 (find_flags_uses_in_insn): Likewise.
13524 (find_comparison_dom_walker::before_dom_children): Likewise for
13525 locals "insn", "next", "last_clobber".
13526 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
13528 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13530 * combine-stack-adj.c (struct csa_reflist): Strengthen field
13531 "insn" from rtx to rtx_insn *.
13532 (single_set_for_csa): Likewise for param "insn".
13533 (record_one_stack_ref): Likewise.
13534 (try_apply_stack_adjustment): Likewise.
13535 (struct record_stack_refs_data): Likewise for field "insn".
13536 (maybe_move_args_size_note): Likewise for params "last" and "insn".
13537 (prev_active_insn_bb): Likewise for return type and param "insn".
13538 (next_active_insn_bb): Likewise.
13539 (force_move_args_size_note): Likewise for params "prev" and "last"
13540 and locals "test", "next_candidate", "prev_candidate".
13541 (combine_stack_adjustments_for_block): Strengthen locals
13542 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
13545 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13547 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
13548 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
13549 (subst_insn): Likewise for this variable.
13550 (added_links_insn): Likewise.
13551 (struct insn_link): Likewise for field "insn".
13552 (alloc_insn_link): Likewise for param "insn".
13553 (struct undobuf): Likewise for field "other_insn".
13554 (find_single_use): Likewise for param "insn" and local "next".
13555 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
13556 (delete_noop_moves): Likewise for locals "insn", "next".
13557 (create_log_links): Likewise for locals "insn", "use_insn".
13558 Strengthen local "next_use" from rtx * to rtx_insn **.
13559 (insn_a_feeds_b): Likewise for params "a", "b".
13560 (combine_instructions): Likewise for param "f" and locals "insn",
13561 "next", "prev", "first", "last_combined_insn", "link", "link1",
13562 "temp". Replace use of NULL_RTX with NULL when referring to
13564 (setup_incoming_promotions): Likewise for param "first"
13565 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
13566 (can_combine_p): Likewise for params "insn", "i3", "pred",
13567 "pred2", "succ", "succ2" and for local "p".
13568 (combinable_i3pat): Likewise for param "i3".
13569 (cant_combine_insn_p): Likewise for param "insn".
13570 (likely_spilled_retval_p): Likewise.
13571 (adjust_for_new_dest): Likewise.
13572 (update_cfg_for_uncondjump): Likewise, also for local "insn".
13573 (try_combine): Likewise for return type and for params "i3", "i2",
13574 "i1", "i0", "last_combined_insn", and for locals "insn",
13575 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
13576 "i0_insn". Eliminate local "tem" in favor of new locals
13577 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
13578 checked cast for now to rtx_insn * on the return type of
13579 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
13581 (find_split_point): Strengthen param "insn" from rtx to
13583 (simplify_set): Likewise for local "other_insn".
13584 (recog_for_combine): Likewise for param "insn".
13585 (record_value_for_reg): Likewise.
13586 (record_dead_and_set_regs_1): Likewise for local
13587 "record_dead_insn".
13588 (record_dead_and_set_regs): Likewise for param "insn".
13589 (record_promoted_value): Likewise.
13590 (check_promoted_subreg): Likewise.
13591 (get_last_value_validate): Likewise.
13592 (reg_dead_at_p): Likewise.
13593 (move_deaths): Likewise for param "to_insn".
13594 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
13595 and locals "place", "place2", "cc0_setter". Eliminate local "tem
13596 in favor of new locals "tem_note" and "tem_insn", the latter being
13598 (distribute_links): Strengthen locals "place", "insn" from rtx to
13601 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13603 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
13605 (can_delete_label_p): Require a const rtx_code_label * rather than
13607 (delete_insn): Add checked cast to rtx_code_label * when we know
13608 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
13610 (delete_insn_chain): Strengthen locals "prev" and "current" from
13611 rtx to rtx_insn *. Add a checked cast when assigning from
13612 "finish" (strengthening the params will come later). Add a
13613 checked cast to rtx_note * in region where we know
13615 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
13617 (compute_bb_for_insn): Likewise.
13618 (free_bb_for_insn): Likewise for local "insn".
13619 (compute_bb_for_insn): Likewise.
13620 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
13621 local "insn" from rtx to rtx_insn *
13622 (flow_active_insn_p): Require a const rtx_insn * rather than a
13624 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
13626 (can_fallthru): Likewise for locals "insn" and "insn2".
13627 (bb_note): Likewise for local "note".
13628 (first_insn_after_basic_block_note): Likewise for local "note" and
13630 (rtl_split_block): Likewise for locals "insn" and "next".
13631 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
13633 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
13634 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
13636 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
13637 them), "kill_from", "barrier", "new_insn".
13638 (patch_jump_insn): Likewise for params "insn", "old_label".
13639 (redirect_branch_edge): Likewise for locals "old_label", "insn".
13640 (force_nonfallthru_and_redirect): Likewise for locals "insn",
13641 "old_label", "new_label".
13642 (rtl_tidy_fallthru_edge): Likewise for local "q".
13643 (rtl_split_edge): Likewise for locals "before", "last".
13644 (commit_one_edge_insertion): Likewise for locals "before",
13645 "after", "insns", "tmp", "last", adding a checked cast where
13646 currently necessary.
13647 (commit_edge_insertions): Likewise.
13648 (rtl_dump_bb): Likewise for locals "insn", "last".
13649 (print_rtl_with_bb): Likewise for local "x".
13650 (rtl_verify_bb_insns): Likewise for local "x".
13651 (rtl_verify_bb_pointers): Likewise for local "insn".
13652 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
13654 (rtl_verify_fallthru): Likewise for local "insn".
13655 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
13656 (purge_dead_edges): Likewise for local "insn".
13657 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
13658 (skip_insns_after_block): Likewise for return type and for locals
13659 "insn", "last_insn", "next_head", "prev".
13660 (record_effective_endpoints): Likewise for locals "next_insn",
13662 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
13663 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
13664 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
13665 (duplicate_insn_chain): For now, add checked cast from rtx to
13666 rtx_insn * when returning insn.
13667 (cfg_layout_duplicate_bb): Likewise for local "insn".
13668 (cfg_layout_delete_block): Likewise for locals "insn", "next",
13669 "prev", "remaints".
13670 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
13671 (rtl_block_empty_p): Likewise.
13672 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
13673 "split_point", "last".
13674 (rtl_block_ends_with_call_p): Likewise for local "insn".
13675 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
13677 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
13678 "split_at_insn" from rtx to rtx_insn *.
13679 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
13680 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
13681 to const rtx_insn *.
13682 (rtl_account_profile_record): Likewise.
13684 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13686 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
13688 (average_num_loop_insns): Likewise.
13689 (init_set_costs): Likewise for local "seq".
13690 (seq_cost): Likewise for param "seq", from const_rtx to const
13693 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13695 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
13698 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13700 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
13701 "f1" and "f2" from rtx * to rtx_insn **.
13702 (flow_find_head_matching_sequence): Likewise.
13704 * cfgcleanup.c (try_simplify_condjump): Strengthen local
13705 "cbranch_insn" from rtx to rtx_insn *.
13706 (thread_jump): Likewise for local "insn".
13707 (try_forward_edges): Likewise for local "last".
13708 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
13709 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
13711 (can_replace_by): Likewise for params "i1", "i2".
13712 (old_insns_match_p): Likewise.
13713 (merge_notes): Likewise.
13714 (walk_to_nondebug_insn): Likewise for param "i1".
13715 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
13716 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
13717 "afterlast1", "afterlast2" from rtx to rtx_insn *.
13718 (flow_find_head_matching_sequence): Strengthen params "f1" and
13719 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
13720 "last1", "last2", "beforelast1", "beforelast2" from rtx to
13722 (outgoing_edges_match): Likewise for locals "last1", "last2".
13723 (try_crossjump_to_edge): Likewise for local "insn".
13724 Replace call to for_each_rtx with for_each_rtx_in_insn.
13726 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
13727 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
13728 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
13729 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
13730 (try_optimize_cfg): Strengthen local "last" from rtx to
13732 (delete_dead_jumptables): Likewise for locals "insn", "next",
13735 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
13736 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
13737 "rtx else_first_tail", to reflect the basic-block.h changes above.
13739 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13741 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
13743 (purge_dead_tablejump_edges): Likewise.
13744 (find_bb_boundaries): Likewise for locals "insn", "end",
13745 "flow_transfer_insn".
13747 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13749 * caller-save.c (save_call_clobbered_regs): Strengthen locals
13750 "ins" and "prev" from rtx to rtx_insn *.
13752 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13754 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
13756 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
13757 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
13759 (load_register_parameters): Likewise for local "before_arg".
13760 (check_sibcall_argument_overlap): Likewise for param "insn".
13761 (expand_call): Likewise for locals "normal_call_insns",
13762 "tail_call_insns", "insns", "before_call", "after_args",
13763 "before_arg", "last", "prev". Strengthen one of the "last" from
13764 rtx to rtx_call_insn *.
13765 (fixup_tail_calls): Strengthen local "insn" from rtx to
13767 (emit_library_call_value_1): Likewise for locals "before_call" and
13770 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13772 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
13773 and "last" from rtx to rtx_insn *.
13774 (expand_builtin_nonlocal_goto): Likewise for local "insn".
13775 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
13777 (expand_errno_check): Strengthen local "lab" from rtx to
13779 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
13781 (expand_builtin_mathfn_2): Likewise.
13782 (expand_builtin_mathfn_ternary): Likewise.
13783 (expand_builtin_mathfn_3): Likewise.
13784 (expand_builtin_interclass_mathfn): Likewise for local "last".
13785 (expand_builtin_int_roundingfn): Likewise for local "insns".
13786 (expand_builtin_int_roundingfn_2): Likewise.
13787 (expand_builtin_strlen): Likewise for local "before_strlen".
13788 (expand_builtin_strncmp): Likewise for local "seq".
13789 (expand_builtin_signbit): Likewise for local "last".
13790 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
13791 from rtx to rtx_code_label *.
13792 (expand_stack_restore): Strengthen local "prev" from rtx to
13795 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13797 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
13799 (struct btr_def_s): Likewise.
13800 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
13802 (add_btr_def): Likewise.
13803 (new_btr_user): Likewise.
13804 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
13806 (link_btr_uses): Likewise.
13807 (move_btr_def): Likewise for locals "insp", "old_insn",
13808 "new_insn". Add checked cast to rtx_insn * for now on result of
13810 (can_move_up): Strengthen param "insn" from const_rtx to
13813 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13815 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
13817 (get_uncond_jump_length): Likewise for locals "label", "jump".
13818 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
13820 (add_labels_and_missing_jumps): Likewise for local "new_jump".
13821 (fix_up_fall_thru_edges): Likewise for local "old_jump".
13822 (find_jump_block): Likewise for local "insn".
13823 (fix_crossing_conditional_branches): Likewise for locals
13824 "old_jump", "new_jump".
13825 (fix_crossing_unconditional_branches): Likewise for locals
13826 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
13827 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
13829 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13831 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
13833 (struct mem_insn): Likewise for field "insn".
13834 (reg_next_use): Strengthen from rtx * to rtx_insn **.
13835 (reg_next_inc_use): Likewise.
13836 (reg_next_def): Likewise.
13837 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
13838 from rtx to rtx_insn *.
13839 (move_insn_before): Likewise for param "next_insn" and local "insns".
13840 (attempt_change): Likewise for local "mov_insn".
13841 (try_merge): Likewise for param "last_insn".
13842 (get_next_ref): Likewise for return type and local "insn".
13843 Strengthen param "next_array" from rtx * to rtx_insn **.
13844 (parse_add_or_inc): Strengthen param "insn" from rtx to
13846 (find_inc): Likewise for locals "insn" and "other_insn" (three of
13848 (merge_in_block): Likewise for locals "insn", "curr",
13850 (pass_inc_dec::execute): Update allocations of the arrays to
13851 reflect the stronger types.
13853 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13855 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
13856 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
13857 from rtx to rtx_code_label *.
13859 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13861 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
13864 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13866 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
13867 generated a warning and prevented bootstrapping the compiler.
13869 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13871 * rtl.h (delete_related_insns): Strengthen return type from rtx to
13874 * jump.c (delete_related_insns): Likewise, also for locals "next"
13877 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13879 * genautomata.c (output_internal_insn_latency_func): When writing
13880 the function "internal_insn_latency" to insn-automata.c,
13881 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
13882 allowing the optional guard function of (define_bypass) clauses to
13883 expect a pair of rtx_insn *, rather than a pair of rtx.
13884 (output_insn_latency_func): When writing the function
13885 "insn_latency", add an "uncast_" prefix to params "insn" and
13886 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
13887 using checked casts from the params, thus enabling the above
13888 change to the generated "internal_insn_latency" function.
13890 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
13892 PR tree-optimization/62091
13893 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
13894 handle correctly arrays.
13895 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
13896 inheritance binfos.
13897 (record_known_type): Walk into inner type.
13898 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
13899 condition on no type changes.
13901 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13903 * genattrtab.c (write_attr_get): Within the generated get_attr_
13904 functions, rename param "insn" to "uncast_insn" and reintroduce
13905 "insn" as an local rtx_insn * using a checked cast, so that "insn"
13906 is an rtx_insn * within insn-attrtab.c
13908 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13910 * output.h (peephole): Strengthen return type from rtx to
13912 * rtl.h (delete_for_peephole): Likewise for both params.
13913 * genpeep.c (main): In generated "peephole" function, strengthen
13914 return type and local "insn" from rtx to rtx_insn *. For now,
13915 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
13916 rtx_insn *, with a checked cast.
13917 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
13918 locals "insn", "next", "prev" from rtx to rtx_insn *.
13920 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
13922 PR tree-optimization/62112
13923 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
13924 * gimple-iterator.h (gsi_replace): Return bool.
13925 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
13926 moved from ref_may_alias_global_p.
13927 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
13929 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
13930 (stmt_kills_ref_p_1): Rename...
13931 (stmt_kills_ref_p): ... to this.
13932 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
13933 stmt_kills_ref_p): Declare.
13934 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
13935 Move the self-assignment case...
13936 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
13938 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13940 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
13942 * emit-rtl.c (try_split): Likewise, also for locals "before" and
13943 "after". For now, don't strengthen param "trial", which requires
13944 adding checked casts when returning it.
13946 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13948 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
13949 "label" from rtx to rtx_code_label *. Strengthen param 1 of
13950 "var_location" hook from rtx to rtx_insn *.
13951 (debug_nothing_rtx): Delete in favor of...
13952 (debug_nothing_rtx_code_label): New prototype.
13953 (debug_nothing_rtx_rtx): Delete unused prototype.
13954 (debug_nothing_rtx_insn): New prototype.
13956 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
13957 invoking debug_hooks->var_location (in two places, one in a NOTE
13958 case of a switch statement, the other guarded by a CALL_P
13959 conditional. Add checked cast to rtx_code_label * when invoking
13960 debug_hooks->label (within CODE_LABEL case of switch statement).
13962 * dbxout.c (dbx_debug_hooks): Update "label" hook from
13963 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
13964 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
13965 (xcoff_debug_hooks): Likewise.
13966 * debug.c (do_nothing_debug_hooks): Likewise.
13967 (debug_nothing_rtx): Delete in favor of...
13968 (debug_nothing_rtx_insn): New function.
13969 (debug_nothing_rtx_rtx): Delete unused function.
13970 (debug_nothing_rtx_code_label): New function.
13971 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
13972 debug_nothing_rtx to debug_nothing_rtx_code_label.
13973 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
13975 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
13976 debug_nothing_rtx to debug_nothing_rtx_insn.
13977 (sdbout_label): Strengthen param "insn" from rtx to
13979 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
13980 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
13981 "var_location" hook from debug_nothing_rtx to
13982 debug_nothing_rtx_insn.
13984 2014-08-21 David Malcolm <dmalcolm@redhat.com>
13986 * recog.h (insn_output_fn): Update this function typedef to match
13987 the changes below to the generated output functions, strengthening
13988 the 2nd param from rtx to rtx_insn *.
13990 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
13991 insn when invoking an output function, to match the new signature
13992 of insn_output_fn with a stronger second param.
13994 * genconditions.c (write_header): In the generated code for
13995 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
13996 to match the other changes in this patch.
13998 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
13999 the generated "gen_" functions from rtx to rtx_insn * within their
14002 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14003 the subfunctions within the generated "recog_", "split", "peephole2"
14004 function trees from rtx to rtx_insn *. For now, the top-level
14005 generated functions ("recog", "split", "peephole2") continue to
14006 take a plain rtx for "insn", to avoid introducing dependencies on
14007 other patches. Rename this 2nd param from "insn" to
14008 "uncast_insn", and reintroduce "insn" as a local variable of type
14009 rtx_insn *, initialized at the top of the generated function with
14010 a checked cast on "uncast_insn".
14011 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14012 the generated "gen_" functions from rtx to rtx_insn * within their
14015 * genoutput.c (process_template): Strengthen the 2nd param within
14016 the generated "output_" functions "insn" from rtx to rtx_insn *.
14018 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14020 * tree-profile.c (tree_profiling): Skip external functions
14021 when doing coverage instrumentation.
14022 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14024 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14026 * config/rs6000/altivec.h (vec_cpsgn): New #define.
14027 (vec_mergee): Likewise.
14028 (vec_mergeo): Likewise.
14029 (vec_cntlz): Likewise.
14030 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14031 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14032 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14033 VMRGEW, and VMRGOW.
14034 * doc/extend.texi: Document various forms of vec_cpsgn,
14035 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14036 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14037 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14038 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14039 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14041 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14043 * config/rs6000/rs6000.c (context.h): New include.
14044 (tree-pass.h): Likewise.
14045 (make_pass_analyze_swaps): New decl.
14046 (rs6000_option_override): Register pass_analyze_swaps.
14047 (swap_web_entry): New subsclass of web_entry_base (df.h).
14048 (special_handling_values): New enum.
14049 (union_defs): New function.
14050 (union_uses): Likewise.
14051 (insn_is_load_p): Likewise.
14052 (insn_is_store_p): Likewise.
14053 (insn_is_swap_p): Likewise.
14054 (rtx_is_swappable_p): Likewise.
14055 (insn_is_swappable_p): Likewise.
14056 (chain_purpose): New enum.
14057 (chain_contains_only_swaps): New function.
14058 (mark_swaps_for_removal): Likewise.
14059 (swap_const_vector_halves): Likewise.
14060 (adjust_subreg_index): Likewise.
14061 (permute_load): Likewise.
14062 (permute_store): Likewise.
14063 (handle_special_swappables): Likewise.
14064 (replace_swap_with_copy): Likewise.
14065 (dump_swap_insn_table): Likewise.
14066 (rs6000_analyze_swaps): Likewise.
14067 (pass_data_analyze_swaps): New pass_data.
14068 (pass_analyze_swaps): New rtl_opt_pass.
14069 (make_pass_analyze_swaps): New function.
14070 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14072 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14074 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14075 type from rtx to rtx_insn *.
14076 (create_copy_of_insn_rtx): Likewise.
14077 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14078 (create_copy_of_insn_rtx): Likewise, also for local "res".
14080 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14082 * rtl.h (find_first_parameter_load): Strengthen return type from
14084 * rtlanal.c (find_first_parameter_load): Strengthen return type
14085 from rtx to rtx_insn *. Add checked cast for now, to postpone
14086 strengthening the params.
14088 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14091 * diagnostic.c: Set default caret.
14092 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14094 * diagnostic.h (struct diagnostic_context):
14096 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14098 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14099 (sel_bb_head): Strengthen return type insn_t (currently just an
14100 rtx) to rtx_insn *.
14101 (sel_bb_end): Likewise.
14103 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14104 (sel_bb_head): Strengthen return type and local "head" from
14105 insn_t (currently just an rtx) to rtx_insn *.
14106 (sel_bb_end): Likewise for return type.
14107 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14110 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14112 * basic-block.h (get_last_bb_insn): Strengthen return type from
14114 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14117 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14120 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14122 (diagnostic_report_diagnostic): ... from here.
14123 * toplev.c (general_init): Move code to c-family.
14125 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14127 * df.h (web_entry_base): Replace existing struct web_entry with a
14128 new class web_entry_base with only the predecessor member.
14129 (unionfind_root): Remove declaration and move to class member.
14130 (unionfind_union): Remove declaration and move to friend
14132 (union_defs): Remove declaration.
14133 * web.c (web_entry_base::unionfind_root): Modify to be member
14134 function and adjust accessors.
14135 (unionfind_union): Modify to be friend function and adjust
14137 (web_entry): New subclass of web_entry_base containing the reg
14139 (union_match_dups): Modify for struct -> class changes.
14140 (union_defs): Likewise.
14141 (entry_register): Likewise.
14142 (pass_web::execute): Likewise.
14144 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
14146 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14147 builtin define __VEC_ELEMENT_REG_ORDER__.
14149 2014-08-20 Martin Jambor <mjambor@suse.cz>
14150 Wei Mi <wmi@google.com>
14153 PR middle-end/61776
14154 * tree-ssa-operands.c (update_stmt_operands): Remove
14155 MODIFIED_NORETURN_CALLS.
14156 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14157 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14158 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14159 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14160 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14161 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14162 (gimple_call_set_ctrl_altering): New func.
14163 (gimple_call_ctrl_altering_p): Ditto.
14164 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14165 (make_blocks): Use gimple_call_initialize_ctrl_altering.
14166 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14167 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14168 remove MODIFIED_NORETURN_CALLS.
14170 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14172 * coverage.c (coverage_compute_profile_id): Return non-0;
14173 also handle symbols with unique name.
14174 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14176 2014-08-20 Steve Ellcey <sellcey@mips.com>
14178 PR middle-end/49191
14179 * doc/sourcebuild.texi (non_strict_align): New.
14181 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14183 * cgraphunit.c (ipa_passes, compile): Reshedule
14184 symtab_remove_unreachable_nodes passes; update comments.
14185 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14186 TODO_remove_functions before the pass; the functions ought to be
14188 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14189 TODO_remove_functions.
14190 * passes.c (pass_data_early_local_passes): Do not schedule function
14192 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14194 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14197 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14198 before setting the option.
14199 * diagnostic.c (diagnostic_classify_diagnostic): Record
14200 command-line status.
14202 2014-08-20 Richard Biener <rguenther@suse.de>
14205 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14206 to build uint{16,32,64}_type_node.
14208 2014-08-20 Terry Guo <terry.guo@arm.com>
14210 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14211 with immediate_operand.
14213 2014-08-20 David Malcolm <dmalcolm@redhat.com>
14215 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14216 "insn" from an as_a to a safe_as_a, for the case when "insn" is
14219 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14221 PR preprocessor/51303
14222 * incpath.c (remove_duplicates): Use cpp_warning.
14224 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14228 * doc/options.texi (CPP): Document it.
14229 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14230 * optc-gen.awk: Handle CPP.
14231 * opth-gen.awk: Likewise.
14233 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14235 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14237 (duplicate_insn_chain): Likewise.
14238 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14239 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
14240 checked cast for now (until we can strengthen the params in the
14242 (duplicate_insn_chain): Likewise.
14244 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14246 * rtl.h (next_cc0_user): Strengthen return type from rtx to
14248 (prev_cc0_setter): Likewise.
14250 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14251 rtx_insn *, adding checked casts for now as necessary.
14252 (prev_cc0_setter): Likewise.
14254 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14256 * expr.h (emit_move_insn): Strengthen return type from rtx to
14258 (emit_move_insn_1): Likewise.
14259 (emit_move_complex_push): Likewise.
14260 (emit_move_complex_parts): Likewise.
14262 * expr.c (emit_move_via_integer): Strengthen return type from rtx
14263 to rtx_insn *. Replace use of NULL_RTX with NULL when working
14265 (emit_move_complex_push): Strengthen return type from rtx to
14267 (emit_move_complex): Likewise, also for local "ret".
14268 (emit_move_ccmode): Likewise.
14269 (emit_move_multi_word): Likewise for return type and locals
14270 "last_insn", "seq".
14271 (emit_move_insn_1): Likewise for return type and locals "result",
14273 (emit_move_insn): Likewise for return type and local "last_insn".
14274 (compress_float_constant): Likewise.
14276 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14278 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14279 from rtx to rtx_insn *.
14281 * rtl.h (emit_insn_before): Likewise.
14282 (emit_insn_before_noloc): Likewise.
14283 (emit_insn_before_setloc): Likewise.
14284 (emit_jump_insn_before): Likewise.
14285 (emit_jump_insn_before_noloc): Likewise.
14286 (emit_jump_insn_before_setloc): Likewise.
14287 (emit_call_insn_before): Likewise.
14288 (emit_call_insn_before_noloc): Likewise.
14289 (emit_call_insn_before_setloc): Likewise.
14290 (emit_debug_insn_before): Likewise.
14291 (emit_debug_insn_before_noloc): Likewise.
14292 (emit_debug_insn_before_setloc): Likewise.
14293 (emit_label_before): Likewise.
14294 (emit_insn_after): Likewise.
14295 (emit_insn_after_noloc): Likewise.
14296 (emit_insn_after_setloc): Likewise.
14297 (emit_jump_insn_after): Likewise.
14298 (emit_jump_insn_after_noloc): Likewise.
14299 (emit_jump_insn_after_setloc): Likewise.
14300 (emit_call_insn_after): Likewise.
14301 (emit_call_insn_after_noloc): Likewise.
14302 (emit_call_insn_after_setloc): Likewise.
14303 (emit_debug_insn_after): Likewise.
14304 (emit_debug_insn_after_noloc): Likewise.
14305 (emit_debug_insn_after_setloc): Likewise.
14306 (emit_label_after): Likewise.
14307 (emit_insn): Likewise.
14308 (emit_debug_insn): Likewise.
14309 (emit_jump_insn): Likewise.
14310 (emit_call_insn): Likewise.
14311 (emit_label): Likewise.
14312 (gen_clobber): Likewise.
14313 (emit_clobber): Likewise.
14314 (gen_use): Likewise.
14315 (emit_use): Likewise.
14318 (emit_barrier_before): Strengthen return type from rtx to
14320 (emit_barrier_after): Likewise.
14321 (emit_barrier): Likewise.
14323 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
14324 from rtx to rtx_insn *. Add checked casts for now when converting
14325 "last" from rtx to rtx_insn *.
14326 (emit_insn_before_noloc): Likewise for return type.
14327 (emit_jump_insn_before_noloc): Likewise.
14328 (emit_call_insn_before_noloc): Likewise.
14329 (emit_debug_insn_before_noloc): Likewise.
14330 (emit_barrier_before): Strengthen return type and local "insn"
14331 from rtx to rtx_barrier *.
14332 (emit_label_before): Strengthen return type from rtx to
14333 rtx_insn *. Add checked cast for now when returning param
14334 (emit_pattern_after_noloc): Strengthen return type from rtx to
14335 rtx_insn *. Add checked casts for now when converting "last" from
14337 (emit_insn_after_noloc): Strengthen return type from rtx to
14339 (emit_jump_insn_after_noloc): Likewise.
14340 (emit_call_insn_after_noloc): Likewise.
14341 (emit_debug_insn_after_noloc): Likewise.
14342 (emit_barrier_after): Strengthen return type from rtx to
14344 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14345 Add checked cast for now when converting "label" from rtx to
14347 (emit_pattern_after_setloc): Strengthen return type from rtx to
14348 rtx_insn *. Add checked casts for now when converting "last" from
14350 (emit_pattern_after): Strengthen return type from rtx to
14352 (emit_insn_after_setloc): Likewise.
14353 (emit_insn_after): Likewise.
14354 (emit_jump_insn_after_setloc): Likewise.
14355 (emit_jump_insn_after): Likewise.
14356 (emit_call_insn_after_setloc): Likewise.
14357 (emit_call_insn_after): Likewise.
14358 (emit_debug_insn_after_setloc): Likewise.
14359 (emit_debug_insn_after): Likewise.
14360 (emit_pattern_before_setloc): Likewise. Add checked casts for now
14361 when converting "last" from rtx to rtx_insn *.
14362 (emit_pattern_before): Strengthen return type from rtx to
14364 (emit_insn_before_setloc): Likewise.
14365 (emit_insn_before): Likewise.
14366 (emit_jump_insn_before_setloc): Likewise.
14367 (emit_jump_insn_before): Likewise.
14368 (emit_call_insn_before_setloc): Likewise.
14369 (emit_call_insn_before): Likewise.
14370 (emit_debug_insn_before_setloc): Likewise.
14371 (emit_debug_insn_before): Likewise.
14372 (emit_insn): Strengthen return type and locals "last", "insn",
14373 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
14374 within cases where we know we have an insn.
14375 (emit_debug_insn): Likewise.
14376 (emit_jump_insn): Likewise.
14377 (emit_call_insn): Strengthen return type and local "insn" from rtx
14379 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
14380 a checked cast to rtx_insn * for now on "label".
14381 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14382 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14383 (emit_use): Likewise.
14384 (gen_use): Likewise, also for local "seq".
14385 (emit): Likewise for return type and local "insn".
14386 (rtx_insn): Likewise for return type and local "new_rtx".
14388 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14389 from rtx to rtx_barrier *.
14391 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14392 changed return type from rtx to rtx_insn *, we must update
14393 "emit_fn" type, and this in turn means updating...
14394 (frame_insn): ...this. Strengthen return type from rtx to
14395 rtx_insn *. Introduce a new local "insn" of the appropriate type.
14397 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14399 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
14400 rtx to rtx_jump_table_data *. Also for local.
14401 * rtl.h (emit_jump_table_data): Likewise.
14403 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14405 * basic-block.h (create_basic_block_structure): Strengthen third
14406 param "bb_note" from rtx to rtx_note *.
14407 * rtl.h (emit_note_before): Strengthen return type from rtx to
14409 (emit_note_after): Likewise.
14410 (emit_note): Likewise.
14411 (emit_note_copy): Likewise. Also, strengthen param similarly.
14412 * function.h (struct rtl_data): Strengthen field
14413 "x_stack_check_probe_note" from rtx to rtx_note *.
14415 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
14416 from rtx to rtx_note *.
14417 * cfgrtl.c (create_basic_block_structure): Strengthen third param
14418 "bb_note" from rtx to rtx_note *.
14419 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
14420 when calling emit_note_copy.
14421 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
14423 (emit_note_after): Likewise.
14424 (emit_note_before): Likewise.
14425 (emit_note_copy): Likewise. Also, strengthen param similarly.
14426 (emit_note): Likewise.
14427 * except.c (emit_note_eh_region_end): Likewise for return type.
14428 Strengthen local "next" from rtx to rtx_insn *.
14429 (convert_to_eh_region_ranges): Strengthen local "note"
14430 from rtx to rtx_note *.
14431 * final.c (change_scope): Likewise.
14432 (reemit_insn_block_notes): Likewise, for both locals named "note".
14433 Also, strengthen local "insn" from rtx to rtx_insn *.
14434 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
14436 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
14437 strengthen local "seq" from rtx to rtx_insn *.
14438 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
14440 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
14442 (get_bb_note_from_pool): Strengthen return type from rtx to
14444 (sel_create_basic_block): Strengthen local "new_bb_note" from
14445 insn_t to rtx_note *.
14446 * var-tracking.c (emit_note_insn_var_location): Strengthen local
14447 "note" from rtx to rtx_note *.
14448 (emit_notes_in_bb): Likewise.
14450 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14452 * function.h (struct rtl_data): Strengthen field
14453 "x_parm_birth_insn" from rtx to rtx_insn *.
14454 * function.c (struct assign_parm_data_all): Strengthen fields
14455 "first_conversion_insn" and "last_conversion_insn" from rtx to
14458 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14460 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
14461 to rtx_insn *; also for local "var_end_seq".
14462 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
14463 (maybe_cleanup_end_of_block): Likewise for param "last" and local
14465 (expand_gimple_cond): Likewise for locals "last2" and "last".
14466 (mark_transaction_restart_calls): Likewise for local "insn".
14467 (expand_gimple_stmt): Likewise for return type and locals "last"
14469 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
14470 (avoid_complex_debug_insns): Likewise for param "insn".
14471 (expand_debug_locations): Likewise for locals "insn", "last",
14472 "prev_insn" and "insn2".
14473 (expand_gimple_basic_block): Likewise for local "last".
14474 (construct_exit_block): Likewise for locals "head", "end",
14476 (pass_expand::execute): Likewise for locals "var_seq",
14477 "var_ret_seq", "next".
14479 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14481 * asan.h (asan_emit_stack_protection): Strengthen return type from
14483 * asan.c (asan_emit_stack_protection): Likewise. Add local
14484 "insns" to hold the return value.
14486 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14488 * basic-block.h (bb_note): Strengthen return type from rtx to
14490 * sched-int.h (bb_note): Likewise.
14491 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
14493 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14495 * rtl.h (make_insn_raw): Strengthen return type from rtx to
14498 * emit-rtl.c (make_insn_raw): Strengthen return type and local
14499 "insn" from rtx to rtx_insn *.
14500 (make_debug_insn_raw): Strengthen return type from rtx to
14501 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
14502 (make_jump_insn_raw): Strengthen return type from rtx to
14503 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
14504 (make_call_insn_raw): Strengthen return type from rtx to
14505 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
14506 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
14507 callback from rtx to rtx_insn *; likewise for local "insn" and
14508 "next", adding a checked cast to rtx_insn in the relevant cases of
14509 the switch statement.
14510 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
14511 callback from rtx to rtx_insn *.
14512 (emit_pattern_after_setloc): Likewise.
14513 (emit_pattern_after): Likewise.
14514 (emit_pattern_before_setloc): Likewise.
14515 (emit_pattern_before): Likewise.
14517 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14519 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
14521 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
14522 accepting an rtx_insn *.
14523 (last_call_insn): Strengthen return type from rtx to
14526 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14528 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
14529 "insns" from rtx to rtx_insn *.
14530 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
14531 locals "insn" and "prev".
14533 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14535 * rtl.h (tablejump_p): Strengthen third param from rtx * to
14536 rtx_jump_table_data **.
14538 * cfgbuild.c (make_edges): Introduce local "table", using it in
14539 place of "tmp" for jump table data.
14540 (find_bb_boundaries): Strengthen local "table" from rtx to
14541 rtx_jump_table_data *.
14542 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14543 (outgoing_edges_match): Likewise for locals "table1" and "table2".
14544 (try_crossjump_to_edge): Likewise.
14545 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
14547 (patch_jump_insn): Introduce local "table", using it in place of
14548 "tmp" for jump table data.
14549 (force_nonfallthru_and_redirect): Introduce local "table", so that
14550 call to tablejump_p can receive an rtx_jump_table_data **. Update
14551 logic around the call to overwrite "note" appropriately if
14552 tablejump_p returns non-zero.
14553 (get_last_bb_insn): Introduce local "table", using it in place of
14554 "tmp" for jump table data.
14555 * dwarf2cfi.c (create_trace_edges): Likewise.
14557 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
14558 from rtx to rtx_jump_table_data *.
14559 (create_fix_barrier): Strengthen local "tmp" from rtx to
14560 rtx_jump_table_data *.
14561 (arm_reorg): Likewise for local "table".
14563 * config/s390/s390.c (s390_chunkify_start): Likewise.
14565 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
14567 * jump.c (delete_related_insns): Strengthen local "lab_next" from
14568 rtx to rtx_jump_table_data *.
14570 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
14571 rtx_jump_table_data **. Add a checked cast when writing through
14572 the pointer: we know there that local "table" is non-NULL and that
14573 JUMP_TABLE_DATA_P (table) holds.
14574 (label_is_jump_target_p): Introduce local "table", using it in
14575 place of "tmp" for jump table data.
14577 2014-08-19 Marek Polacek <polacek@redhat.com>
14580 * doc/invoke.texi: Document -Wbool-compare.
14582 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14584 * rtl.h (entry_of_function): Strengthen return type from rtx to
14586 * cfgrtl.c (entry_of_function): Likewise.
14588 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14590 * emit-rtl.h (get_insns): Strengthen return type from rtx to
14591 rtx_insn *, adding a checked cast for now.
14592 (get_last_insn): Likewise.
14594 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14596 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
14599 * emit-rtl.c (gen_label_rtx): Likewise.
14601 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14603 * rtl.h (previous_insn): Strengthen return type from rtx to
14605 (next_insn): Likewise.
14606 (prev_nonnote_insn): Likewise.
14607 (prev_nonnote_insn_bb): Likewise.
14608 (next_nonnote_insn): Likewise.
14609 (next_nonnote_insn_bb): Likewise.
14610 (prev_nondebug_insn): Likewise.
14611 (next_nondebug_insn): Likewise.
14612 (prev_nonnote_nondebug_insn): Likewise.
14613 (next_nonnote_nondebug_insn): Likewise.
14614 (prev_real_insn): Likewise.
14615 (next_real_insn): Likewise.
14616 (prev_active_insn): Likewise.
14617 (next_active_insn): Likewise.
14619 * emit-rtl.c (next_insn): Strengthen return type from rtx to
14620 rtx_insn *, adding a checked cast.
14621 (previous_insn): Likewise.
14622 (next_nonnote_insn): Likewise.
14623 (next_nonnote_insn_bb): Likewise.
14624 (prev_nonnote_insn): Likewise.
14625 (prev_nonnote_insn_bb): Likewise.
14626 (next_nondebug_insn): Likewise.
14627 (prev_nondebug_insn): Likewise.
14628 (next_nonnote_nondebug_insn): Likewise.
14629 (prev_nonnote_nondebug_insn): Likewise.
14630 (next_real_insn): Likewise.
14631 (prev_real_insn): Likewise.
14632 (next_active_insn): Likewise.
14633 (prev_active_insn): Likewise.
14635 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
14636 param "stepfunc" so that it returns an rtx_insn * rather than an
14637 rtx, to track the change to prev_nonnote_insn_bb, which is the
14638 only function this is called with.
14639 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
14641 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
14643 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
14646 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14648 * coretypes.h (class rtx_debug_insn): Add forward declaration.
14649 (class rtx_nonjump_insn): Likewise.
14650 (class rtx_jump_insn): Likewise.
14651 (class rtx_call_insn): Likewise.
14652 (class rtx_jump_table_data): Likewise.
14653 (class rtx_barrier): Likewise.
14654 (class rtx_code_label): Likewise.
14655 (class rtx_note): Likewise.
14657 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
14658 adding the invariant DEBUG_INSN_P (X).
14659 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
14660 the invariant NONJUMP_INSN_P (X).
14661 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
14662 the invariant JUMP_P (X).
14663 (class rtx_call_insn): New, a subclass of rtx_insn, adding
14664 the invariant CALL_P (X).
14665 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
14666 invariant JUMP_TABLE_DATA_P (X).
14667 (class rtx_barrier): New, a subclass of rtx_insn, adding the
14668 invariant BARRIER_P (X).
14669 (class rtx_code_label): New, a subclass of rtx_insn, adding
14670 the invariant LABEL_P (X).
14671 (class rtx_note): New, a subclass of rtx_insn, adding
14672 the invariant NOTE_P(X).
14673 (is_a_helper <rtx_debug_insn *>::test): New.
14674 (is_a_helper <rtx_nonjump_insn *>::test): New.
14675 (is_a_helper <rtx_jump_insn *>::test): New.
14676 (is_a_helper <rtx_call_insn *>::test): New.
14677 (is_a_helper <rtx_jump_table_data *>::test): New functions,
14678 overloaded for both rtx and rtx_insn *.
14679 (is_a_helper <rtx_barrier *>::test): New.
14680 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
14681 for both rtx and rtx_insn *.
14682 (is_a_helper <rtx_note *>::test): New.
14684 2014-08-19 Marek Polacek <polacek@redhat.com>
14686 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
14687 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14688 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
14689 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14691 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14693 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
14694 rtx_insn *. To help with transition, for now, convert from an
14695 access macro into a pair of functions: BND_TO, returning an
14697 (SET_BND_TO): New function, for use where BND_TO is used as an
14700 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
14702 (BND_TO): New function, adding a checked cast.
14703 (SET_BND_TO): New function.
14705 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
14707 (compute_av_set_on_boundaries): Likewise.
14709 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
14711 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
14712 destination if it is used in source.
14713 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
14714 (*popcount<mode>2_falsedep_1): Likewise.
14716 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
14719 * configure.ac: Set install_gold_as_default to no first.
14720 * configure: Regenerated.
14722 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14724 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
14725 "note_list" field will eventually be an rtx_insn *. To help with
14726 transition, for now, convert from an access macro into a pair of
14727 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
14728 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
14731 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
14732 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
14734 * sel-sched-ir.c (init_bb): Likewise.
14735 (sel_restore_notes): Likewise.
14736 (move_bb_info): Likewise.
14737 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
14738 (SET_BB_NOTE_LIST): New function.
14740 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14742 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
14743 field will eventually be an rtx_insn *. To help with transition,
14744 for now, convert from an access macro into a pair of functions:
14745 VINSN_INSN_RTX, returning an rtx_insn *, and...
14746 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
14747 is used as an lvalue.
14749 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
14750 SET_VINSN_INSN_RTX where it's used as an lvalue.
14751 (VINSN_INSN_RTX): New function.
14752 (SET_VINSN_INSN_RTX): New function.
14754 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14756 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
14757 eventually be rtx_insn *, but to help with transition, for now,
14758 convert from an access macro into a pair of functions: DEP_PRO
14759 returning an rtx_insn * and...
14760 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
14761 lvalue, returning an rtx&.
14762 (DEP_CON): Analogous changes to DEP_PRO above.
14763 (SET_DEP_CON): Likewise.
14765 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
14766 an lvalue to SET_DEP_CON.
14767 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
14768 (sd_copy_back_deps): Likewise for DEP_CON.
14769 (DEP_PRO): New function, adding a checked cast for now.
14770 (DEP_CON): Likewise.
14771 (SET_DEP_PRO): New function.
14772 (SET_DEP_CON): Likewise.
14774 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
14776 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
14777 (extra_options): Add i386/cygwin.opt.
14778 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
14779 (CPP_SPEC): Accept -pthread.
14780 (LINK_SPEC): Ditto.
14781 (GOMP_SELF_SPECS): Update comment.
14782 * config/i386/cygwin.opt: New file for -pthread flag.
14784 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14786 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
14787 * df.h (DF_REF_INSN): Convert from a macro to a function, so
14788 that we can return an rtx_insn *.
14790 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
14792 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
14793 when building executables, not DLLs. Add --large-address-aware
14794 under the same conditions.
14795 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
14796 when building executables, not DLLs. Add --large-address-aware
14797 under the same conditions when using -m32.
14799 * config/i386/cygwin-stdint.h: Throughout, make type
14800 definitions dependent on target architecture, not host.
14802 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14804 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
14805 the return type from rtx to rtx_insn *, which will enable various
14806 conversions in followup patches. For now this is is done by a
14808 (NEXT_INSN): Likewise.
14809 (SET_PREV_INSN): Convert to an inline function. This is intended
14810 for use as an lvalue, and so returns an rtx& to allow in-place
14812 (SET_NEXT_INSN): Likewise.
14814 2014-07-08 Mark Wielaard <mjw@redhat.com>
14817 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
14819 2014-08-19 Marek Polacek <polacek@redhat.com>
14822 * cgraphunit.c (handle_alias_pairs): Fix condition.
14824 2014-08-19 Richard Biener <rguenther@suse.de>
14826 * gimple-fold.c (fold_gimple_assign): Properly build a
14827 null-pointer constant when devirtualizing addresses.
14829 2014-07-07 Mark Wielaard <mjw@redhat.com>
14831 * dwarf2out.c (decl_quals): New function.
14832 (modified_type_die): Take one cv_quals argument instead of two,
14833 one for const and one for volatile.
14834 (add_type_attribute): Likewise.
14835 (generic_parameter_die): Call add_type_attribute with one modifier
14837 (base_type_for_mode): Likewise.
14838 (add_bounds_info): Likewise.
14839 (add_subscript_info): Likewise.
14840 (gen_array_type_die): Likewise.
14841 (gen_descr_array_type_die): Likewise.
14842 (gen_entry_point_die): Likewise.
14843 (gen_enumeration_type_die): Likewise.
14844 (gen_formal_parameter_die): Likewise.
14845 (gen_subprogram_die): Likewise.
14846 (gen_variable_die): Likewise.
14847 (gen_const_die): Likewise.
14848 (gen_field_die): Likewise.
14849 (gen_pointer_type_die): Likewise.
14850 (gen_reference_type_die): Likewise.
14851 (gen_ptr_to_mbr_type_die): Likewise.
14852 (gen_inheritance_die): Likewise.
14853 (gen_subroutine_type_die): Likewise.
14854 (gen_typedef_die): Likewise.
14855 (force_type_die): Likewise.
14857 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14859 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
14861 * configure: Regenerate.
14863 2014-08-19 Richard Biener <rguenther@suse.de>
14865 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
14866 DECL_EXTERNALs in BLOCKs as non-references.
14867 * tree-streamer-out.c (streamer_write_chain): Likewise.
14869 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
14870 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14871 Anna Tikhonova <anna.tikhonova@intel.com>
14872 Ilya Tocar <ilya.tocar@intel.com>
14873 Andrey Turetskiy <andrey.turetskiy@intel.com>
14874 Ilya Verbin <ilya.verbin@intel.com>
14875 Kirill Yukhin <kirill.yukhin@intel.com>
14876 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14878 * config/i386/sse.md
14879 (define_mode_iterator VI48_AVX512F): Delete.
14880 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
14881 (define_mode_iterator VI2_AVX512VL): Ditto.
14882 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
14885 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
14887 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
14888 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
14889 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14890 with VI48_AVX512F_AVX512VL): New.
14891 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14892 with VI2_AVX512VL): Ditto.
14894 2014-08-19 Marek Polacek <polacek@redhat.com>
14896 * doc/invoke.texi: Document -Wc99-c11-compat.
14898 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14900 * rtl.h (PREV_INSN): Split macro in two: the existing one,
14901 for rvalues, and...
14902 (SET_PREV_INSN): New macro, for use as an lvalue.
14903 (NEXT_INSN, SET_NEXT_INSN): Likewise.
14905 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
14906 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
14907 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14908 (fixup_abnormal_edges): Likewise.
14909 (unlink_insn_chain): Likewise.
14910 (fixup_reorder_chain): Likewise.
14911 (cfg_layout_delete_block): Likewise.
14912 (cfg_layout_merge_blocks): Likewise.
14913 * combine.c (update_cfg_for_uncondjump): Likewise.
14914 * emit-rtl.c (link_insn_into_chain): Likewise.
14915 (remove_insn): Likewise.
14916 (delete_insns_since): Likewise.
14917 (reorder_insns_nobb): Likewise.
14918 (emit_insn_after_1): Likewise.
14919 * final.c (rest_of_clean_state): Likewise.
14920 (final_scan_insn): Likewise.
14921 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
14922 * haifa-sched.c (concat_note_lists): Likewise.
14923 (remove_notes): Likewise.
14924 (restore_other_notes): Likewise.
14925 (move_insn): Likewise.
14926 (unlink_bb_notes): Likewise.
14927 (restore_bb_notes): Likewise.
14928 * jump.c (delete_for_peephole): Likewise.
14929 * optabs.c (emit_libcall_block_1): Likewise.
14930 * reorg.c (emit_delay_sequence): Likewise.
14931 (fill_simple_delay_slots): Likewise.
14932 * sel-sched-ir.c (sel_move_insn): Likewise.
14933 (sel_remove_insn): Likewise.
14934 (get_bb_note_from_pool): Likewise.
14935 * sel-sched.c (move_nop_to_previous_block): Likewise.
14937 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
14938 * config/c6x/c6x.c (gen_one_bundle): Likewise.
14939 (c6x_gen_bundles): Likewise.
14940 (hwloop_optimize): Likewise.
14941 * config/frv/frv.c (frv_function_prologue): Likewise.
14942 (frv_register_nop): Likewise.
14943 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
14944 (ia64_reorg): Likewise.
14945 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
14946 (mep_make_bundle): Likewise.
14947 (mep_bundle_insns): Likewise.
14948 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
14949 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
14950 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
14952 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14954 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
14955 return type from rtx to rtx_insn *.
14956 (BB_END): Likewise.
14957 (BB_HEADER): Likewise.
14958 (BB_FOOTER): Likewise.
14959 (SET_BB_HEAD): Convert to a function.
14960 (SET_BB_END): Likewise.
14961 (SET_BB_HEADER): Likewise.
14962 (SET_BB_FOOTER): Likewise.
14964 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
14965 Strengthen the return type from rtx to rtx_insn *. For now, this
14966 is done by adding a checked cast, but this will eventually
14967 become a field lookup.
14968 (BB_END): Likewise.
14969 (BB_HEADER): Likewise.
14970 (BB_FOOTER): Likewise.
14971 (SET_BB_HEAD): New function, from macro of same name. This is
14972 intended for use as an lvalue, and so returns an rtx& to allow
14973 in-place modification.
14974 (SET_BB_END): Likewise.
14975 (SET_BB_HEADER): Likewise.
14976 (SET_BB_FOOTER): Likewise.
14978 2014-08-18 David Malcolm <dmalcolm@redhat.com>
14980 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
14981 for rvalues, and...
14982 (SET_BB_HEAD): New macro, for use as a lvalue.
14983 (BB_END, SET_BB_END): Likewise.
14984 (BB_HEADER, SET_BB_HEADER): Likewise.
14985 (BB_FOOTER, SET_BB_FOOTER): Likewise.
14987 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
14988 of BB_* macros into SET_BB_* macros.
14989 (fix_crossing_unconditional_branches): Likewise.
14990 * caller-save.c (save_call_clobbered_regs): Likewise.
14991 (insert_one_insn): Likewise.
14992 * cfgbuild.c (find_bb_boundaries): Likewise.
14993 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14994 (outgoing_edges_match): Likewise.
14995 (try_optimize_cfg): Likewise.
14996 * cfgexpand.c (expand_gimple_cond): Likewise.
14997 (expand_gimple_tailcall): Likewise.
14998 (expand_gimple_basic_block): Likewise.
14999 (construct_exit_block): Likewise.
15000 * cfgrtl.c (delete_insn): Likewise.
15001 (create_basic_block_structure): Likewise.
15002 (rtl_delete_block): Likewise.
15003 (rtl_split_block): Likewise.
15004 (emit_nop_for_unique_locus_between): Likewise.
15005 (rtl_merge_blocks): Likewise.
15006 (block_label): Likewise.
15007 (try_redirect_by_replacing_jump): Likewise.
15008 (emit_barrier_after_bb): Likewise.
15009 (fixup_abnormal_edges): Likewise.
15010 (record_effective_endpoints): Likewise.
15011 (relink_block_chain): Likewise.
15012 (fixup_reorder_chain): Likewise.
15013 (fixup_fallthru_exit_predecessor): Likewise.
15014 (cfg_layout_duplicate_bb): Likewise.
15015 (cfg_layout_split_block): Likewise.
15016 (cfg_layout_delete_block): Likewise.
15017 (cfg_layout_merge_blocks): Likewise.
15018 * combine.c (update_cfg_for_uncondjump): Likewise.
15019 * emit-rtl.c (add_insn_after): Likewise.
15020 (remove_insn): Likewise.
15021 (reorder_insns): Likewise.
15022 (emit_insn_after_1): Likewise.
15023 * haifa-sched.c (get_ebb_head_tail): Likewise.
15024 (restore_other_notes): Likewise.
15025 (move_insn): Likewise.
15026 (sched_extend_bb): Likewise.
15027 (fix_jump_move): Likewise.
15028 * ifcvt.c (noce_process_if_block): Likewise.
15029 (dead_or_predicable): Likewise.
15030 * ira.c (update_equiv_regs): Likewise.
15031 * reg-stack.c (change_stack): Likewise.
15032 * sel-sched-ir.c (sel_move_insn): Likewise.
15033 * sel-sched.c (move_nop_to_previous_block): Likewise.
15035 * config/c6x/c6x.c (hwloop_optimize): Likewise.
15036 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15038 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15040 * rtl.h (for_each_rtx_in_insn): New function.
15041 * rtlanal.c (for_each_rtx_in_insn): Likewise.
15043 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15045 * coretypes.h (class rtx_insn): Add forward declaration.
15047 * rtl.h: Include is-a.h.
15048 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15049 workaround to ensure gengtype knows inheritance is occurring,
15050 whilst continuing to use the pre-existing special-casing for
15052 (class rtx_insn): New subclass of rtx_def, adding the
15053 invariant that we're dealing with something we can sanely use
15054 INSN_UID, NEXT_INSN, PREV_INSN on.
15055 (is_a_helper <rtx_insn *>::test): New.
15056 (is_a_helper <const rtx_insn *>::test): New.
15058 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15060 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15062 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15064 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15067 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15069 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15070 to BUILT_IN_UNREACHABLE.
15072 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
15075 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15077 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15078 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15079 (ffs<mode>2): Do not expand with tzcnt for
15080 TARGET_AVOID_FALSE_DEP_FOR_BMI.
15081 (ffssi2_no_cmove): Ditto.
15082 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15083 (ctz<mode>2): New expander.
15084 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15085 (*ctz<mode>2_falsedep): New insn.
15086 (*ctz<mode>2): Rename from ctz<mode>2.
15087 (clz<mode>2_lzcnt): New expander.
15088 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15089 (*clz<mode>2_lzcnt_falsedep): New insn.
15090 (*clz<mode>2): Rename from ctz<mode>2.
15091 (popcount<mode>2): New expander.
15092 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15093 (*popcount<mode>2_falsedep): New insn.
15094 (*popcount<mode>2): Rename from ctz<mode>2.
15095 (*popcount<mode>2_cmp): Remove.
15096 (*popcountsi2_cmp_zext): Ditto.
15098 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
15100 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15101 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15102 * config/microblaze/microblaze.h
15103 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15105 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
15108 * configure.ac: Set install_gold_as_default to no for
15110 * configure: Regenerated.
15112 2014-08-18 Roman Gareev <gareevroman@gmail.com>
15114 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15115 * config.in: Add undef of HAVE_isl.
15116 * configure: Regenerate.
15117 * configure.ac: Add definition of HAVE_isl.
15118 * graphite-blocking.c: Add checking of HAVE_isl.
15119 * graphite-dependences.c: Likewise.
15120 * graphite-interchange.c: Likewise.
15121 * graphite-isl-ast-to-gimple.c: Likewise.
15122 * graphite-optimize-isl.c: Likewise.
15123 * graphite-poly.c: Likewise.
15124 * graphite-scop-detection.c: Likewise.
15125 * graphite-sese-to-poly.c: Likewise.
15126 * graphite.c: Likewise.
15127 * toplev.c: Replace the checking of HAVE_cloog with the checking
15130 2014-08-18 Richard Biener <rguenther@suse.de>
15132 PR tree-optimization/62090
15133 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15134 (fold_builtin_3): Do not fold snprintf.
15135 (fold_builtin_4): Likewise.
15136 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15137 moved from builtins.c.
15138 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15139 (gimple_fold_builtin): Do not fold sprintf here.
15141 2014-08-18 Richard Biener <rguenther@suse.de>
15143 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15145 (maybe_canonicalize_mem_ref_addr): ... this function.
15146 (fold_stmt_1): Apply it here before all simplification.
15148 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
15151 * cgraph.h (cgraph_node::create_indirect_edge): Add
15152 compute_indirect_info param.
15153 * cgraph.c (cgraph_node::create_indirect_edge): Compute
15154 indirect_info only when it is required.
15155 * cgraphclones.c (cgraph_clone_edge): Do not recompute
15156 indirect_info fore cloned indirect edge.
15158 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15159 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15160 Anna Tikhonova <anna.tikhonova@intel.com>
15161 Ilya Tocar <ilya.tocar@intel.com>
15162 Andrey Turetskiy <andrey.turetskiy@intel.com>
15163 Ilya Verbin <ilya.verbin@intel.com>
15164 Kirill Yukhin <kirill.yukhin@intel.com>
15165 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15167 * config/i386/sse.md
15168 (define_mode_iterator VI8_AVX2_AVX512BW): New.
15169 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15171 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15172 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15173 Anna Tikhonova <anna.tikhonova@intel.com>
15174 Ilya Tocar <ilya.tocar@intel.com>
15175 Andrey Turetskiy <andrey.turetskiy@intel.com>
15176 Ilya Verbin <ilya.verbin@intel.com>
15177 Kirill Yukhin <kirill.yukhin@intel.com>
15178 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15180 * config/i386/sse.md
15181 (define_mode_iterator VF1_AVX512VL): New.
15182 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15183 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15186 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15187 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15188 Anna Tikhonova <anna.tikhonova@intel.com>
15189 Ilya Tocar <ilya.tocar@intel.com>
15190 Andrey Turetskiy <andrey.turetskiy@intel.com>
15191 Ilya Verbin <ilya.verbin@intel.com>
15192 Kirill Yukhin <kirill.yukhin@intel.com>
15193 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15195 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15196 * config/i386/i386.md
15197 (define_code_iterator any_float): New.
15198 (define_code_attr floatsuffix): New.
15199 * config/i386/sse.md
15200 (define_mode_iterator VF1_128_256VL): New.
15201 (define_mode_iterator VF2_512_256VL): New.
15202 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15204 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15205 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15207 (define_mode_attr qq2pssuff): New.
15208 (define_mode_attr sselongvecmode): New.
15209 (define_mode_attr sselongvecmodelower): New.
15210 (define_mode_attr sseintvecmode3): New.
15211 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15213 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15214 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15215 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15216 (define_insn "ufloatv2siv2df2<mask_name>"): New.
15218 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15219 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15220 Anna Tikhonova <anna.tikhonova@intel.com>
15221 Ilya Tocar <ilya.tocar@intel.com>
15222 Andrey Turetskiy <andrey.turetskiy@intel.com>
15223 Ilya Verbin <ilya.verbin@intel.com>
15224 Kirill Yukhin <kirill.yukhin@intel.com>
15225 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15227 * config/i386/sse.md
15228 (define_mode_iterator VF2_AVX512VL): New.
15229 (define_mode_attr sseintvecmode2): New.
15230 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15231 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15232 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15234 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15236 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15238 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15241 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15242 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15243 Anna Tikhonova <anna.tikhonova@intel.com>
15244 Ilya Tocar <ilya.tocar@intel.com>
15245 Andrey Turetskiy <andrey.turetskiy@intel.com>
15246 Ilya Verbin <ilya.verbin@intel.com>
15247 Kirill Yukhin <kirill.yukhin@intel.com>
15248 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15250 * config/i386/i386.md
15251 (define_insn "*movoi_internal_avx"): Add evex version.
15252 (define_insn "*movti_internal"): Ditto.
15254 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15255 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15256 Anna Tikhonova <anna.tikhonova@intel.com>
15257 Ilya Tocar <ilya.tocar@intel.com>
15258 Andrey Turetskiy <andrey.turetskiy@intel.com>
15259 Ilya Verbin <ilya.verbin@intel.com>
15260 Kirill Yukhin <kirill.yukhin@intel.com>
15261 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15263 * config/i386/i386.md
15264 (define_attr "isa"): Add avx512dq, noavx512dq.
15265 (define_attr "enabled"): Ditto.
15266 * config/i386/sse.md
15267 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15269 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15270 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15271 Anna Tikhonova <anna.tikhonova@intel.com>
15272 Ilya Tocar <ilya.tocar@intel.com>
15273 Andrey Turetskiy <andrey.turetskiy@intel.com>
15274 Ilya Verbin <ilya.verbin@intel.com>
15275 Kirill Yukhin <kirill.yukhin@intel.com>
15276 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15278 * config/i386/i386.c
15279 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15280 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15281 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15282 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15283 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15284 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15285 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15286 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15287 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15288 * config/i386/sse.md
15289 (define_mode_iterator VMOVE): Allow V4TI mode.
15290 (define_mode_iterator V_AVX512VL): New.
15291 (define_mode_iterator V): New handling for AVX512VL.
15292 (define_insn "avx512f_load<mode>_mask"): Delete.
15293 (define_insn "<avx512>_load<mode>_mask"): New.
15294 (define_insn "avx512f_store<mode>_mask"): Delete.
15295 (define_insn "<avx512>_store<mode>_mask"): New.
15298 2014-08-18 Yury Gribov <y.gribov@samsung.com>
15301 * asan.c (instrument_derefs): Fix bitfield check.
15303 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15305 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15306 * config/rs6000/htm.md (ttest): Remove clobber.
15307 * config/rs6000/predicates.md (any_mask_operand): New predicate.
15308 (and_operand): Reformat.
15309 (and_2rld_operand): New predicate.
15310 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15312 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15313 parameter. Handle AND directly.
15314 (rs6000_split_logical_di): Remove last parameter.
15315 (rs6000_split_logical): Remove last parameter. Remove obsolete
15317 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15318 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15319 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
15320 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15321 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15322 and 5 anonymous splitters): Delete.
15323 (and<mode>3): New expander.
15324 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15325 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15326 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15327 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15328 (floatdisf2_internal1): Remove clobbers.
15329 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15330 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15331 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15332 (and<mode>3 for BOOL_128): Remove clobber.
15333 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
15334 rs6000_split_logical.
15335 (*bool<mode>3_internal for BOOL_128): Adjust call of
15336 rs6000_split_logical.
15337 (*boolc<mode>3_internal1 for BOOL_128,
15338 *boolc<mode>3_internal2 for BOOL_128,
15339 *boolcc<mode>3_internal1 for BOOL_128,
15340 *boolcc<mode>3_internal2 for BOOL_128,
15341 *eqv<mode>3_internal1 for BOOL_128,
15342 *eqv<mode>3_internal2 for BOOL_128,
15343 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15344 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15346 (*vec_reload_and_reg_<mptrsize>): Delete.
15348 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15350 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15351 and split, *boolccsi3_internal3 and split): Delete.
15352 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15353 *boolccdi3_internal3 and split): Delete.
15354 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15355 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
15357 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15359 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15360 and split, *boolcsi3_internal3 and split): Delete.
15361 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15362 *boolcdi3_internal3 and split): Delete.
15363 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15365 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15367 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15368 <'u'>: Also support printing the low-order 16 bits.
15369 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15370 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15371 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15372 *booldi3_internal3 and split): Delete.
15373 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15374 *bool<mode>3_dot2): New.
15375 (two anonymous define_splits for non_logical_cint_operand): Merge.
15377 2014-08-17 Marek Polacek <polacek@redhat.com>
15378 Manuel López-Ibáñez <manu@gcc.gnu.org>
15381 * diagnostic.c (adjust_line): Add gcc_checking_assert.
15382 (diagnostic_show_locus): Don't print caret diagnostic
15383 if a column is larger than the line_width.
15385 2014-08-17 Roman Gareev <gareevroman@gmail.com>
15387 * common.opt: Make the ISL AST generator to be the main code generator
15390 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
15392 * wide-int.h (generic_wide_int): Declare as class instead of struct.
15394 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
15397 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
15399 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
15400 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
15401 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
15403 * config/pa/pa.md (begin_brtab): Delete insn.
15404 (end_brtab): Likewise.
15406 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
15408 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
15410 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
15412 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15413 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15414 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15415 (get_dynamic_type): Remove.
15416 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15417 (clear_speculation): Bring to ipa-deivrt.h
15418 (get_class_context): Rename to ...
15419 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15420 (contains_type_p): Update.
15421 (get_dynamic_type): Rename to ...
15422 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15423 (possible_polymorphic_call_targets): UPdate.
15424 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15425 * ipa-prop.c (ipa_analyze_call_uses): Update.
15427 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
15429 * doc/invoke.texi (SH options): Document missing processor variant
15430 options. Remove references to Hitachi. Undocument deprecated mspace
15433 2014-08-15 Jason Merrill <jason@redhat.com>
15435 * tree.c (type_hash_canon): Uncomment assert.
15437 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
15439 * input.h (in_system_header_at): Add comment.
15441 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
15444 * diagnostic.c (build_message_string): Make it extern.
15445 * diagnostic.h (build_message_string): Make it extern.
15447 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
15449 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
15450 load/store from/to non-floating class pseudo.
15452 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
15454 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
15456 2014-08-15 Richard Biener <rguenther@suse.de>
15458 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
15459 (get_constraint_for_ssa_var): Remove dead code.
15460 (get_constraint_for_1): Adjust.
15461 (find_what_var_points_to): Likewise.
15462 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
15464 2014-08-15 Ilya Tocar <tocarip@gmail.com>
15467 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
15468 (_mm512_mask_cmpge_epu32_mask): Ditto.
15469 (_mm512_cmpge_epu32_mask): Ditto.
15470 (_mm512_mask_cmpge_epi64_mask): Ditto.
15471 (_mm512_cmpge_epi64_mask): Ditto.
15472 (_mm512_mask_cmpge_epu64_mask): Ditto.
15473 (_mm512_cmpge_epu64_mask): Ditto.
15474 (_mm512_mask_cmple_epi32_mask): Ditto.
15475 (_mm512_cmple_epi32_mask): Ditto.
15476 (_mm512_mask_cmple_epu32_mask): Ditto.
15477 (_mm512_cmple_epu32_mask): Ditto.
15478 (_mm512_mask_cmple_epi64_mask): Ditto.
15479 (_mm512_cmple_epi64_mask): Ditto.
15480 (_mm512_mask_cmple_epu64_mask): Ditto.
15481 (_mm512_cmple_epu64_mask): Ditto.
15482 (_mm512_mask_cmplt_epi32_mask): Ditto.
15483 (_mm512_cmplt_epi32_mask): Ditto.
15484 (_mm512_mask_cmplt_epu32_mask): Ditto.
15485 (_mm512_cmplt_epu32_mask): Ditto.
15486 (_mm512_mask_cmplt_epi64_mask): Ditto.
15487 (_mm512_cmplt_epi64_mask): Ditto.
15488 (_mm512_mask_cmplt_epu64_mask): Ditto.
15489 (_mm512_cmplt_epu64_mask): Ditto.
15490 (_mm512_mask_cmpneq_epi32_mask): Ditto.
15491 (_mm512_mask_cmpneq_epu32_mask): Ditto.
15492 (_mm512_cmpneq_epu32_mask): Ditto.
15493 (_mm512_mask_cmpneq_epi64_mask): Ditto.
15494 (_mm512_cmpneq_epi64_mask): Ditto.
15495 (_mm512_mask_cmpneq_epu64_mask): Ditto.
15496 (_mm512_cmpneq_epu64_mask): Ditto.
15497 (_mm512_castpd_ps): Ditto.
15498 (_mm512_castpd_si512): Ditto.
15499 (_mm512_castps_pd): Ditto.
15500 (_mm512_castps_si512): Ditto.
15501 (_mm512_castsi512_ps): Ditto.
15502 (_mm512_castsi512_pd): Ditto.
15503 (_mm512_castpd512_pd128): Ditto.
15504 (_mm512_castps512_ps128): Ditto.
15505 (_mm512_castsi512_si128): Ditto.
15506 (_mm512_castpd512_pd256): Ditto.
15507 (_mm512_castps512_ps256): Ditto.
15508 (_mm512_castsi512_si256): Ditto.
15509 (_mm512_castpd128_pd512): Ditto.
15510 (_mm512_castps128_ps512): Ditto.
15511 (_mm512_castsi128_si512): Ditto.
15512 (_mm512_castpd256_pd512): Ditto.
15513 (_mm512_castps256_ps512): Ditto.
15514 (_mm512_castsi256_si512): Ditto.
15515 (_mm512_cmpeq_epu32_mask): Ditto.
15516 (_mm512_mask_cmpeq_epu32_mask): Ditto.
15517 (_mm512_mask_cmpeq_epu64_mask): Ditto.
15518 (_mm512_cmpeq_epu64_mask): Ditto.
15519 (_mm512_cmpgt_epu32_mask): Ditto.
15520 (_mm512_mask_cmpgt_epu32_mask): Ditto.
15521 (_mm512_mask_cmpgt_epu64_mask): Ditto.
15522 (_mm512_cmpgt_epu64_mask): Ditto.
15523 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
15524 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
15525 * config/i386/i386.c (enum ix86_builtins): Add
15526 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
15527 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
15528 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
15529 (bdesc_args): Add __builtin_ia32_si512_256si,
15530 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
15531 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
15532 __builtin_ia32_pd512_pd.
15533 (ix86_expand_args_builtin): Handle new FTYPEs.
15534 * config/i386/sse.md (castmode): Add 512-bit modes.
15535 (AVX512MODE2P): New.
15536 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
15537 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
15539 2014-08-15 Richard Biener <rguenther@suse.de>
15541 * fold-const.c (tree_swap_operands_p): Put all constants
15542 last, also strip sign-changing NOPs when considering further
15543 canonicalization. Canonicalize also when optimizing for size.
15545 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15547 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
15548 one_match > zero_match case to just before simple_sequence.
15550 2014-08-15 Richard Biener <rguenther@suse.de>
15552 * data-streamer.h (streamer_string_index, string_for_index):
15554 * data-streamer-out.c (streamer_string_index): Make static.
15555 * data-streamer-in.c (string_for_index): Likewise.
15556 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
15557 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
15559 2014-08-15 Richard Biener <rguenther@suse.de>
15561 PR tree-optimization/62031
15562 * tree-data-ref.c (dr_analyze_indices): Do not set
15563 DR_UNCONSTRAINED_BASE.
15564 (dr_may_alias_p): All indirect accesses have to go the
15565 formerly DR_UNCONSTRAINED_BASE path.
15566 * tree-data-ref.h (struct indices): Remove
15567 unconstrained_base member.
15568 (DR_UNCONSTRAINED_BASE): Remove.
15570 2014-08-15 Jakub Jelinek <jakub@redhat.com>
15572 PR middle-end/62092
15573 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
15574 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
15575 in OMP_CLAUSE_MAP in some outer target region.
15577 2014-08-15 Bin Cheng <bin.cheng@arm.com>
15579 * tree-ssa-loop-ivopts.c (ivopts_data): New field
15580 name_expansion_cache.
15581 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
15582 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
15583 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
15584 (difference_cannot_overflow_p): New parameter. Use affine
15585 expansion for equality check.
15586 (iv_elimination_compare_lt): Pass new argument.
15588 2014-08-14 DJ Delorie <dj@redhat.com>
15590 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
15591 variables to the accumulator.
15593 * config/rl78/predicates.md (rl78_near_mem_operand): New.
15594 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
15595 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
15596 with far-far moves.
15598 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
15599 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
15600 (umulqihi3_virt): Likewise.
15601 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
15602 (umulqihi3_real): Likewise.
15604 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
15606 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
15608 PR tree-optimization/62091
15609 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
15610 function_entry_reached.
15611 (walk_aliased_vdefs): Clear it here.
15612 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
15614 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
15616 * ipa-utils.h (compare_virtual_tables): Declare.
15617 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
15619 2014-08-14 Marek Polacek <polacek@redhat.com>
15622 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
15623 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
15625 2014-08-14 Tom de Vries <tom@codesourcery.com>
15627 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
15629 2014-08-14 Tom de Vries <tom@codesourcery.com>
15631 PR rtl-optimization/62004
15632 PR rtl-optimization/62030
15633 * ifcvt.c (rtx_interchangeable_p): New function.
15634 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
15635 * emit-rtl.h (mem_attrs_eq_p): Declare.
15637 2014-08-14 Roman Gareev <gareevroman@gmail.com>
15639 * graphite-scop-detection.c:
15640 Add inclusion of cp-tree.h.
15641 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
15642 in case they are pointers to object types
15644 2014-08-14 Richard Biener <rguenther@suse.de>
15646 * BASE-VER: Change to 5.0.0
15648 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
15649 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15650 Anna Tikhonova <anna.tikhonova@intel.com>
15651 Ilya Tocar <ilya.tocar@intel.com>
15652 Andrey Turetskiy <andrey.turetskiy@intel.com>
15653 Ilya Verbin <ilya.verbin@intel.com>
15654 Kirill Yukhin <kirill.yukhin@intel.com>
15655 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15657 * config/i386/sse.md (define_mode_attr avx512): New.
15658 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
15660 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
15661 (define_mode_attr ssse3_avx2): Ditto.
15662 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
15663 (define_mode_attr avx2_avx512bw): New.
15664 (define_mode_attr ssedoublemodelower): New.
15665 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
15666 V32HI, V64QI modes.
15667 (define_mode_attr ssebytemode): Allow V8DI modes.
15668 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
15669 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
15670 (define_mode_attr ssePSmode2): New.
15671 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
15672 V16HI, V32HI modes.
15673 (define_mode_attr dbpsadbwmode): New.
15674 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
15675 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
15676 (vi8_sse4_1_avx2_avx512): New.
15677 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
15679 (define_mode_attr blendbits): Move before its immediate use.
15681 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
15682 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15683 Anna Tikhonova <anna.tikhonova@intel.com>
15684 Ilya Tocar <ilya.tocar@intel.com>
15685 Andrey Turetskiy <andrey.turetskiy@intel.com>
15686 Ilya Verbin <ilya.verbin@intel.com>
15687 Kirill Yukhin <kirill.yukhin@intel.com>
15688 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15690 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
15691 * config/i386/subst.md
15692 (define_mode_iterator SUBST_V): Update.
15693 (define_mode_iterator SUBST_A): Ditto.
15694 (define_subst_attr "mask_operand7"): New.
15695 (define_subst_attr "mask_operand10"): New.
15696 (define_subst_attr "mask_operand_arg34") : New.
15697 (define_subst_attr "mask_expand_op3"): New.
15698 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
15699 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
15700 (define_subst_attr "mask_avx512vl_condition"): New.
15701 (define_subst_attr "round_mask_operand4"): Ditto.
15702 (define_subst_attr "round_mask_scalar_op3"): Delete.
15703 (define_subst_attr "round_mask_op4"): New.
15704 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
15706 (define_subst_attr "round_modev8sf_condition"): New.
15707 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
15709 (define_subst_attr "round_saeonly_mask_operand4"): New.
15710 (define_subst_attr "round_saeonly_mask_op4"): New.
15711 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
15712 V8DImode, V16SImode.
15713 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
15714 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
15715 (define_subst_attr "mask_expand4_args"): New.
15716 (define_subst "mask_expand4"): New.
15718 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
15719 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15720 Anna Tikhonova <anna.tikhonova@intel.com>
15721 Ilya Tocar <ilya.tocar@intel.com>
15722 Andrey Turetskiy <andrey.turetskiy@intel.com>
15723 Ilya Verbin <ilya.verbin@intel.com>
15724 Kirill Yukhin <kirill.yukhin@intel.com>
15725 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15727 * config/i386/i386.md
15728 (define_attr "isa"): Add avx512bw,noavx512bw.
15729 (define_attr "enabled"): Ditto.
15730 (define_split): Add 32/64-bit mask logic.
15731 (define_insn "*k<logic>qi"): New.
15732 (define_insn "*k<logic>hi"): New.
15733 (define_insn "*anddi_1"): Add mask version.
15734 (define_insn "*andsi_1"): Ditto.
15735 (define_insn "*<code><mode>_1"): Ditto.
15736 (define_insn "*<code>hi_1"): Ditto.
15737 (define_insn "kxnor<mode>"): New.
15738 (define_insn "kunpcksi"): New.
15739 (define_insn "kunpckdi"): New.
15740 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
15741 (define_insn "*one_cmplhi2_1"): Ditto.
15743 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
15744 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15745 Anna Tikhonova <anna.tikhonova@intel.com>
15746 Ilya Tocar <ilya.tocar@intel.com>
15747 Andrey Turetskiy <andrey.turetskiy@intel.com>
15748 Ilya Verbin <ilya.verbin@intel.com>
15749 Kirill Yukhin <kirill.yukhin@intel.com>
15750 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15752 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
15755 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
15756 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15757 Anna Tikhonova <anna.tikhonova@intel.com>
15758 Ilya Tocar <ilya.tocar@intel.com>
15759 Andrey Turetskiy <andrey.turetskiy@intel.com>
15760 Ilya Verbin <ilya.verbin@intel.com>
15761 Kirill Yukhin <kirill.yukhin@intel.com>
15762 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15764 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
15766 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
15767 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
15768 xmm/ymm16+ when availble.
15769 * config/i386/i386.h
15770 (HARD_REGNO_NREGS): Add mask regs.
15771 (VALID_AVX512F_REG_MODE): Ditto.
15772 (VALID_AVX512F_REG_MODE) : Define.
15773 (VALID_MASK_AVX512BW_MODE): Ditto.
15774 (reg_class) (MASK_REG_P(X)): Define.
15775 * config/i386/i386.md: Do not split long moves with mask register,
15776 use kmovb if avx512bw is availible.
15777 (movdi_internal): Handle mask registers.
15779 2014-08-14 Richard Biener <rguenther@suse.de>
15781 PR tree-optimization/62081
15782 * tree-ssa-loop.c (pass_fix_loops): New pass.
15783 (pass_tree_loop::gate): Do not fixup loops here.
15784 * tree-pass.h (make_pass_fix_loops): Declare.
15785 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
15787 2014-08-14 Richard Biener <rguenther@suse.de>
15789 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
15790 (type_hash_canon): ... this and avoid 2nd lookup for the add.
15792 2014-08-14 Richard Biener <rguenther@suse.de>
15794 PR tree-optimization/62090
15795 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
15796 (fold_builtin_2): Do not fold sprintf.
15797 (fold_builtin_3): Likewise.
15798 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
15799 moved from builtins.c.
15800 (gimple_fold_builtin): Fold sprintf.
15802 2014-08-14 Richard Biener <rguenther@suse.de>
15804 PR rtl-optimization/62079
15805 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
15808 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
15810 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
15811 current_function_decl.
15813 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
15815 * cgraph.c (cgraph_node::function_symbol): Fix wrong
15816 cgraph_function_node to cgraph_node::function_symbol
15819 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
15821 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
15822 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
15824 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
15826 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
15829 2014-08-13 Roman Gareev <gareevroman@gmail.com>
15831 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
15834 2014-08-12 Jakub Jelinek <jakub@redhat.com>
15837 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
15838 any registers that are used in mem_insn.
15840 2014-08-12 Steve Ellcey <sellcey@mips.com>
15842 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
15844 2014-08-12 Steve Ellcey <sellcey@mips.com>
15846 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
15847 (MULTILIB_DIRNAMES): Ditto.
15848 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
15849 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
15850 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
15851 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
15852 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
15853 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
15855 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15858 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
15859 of __ARM_SIZEOF_WCHAR_T.
15861 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15864 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
15865 Remove unnecessary attributes.
15867 2014-08-12 Yury Gribov <y.gribov@samsung.com>
15869 * internal-fn.c (init_internal_fns): Fix off-by-one.
15871 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
15872 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15873 Anna Tikhonova <anna.tikhonova@intel.com>
15874 Ilya Tocar <ilya.tocar@intel.com>
15875 Andrey Turetskiy <andrey.turetskiy@intel.com>
15876 Ilya Verbin <ilya.verbin@intel.com>
15877 Kirill Yukhin <kirill.yukhin@intel.com>
15878 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15880 * config/i386/i386.c (standard_sse_constant_opcode): Use
15881 vpxord/vpternlog if avx512 is availible.
15883 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
15885 PR middle-end/62103
15886 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
15887 bitfields, that is when size doesn't match the size of type or the
15888 size of the constructor.
15890 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
15892 * config/rs6000/constraints.md (wh constraint): New constraint,
15893 for FP registers if direct move is available.
15894 (wi constraint): New constraint, for VSX/FP registers that can
15895 handle 64-bit integers.
15896 (wj constraint): New constraint for VSX/FP registers that can
15897 handle 64-bit integers for direct moves.
15898 (wk constraint): New constraint for VSX/FP registers that can
15899 handle 64-bit doubles for direct moves.
15900 (wy constraint): Make documentation match implementation.
15902 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
15903 scalar_in_vmx_p field to simplify tests of whether SFmode or
15904 DFmode can go in the Altivec registers.
15905 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
15906 (rs6000_setup_reg_addr_masks): Likewise.
15907 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
15908 field, and wh/wi/wj/wk constraints.
15909 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
15910 the wh/wi/wj/wk constraints.
15911 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
15912 upper registers, prefer VSX registers unless the operation is a
15913 memory operation with REG+OFFSET addressing.
15915 * config/rs6000/vsx.md (VSr mode attribute): Add support for
15916 DImode. Change SFmode to use ww constraint instead of d to allow
15917 SF registers in the upper registers.
15920 (VSr5): Fix thinko in comment.
15921 (VSa): New mode attribute that is an alternative to wa, that
15922 returns the VSX register class that a mode can go in, but may not
15923 be the preferred register class.
15924 (VS_64dm): New mode attribute for appropriate register classes for
15925 referencing 64-bit elements of vectors for direct moves and normal
15927 (VS_64reg): Likewise.
15928 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
15929 register allocator to only registers the data type can handle.
15930 (vsx_le_perm_load_<mode>): Likewise.
15931 (vsx_le_perm_store_<mode>): Likewise.
15932 (vsx_xxpermdi2_le_<mode>): Likewise.
15933 (vsx_xxpermdi4_le_<mode>): Likewise.
15934 (vsx_lxvd2x2_le_<mode>): Likewise.
15935 (vsx_lxvd2x4_le_<mode>): Likewise.
15936 (vsx_stxvd2x2_le_<mode>): Likewise.
15937 (vsx_add<mode>3): Likewise.
15938 (vsx_sub<mode>3): Likewise.
15939 (vsx_mul<mode>3): Likewise.
15940 (vsx_div<mode>3): Likewise.
15941 (vsx_tdiv<mode>3_internal): Likewise.
15942 (vsx_fre<mode>2): Likewise.
15943 (vsx_neg<mode>2): Likewise.
15944 (vsx_abs<mode>2): Likewise.
15945 (vsx_nabs<mode>2): Likewise.
15946 (vsx_smax<mode>3): Likewise.
15947 (vsx_smin<mode>3): Likewise.
15948 (vsx_sqrt<mode>2): Likewise.
15949 (vsx_rsqrte<mode>2): Likewise.
15950 (vsx_tsqrt<mode>2_internal): Likewise.
15951 (vsx_fms<mode>4): Likewise.
15952 (vsx_nfma<mode>4): Likewise.
15953 (vsx_eq<mode>): Likewise.
15954 (vsx_gt<mode>): Likewise.
15955 (vsx_ge<mode>): Likewise.
15956 (vsx_eq<mode>_p): Likewise.
15957 (vsx_gt<mode>_p): Likewise.
15958 (vsx_ge<mode>_p): Likewise.
15959 (vsx_xxsel<mode>): Likewise.
15960 (vsx_xxsel<mode>_uns): Likewise.
15961 (vsx_copysign<mode>3): Likewise.
15962 (vsx_float<VSi><mode>2): Likewise.
15963 (vsx_floatuns<VSi><mode>2): Likewise.
15964 (vsx_fix_trunc<mode><VSi>2): Likewise.
15965 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
15966 (vsx_x<VSv>r<VSs>i): Likewise.
15967 (vsx_x<VSv>r<VSs>ic): Likewise.
15968 (vsx_btrunc<mode>2): Likewise.
15969 (vsx_b2trunc<mode>2): Likewise.
15970 (vsx_floor<mode>2): Likewise.
15971 (vsx_ceil<mode>2): Likewise.
15972 (vsx_<VS_spdp_insn>): Likewise.
15973 (vsx_xscvspdp): Likewise.
15974 (vsx_xvcvspuxds): Likewise.
15975 (vsx_float_fix_<mode>2): Likewise.
15976 (vsx_set_<mode>): Likewise.
15977 (vsx_extract_<mode>_internal1): Likewise.
15978 (vsx_extract_<mode>_internal2): Likewise.
15979 (vsx_extract_<mode>_load): Likewise.
15980 (vsx_extract_<mode>_store): Likewise.
15981 (vsx_splat_<mode>): Likewise.
15982 (vsx_xxspltw_<mode>): Likewise.
15983 (vsx_xxspltw_<mode>_direct): Likewise.
15984 (vsx_xxmrghw_<mode>): Likewise.
15985 (vsx_xxmrglw_<mode>): Likewise.
15986 (vsx_xxsldwi_<mode>): Likewise.
15987 (vsx_xscvdpspn): Tighten constraints to only use register classes
15989 (vsx_xscvspdpn): Likewise.
15990 (vsx_xscvdpspn_scalar): Likewise.
15992 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
15993 wj, and wk constraints.
15994 (GPR_REG_CLASS_P): New helper macro for register classes targeting
15995 general purpose registers.
15997 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
15999 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16000 DImode instead of wm. Use wk constraint for direct move of DFmode
16002 (extendsidi2_lfiwax): Likewise.
16003 (lfiwax): Likewise.
16004 (lfiwzx): Likewise.
16005 (movdi_internal64): Likewise.
16007 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16008 wk constraints. Make the wy constraint documentation match them
16011 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
16013 Replacement of isl_int by isl_val
16014 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16015 (compute_bounds_for_param): use isl_val instead of isl_int
16016 (compute_bounds_for_loop): likewise
16017 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16018 (build_linearized_memory_access): use isl_val instead of isl_int
16019 (pdr_stride_in_loop): likewise
16020 * graphite-optimize-isl.c:
16021 (getPrevectorMap): use isl_val instead of isl_int
16023 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16024 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16025 (extern the_isl_ctx): declare
16026 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16027 (extract_affine_gmp): likewise
16029 (build_loop_iteration_domains): likewise
16030 (add_param_constraints): likewise
16032 2014-08-11 Richard Biener <rguenther@suse.de>
16034 PR tree-optimization/62075
16035 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16036 handle uses in patterns.
16038 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16039 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16040 Anna Tikhonova <anna.tikhonova@intel.com>
16041 Ilya Tocar <ilya.tocar@intel.com>
16042 Andrey Turetskiy <andrey.turetskiy@intel.com>
16043 Ilya Verbin <ilya.verbin@intel.com>
16044 Kirill Yukhin <kirill.yukhin@intel.com>
16045 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16047 * common/config/i386/i386-common.c
16048 (OPTION_MASK_ISA_AVX512VL_SET): Define.
16049 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16050 (ix86_handle_option): Handle OPT_mavx512vl.
16051 * config/i386/cpuid.h (bit_AVX512VL): Define.
16052 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16053 set -mavx512vl accordingly.
16054 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16055 OPTION_MASK_ISA_AVX512VL.
16056 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16057 (ix86_option_override_internal): Define PTA_AVX512VL, handle
16058 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16059 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16060 * config/i386/i386.h (TARGET_AVX512VL): Define.
16061 (TARGET_AVX512VL_P(x)): Ditto.
16062 * config/i386/i386.opt: Add mavx512vl.
16064 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
16066 PR tree-optimization/62073
16067 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16070 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16071 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16072 Anna Tikhonova <anna.tikhonova@intel.com>
16073 Ilya Tocar <ilya.tocar@intel.com>
16074 Andrey Turetskiy <andrey.turetskiy@intel.com>
16075 Ilya Verbin <ilya.verbin@intel.com>
16076 Kirill Yukhin <kirill.yukhin@intel.com>
16077 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16079 * common/config/i386/i386-common.c
16080 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16081 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16082 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16083 (ix86_handle_option): Handle OPT_mavx512bw.
16084 * config/i386/cpuid.h (bit_AVX512BW): Define.
16085 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16086 set -mavx512bw accordingly.
16087 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16088 OPTION_MASK_ISA_AVX512BW.
16089 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16090 (ix86_option_override_internal): Define PTA_AVX512BW, handle
16091 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16092 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16093 * config/i386/i386.h (TARGET_AVX512BW): Define.
16094 (TARGET_AVX512BW_P(x)): Ditto.
16095 * config/i386/i386.opt: Add mavx512bw.
16097 2014-08-11 Richard Biener <rguenther@suse.de>
16099 PR tree-optimization/62070
16100 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16101 Remove SSA checking.
16103 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16105 * asan.c (asan_check_flags): New enum.
16106 (build_check_stmt_with_calls): Removed function.
16107 (build_check_stmt): Split inlining logic to
16108 asan_expand_check_ifn.
16109 (instrument_derefs): Rename parameter.
16110 (instrument_mem_region_access): Rename parameter.
16111 (instrument_strlen_call): Likewise.
16112 (asan_expand_check_ifn): New function.
16113 (asan_instrument): Remove old code.
16114 (pass_sanopt::execute): Change handling of
16115 asan-instrumentation-with-call-threshold.
16116 (asan_clear_shadow): Fix formatting.
16117 (asan_function_start): Likewise.
16118 (asan_emit_stack_protection): Likewise.
16119 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16120 Update description.
16121 * internal-fn.c (expand_ASAN_CHECK): New function.
16122 * internal-fn.def (ASAN_CHECK): New internal function.
16123 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16124 Update description.
16125 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16126 * tree.c: Small comment fix.
16128 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16130 * gimple.c (gimple_call_fnspec): Support internal functions.
16131 (gimple_call_return_flags): Use const.
16132 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16133 * internal-fn.def: Add fnspec information.
16134 * internal-fn.h (internal_fn_fnspec): New function.
16135 (init_internal_fns): Declare new function.
16136 * internal-fn.c (internal_fn_fnspec_array): New global variable.
16137 (init_internal_fns): New function.
16138 * tree-core.h: Update macro call.
16139 * tree.c (build_common_builtin_nodes): Initialize internal fns.
16141 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
16143 * lto-streamer.h (struct output_block::symbol): Change from
16144 struct symtab_node to plain symtab_node.
16145 (referenced_from_this_partition_p): Change first parameter
16146 from struct symtab_node to plain symtab_node.
16148 2014-08-10 Marek Polacek <polacek@redhat.com>
16151 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16153 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
16155 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16156 DECL correctly; do not give up on types in static storage.
16158 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
16160 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16162 2014-08-09 Roman Gareev <gareevroman@gmail.com>
16164 * graphite-isl-ast-to-gimple.c:
16165 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16167 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16169 2014-08-08 Guozhi Wei <carrot@google.com>
16171 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16173 2014-08-08 Cary Coutant <ccoutant@google.com>
16175 * dwarf2out.c (get_skeleton_type_unit): Remove.
16176 (output_skeleton_debug_sections): Remove skeleton type units.
16177 (output_comdat_type_unit): Likewise.
16178 (dwarf2out_finish): Likewise.
16180 2014-08-07 Yi Yang <ahyangyi@google.com>
16182 * predict.c (expr_expected_value_1): Remove the redundant assignment.
16184 2014-08-08 Richard Biener <rguenther@suse.de>
16186 * lto-streamer.h (struct lto_input_block): Make it a class
16187 with a constructor.
16188 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16189 (struct lto_function_header, struct lto_simple_header,
16190 struct lto_simple_header_with_strings,
16191 struct lto_decl_header, struct lto_function_header): Make
16192 a simple inheritance hieararchy. Remove unused fields.
16193 (struct lto_asm_header): Remove.
16194 * lto-streamer-out.c (produce_asm): Adjust.
16195 (lto_output_toplevel_asms): Likewise.
16196 (produce_asm_for_decls): Likewise.
16197 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16198 * data-streamer-in.c (string_for_index): Likewise.
16199 * ipa-inline-analysis.c (inline_read_section): Likewise.
16200 * ipa-prop.c (ipa_prop_read_section): Likewise.
16201 (read_replacements_section): Likewise.
16202 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16203 * lto-section-in.c (lto_create_simple_input_block): Likewise.
16204 (lto_destroy_simple_input_block): Likewise.
16205 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16206 (lto_input_toplevel_asms): Likewise.
16208 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16209 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16210 Anna Tikhonova <anna.tikhonova@intel.com>
16211 Ilya Tocar <ilya.tocar@intel.com>
16212 Andrey Turetskiy <andrey.turetskiy@intel.com>
16213 Ilya Verbin <ilya.verbin@intel.com>
16214 Kirill Yukhin <kirill.yukhin@intel.com>
16215 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16217 * common/config/i386/i386-common.c
16218 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16219 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16220 (ix86_handle_option): Handle OPT_mavx512dq.
16221 * config/i386/cpuid.h (bit_AVX512DQ): Define.
16222 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16223 set -mavx512dq accordingly.
16224 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16225 OPTION_MASK_ISA_AVX512DQ.
16226 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16227 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16228 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16229 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16230 * config/i386/i386.h (TARGET_AVX512DQ): Define.
16231 (TARGET_AVX512DQ_P(x)): Ditto.
16232 * config/i386/i386.opt: Add mavx512dq.
16234 2014-08-08 Richard Biener <rguenther@suse.de>
16236 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16237 target_percent, target_percent_s): Export.
16238 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16239 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16240 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16241 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16242 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16243 Move to gimple-fold.c.
16244 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16246 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16247 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16248 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16249 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16250 (rewrite_call_expr_array): Remove.
16251 (fold_builtin_sprintf_chk): Likewise.
16252 (fold_builtin_snprintf_chk): Likewise.
16253 (fold_builtin_varargs): Remove handling of sprintf_chk,
16254 vsprintf_chk, snprintf_chk and vsnprintf_chk.
16255 (gimple_fold_builtin_sprintf_chk): Remove.
16256 (gimple_fold_builtin_snprintf_chk): Likewise.
16257 (gimple_fold_builtin_varargs): Likewise.
16258 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16259 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16260 * gimple.c (gimple_seq_add_seq_without_update): New function.
16261 * gimple.h (gimple_seq_add_seq_without_update): Declare.
16262 * gimple-fold.c: Include output.h.
16263 (gsi_replace_with_seq_vops): New function, split out from ...
16264 (gimplify_and_update_call_from_tree): ... here.
16265 (replace_call_with_value): New function.
16266 (replace_call_with_call_and_fold): Likewise.
16267 (var_decl_component_p): Moved from builtins.c.
16268 (gimple_fold_builtin_memory_op): Moved from builtins.c
16269 fold_builtin_memory_op and rewritten to GIMPLE.
16270 (gimple_fold_builtin_memset): Likewise.
16271 (gimple_fold_builtin_strcpy): Likewise.
16272 (gimple_fold_builtin_strncpy): Likewise.
16273 (gimple_fold_builtin_strcat): Likewise.
16274 (gimple_fold_builtin_fputs): Likewise.
16275 (gimple_fold_builtin_memory_chk): Likewise.
16276 (gimple_fold_builtin_stxcpy_chk): Likewise.
16277 (gimple_fold_builtin_stxncpy_chk): Likewise.
16278 (gimple_fold_builtin_snprintf_chk): Likewise.
16279 (gimple_fold_builtin_sprintf_chk): Likewise.
16280 (gimple_fold_builtin_strlen): New function.
16281 (gimple_fold_builtin_with_strlen): New function split out from
16282 gimple_fold_builtin.
16283 (gimple_fold_builtin): Change signature and handle
16284 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16285 here. Call gimple_fold_builtin_with_strlen.
16286 (gimple_fold_call): Adjust.
16288 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16290 * calls.c (precompute_arguments): Check
16291 promoted_for_signed_and_unsigned_p and set the promoted mode.
16292 (promoted_for_signed_and_unsigned_p): New function.
16293 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16294 and set the promoted mode.
16295 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16296 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16297 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16300 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16302 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16303 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16304 (expand_call): Likewise.
16305 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16306 to get promoted mode.
16307 * combine.c (record_promoted_value): Skip > 0 comparison with
16308 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16309 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16310 of SUBREG_PROMOTED_UNSIGNED_P.
16311 (convert_modes): Likewise.
16312 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16313 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16314 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16315 SUBREG_PROMOTED_UNSIGNED_SET.
16316 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16317 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16318 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16319 SUBREG_PROMOTED_SET.
16320 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16321 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16322 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16323 of SUBREG_PROMOTED_UNSIGNED_P.
16324 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16325 (SUBREG_PROMOTED_SET): New define.
16326 (SUBREG_PROMOTED_GET): Likewise.
16327 (SUBREG_PROMOTED_SIGN): Likewise.
16328 (SUBREG_PROMOTED_SIGNED_P): Likewise.
16329 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16330 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16331 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16332 instead of SUBREG_PROMOTED_UNSIGNED_GET.
16333 (nonzero_bits1): Skip > 0 comparison with the results as
16334 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16335 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16336 of !SUBREG_PROMOTED_UNSIGNED_P.
16337 * simplify-rtx.c (simplify_unary_operation_1): Use new
16338 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16339 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16340 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16341 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16343 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
16345 * ipa-devirt.c: Include gimple-pretty-print.h
16346 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16348 (decl_maybe_in_construction_p): Fix conditional on cdtor check
16349 (get_polymorphic_call_info): Fix return value
16350 (type_change_info): New sturcture based on ipa-prop
16352 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16353 based on ipa-prop variant.
16354 (extr_type_from_vtbl_ptr_store): New function
16355 based on ipa-prop variant.
16356 (record_known_type): New function.
16357 (check_stmt_for_type_change): New function.
16358 (get_dynamic_type): New function.
16359 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16360 * tree-ssa-pre.c: ipa-utils.h
16361 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16362 machinery; sanity check with ipa-prop devirtualization.
16363 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16366 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
16368 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16369 * alias.c, cfgexpand.c, cgraphbuild.c,
16370 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16371 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16372 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16373 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16374 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16375 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16376 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16377 dse.c, except.c, gengtype.c, gimple-expr.c,
16378 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16379 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16380 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16381 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16382 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16383 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16385 * pointer-set.c: Remove file.
16386 * pointer-set.h: Remove file.
16388 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16390 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16391 * config/arm/types.md (f_sels, f_seld): Delete.
16393 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16395 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
16396 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
16397 (aarch64_movdi_<mode>high): Likewise.
16398 (aarch64_mov<mode>high_di): Likewise.
16399 (aarch64_movdi_<mode>low): Likewise.
16400 (aarch64_mov<mode>low_di): Likewise.
16401 (aarch64_movtilow_tilow): Likewise.
16402 Add comment explaining usage of fp,simd attributes and of
16403 TARGET_FLOAT and TARGET_SIMD.
16405 2014-08-07 Ian Bolton <ian.bolton@arm.com>
16406 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16408 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
16409 Use MOVN when one of the half-words is 0xffff.
16411 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
16413 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
16415 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16417 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
16418 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
16419 (rfs_str): String corresponding to RFS_* constants.
16420 (rank_for_schedule_stats_t): New typedef.
16421 (rank_for_schedule_stats): New static variable.
16422 (rfs_result): New static function.
16423 (rank_for_schedule): Track statistics for deciding heuristics.
16424 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
16426 (ready_sort): Use them for debug printouts.
16427 (schedule_block): Init statistics state. Print statistics on
16428 rank_for_schedule decisions.
16430 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16432 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
16434 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
16436 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
16439 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
16441 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
16442 function to not conflict.
16443 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
16444 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
16445 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
16446 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
16447 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
16450 2014-08-07 Marek Polacek <polacek@redhat.com>
16452 * fold-const.c (fold_binary_loc): Add folding of
16453 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
16455 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
16457 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
16458 instead of type size.
16459 (ASM_FINISH_DECLARE_OBJECT): Likewise.
16461 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
16463 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
16464 (*thumb1_movqi_insn): Likewise.
16465 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
16467 2014-08-07 Tom de Vries <tom@codesourcery.com>
16469 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16470 (glibc_2_11_or_earlier): Remove effective-target keywords.
16472 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
16474 * config/arm/arm.c (bdesc_2arg): Fix typo.
16475 (arm_atomic_assign_expand_fenv): Remove The default implementation.
16477 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
16479 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
16481 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
16484 * haifa-sched.c (advance_one_cycle): Fix dump.
16485 (schedule_block): Don't advance cycle if we are already at the
16486 beginning of the cycle.
16488 2014-08-06 Martin Jambor <mjambor@suse.cz>
16491 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
16493 2014-08-06 Richard Biener <rguenther@suse.de>
16496 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
16498 (lto_input_tree): Pop SCCs here.
16500 2014-08-06 Richard Biener <rguenther@suse.de>
16502 PR tree-optimization/61320
16503 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
16504 handle misaligned loads.
16506 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
16508 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
16509 (aarch64_expand_vec_perm_const): Check for dup before zip.
16511 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16513 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
16514 CONST_INT_P instead of GET_CODE and compare.
16515 (aarch64_select_cc_mode): Likewise.
16516 (aarch64_print_operand): Likewise.
16517 (aarch64_rtx_costs): Likewise.
16518 (aarch64_simd_valid_immediate): Likewise.
16519 (aarch64_simd_check_vect_par_cnst_half): Likewise.
16520 (aarch64_simd_emit_pair_result_insn): Likewise.
16522 2014-08-05 David Malcolm <dmalcolm@redhat.com>
16524 * gdbhooks.py (find_gcc_source_dir): New helper function.
16525 (class PassNames): New class, locating and parsing passes.def.
16526 (class BreakOnPass): New command "break-on-pass".
16528 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
16530 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
16533 2014-08-05 Richard Biener <rguenther@suse.de>
16535 PR rtl-optimization/61672
16536 * emit-rtl.h (mem_attrs_eq_p): Declare.
16537 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
16538 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
16539 * cfgcleanup.c (merge_memattrs): Likewise.
16540 Include emit-rtl.h.
16542 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16544 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
16545 rather than singleton vectors.
16546 (vqdmlsls_lane_s32): Likewise.
16548 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16550 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
16551 Use VSDQ_HSI mode iterator.
16552 (aarch64_sqrdmulh_laneq<mode>): Likewise.
16553 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
16554 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
16555 Use BUILTIN_VDQHS macro.
16556 (sqrdmulh_laneq): Likewise.
16557 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
16558 (vqdmlals_laneq_s32): Likewise.
16559 (vqdmlslh_laneq_s16): Likewise.
16560 (vqdmlsls_laneq_s32): Likewise.
16561 (vqdmulhh_laneq_s16): Likewise.
16562 (vqdmulhs_laneq_s32): Likewise.
16563 (vqrdmulhh_laneq_s16): Likewise.
16564 (vqrdmulhs_laneq_s32): Likewise.
16566 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16568 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
16569 (vmuld_laneq_f64): Likewise.
16570 (vmuls_laneq_f32): Likewise.
16571 (vmul_n_f64): Likewise.
16572 (vmuld_lane_f64): Reimplement in C.
16573 (vmuls_lane_f32): Likewise.
16575 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16577 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
16579 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
16581 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16583 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
16584 (rbitsi2): Likewise.
16585 (*arm_rev): Set predicable and predicable_short_it attributes.
16587 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16589 * convert.c (convert_to_integer): Guard transformation to lrint by
16592 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
16594 * config/aarch64/aarch64-builtins.c
16595 (aarch64_simd_builtin_type_mode): Delete.
16596 (v8qi_UP): Remap to V8QImode.
16597 (v4hi_UP): Remap to V4HImode.
16598 (v2si_UP): Remap to V2SImode.
16599 (v2sf_UP): Remap to V2SFmode.
16600 (v1df_UP): Remap to V1DFmode.
16601 (di_UP): Remap to DImode.
16602 (df_UP): Remap to DFmode.
16603 (v16qi_UP):V16QImode.
16604 (v8hi_UP): Remap to V8HImode.
16605 (v4si_UP): Remap to V4SImode.
16606 (v4sf_UP): Remap to V4SFmode.
16607 (v2di_UP): Remap to V2DImode.
16608 (v2df_UP): Remap to V2DFmode.
16609 (ti_UP): Remap to TImode.
16610 (ei_UP): Remap to EImode.
16611 (oi_UP): Remap to OImode.
16612 (ci_UP): Map to CImode.
16613 (xi_UP): Remap to XImode.
16614 (si_UP): Remap to SImode.
16615 (sf_UP): Remap to SFmode.
16616 (hi_UP): Remap to HImode.
16617 (qi_UP): Remap to QImode.
16618 (aarch64_simd_builtin_datum): Make mode a machine_mode.
16619 (VAR1): Build builtin name.
16620 (aarch64_init_simd_builtins): Remove dead code.
16622 2014-08-05 Roman Gareev <gareevroman@gmail.com>
16624 * graphite-isl-ast-to-gimple.c:
16625 (set_options): New function.
16626 (scop_to_isl_ast): Add calling of set_options.
16628 2014-08-05 Jakub Jelinek <jakub@redhat.com>
16630 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
16631 (analyze_iv_to_split_insn): Don't initialize them.
16632 (get_ivts_expr): Removed.
16633 (allocate_basic_variable, insert_base_initialization): Use
16634 SET_SRC instead of *get_ivts_expr.
16635 (split_iv): Use &SET_SRC instead of get_ivts_expr.
16637 2014-08-05 Roman Gareev <gareevroman@gmail.com>
16639 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
16640 (translate_isl_ast_for_loop): Add checking of the
16641 flag_loop_parallelize_all.
16642 (ast_build_before_for): New function.
16643 (scop_to_isl_ast): Add checking of the
16644 flag_loop_parallelize_all.
16645 * graphite-dependences.c: Move the defenition of the
16646 scop_get_dependences from graphite-optimize-isl.c to this file.
16647 (apply_schedule_on_deps): Add checking of the ux's emptiness.
16648 (carries_deps): Add checking of the x's value.
16649 * graphite-optimize-isl.c: Move the defenition of the
16650 scop_get_dependences to graphite-dependences.c.
16651 * graphite-poly.h: Add declarations of scop_get_dependences
16654 2014-08-04 Rohit <rohitarulraj@freescale.com>
16657 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
16659 (alt_reg_names): Likewise.
16660 (rs6000_dwarf_register_span): For SPE high registers, replace
16661 dwarf register numbers with GCC hard register numbers.
16662 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
16663 (rs6000_dbx_register_number): For SPE high registers, return dwarf
16664 register number for the corresponding GCC hard register number.
16665 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
16666 newly added GCC hard register numbers for SPE high registers.
16667 (DWARF_FRAME_REGISTERS): Likewise.
16668 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
16669 (DWARF_FRAME_REGNUM): Likewise.
16670 (FIXED_REGISTERS): Likewise.
16671 (CALL_USED_REGISTERS): Likewise.
16672 (CALL_REALLY_USED_REGISTERS): Likewise.
16673 (REG_ALLOC_ORDER): Likewise.
16674 (enum reg_class): Likewise.
16675 (REG_CLASS_NAMES): Likewise.
16676 (REG_CLASS_CONTENTS): Likewise.
16677 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
16679 2014-08-04 Richard Biener <rguenther@suse.de>
16681 * gimple-fold.h (gimple_fold_builtin): Remove.
16682 * gimple-fold.c (gimple_fold_builtin): Make static.
16683 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
16684 fold_stmt, not gimple_fold_builtin.
16686 2014-08-04 Martin Liska <mliska@suse.cz>
16688 * cgraph.h (csi_end_p): Removed.
16689 (csi_next): Likewise.
16690 (csi_node): Likewise.
16691 (csi_start): Likewise.
16692 (cgraph_node_in_set_p): Likewise.
16693 (cgraph_node_set_size): Likewise.
16694 (vsi_end_p): Likewise.
16695 (vsi_next): Likewise.
16696 (vsi_node): Likewise.
16697 (vsi_start): Likewise.
16698 (varpool_node_set_size): Likewise.
16699 (cgraph_node_set_nonempty_p): Likewise.
16700 (varpool_node_set_nonempty_p): Likewise.
16701 * cgraphunit.c (cgraph_process_new_functions): vec replaces
16703 * ipa-inline-transform.c: Likewise.
16704 * ipa-utils.c (cgraph_node_set_new): Removed.
16705 (cgraph_node_set_add): Likewise.
16706 (cgraph_node_set_remove): Likewise.
16707 (cgraph_node_set_find): Likewise.
16708 (dump_cgraph_node_set): Likewise.
16709 (debug_cgraph_node_set): Likewise.
16710 (free_cgraph_node_set): Likewise.
16711 (varpool_node_set_new): Likewise.
16712 (varpool_node_set_add): Likewise.
16713 (varpool_node_set_remove): Likewise.
16714 (varpool_node_set_find): Likewise.
16715 (dump_varpool_node_set): Likewise.
16716 (free_varpool_node_set): Likewise.
16717 (debug_varpool_node_set): Likewise.
16718 * tree-emutls.c (struct tls_var_data):
16719 (emutls_index): Removed.
16720 (emutls_decl): Likewise.
16721 (gen_emutls_addr): Function implementation uses newly added
16722 hash_map<varpool_node *, tls_var_data>.
16723 (clear_access_vars): Likewise.
16724 (create_emultls_var): Likewise.
16725 (ipa_lower_emutls): Likewise.
16726 (reset_access): New function.
16728 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16730 * config/i386/i386.c (ix86_option_override_internal): Add
16731 PTA_RDRND and PTA_MOVBE for bdver4.
16733 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16734 James Greenhalgh <james.greenhalgh@arm.com>
16736 * doc/md.texi (clrsb): Document.
16737 (clz): Change reference to x into operand 1.
16739 (popcount): Likewise.
16741 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16744 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
16745 move to subtarget in serial version if result is ignored.
16747 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16748 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16750 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
16751 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
16752 (sched_analyze_insn): Update use of try_group_insn to
16753 sched_macro_fuse_insns.
16754 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
16755 arguments that are not conditional jumps.
16757 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16759 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
16760 family information. Handle BTVER2 cpu with cpuid family value.
16762 2014-08-04 Tom de Vries <tom@codesourcery.com>
16764 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16765 (glibc_2_11_or_earlier): Document effective-target keywords.
16767 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
16769 * ipa-devirt.c (odr_type_warn_count): Add type.
16770 (possible_polymorphic_call_targets): Set it.
16771 (ipa_devirt): Use it.
16773 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
16775 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
16777 * ipa-devirt.c: Include hash-map.h
16778 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
16779 (clear_speculation): Break out of ...
16780 (get_class_context): ... here; speed up handling obviously useless
16782 (odr_type_warn_count, decl_warn_count): New structures.
16783 (final_warning_record): New structure.
16784 (final_warning_records): New static variable.
16785 (possible_polymorphic_call_targets): Cleanup handling of
16786 speculative info; do not build speculation when user do not care;
16787 record info about warnings when asked for.
16788 (add_decl_warning): New function.
16789 (type_warning_cmp): New function.
16790 (decl_warning_cmp): New function.
16791 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
16792 (gate): Enable pass when warnings are requested.
16793 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
16796 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
16798 * hash-map.h (default_hashmap_traits::mark_key_deleted):
16800 (hash_map::remove): New method.
16801 (hash_map::traverse): New method.
16802 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
16803 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
16804 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
16805 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
16806 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
16807 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
16810 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
16812 * hash-set.h: new File.
16813 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
16814 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
16815 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
16816 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
16817 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
16818 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
16819 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
16820 varpool.c: Use hash_set instead of pointer_set.
16822 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
16824 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
16826 2014-08-01 Jiong Wang <jiong.wang@arm.com>
16828 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
16829 for frame access when strict_p is false.
16831 2014-08-01 Renlin Li <renlin.li@arm.com>
16832 2014-08-01 Jiong Wang <jiong.wang@arm.com>
16834 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
16835 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
16836 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
16838 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
16840 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
16841 aarch64_mem_pair_offset.
16843 2014-08-01 Jiong Wang <jiong.wang@arm.com>
16845 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
16847 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
16848 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
16850 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
16852 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
16854 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
16856 PR regression/61510
16857 * cgraphunit.c (analyze_functions): Use get_create rather than get
16858 for decls which are clones of abstract functions.
16860 2014-08-01 Martin Liska <mliska@suse.cz>
16862 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
16863 * ipa-prop.h (count_formal_params): Global function created from static.
16864 * ipa-prop.c (count_formal_params): Likewise.
16865 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
16866 profiles for semantically equivalent functions.
16867 * passes.c (do_per_function): If we load body of a function
16868 during WPA, this condition should behave same.
16869 * varpool.c (ctor_for_folding): More tolerant assert for variable
16870 aliases created during WPA.
16872 2014-08-01 Martin Liska <mliska@suse.cz>
16874 * doc/invoke.texi (Options That Control Optimization): Documentation
16875 for -foptimize-strlen introduced. Optimization levels default options
16878 2014-08-01 Jakub Jelinek <jakub@redhat.com>
16880 * opts.c (common_handle_option): Handle -fsanitize=alignment.
16881 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
16882 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
16884 * stor-layout.h (min_align_of_type): New prototype.
16885 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
16886 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
16888 * ubsan.c: Include builtins.h.
16889 (ubsan_expand_bounds_ifn): Change return type to bool,
16890 always return true.
16891 (ubsan_expand_null_ifn): Change return type to bool, change
16892 argument to gimple_stmt_iterator *. Handle both null and alignment
16893 sanitization, take type from ckind argument's type rather than
16895 (instrument_member_call): Removed.
16896 (instrument_mem_ref): Remove t argument, add mem and base arguments.
16897 Handle both null and alignment sanitization, don't say whole
16898 struct access is member access. Build 3 argument IFN_UBSAN_NULL
16899 call instead of 2 argument.
16900 (instrument_null): Adjust instrument_mem_ref caller. Don't
16901 instrument calls here.
16902 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
16903 like SANITIZE_NULL.
16904 * stor-layout.c (min_align_of_type): New function.
16905 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
16906 Or it into SANITIZE_UNDEFINED.
16907 * doc/invoke.texi (-fsanitize=alignment): Document.
16909 2014-07-31 Andi Kleen <ak@linux.intel.com>
16911 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
16913 2014-07-31 Andi Kleen <ak@linux.intel.com>
16915 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
16917 (vn_reference_compute_hash): Dito.
16918 (vn_nary_op_compute_hash): Dito.
16919 (vn_phi_compute_hash): Dito.
16920 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
16922 2014-07-31 Andi Kleen <ak@linux.intel.com>
16924 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
16925 Rename to inchash:add_expr_commutative. Convert to inchash.
16926 (iterative_hash_hashable_expr): Rename to
16927 inchash:add_hashable_expr. Convert to inchash.
16928 (avail_expr_hash): Dito.
16930 2014-07-31 Andi Kleen <ak@linux.intel.com>
16932 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
16933 Convert to inchash.
16935 2014-07-31 Andi Kleen <ak@linux.intel.com>
16937 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
16939 2014-07-31 Andi Kleen <ak@linux.intel.com>
16941 * Makefile.in (OBJS): Add rtlhash.o
16942 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
16943 (loc_checksum): Dito.
16944 (loc_checksum_ordered): Dito.
16945 (hash_loc_operands): Dito.
16947 (hash_loc_list): Dito.
16948 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
16949 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
16950 * rtlhash.c: New file.
16951 * rtlhash.h: New file.
16953 2014-07-31 Andi Kleen <ak@linux.intel.com>
16955 * inchash.h (inchash): Change inchash class to namespace.
16956 (class hash): ... Rename from inchash.
16957 (add_object): Move from macro to class template.
16958 * lto-streamer-out.c (hash_tree): Change inchash
16960 * tree.c (build_type_attribute_qual_variant): Dito.
16961 (type_hash_list): Dito.
16962 (attribute_hash_list): Dito.
16963 (iterative_hstate_expr): Rename to inchash::add_expr
16964 (build_range_type_1): Change inchash to inchash::hash
16965 and use hash::add_expr.
16966 (build_array_type_1): Dito.
16967 (build_function_type): Dito
16968 (build_method_type_directly): Dito.
16969 (build_offset_type): Dito.
16970 (build_complex_type): Dito.
16971 (make_vector_type): Dito.
16972 * tree.h (iterative_hash_expr): Dito.
16974 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
16976 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
16978 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
16980 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
16981 correct alphabetical position.
16982 (vpaddd_f64): Rewrite using builtins.
16983 (vpaddd_s64): Move to correct alphabetical position.
16986 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
16989 * config/sh/sh.c (sh_legitimate_address_p,
16990 sh_legitimize_reload_address): Handle reg+reg address modes when
16991 ALLOW_INDEXED_ADDRESS is false.
16992 * config/sh/predicates.md (general_movsrc_operand,
16993 general_movdst_operand): Likewise.
16995 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
16997 * config/aarch64/aarch64-builtins.c
16998 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17001 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17003 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17004 the generated mask based on BYTES_BIG_ENDIAN.
17005 (aarch64_simd_check_vect_par_cnst_half): New.
17006 * config/aarch64/aarch64-protos.h
17007 (aarch64_simd_check_vect_par_cnst_half): New.
17008 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17009 the check out to aarch64_simd_check_vect_par_cnst_half.
17010 (vect_par_cnst_lo_half): Likewise.
17011 * config/aarch64/aarch64-simd.md
17012 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17013 (move_hi_quad_<mode>): Always generate a low mask.
17015 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17017 * doc/invoke.texi (AVR Options): Add documentation about
17018 __AVR_DEVICE_NAME__ built-in macro.
17020 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
17023 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17024 constraints are satisfied.
17025 (<shift>di3_neon): Likewise.
17027 2014-07-31 Richard Biener <rguenther@suse.de>
17029 PR tree-optimization/61964
17030 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17031 by structural equality.
17033 2014-07-31 Yury Gribov <y.gribov@samsung.com>
17035 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17036 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17037 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17039 * gcc.c (sanitize_spec_function): Support new option.
17040 (SANITIZER_SPEC): Remove now redundant check.
17041 * opts.c (common_handle_option): Support new option.
17042 (finish_options): Check for incompatibilities.
17043 * toplev.c (process_options): Split userspace-specific checks.
17045 2014-07-31 Richard Biener <rguenther@suse.de>
17047 * lto-streamer.h (struct output_block): Remove global.
17048 (struct data_in): Remove labels, num_named_labels and
17049 num_unnamed_labels.
17050 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17051 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17053 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
17056 * common.opt (-Wreturn-local-addr): Moved from c.opt.
17057 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17058 (isolate_path): New argument to avoid inserting a trap.
17059 (find_implicit_erroneous_behaviour): Handle returning the address
17060 of a local variable.
17061 (find_explicit_erroneous_behaviour): Likewise.
17063 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
17066 * toplev.c (init_random_seed): Move piece of code never called to
17068 (set_random_seed): see above.
17070 2014-07-31 Tom de Vries <tom@codesourcery.com>
17072 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17074 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
17076 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17077 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17079 2014-07-31 Richard Biener <rguenther@suse.de>
17081 * data-streamer.h (streamer_write_data_stream): Declare here,
17083 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
17084 * lto-cgraph.c (lto_output_node): Adjust.
17085 (lto_output_varpool_node): Likewise.
17086 * data-streamer-out.c (streamer_string_index): Likewise.
17087 (streamer_write_data_stream, lto_append_block): Move from ...
17088 * lto-section-out.c (lto_output_data_stream,
17089 lto_append_block): ... here.
17091 2014-07-30 Mike Stump <mikestump@comcast.net>
17093 * configure.ac: Also check for popen.
17094 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17095 * configure: Regenerate.
17096 * config.in: Regenerate.
17098 2014-07-30 Martin Jambor <mjambor@suse.cz>
17100 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17101 parameter to gimple.
17103 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17105 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17106 address as second parameter to __tpf_eh_return routine.
17108 2014-07-30 Jiong Wang <jiong.wang@arm.com>
17110 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17113 2014-07-30 Tom Tromey <tromey@redhat.com>
17116 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17117 * doc/extend.texi (Type Attributes): Document designated_init
17120 2014-07-30 Roman Gareev <gareevroman@gmail.com>
17122 * graphite-isl-ast-to-gimple.c:
17123 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17124 (gcc_expression_from_isl_expression): Pass type to
17125 gcc_expression_from_isl_ast_expr_id.
17127 2014-07-30 Richard Biener <rguenther@suse.de>
17129 * lto-streamer.h (lto_write_data): New function.
17130 * langhooks.c (lhd_append_data): Do not free block.
17131 * lto-section-out.c (lto_write_data): New function writing
17132 raw data to the current section.
17133 (lto_write_stream): Adjust for langhook semantic change.
17134 (lto_destroy_simple_output_block): Write header directly.
17135 * lto-opts.c (lto_write_options): Write options directly.
17136 * lto-streamer-out.c (produce_asm): Write heaeder directly.
17137 (lto_output_toplevel_asms): Likewise.
17138 (copy_function_or_variable): Copy data directly.
17139 (write_global_references): Output index table directly.
17140 (lto_output_decl_state_refs): Likewise.
17141 (write_symbol): Write data directly.
17142 (produce_symtab): Adjust.
17143 (produce_asm_for_decls): Output header and refs directly.
17145 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17147 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17148 to speculative_targets
17149 (get_class_context): Fix handling of contextes without outer type;
17150 avoid matching non-polymorphic types in LTO.
17151 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17152 parameter to speculative_targetsp; handle speculation.
17153 (dump_possible_polymorphic_call_targets): Update dumping.
17155 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17157 * common.opt (Wodr): Enable by default.
17159 2014-07-29 Olivier Hainque <hainque@adacore.com>
17161 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17163 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
17166 * gengtype.c (strtoken): New function.
17167 (create_user_defined_type): Replace strtok with strtoken.
17169 2014-07-29 Nathan Sidwell <nathan@acm.org>
17171 * gcov-io.c (gcov_var): Make hidden.
17172 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17173 (gcov_do_dump): Declare.
17174 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17176 2014-07-29 Martin Jambor <mjambor@suse.cz>
17178 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17179 parameter to gimple.
17180 (sra_modify_assign): Likewise.
17182 2014-07-29 Richard Biener <rguenther@suse.de>
17184 PR middle-end/52478
17185 * expr.c (expand_expr_real_2): Revert last change.
17187 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17189 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17190 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17191 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17193 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17194 (contains_type_p): Forward declare.
17195 (polymorphic_call_target_hasher::hash): Hash speculative info.
17196 (polymorphic_call_target_hasher::equal): Compare speculative info.
17197 (get_class_context): Handle speuclation.
17198 (contains_type_p): Update.
17199 (get_polymorphic_call_info_for_decl): Update.
17200 (walk_ssa_copies): Break out from ...
17201 (get_polymorphic_call_info): ... here; set speculative context
17203 * ipa-prop.c (ipa_write_indirect_edge_info,
17204 ipa_read_indirect_edge_info): Stream speculative context.
17205 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17206 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17207 SPECULATIVE_MAYBE_DERIVED_TYPE).
17208 (possible_polymorphic_call_targets overriders): Update.
17209 (dump_possible_polymorphic_call_targets overriders): Update.
17210 (dump_possible_polymorphic_call_target_p overriders): Update.
17212 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17214 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17215 ipa-devirt path; fix thinko there.
17217 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
17219 * config/i386/i386.c (ix86_return_in_memory): Replace one
17220 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17222 2014-07-28 Marek Polacek <polacek@redhat.com>
17224 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
17226 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
17228 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17229 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17230 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17231 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17232 (USE_LD_AS_NEEDED): Likewise.
17233 (ASM_APP_ON): Likewise.
17234 (ASM_APP_OFF): Likewise.
17235 (TARGET_POSIX_IO): Likewise.
17236 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17237 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17238 (USE_LD_AS_NEEDED): Likewise.
17239 (ASM_APP_ON): Likewise.
17240 (ASM_APP_OFF): Likewise.
17241 (TARGET_POSIX_IO): Likewise.
17243 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
17245 PR middle-end/61734
17246 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17247 operators other than the equality operators.
17249 2014-07-28 Richard Biener <rguenther@suse.de>
17251 PR middle-end/52478
17252 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17253 sure to register SImode ones, not only >= word_mode ones.
17254 * expr.c (expand_expr_real_2): When expanding -ftrapv
17255 binops do not use OPTAB_LIB_WIDEN.
17257 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
17259 PR middle-end/61919
17260 * tree-outof-ssa.c (insert_partition_copy_on_edge)
17261 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17262 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17263 inserting them in the insn stream.
17265 2014-07-28 Marek Polacek <polacek@redhat.com>
17267 PR middle-end/61913
17268 * common.opt (Wodr): Add Var.
17270 2014-07-28 Richard Biener <rguenther@suse.de>
17272 PR tree-optimization/61921
17273 * tree-ssa-structalias.c (create_variable_info_for_1): Check
17274 if there is a varpool node before dereferencing it.
17276 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17278 * graphite-sese-to-poly.c:
17279 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17280 id of the pbb), which contains pointer to the pbb1.
17282 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17284 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17286 * graphite-isl-ast-to-gimple.c:
17287 (graphite_create_new_guard): New function.
17288 (translate_isl_ast_node_if): New function.
17289 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17291 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17293 2014-07-27 Anthony Green <green@moxielogic.com>
17295 * config.gcc: Add moxie-*-moxiebox* configuration.
17296 * config/moxie/moxiebox.h: New file.
17298 2014-07-26 Andrew Pinski <apinski@cavium.com>
17300 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17301 from the read only register.
17303 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17305 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17306 as the allocation class if it isn't likely to be spilled.
17308 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17310 * rtl.h (tls_referenced_p): Declare.
17311 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17312 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17313 (mips_cannot_force_const_mem): Use tls_referenced_p.
17314 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17315 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17316 instead of pa_tls_referenced_p.
17317 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17318 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17319 (pa_legitimate_constant_p): Likewise.
17320 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17321 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17322 (rs6000_cannot_force_const_mem, rs6000_emit_move)
17323 (rs6000_address_for_altivec): Use tls_referenced_p instead of
17324 rs6000_tls_referenced_p.
17325 (rs6000_tls_symbol_ref_1): Delete.
17327 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
17330 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17331 Optimize inverse of a VEC_CONCAT.
17333 2014-07-25 Xinliang David Li <davidxl@google.com>
17335 * params.def: New parameter.
17336 * coverage.c (get_coverage_counts): Check new flag.
17337 (coverage_compute_profile_id): Check new flag.
17338 (coverage_begin_function): Check new flag.
17339 (coverage_end_function): Check new flag.
17340 * value-prof.c (coverage_node_map_initialized_p): New function.
17341 (init_node_map): Populate map with all functions.
17342 * doc/invoke.texi: Document new parameter.
17344 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
17345 Richard Biener <rguenther@suse.de>
17347 * lto-streamer-out.c (struct sccs): Turn to ...
17348 (class DFS): ... this one; refactor the DFS walk so it can
17349 be re-done on per-SCC basis.
17350 (DFS::DFS): New constructor.
17351 (DFS::~DFS): New destructor.
17352 (hash_tree): Add new MAP argument holding in-SCC hash values;
17353 remove POINTER_TYPE hashing hack.
17354 (scc_entry_compare): Rename to ...
17355 (DFS::scc_entry_compare): ... this one.
17356 (hash_scc): Rename to ...
17357 (DFS::hash_scc): ... this one; pass output_block instead
17358 of streamer_cache; work harder to get unique and stable SCC
17360 (DFS_write_tree): Rename to ...
17361 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17362 (lto_output_tree): Update.
17364 2014-07-25 Andi Kleen <ak@linux.intel.com>
17366 * lto-streamer-out.c (hash_tree): Convert to inchash.
17368 2014-07-25 Andi Kleen <ak@linux.intel.com>
17370 * tree.c (build_type_attribute_qual_variant): Use inchash.
17371 (type_hash_list): Dito.
17372 (attribute_hash_list): Dito
17373 (iterative_hstate_expr): Dito.
17374 (iterative_hash_expr): Dito.
17375 (build_range_type_1): Dito.
17376 (build_array_type_1): Dito.
17377 (build_function_type): Dito.
17378 (build_method_type_directly): Dito.
17379 (build_offset_type): Dito.
17380 (build_complex_type): Dito.
17381 (make_vector_type): Dito.
17382 * tree.h (iterative_hash_expr): Add compat wrapper.
17383 (iterative_hstate_expr): Add.
17385 2014-07-25 Andi Kleen <ak@linux.intel.com>
17387 * Makefile.in (OBJS): Add inchash.o.
17388 (PLUGIN_HEADERS): Add inchash.h.
17389 * ipa-devirt.c: Include inchash.h.
17390 * lto-streamer-out.c: Dito.
17391 * tree-ssa-dom.c: Dito.
17392 * tree-ssa-pre.c: Dito.
17393 * tree-ssa-sccvn.c: Dito.
17394 * tree-ssa-tail-merge.c: Dito.
17396 * tree.c (iterative_hash_hashval_t): Move to ...
17397 (iterative_hash_host_wide_int): Move to ...
17398 * inchash.c: Here. New file.
17399 * tree.h (iterative_hash_hashval_t): Move to ...
17400 (iterative_hash_host_wide_int): Move to ...
17401 * inchash.h: Here. New file.
17403 2014-07-25 Richard Biener <rguenther@suse.de>
17405 PR middle-end/61762
17406 PR middle-end/61894
17407 * fold-const.c (native_encode_int): Add and handle offset
17408 parameter to do partial encodings of expr.
17409 (native_encode_fixed): Likewise.
17410 (native_encode_real): Likewise.
17411 (native_encode_complex): Likewise.
17412 (native_encode_vector): Likewise.
17413 (native_encode_string): Likewise.
17414 (native_encode_expr): Likewise.
17415 * fold-const.c (native_encode_expr): Add offset parameter
17417 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
17418 (fold_ctor_reference): Handle all reads from tcc_constant
17421 2014-07-25 Richard Biener <rguenther@suse.de>
17423 * tree-inline.c (estimate_move_cost): Mark speed_p argument
17424 as possibly unused.
17426 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17428 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
17430 2014-07-24 Kyle McMartin <kyle@redhat.com>
17432 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
17434 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17436 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
17438 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
17440 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
17441 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17442 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
17444 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17446 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
17447 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
17448 aggregate types. Instead, *all* aggregate types, except for single-
17449 element or homogeneous float/vector aggregates, are quadword-aligned
17450 if required by their type alignment. Issue -Wpsabi note when a type
17451 is now treated differently than before.
17453 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17455 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
17456 does not fit fully into floating-point registers, and there is still
17457 space in the register parameter area, use GPRs to pass those parts
17458 of the argument. Issue -Wpsabi note if any parameter is now treated
17459 differently than before.
17460 (rs6000_arg_partial_bytes): Update.
17462 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
17464 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
17466 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
17468 * rtl.h (target_rtl): Remove lang_dependent_initialized.
17469 * toplev.c (initialize_rtl): Don't use it. Move previously
17470 "language-dependent" calls to...
17471 (backend_init): ...here.
17472 (lang_dependent_init_target): Don't set lang_dependent_initialized.
17473 Assert that RTL initialization hasn't happend yet.
17475 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
17477 PR rtl-optimization/61629
17478 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
17479 they have already been initialized.
17481 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
17483 PR middle-end/61268
17484 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
17485 DECL_INCOMING_RTL and entry_parm.
17486 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
17487 * calls.c (load_register_parameters): Likewise argument values.
17488 (emit_library_call_value_1, store_one_arg): Likewise argument
17490 * config/i386/i386.c (assign_386_stack_local): Likewise the local
17492 * explow.c (validize_mem): Modify the argument in-place.
17494 2014-07-24 Jiong Wang <jiong.wang@arm.com>
17496 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
17497 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
17499 2014-07-24 Jiong Wang <jiong.wang@arm.com>
17501 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
17502 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
17504 2014-07-24 Jiong Wang <jiong.wang@arm.com>
17506 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
17507 (aarch64_save_callee_saves): New parameter "skip_wb".
17508 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
17510 2014-07-24 Jiong Wang <jiong.wang@arm.com>
17512 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
17514 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
17516 2014-07-24 Roman Gareev <gareevroman@gmail.com>
17518 * graphite-isl-ast-to-gimple.c:
17519 (graphite_create_new_loop): Add calling of isl_id_free to properly
17520 decrement reference counts.
17522 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
17524 2014-07-24 Martin Liska <mliska@suse.cz>
17525 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
17527 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
17528 (rs6000_code_end): Likewise.
17530 2014-07-24 Martin Liska <mliska@suse.cz>
17532 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
17533 symtab_node funtion used.
17534 (rs6000_xcoff_declare_object_name): Likewise.
17536 2014-07-24 Martin Liska <mliska@suse.cz>
17538 * cgraphunit.c (compile): Correct function used.
17540 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
17542 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
17545 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
17548 * varasm.c (bss_initializer_p): Handle offlined ctors.
17549 (align_variable, get_variable_align): Likewise.
17550 (make_decl_one_only): Likewise.
17551 (default_binds_local_p_1): Likewise.
17552 (decl_binds_to_current_def_p): Likewise.
17553 (get_variable_section): Get constructor if it is offlined.
17554 (assemble_variable_contents): Sanity check that the caller
17555 streamed in the ctor in LTO.
17557 2014-07-24 Roman Gareev <gareevroman@gmail.com>
17559 * graphite-isl-ast-to-gimple.c:
17560 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
17561 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
17562 isl_ast_op_pdiv_r to the different case.
17564 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
17566 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17568 PR middle-end/61876
17569 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
17570 when flag_errno_math is on.
17572 2014-07-24 Martin Liska <mliska@suse.cz>
17574 * cgraph.h (varpool_node):
17575 (availability get_availability (void)):
17576 created from cgraph_variable_initializer_availability
17577 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
17578 created from: cgraph_variable_initializer_availability
17579 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
17580 (void finalize_named_section_flags (void)):
17581 created from varpool_finalize_named_section_flags
17582 (bool assemble_decl (void)): created from varpool_assemble_decl
17583 (void analyze (void)): created from varpool_analyze_node
17584 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
17585 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
17586 (void remove_initializer (void)): created from varpool_remove_initializer
17587 (tree get_constructor (void)): created from varpool_get_constructor
17588 (bool externally_visible_p (void)): created from varpool_externally_visible_p
17589 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
17590 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
17591 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
17592 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
17593 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
17594 (static bool output_variables (void)): created from varpool_output_variables
17595 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
17596 created from varpool_extra_name_alias
17597 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
17598 (static void dump_varpool (FILE *f)): created from dump_varpool
17599 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
17600 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
17601 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
17602 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
17603 (void assemble_aliases (void)): created from assemble_aliases
17605 2014-07-24 Martin Liska <mliska@suse.cz>
17607 * cgraph.h (symtab_node):
17608 (void register_symbol (void)): created from symtab_register_node
17609 (void remove (void)): created from symtab_remove_node
17610 (void dump (FILE *f)): created from dump_symtab_node
17611 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
17612 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
17613 (struct ipa_ref *add_reference (symtab_node *referred_node,
17614 enum ipa_ref_use use_type)): created from add_reference
17615 (struct ipa_ref *add_reference (symtab_node *referred_node,
17616 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
17617 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
17618 gimple stmt)): created from maybe_add_reference
17619 (bool semantically_equivalent_p (symtab_node *target)): created from
17620 symtab_semantically_equivalent_p
17621 (void remove_from_same_comdat_group (void)): created from
17622 remove_from_same_comdat_group
17623 (void add_to_same_comdat_group (symtab_node *old_node)): created from
17624 symtab_add_to_same_comdat_group
17625 (void dissolve_same_comdat_group_list (void)): created from
17626 symtab_dissolve_same_comdat_group_list
17627 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
17628 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
17629 created from symtab_alias_ultimate_target
17630 (inline symtab_node *next_defined_symbol (void)): created from
17631 symtab_next_defined_symbol
17632 (bool resolve_alias (symtab_node *target)): created from
17633 symtab_resolve_alias
17634 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
17635 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
17636 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
17637 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
17638 (void set_section (const char *section)): created from set_section_1
17639 (enum availability get_availability (void)): created from symtab_node_availability
17640 (void make_decl_local (void)): created from symtab_make_decl_local
17641 (bool real_symbol_p (void)): created from symtab_read_node
17642 (can_be_discarded_p (void)): created from symtab_can_be_discarded
17643 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
17644 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
17645 symtab_in_same_comdat_p;
17646 (bool address_taken_from_non_vtable_p (void)): created from
17647 address_taken_from_non_vtable_p
17648 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
17649 (static void dump_table (FILE *)): created from dump_symtab
17650 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
17651 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
17652 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
17653 symtab_used_from_object_file_p
17654 (void dump_base (FILE *)): created from dump_symtab_base
17655 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
17656 (void unregister (void)): created from symtab_unregister_node
17657 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
17658 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
17659 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
17660 symtab_nonoverwritable_alias_1
17661 * cgraph.h (cgraph_node):
17662 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
17663 created from cgraph_remove_node_and_inline_clones
17664 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
17665 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
17666 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
17667 (cgraph_node *function_symbol (enum availability *avail = NULL)):
17668 created from cgraph_function_node
17669 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
17670 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
17671 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
17672 created from cgraph_create_clone
17673 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
17674 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
17675 created from cgraph_create_virtual_clone
17676 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
17677 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
17678 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
17679 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
17680 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
17681 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
17682 created from cgraph_function_version_info
17683 (struct cgraph_function_version_info *insert_new_function_version (void)):
17684 created from insert_new_cgraph_node_version
17685 (struct cgraph_function_version_info *function_version (void)): created from
17686 get_cgraph_node_version
17687 (void analyze (void)): created from analyze_function
17688 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
17689 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
17690 tree real_alias) cgraph_add_thunk
17691 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
17692 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
17693 created from cgraph_function_or_thunk_node
17694 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
17695 created from expand_thunk
17696 (void reset (void)): created from cgraph_reset_node
17697 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
17698 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
17699 (void remove (void)): created from cgraph_remove_node
17700 (void dump (FILE *f)): created from dump_cgraph_node
17701 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
17702 (bool get_body (void)): created from cgraph_get_body
17703 (void release_body (void)): created from cgraph_release_function_body
17704 (void unnest (void)): created from cgraph_unnest_node
17705 (void make_local (void)): created from cgraph_make_node_local
17706 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
17707 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
17708 gcov_type count, int freq)): created from cgraph_create_edge
17709 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
17710 gcov_type count, int freq)): created from cgraph_create_indirect_edge
17711 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
17712 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
17713 created from cgraph_create_edge_including_clones
17714 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
17715 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
17716 (void remove_callers (void)): created from cgraph_node_remove_callers
17717 (void remove_callees (void)): created from cgraph_node_remove_callees
17718 (enum availability get_availability (void)): created from cgraph_function_body_availability
17719 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
17720 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
17721 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
17722 (void call_duplication_hooks (cgraph_node *node2)): created from
17723 cgraph_call_node_duplication_hooks
17724 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
17725 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
17726 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
17727 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
17728 (void call_function_insertion_hooks (void)):
17729 created from cgraph_call_function_insertion_hooks
17730 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
17731 (bool local_p (void)): created from cgraph_local_node
17732 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
17733 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
17734 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
17735 (inline bool only_called_directly_or_aliased_p (void)):
17736 created from cgraph_only_called_directly_or_aliased_p
17737 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
17738 created from cgraph_will_be_removed_from_program_if_no_direct_calls
17739 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
17740 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
17741 (bool can_remove_if_no_direct_calls_p (void)):
17742 created from cgraph_can_remove_if_no_direct_calls_p
17743 (inline bool has_gimple_body_p (void)):
17744 created from cgraph_function_with_gimple_body_p
17745 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
17746 (static void dump_cgraph (FILE *f)): created from dump_cgraph
17747 (static inline void debug_cgraph (void)): created from debug_cgraph
17748 (static void record_function_versions (tree decl1, tree decl2)):
17749 created from record_function_versions
17750 (static void delete_function_version (tree decl)):
17751 created from delete_function_version
17752 (static void add_new_function (tree fndecl, bool lowered)):
17753 created from cgraph_add_new_function
17754 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
17755 (static cgraph_node * create (tree decl)): created from cgraph_create_node
17756 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
17757 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
17758 (static cgraph_node *get_for_asmname (tree asmname)):
17759 created from cgraph_node_for_asm
17760 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
17761 created from cgraph_same_body_alias
17762 (static bool used_from_object_file_p_worker (cgraph_node *node,
17763 void *): new function
17764 (static bool non_local_p (cgraph_node *node, void *)):
17765 created from cgraph_non_local_node_p_1
17766 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
17767 created from verify_cgraph
17768 (static bool make_local (cgraph_node *node, void *)):
17769 created from cgraph_make_node_local
17770 (static cgraph_node *create_alias (tree alias, tree target)):
17771 created from cgraph_create_function_alias
17772 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
17773 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
17774 created from cgraph_create_edge_1
17775 * cgraph.h (varpool_node):
17776 (void remove (void)): created from varpool_remove_node
17777 (void dump (FILE *f)): created from dump_varpool_node
17779 2014-07-24 Richard Biener <rguenther@suse.de>
17782 * tree-ssa-structalias.c (create_variable_info_for_1):
17783 Use varpool_get_constructor.
17784 (create_variable_info_for): Likewise.
17786 2014-07-24 Jiong Wang <jiong.wang@arm.com>
17788 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
17789 subtract outgoing area size when restoring stack_pointer_rtx.
17791 2014-07-24 Nick Clifton <nickc@redhat.com>
17793 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
17794 that operations are taking place in parallel.
17795 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
17797 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
17799 * omp-low.c (extract_omp_for_data): Add missing break statement.
17801 2014-07-24 Richard Biener <rguenther@suse.de>
17803 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
17804 * tree-inline.c (estimate_move_cost): Add speed_p parameter
17805 and adjust MOVE_RATIO query accordingly.
17806 (estimate_num_insns): Adjust callers.
17807 * ipa-prop.c (ipa_populate_param_decls): Likewise.
17808 * ipa-cp.c (gather_context_independent_values,
17809 estimate_local_effects): Likewise.
17810 * ipa-split.c (consider_split): Likewise.
17812 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
17814 * config/i386/driver-i386.c: Remove names of unused arguments and
17815 unnecessary unused attributes.
17816 * config/i386/host-mingw32.c: Likewise.
17817 * config/i386/i386.c: Likewise.
17818 * config/i386/winnt-stubs.c: Likewise.
17819 * config/i386/winnt.c: Likewise.
17821 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17823 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
17824 (aarch64_gen_loadwb_pair): New helper function.
17825 (aarch64_expand_epilogue): Simplify code using new helper functions.
17826 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
17828 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17830 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
17831 (aarch64_gen_storewb_pair): New helper function.
17832 (aarch64_expand_prologue): Simplify code using new helper functions.
17833 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
17835 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17837 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
17838 Rename to aarch64_save_callee_saves, remove restore code.
17839 (aarch64_restore_callee_saves): New function.
17841 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17843 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
17844 (aarch64_save_callee_saves): New function to handle reg save
17845 for both core and vectore regs.
17847 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17849 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
17850 (aarch64_gen_store_pair): New helper function.
17851 (aarch64_save_or_restore_callee_save_registers)
17852 (aarch64_save_or_restore_fprs): Use new helper functions.
17854 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17856 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
17857 (aarch64_save_or_restore_callee_save_registers)
17858 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
17860 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17862 * config/aarch64/aarch64.c
17863 (aarch64_save_or_restore_callee_save_registers)
17864 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
17866 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17868 * config/aarch64/aarch64.c
17869 (aarch64_save_or_restore_callee_save_registers)
17870 (aarch64_save_or_restore_fprs): Remove 'increment'.
17872 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17874 * config/aarch64/aarch64.c
17875 (aarch64_save_or_restore_callee_save_registers)
17876 (aarch64_save_or_restore_fprs): Use register offset in
17877 cfun->machine->frame.reg_offset.
17879 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17881 * config/aarch64/aarch64.c
17882 (aarch64_save_or_restore_callee_save_registers)
17883 (aarch64_save_or_restore_fprs): Remove base_rtx.
17885 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17887 * config/aarch64/aarch64.c
17888 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
17889 to 'start_offset'. Remove local variable 'start_offset'.
17891 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17893 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
17894 type to HOST_WIDE_INT.
17896 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17898 * config/aarch64/aarch64.c (aarch64_expand_prologue)
17899 (aarch64_save_or_restore_fprs)
17900 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
17902 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
17904 * config/arm/t-rtems-eabi: Add
17905 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
17906 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
17907 mbig-endian/mthumb/march=armv7-r, and
17908 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
17911 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
17912 Chris Johns <chrisj@rtems.org>
17913 Joel Sherrill <joel.sherrill@oarcorp.com>
17915 * config.gcc: Add nios2-*-rtems*.
17916 * config/nios2/rtems.h: New file.
17917 * gcc/config/nios2/t-rtems: New file.
17919 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
17922 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
17923 constant numbers, not general constants.
17924 (rs6000_expand_vector_init): Ditto.
17926 2014-07-23 Nathan Sidwell <nathan@acm.org>
17928 * gcov-tool.c (gcov_list): Declare here.
17929 (set_gcov_list): Remove.
17930 (gcov_output_files): Set gcov_list directly.
17932 2014-07-23 Host Schirmeier <horst@schirmeier.com>
17934 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
17936 2014-07-23 Jiong Wang <jiong.wang@arm.com>
17938 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
17939 callee-saved registers are available for padding purpose
17940 and r3 is not mandatory, then prefer use those callee-saved
17943 2014-07-23 Richard Biener <rguenther@suse.de>
17945 * params.def (PARAM_MAX_COMBINE_INSNS): New.
17946 * combine.c: Include statistics.h and params.h.
17947 (combine_instructions): Guard three and four insn combines
17948 with max-combine-insns value. Record statistics for combines
17950 * doc/invoke.texi (max-combine-insns): Document new param.
17952 2014-07-23 Roman Gareev <gareevroman@gmail.com>
17954 * graphite-isl-ast-to-gimple.c:
17955 (translate_isl_ast_node_block): New function.
17956 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
17958 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
17959 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
17961 2014-07-23 Roman Gareev <gareevroman@gmail.com>
17963 * graphite-isl-ast-to-gimple.c:
17964 (get_max_schedule_dimensions): New function.
17965 (extend_schedule): Likewise.
17966 (generate_isl_schedule): Add calling of extend_schedule and
17967 get_max_schedule_dimensions.
17969 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17971 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
17972 (case UNSPEC): Handle UNSPEC_RBIT.
17974 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17976 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
17977 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
17979 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17981 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
17983 2014-07-22 Roman Gareev <gareevroman@gmail.com>
17985 * graphite-isl-ast-to-gimple.c:
17986 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
17987 (ivs_params_clear):
17988 (build_iv_mapping): New function.
17989 (translate_isl_ast_node_user): Likewise.
17990 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
17992 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
17993 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
17994 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
17996 2014-07-21 Bin Cheng <bin.cheng@arm.com>
17999 * config/arm/arm.md (setmem): New pattern.
18000 * config/arm/arm-protos.h (struct tune_params): New fields.
18001 (arm_gen_setmem): New prototype.
18002 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18003 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18004 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18005 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18006 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18007 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18008 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18009 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18010 (arm_const_inline_cost): New function.
18011 (arm_block_set_max_insns): New function.
18012 (arm_block_set_non_vect_profit_p): New function.
18013 (arm_block_set_vect_profit_p): New function.
18014 (arm_block_set_unaligned_vect): New function.
18015 (arm_block_set_aligned_vect): New function.
18016 (arm_block_set_unaligned_non_vect): New function.
18017 (arm_block_set_aligned_non_vect): New function.
18018 (arm_block_set_vect, arm_gen_setmem): New functions.
18020 2014-07-21 Bin Cheng <bin.cheng@arm.com>
18022 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18024 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
18027 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18028 out of #ifdef __OPTIMIZE__.
18030 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18032 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18033 different trapping status if -fnon-call-exceptions is enabled.
18035 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18037 * expr.c (store_field): Handle VOIDmode for calls that return values
18038 in multiple locations.
18040 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18042 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
18043 (altivec_vsldoi_<mode>): Likewise.
18045 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18047 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18048 to the number of characters in the line.
18050 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18052 * graphite-isl-ast-to-gimple.c: Add using of
18053 build_nonstandard_integer_type instead of int128_integer_type_node.
18055 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
18057 * toplev.c (output_stack_usage): Adjust the location of the warning.
18059 2014-07-19 Daniel Cederman <cederman@gaisler.com>
18061 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18062 (*membar_storeload): Disable for LEON3.
18064 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
18066 PR rtl-optimization/61461
18067 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18069 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
18072 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18073 Fix instruction constraint.
18074 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18076 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
18078 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18080 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
18082 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18083 GNU coding standards.
18084 (nds32_register_move_cost): Likewise.
18085 (nds32_memory_move_cost): Likewise.
18086 (nds32_address_cost): Likewise.
18088 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18090 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18092 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
18094 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18095 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18096 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18097 (HAVE_sync_compare_and_swapqi): Define.
18098 (HAVE_sync_compare_and_swaphi): Likewise.
18099 (HAVE_sync_compare_and_swapsi): Likewise.
18101 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
18103 * config/mips/p5600.md: Add missing cpu tests.
18105 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18107 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18108 (vmla_f64): Likewise.
18109 (vfms_f64): Likewise.
18110 (vmls_f64): Likewise.
18112 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18114 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18115 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18117 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18119 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18120 (vmlal_high_lane_s32): Likewise.
18121 (vmlal_high_lane_u16): Likewise.
18122 (vmlal_high_lane_u32): Likewise.
18123 (vmlsl_high_lane_s16): Likewise.
18124 (vmlsl_high_lane_s32): Likewise.
18125 (vmlsl_high_lane_u16): Likewise.
18126 (vmlsl_high_lane_u32): Likewise.
18128 2014-07-17 Terry Guo <terry.guo@arm.com>
18130 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18131 (alus_reg): Renamed to alus_sreg.
18132 * config/arm/arm-fixed.md: Change type of non-dsp instructions
18133 from alu_reg to alu_sreg. Change type of dsp instructions from
18134 alu_reg to alu_dsp_reg.
18135 * config/arm/thumb1.md: Likewise.
18136 * config/arm/thumb2.md: Likewise.
18137 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18138 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18139 with alu_sreg and alus_sreg.
18140 * config/arm/arm1026ejs.md (alu_op): Likewise.
18141 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18142 * config/arm/arm926ejs.md (9_alu_op): Likewise.
18143 * config/arm/fa526.md (526_alu_op): Likewise.
18144 * config/arm/fa606te.md (606te_alu_op): Likewise.
18145 * config/arm/fa626te.md (626te_alu_op): Likewise.
18146 * config/arm/fa726te.md (726te_alu_op): Likewise.
18147 * config/arm/fmp626.md (mp626_alu_op): Likewise.
18148 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18149 alu_sreg, alu_dsp_reg and alus_sreg.
18150 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18151 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18152 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18153 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18154 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18155 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18156 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18157 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18158 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18159 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18160 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18161 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18162 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18163 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18164 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18165 alus_reg to alus_sreg.
18167 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
18169 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18172 2014-07-17 Richard Biener <rguenther@suse.de>
18174 PR rtl-optimization/61801
18175 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18176 don't set reg_pending_barrier if it appears in a debug-insn.
18178 2014-07-16 DJ Delorie <dj@redhat.com>
18180 * config/rx/rx.c (rx_option_override): Fix alignment values.
18181 (rx_align_for_label): Likewise.
18183 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
18186 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18187 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18188 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18190 (cris_print_index, cris_print_operand, cris_constant_index_p)
18191 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18192 (cris_address_cost): Ditto last CONSTANT_P.
18193 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
18194 callers changed. Yield cris_offsettable_symbol for non-PIC
18195 constant symbolic expressions including labels. Yield cris_unspec
18197 (cris_expand_pic_call_address): New parameter MARKERP. Set its
18198 target to pic_offset_table_rtx for calls that will likely go
18199 through PLT, const0_rtx when they can't. All callers changed.
18200 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18201 symbolic expressions to be PICified. Remove second, redundant,
18202 assert on can_create_pseudo_p returning non-zero. Use
18203 replace_equiv_address_nv, not replace_equiv_address, for final
18205 * config/cris/cris.md ("movsi"): Move variable t to pattern
18206 toplevel. Adjust assert for new cris_symbol_type member. Use
18207 CONSTANT_P instead of CONSTANT_ADDRESS_P.
18208 ("*movsi_internal") <case 9>: Make check for valid unspec operands
18210 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18211 ("call", "call_value"): Use second incoming operand as a marker
18212 for pic-offset-table-register being used.
18213 ("*expanded_call_non_v32", "*expanded_call_v32")
18214 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18215 second incoming operand to CALL, match cris_call_type_marker.
18216 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
18217 ("*expanded_call_side"): Ditto. Fix typo in comment.
18218 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18220 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18221 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18222 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
18223 users changed. Add members cris_offsettable_symbol and cris_unspec.
18224 (cris_symbol_type): Rename from cris_pic_symbol_type.
18225 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18227 * config/cris/cris-protos.h (cris_symbol_type_of,
18228 cris_expand_pic_call_address): Adjust prototypes.
18229 (cris_legitimate_constant_p): New prototype.
18231 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18232 an existing tmake_file. Don't add t-slibgcc and t-linux.
18234 2014-07-17 Jason Merrill <jason@redhat.com>
18237 * symtab.c (symtab_remove_from_same_comdat_group): Also
18238 set_comdat_group to NULL_TREE.
18239 (verify_symtab): Fix diagnostic.
18241 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
18244 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18246 2014-07-16 Dodji Seketeli <dodji@redhat.com>
18248 Support location tracking for built-in macro tokens
18249 * input.h (is_location_from_builtin_token): New function declaration.
18250 * input.c (is_location_from_builtin_token): New function definition.
18251 * toplev.c (general_init): Tell libcpp what the pre-defined
18252 spelling location for built-in tokens is.
18254 2014-07-16 Jakub Jelinek <jakub@redhat.com>
18256 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18257 on the FUNCTION_DECL.
18259 2014-07-16 Richard Biener <rguenther@suse.de>
18262 * doc/extend.texi (always_inline): Clarify.
18264 2014-07-15 Eric Christopher <echristo@gmail.com>
18266 * doc/invoke.texi (Link Options): Document -z option.
18268 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
18270 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18271 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18273 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
18275 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18277 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
18279 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18280 varpool_assemble_decl.
18281 * varpool.c (varpool_assemble_decl): Assert that node->definition is
18284 2014-07-15 Michael Matz <matz@suse.de>
18286 PR rtl-optimization/61772
18287 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18289 2014-07-15 Richard Biener <rguenther@suse.de>
18291 * opts.c (default_options_table): Disable bit-ccp at -Og.
18293 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18295 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18297 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18299 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18300 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18301 call langhook for unknown declaration.
18302 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18303 * tree.h (DECL_ARGUMENTS): Update.
18304 * print-tree.c (print_node): Update.
18305 * tree-core.h (tree_decl_non_common): Remove arguments.
18306 (tree_function_decl): Add arguments.
18308 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
18310 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18312 2014-07-14 Richard Biener <rguenther@suse.de>
18314 PR tree-optimization/61779
18315 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18316 simplifying a condition.
18318 2014-07-14 Richard Biener <rguenther@suse.de>
18320 * builtins.c (c_strlen): Make only_value == 2 really only
18321 affect warning generation.
18323 2014-07-14 Richard Biener <rguenther@suse.de>
18325 PR tree-optimization/61757
18326 PR tree-optimization/61783
18327 PR tree-optimization/61787
18328 * tree-ssa-dom.c (record_equality): Revert canonicalization
18329 change and add comment.
18330 (propagate_rhs_into_lhs): Revert previous fix, removing
18331 loop depth restriction again.
18333 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18335 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18336 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18337 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18338 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18339 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18340 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18341 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18343 2014-07-14 Richard Biener <rguenther@suse.de>
18345 * cgraph.h (decl_in_symtab_p): Make inline.
18347 2014-07-14 Jakub Jelinek <jakub@redhat.com>
18349 PR middle-end/61294
18350 * doc/invoke.texi (-Wmemset-transposed-args): Document.
18353 * config/i386/i386.c (classify_argument): Don't merge classes above
18356 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
18358 * cgraph.h (symtab_node): Add nonzero_address.
18359 (decl_in_symtab_p): Break out from ...
18360 (symtab_get_node): ... here.
18361 * fold-const.c: Include cgraph.h
18362 (tree_single_nonzero_warnv_p): Use symtab to determine
18363 if symbol is non-zero.
18364 * symtab.c (symtab_node::nonzero_address): New method.
18366 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
18368 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18369 forgotten in previous commit.
18371 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
18373 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18375 * ipa-devirt.c: Include stor-layout.h and intl.h
18376 (odr_subtypes_equivalent_p): New function.
18377 (warn_odr): New function.
18378 (warn_type_mismatch): New function.
18379 (odr_types_equivalent_p): New function.
18380 (add_type_duplicate): Use it.
18381 * common.opt (Wodr): New flag.
18382 * doc/invoke.texi (Wodr): Document new warning.
18384 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
18386 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18387 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18388 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18389 (varpool_get_constructor): Push CTORS_IN timevar.
18390 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18392 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
18394 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
18395 Remove VOID_FTYPE_PUSHORT.
18396 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
18397 Change code to USHORT_FTYPE_VOID.
18398 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
18399 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
18400 (ix86_atomic_assign_expand_fenv): Update for
18401 __builtin_ia32_fnstsw changes.
18402 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
18403 (fnstsw): Change operand 0 to nonimmediate operand.
18405 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
18407 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
18408 (varpool_get_constructor): New function.
18409 (varpool_ctor_useable_for_folding_p): Break out from ...
18410 (ctor_for_folding): ... here; use varpool_get_constructor.
18411 (varpool_assemble_decl): Likewise.
18412 * lto-streamer.h (struct output_block): Turn cgraph_node
18414 (lto_input_variable_constructor): Declare.
18415 * ipa-visibility.c (function_and_variable_visibility): Use
18416 varpool_get_constructor.
18417 * cgraph.h (varpool_get_constructor): Declare.
18418 (varpool_ctor_useable_for_folding_p): New function.
18419 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
18420 parameter; return error_mark_node for non-trivial constructors.
18421 (lto_write_tree_1, DFS_write_tree): Update use of
18422 get_symbol_initial_value.
18423 (output_function): Update initialization of symbol.
18424 (output_constructor): New function.
18425 (copy_function): Rename to ..
18426 (copy_function_or_variable): ... this one; handle vars too.
18427 (lto_output): Output variable sections.
18428 * lto-streamer-in.c (input_constructor): New function.
18429 (lto_read_body): Rename from ...
18430 (lto_read_body_or_constructor): ... this one; handle vars too.
18431 (lto_input_variable_constructor): New function.
18432 * ipa-prop.c (ipa_prop_write_jump_functions,
18433 ipa_prop_write_all_agg_replacement): Update.
18434 * lto-cgraph.c (compute_ltrans_boundary): Use it.
18435 (output_cgraph_opt_summary): Set symbol to NULL.
18437 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
18439 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
18440 non-polymorphic types.
18441 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
18442 * ipa-devirt.c (types_same_for_odr): Do not explode when one
18443 of types is not polymorphic.
18445 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
18447 * lra-constraints.c (remove_inheritance_pseudos): Process
18448 destination pseudo too.
18450 2014-07-11 Rong Xu <xur@google.com>
18452 * gcov-tool.c (gcov_output_files): Fix build error introduced in
18455 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18457 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
18458 * config/avr/avr-devices.c (AVR_MCU): Same.
18459 (avr_mcu_types): add text start value to end of device list.
18460 * config/avr/avr-mcus.def: Add text section start for all devices.
18461 (ata5782): Add new avr5 device.
18463 * config/avr/avr-tables.opt: Regenerate.
18464 * config/avr/avr.h: Add declaration for text section start handler.
18465 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
18467 (LINK_SPEC): Include text section start handler to linker spec.
18468 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
18469 pass -Ttext option to linker if the text section start for the device
18471 * config/avr/t-multilib: Regenerate.
18472 * doc/avr-mmcu.texi: Regenerate.
18474 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
18476 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
18477 * config/rs6000/aix52.h (LINK_SPEC): Same.
18478 * config/rs6000/aix53.h (LINK_SPEC): Same.
18479 * config/rs6000/aix61.h (LINK_SPEC): Same.
18480 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
18482 2014-07-11 Roman Gareev <gareevroman@gmail.com>
18484 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
18485 (graphite_verify): New function.
18486 (ivs_params_clear): New function.
18487 (gcc_expression_from_isl_ast_expr_id): New function.
18488 (gcc_expression_from_isl_expr_int): New function.
18489 (binary_op_to_tree): New function.
18490 (ternary_op_to_tree): New function.
18491 (unary_op_to_tree): New function.
18492 (nary_op_to_tree): New function.
18493 (gcc_expression_from_isl_expr_op): New function.
18494 (gcc_expression_from_isl_expression): New function.
18495 (graphite_create_new_loop): New function.
18496 (translate_isl_ast_for_loop): New function.
18497 (get_upper_bound): New function.
18498 (graphite_create_new_loop_guard): New function.
18499 (translate_isl_ast_node_for): New function.
18500 (translate_isl_ast): New function.
18501 (add_parameters_to_ivs_params): New function.
18502 (scop_to_isl_ast): New parameter ip.
18503 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
18505 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
18507 * config/xtensa/predicates.md (call expander): Update for
18508 DECL_SECTION_NAME being string.
18510 2014-07-11 Richard Biener <rguenther@suse.de>
18512 PR middle-end/61473
18513 * builtins.c (fold_builtin_memory_op): Inline memory moves that
18514 can be implemented with a single load followed by a single store.
18515 (c_strlen): Only warn when only_value is not 2.
18517 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
18519 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
18521 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
18524 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
18525 (*movhi_bytes): Likewise.
18526 (*arm_movqi_insn): Likewise.
18528 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
18531 * config/alpha/alpha.c: Include tree-pass.h, context.h
18532 and pass_manager.h.
18533 (pass_data_handle_trap_shadows): New pass.
18534 (pass_handle_trap_shadows::gate): New pass gate function.
18535 (make_pass_handle_trap_shadows): New function.
18536 (rest_of_handle_trap_shadows): Ditto.
18538 (alpha_align_insns_1): Rename from alpha_align_insns.
18539 (pass_data_align_insns): New pass.
18540 (pass_align_insns::gate): New pass gate function.
18541 (make_pass_aling_insns): New function.
18542 (rest_of_align_insns): Ditto.
18543 (alpha_align_insns): Ditto.
18545 (alpha_option_override): Declare handle_trap_shadows info
18546 and align_insns_info. Register handle_trap_shadows and align_insns
18548 (alpha_reorg): Do not call alpha_trap_shadows and
18549 alpha_align_insn from here.
18551 (alpha_pad_function_end): Do not skip BARRIERs.
18553 2014-07-10 Rong Xu <xur@google.com>
18555 Add gcov-tool: an offline gcda profile processing tool support.
18556 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
18557 (gcov_is_error): Ditto.
18558 (gcov_read_string): Ditto.
18559 (gcov_read_sync): Ditto.
18560 * gcov-io.h: Move counter defines to gcov-counter.def.
18561 * gcov-dump.c (tag_counters): Use gcov-counter.def.
18562 * coverage.c: Ditto.
18563 * gcov-tool.c: Offline gcda profile processing tool.
18564 (unlink_gcda_file): Remove one gcda file.
18565 (unlink_profile_dir): Remove gcda files from the profile path.
18566 (gcov_output_files): Output gcda files to an output dir.
18567 (profile_merge): Merge two profiles in directory.
18568 (print_merge_usage_message): Print merge usage.
18569 (merge_usage): Print merge usage and exit.
18570 (do_merge): Driver for profile merge sub-command.
18571 (profile_rewrite): Rewrite profile.
18572 (print_rewrite_usage_message): Print rewrite usage.
18573 (rewrite_usage): Print rewrite usage and exit.
18574 (do_rewrite): Driver for profile rewrite sub-command.
18575 (print_usage): Print gcov-info usage and exit.
18576 (print_version): Print gcov-info version.
18577 (process_args): Process arguments.
18578 (main): Main routine for gcov-tool.
18579 * Makefile.in: Build and install gcov-tool.
18580 * gcov-counter.def: New file split from gcov-io.h.
18581 * doc/gcc.texi: Include gcov-tool.texi.
18582 * doc/gcov-tool.texi: Document for gcov-tool.
18584 2014-07-10 Richard Biener <rguenther@suse.de>
18586 PR tree-optimization/61757
18587 * tree-ssa-dom.c (loop_depth_of_name): Restore.
18588 (propagate_rhs_into_lhs): Revert part of last change.
18590 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
18592 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
18595 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
18597 PR middle-end/53590
18598 * function.c (allocate_struct_function): Revert r188667 change.
18600 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
18602 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
18604 * doc/install.texi: Remove links to defunct package providers for
18607 2014-07-09 Tom de Vries <tom@codesourcery.com>
18609 * final.c (get_call_fndecl): Declare.
18610 (self_recursive_call_p): New function.
18611 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
18613 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18615 * ipa-devirt.c (record_node): Walk through aliases.
18617 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18619 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
18621 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18624 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
18626 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18628 * ipa-visibility.c (function_and_variable_visibility): Remove
18629 temporary hack disabling local aliases on AIX.
18631 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18633 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
18634 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
18636 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18638 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
18639 * rs6000/rs6000.c: Inline output of .set instruction.
18640 (declare_alias_data): New struct.
18641 (rs6000_declare_alias): New function.
18642 (rs6000_xcoff_declare_function_name): Use it.
18643 (rs6000_xcoff_declare_object_name): New function.
18644 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
18645 (ASM_OUTPUT_DEF): Turn to empty definition.
18647 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
18650 * hash-table.h: use hash_table::value_type instead of
18651 Descriptor::value_type in the return types of several methods.
18653 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
18655 * tree-pass.h (pass_data): Remove has_execute member.
18656 * passes.c (execute_one_pass): Don't check pass->has_execute.
18657 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
18658 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
18659 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
18660 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
18661 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
18662 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
18663 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
18664 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
18665 gimple-low.c, gimple-ssa-isolate-paths.c,
18666 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
18667 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
18668 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
18669 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
18670 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
18671 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
18672 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
18673 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
18674 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
18675 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
18676 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
18677 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18678 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
18679 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
18680 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
18681 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
18682 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
18683 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
18684 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
18685 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
18686 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
18687 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
18688 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
18689 web.c: Remove initializer for pass_data::has_execute.
18691 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
18693 * graphite-htab.h: Use hash_map instead of hash_table.
18694 * graphite-clast-to-gimple.c: Adjust.
18695 * passes.c: Use hash_map instead of hash_table.
18696 * sese.c: Likewise.
18697 * sese.h: Remove now unused code.
18699 2014-07-08 Sriraman Tallam <tmsriram@google.com>
18702 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
18705 2014-07-08 Jakub Jelinek <jakub@redhat.com>
18707 PR rtl-optimization/61673
18708 * combine.c (simplify_comparison): Test just mode's sign bit
18709 in tmode rather than the sign bit and any bits above it.
18711 2014-07-08 Roman Gareev <gareevroman@gmail.com>
18713 * graphite-isl-ast-to-gimple.c (generate_isl_context):
18714 Add __isl_give to the declaration.
18715 (generate_isl_schedule): Likewise.
18716 (scop_to_isl_ast): Likewise.
18718 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18720 * config/arm/arm.c (cortexa5_extra_costs): New table.
18721 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
18723 2014-07-08 Jakub Jelinek <jakub@redhat.com>
18725 PR tree-optimization/61725
18726 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
18727 range, use range_includes_zerop_p instead of integer_zerop on
18728 vr0->min, only use log2 of max if min is not negative.
18730 2014-07-08 Richard Biener <rguenther@suse.de>
18732 * tree-ssa-dom.h (loop_depth_of_name): Remove.
18733 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
18734 restriction on loop depth difference.
18735 (record_equality): Likewise.
18736 (propagate_rhs_into_lhs): Likewise. Simplify condition.
18737 (loop_depth_of_name): Remove.
18738 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
18739 restriction on loop depth difference.
18740 (init_copy_prop): Likewise.
18742 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
18744 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
18746 (walk_aliased_vdefs): Likewise.
18747 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
18748 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
18749 (detect_type_change_from_memory_writes): Check if entry was reached.
18751 2014-07-08 Richard Biener <rguenther@suse.de>
18753 PR tree-optimization/61681
18754 * tree-ssa-structalias.c (find_what_var_points_to): Expand
18755 NONLOCAL inside ESCAPED.
18757 2014-07-08 Richard Biener <rguenther@suse.de>
18759 PR tree-optimization/61680
18760 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18761 Handle properly all read-write dependences with group accesses.
18763 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
18765 PR tree-optimization/61576
18766 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
18767 block containing reduction statement is predecessor of phi basi block.
18769 2014-07-08 Marek Polacek <polacek@redhat.com>
18772 * fold-const.c (round_up_loc): Change the parameter type.
18774 * fold-const.h (round_up_loc): Adjust declaration.
18775 * stor-layout.c (finalize_record_size): Check for too large types.
18777 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
18779 * symtab.c: Include calls.h.
18780 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
18782 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
18784 * config/rs6000/rs6000.c (output_vec_const_move): Handle
18785 little-endian code generation.
18786 * config/rs6000/spe.md (spe_evmergehi): Rename to...
18787 (vec_perm00_v2si): ... this. Handle little-endian code generation.
18788 (spe_evmergehilo): Rename to...
18789 (vec_perm01_v2si): ... this. Handle little-endian code generation.
18790 (spe_evmergelo): Rename to...
18791 (vec_perm11_v2si): ... this. Handle little-endian code generation.
18792 (spe_evmergelohi): Rename to...
18793 (vec_perm10_v2si): ... this. Handle little-endian code generation.
18794 (spe_evmergehi, spe_evmergehilo): New expanders.
18795 (spe_evmergelo, spe_evmergelohi): Likewise.
18796 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
18797 (*frob_tf_ti): Likewise.
18798 (*frob_<mode>_di_2): Likewise.
18799 (*frob_tf_di_8_2): Likewise.
18800 (*frob_di_<mode>): Likewise.
18801 (*frob_ti_tf): Likewise.
18802 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
18803 (*frob_ti_<mode>_8_2): Likewise.
18804 (*frob_ti_tf_2): Likewise.
18805 (mov_si<mode>_e500_subreg0): Rename to...
18806 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
18808 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
18809 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
18810 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
18811 the big endianness only.
18812 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
18813 (*mov_si<mode>_e500_subreg0_2): Rename to...
18814 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
18815 big big endianness only.
18816 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
18817 (*mov_si<mode>_e500_subreg4): Rename to...
18818 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
18820 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
18821 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
18822 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
18823 the big endianness only.
18824 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
18826 (*mov_si<mode>_e500_subreg4_2): Rename to...
18827 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
18829 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
18830 (*mov_sitf_e500_subreg8): Rename to...
18831 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
18833 (*mov_sitf_e500_subreg8_le): New instruction pattern.
18834 (*mov_sitf_e500_subreg8_2): Rename to...
18835 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
18837 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
18838 (*mov_sitf_e500_subreg12): Rename to...
18839 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
18841 (*mov_sitf_e500_subreg12_le): New instruction pattern.
18842 (*mov_sitf_e500_subreg12_2): Rename to...
18843 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
18845 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
18847 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
18849 * asan.c (instrument_strlen_call): Do not instrument first byte
18850 in strlen if already instrumented.
18852 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18854 * config/arm/arm.opt (mwords-little-endian): Delete.
18855 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
18856 of TARGET_LITTLE_WORDS.
18857 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
18858 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
18860 * doc/invoke.texi: Remove references to -mwords-little-endian.
18862 2014-07-07 Jakub Jelinek <jakub@redhat.com>
18864 * expmed.c (struct init_expmed_rtl): Change all fields but
18865 pow2 and cint from struct rtx_def to rtx.
18866 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
18867 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
18870 2014-07-06 Marek Polacek <polacek@redhat.com>
18873 * doc/invoke.texi: Document -Wsizeof-array-argument.
18875 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
18877 * wide-int.h (wide_int_storage): Change declaration from struct
18880 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
18882 * cgraph.c (cgraph_create_indirect_edge): Update call of
18883 get_polymorphic_call_info.
18884 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
18885 (possible_polymorphic_call_targets): Add parameter call.
18886 (decl_maybe_in_construction_p): New predicate.
18887 (get_polymorphic_call_info): Add parameter call;
18888 use decl_maybe_in_construction_p.
18889 * gimple-fold.c (fold_gimple_assign): Update use of
18890 possible_polymorphic_call_targets.
18891 (gimple_fold_call): Likewise.
18892 * ipa-prop.c: Inlcude calls.h
18893 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
18894 (param_type_may_change_p): New predicate.
18895 (detect_type_change_from_memory_writes): Break out from ...
18896 (detect_type_change): ... this one; use param_type_may_change_p.
18897 (detect_type_change_ssa): Use param_type_may_change_p.
18898 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
18900 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
18903 * config/arm/arm-protos.h (arm_legitimate_address_p,
18904 arm_is_constant_pool_ref): Add prototypes.
18905 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
18906 (arm_is_constant_pool_ref) New function.
18907 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
18908 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
18909 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
18910 operand. Remove pool_range and neg_pool_range attributes.
18911 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
18912 pool_range and neg_pool_range attributes.
18913 * config/arm/constraints.md (Uh): New constraint.
18914 (Uq): Don't allow constant pool references.
18916 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
18918 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
18919 (move_lo_quad_internal_be_<mode>): Likewise.
18920 (move_lo_quad_<mode>): Convert to define_expand.
18921 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
18922 (aarch64_simd_move_hi_quad_be_<mode>): New.
18923 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
18924 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
18925 (aarch64_combinez_be<mode>): New.
18926 (aarch64_combine<mode>): Convert to define_expand.
18927 (aarch64_combine_internal<mode>): New.
18928 (aarch64_simd_combine<mode>): Remove bogus RTL description.
18930 2014-07-04 Tom de Vries <tom@codesourcery.com>
18932 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
18933 combination of earlyclobber and read/write modifiers.
18935 2014-07-04 Tom de Vries <tom@codesourcery.com>
18937 * config/aarch64/aarch64-simd.md
18938 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
18940 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
18943 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
18945 2014-07-04 Jakub Jelinek <jakub@redhat.com>
18947 PR middle-end/61654
18948 * cgraphunit.c (expand_thunk): Call free_dominance_info.
18950 PR tree-optimization/61684
18951 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
18952 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
18954 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
18955 Kito Cheng <kito@0xlab.org>
18956 Monk Chiang <sh.chiang04@gmail.com>
18958 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
18959 (nds32_symbol_load_store_p): Move to ...
18960 (nds32_fp_as_gp_check_available): Move to ...
18961 * config/nds32/nds32-fp-as-gp.c: ... here.
18962 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
18963 extern declaration.
18965 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
18966 Kito Cheng <kito@0xlab.org>
18967 Monk Chiang <sh.chiang04@gmail.com>
18969 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
18970 (nds32_expand_store_multiple): Move to ...
18971 (nds32_expand_movmemqi): Move to ...
18972 * config/nds32/nds32-memory-manipulation.c: ... here.
18974 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
18975 Kito Cheng <kito@0xlab.org>
18976 Monk Chiang <sh.chiang04@gmail.com>
18978 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
18979 (nds32_output_casesi_pc_relative): Move to ...
18980 (nds32_output_casesi): Move to ...
18981 (nds32_mem_format): Move to ...
18982 (nds32_output_16bit_store): Move to ...
18983 (nds32_output_16bit_load): Move to ...
18984 (nds32_output_32bit_store): Move to ...
18985 (nds32_output_32bit_load): Move to ...
18986 (nds32_output_32bit_load_s): Move to ...
18987 (nds32_output_stack_push): Move to ...
18988 (nds32_output_stack_pop): Move to ...
18989 * config/nds32/nds32-md-auxiliary.c: ... here.
18991 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
18992 Ling-Hua Tseng <uranus@tinlans.org>
18994 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
18995 the purpose of this file.
18997 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
18998 Kito Cheng <kito@0xlab.org>
18999 Monk Chiang <sh.chiang04@gmail.com>
19001 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19002 (nds32_address_cost): Move implementation to ...
19003 * config/nds32/nds32-cost.c: ... here.
19004 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19005 (nds32_address_cost_impl): Declare.
19007 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19008 Kito Cheng <kito@0xlab.org>
19009 Monk Chiang <sh.chiang04@gmail.com>
19011 * config/nds32/nds32.c
19012 (nds32_consecutive_registers_load_store_p): Move to ...
19013 (nds32_valid_multiple_load_store): Move to ...
19014 (nds32_valid_stack_push_pop): Move to ...
19015 (nds32_can_use_bclr_p): Move to ...
19016 (nds32_can_use_bset_p): Move to ...
19017 (nds32_can_use_btgl_p): Move to ...
19018 (nds32_can_use_bitci_p): Move to ...
19019 * config/nds32/nds32-predicates.c: ... here.
19021 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19022 Kito Cheng <kito@0xlab.org>
19023 Monk Chiang <sh.chiang04@gmail.com>
19025 * config/nds32/nds32.c
19026 (nds32_expand_builtin_null_ftype_reg): Move to ...
19027 (nds32_expand_builtin_reg_ftype_imm): Move to ...
19028 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19029 (nds32_init_builtins): Move implementation to ...
19030 (nds32_expand_builtin): Move implementation to ...
19031 * config/nds32/nds32-intrinsic.c: ... here.
19032 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19033 (nds32_expand_builtin_impl): Declare.
19035 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19036 Kito Cheng <kito@0xlab.org>
19037 Monk Chiang <sh.chiang04@gmail.com>
19039 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19040 (nds32_emit_section_tail_template): Move to ...
19041 (nds32_emit_isr_jmptbl_section): Move to ...
19042 (nds32_emit_isr_vector_section): Move to ...
19043 (nds32_emit_isr_reset_conten): Move to ...
19044 (nds32_check_isr_attrs_conflict): Move to ...
19045 (nds32_construct_isr_vectors_information): Move to ...
19046 (nds32_asm_file_start): Move implementation to ...
19047 (nds32_asm_file_end): Move implementation to ...
19048 * config/nds32/nds32-isr.c: ... here.
19049 * config/nds32/nds32-protos.h
19050 (nds32_check_isr_attrs_conflict): Declare.
19051 (nds32_construct_isr_vectors_information): Declare.
19052 (nds32_asm_file_start_for_isr): Declare.
19053 (nds32_asm_file_end_for_isr): Declare.
19055 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19056 Kito Cheng <kito@0xlab.org>
19057 Monk Chiang <sh.chiang04@gmail.com>
19059 * config.gcc (nds32*): Add new modules to extra_objs.
19060 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19061 (nds32be-*-*): Likewise.
19062 * config/nds32/nds32-cost.c: New file.
19063 * config/nds32/nds32-fp-as-gp.c: New file.
19064 * config/nds32/nds32-intrinsic.c: New file.
19065 * config/nds32/nds32-isr.c: New file.
19066 * config/nds32/nds32-md-auxiliary.c: New file.
19067 * config/nds32/nds32-memory-manipulation.c: New file.
19068 * config/nds32/nds32-pipelines-auxiliary.c: New file.
19069 * config/nds32/nds32-predicates.c: New file.
19070 * config/nds32/t-nds32: New file.
19072 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19074 PR tree-optimization/61682
19075 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19076 using cases and when one of the operands is equal to 1.
19078 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
19080 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19081 ashr<mode>3): Correct mode of operands[2].
19082 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19083 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19084 Correct mode of operands[2]. Fix split condition.
19086 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
19088 * arm.md (arch): Add armv6_or_vfpv3.
19089 (arch_enabled): Add test for the above.
19090 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19092 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19094 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19096 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19097 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19098 HWI 1 and negate the unsigned value.
19099 * expmed.c (expand_sdiv_pow2): For modes wider than word always
19100 use AND instead of shift.
19101 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19103 2014-07-03 Marek Polacek <polacek@redhat.com>
19105 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19106 (-fsanitize=float-divide-by-zero): Move to the table with
19107 -fsanitize=undefined suboptions.
19108 (-fsanitize=float-cast-overflow): Likewise.
19110 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
19112 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19113 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19116 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19118 * loop-invariant.c (struct invariant): Add a new member: eqno;
19119 (find_identical_invariants): Update eqno;
19120 (create_new_invariant): Init eqno;
19121 (get_inv_cost): Compute comp_cost with eqno;
19123 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
19125 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19126 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19127 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19128 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19129 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19131 2014-07-02 Christian Bruel <christian.bruel@st.com>
19135 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19136 (make_preds_opaque): Delete.
19137 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19138 (commit_mode_sets): New function.
19139 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19140 Process all modes at once.
19141 * basic-block.h (pre_edge_lcm_avs): Declare.
19142 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19143 Call clear_aux_for_edges. Fix comments.
19144 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19145 (pre_edge_rev_lcm): Idem.
19146 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19148 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19149 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19151 * config/i386/i386.c (x96_emit_mode_set): Idem.
19152 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19153 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
19154 (fpscr_toggle) Disallow from delay slot.
19155 * target.def (emit_mode_set): Add prev_mode parameter.
19156 * doc/tm.texi: Regenerate.
19158 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19160 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19163 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19165 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19166 vtable_pointer_value_to_vtable): Constify.
19167 (contains_polymorphic_type_p): Declare.
19168 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19169 vtable_pointer_value_to_vtable): Constify.
19170 (contains_polymorphic_type_p): New predicate.
19171 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19173 (ipa_set_ancestor_jf): Likewise.
19174 (detect_type_change): Return false in easy cases.
19175 (compute_complex_assign_jump_func): Require type to contain
19177 (compute_known_type_jump_func): Likewise.
19179 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19181 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19183 (type_in_anonymous_namespace_p): Constify argument.
19184 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19185 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19186 (main_odr_variant): New function.
19187 (hash_type_name): Make static; update assert; do not ICE on
19189 (types_same_for_odr): Bring here from tree.c; simplify and remove
19190 old structural comparing code that doesn't work for templates.
19191 (odr_hasher::equal): Update assert.
19192 (add_type_duplicate): Return true when bases should be computed;
19193 replace incomplete loader by complete; do not output duplicated
19194 warnings; do not ICE on non-records; set odr_violated flag.
19195 (get_odr_type): Be ready to replace incomplete type by complete
19196 one; work on ODR variants instead of main variants; reorder item
19197 in array so bases have still smaller indexes.
19198 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19199 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19201 2014-07-01 Cary Coutant <ccoutant@google.com>
19203 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19205 (resolve_addr_in_expr): When replacing the rtx in a location list
19206 entry, get a new address table entry.
19207 (dwarf2out_finish): Call index_location_lists even if there are no
19208 addr_index_table entries yet.
19210 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19212 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19213 change for not being obvious.
19215 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19217 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19220 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19222 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19223 (vcagt_f64): Likewise.
19224 (vcale_f64): Likewise.
19225 (vcaled_f64): Likewise.
19226 (vcales_f32): Likewise.
19227 (vcalt_f64): Likewise.
19228 (vcaltd_f64): Likewise.
19229 (vcalts_f32): Likewise.
19231 2014-07-01 Marek Polacek <polacek@redhat.com>
19233 * doc/invoke.texi: Document -Wint-conversion.
19235 2014-07-01 Marek Polacek <polacek@redhat.com>
19238 * doc/invoke.texi: Document -Wincompatible-pointer-types.
19240 2014-07-01 Martin Liska <mliska@suse.cz>
19242 IPA REF alias refactoring
19243 * cgraph.h (iterate_direct_aliases): New function.
19244 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19245 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19246 FOR_EACH_ALIAS added.
19247 (cgraph_for_node_and_aliases): Likewise.
19248 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19249 * ipa-inline.c (reset_edge_caches): Likewise.
19250 (update_caller_keys): Likewise.
19251 * trans-mem.c (ipa_tm_execute): Likewise.
19252 *varpool.c (varpool_analyze_node): Likewise.
19253 (varpool_for_node_and_aliases): Likewise.
19254 * ipa-ref.h (first_alias): New function.
19255 (last_alias): Likewise.
19256 (has_aliases_p): Likewise.
19257 * ipa-ref.c (ipa_ref::remove_reference): Removal function
19258 is sensitive to IPA_REF_ALIASes.
19259 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19260 are put at the beginning of the list.
19261 (symtab_node::iterate_direct_aliases): New function.
19263 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19266 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19268 (write_ts_type_common_tree_pointers): Do not stream fields not set
19269 for incomplete types; do not stream duplicated fields for variants;
19270 sanity check that variant and type match.
19271 (write_ts_type_non_common_tree_pointers): Likewise.
19272 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19273 TYPE_SIZE whether type is complete.
19274 (lto_input_ts_type_common_tree_pointers): Do same changes as in
19275 write_ts_type_common_tree_pointers
19276 (lto_input_ts_type_non_common_tree_pointers): Likewise.
19278 2014-06-30 Joseph Myers <joseph@codesourcery.com>
19280 * var-tracking.c (add_stores): Return instead of asserting if old
19281 and new values for conditional store are the same.
19283 2014-06-30 Richard Henderson <rth@redhat.com>
19287 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19288 the cfg if there were any changes.
19289 * passes.def: Revert move of peephole2 after reorder_blocks;
19290 move duplicate_computed_gotos before peephole2.
19292 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
19294 * except.c (emit_note_eh_region_end): New helper function.
19295 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19296 emit EH_REGION_END note.
19297 * jump.c (cleanup_barriers): Do not split a call and its
19298 corresponding CALL_ARG_LOCATION note.
19300 2014-06-30 Jeff Law <law@redhat.com>
19302 PR tree-optimization/61607
19303 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19304 deeper into the SSA_NAME_VALUE chain.
19306 2014-06-30 Marek Polacek <polacek@redhat.com>
19308 * convert.c (convert_to_integer): Don't instrument conversions if the
19309 function has no_sanitize_undefined attribute.
19310 * ubsan.c: Don't run the ubsan pass if the function has
19311 no_sanitize_undefined attribute.
19313 2014-06-30 Jakub Jelinek <jakub@redhat.com>
19315 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19316 -fsanitize=undefined suboptions.
19318 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
19320 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19321 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19322 against bigendian and adjust indices.
19324 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
19326 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
19328 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
19331 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19332 Add alternative; make early clobber. Adjust both split patterns
19333 to use operand 0 as the working register.
19335 2014-06-30 Jakub Jelinek <jakub@redhat.com>
19337 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19338 as ira_object_id_map might be NULL, or 1.
19340 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19342 * loop-invariant.c (get_inv_cost): Handle register class.
19343 (gain_for_invariant): Check the register pressure of the inv
19344 and its overlapped register class, other than all.
19346 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
19348 * doc/invoke.texi (Optimize Options): Fix descriptions of
19349 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19351 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
19353 * doc/extend.texi (Function Attributes): Update 'naked' attribute
19356 2014-06-29 Tobias Grosser <tobias@grosser.es>
19359 * graphite-isl-ast-to-gimple.c: Add missing guards.
19361 2014-06-29 Roman Gareev <gareevroman@gmail.com>
19363 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19364 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19365 * flag-types.h: Add new enum fgraphite_generator.
19366 * graphite-isl-ast-to-gimple.c: New.
19367 * graphite-isl-ast-to-gimple.h: New.
19368 * graphite.c (graphite_transform_loops): Add choice of Graphite
19369 code generator, which depends on flag_graphite_code_gen.
19371 2014-06-29 Roman Gareev <gareevroman@gmail.com>
19373 * graphite-dependences.c (subtract_commutative_associative_deps):
19374 Add NULL checking of the following variables: must_raw_no_source,
19375 may_raw_no_source, must_war_no_source, may_war_no_source,
19376 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19377 must_war, may_war, must_waw, may_waw.
19379 2014-06-29 Roman Gareev <gareevroman@gmail.com>
19381 * graphite-clast-to-gimple.c: gloog is renamed to
19382 graphite_regenerate_ast_cloog. gloog_error is renamed to
19383 graphite_regenerate_error.
19384 * graphite-clast-to-gimple.h: The definition of the struct
19385 bb_pbb_def is moved to graphite-htab.h.
19386 Add inclusion of the hash-table.h.
19387 * graphite-htab.h: The declaration of the function gloog is moved
19388 to graphite-clast-to-gimple.h and renamed to
19389 graphite_regenerate_ast_cloog.
19390 * graphite.c (graphite_transform_loops): gloog is renamed
19391 to graphite_regenerate_ast_cloog.
19393 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19395 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19397 (write_ts_type_common_tree_pointers): Do not stream fields not set
19398 for incomplete types; do not stream duplicated fields for variants;
19399 sanity check that variant and type match.
19400 (write_ts_type_non_common_tree_pointers): Likewise.
19401 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19402 TYPE_SIZE whether type is complete.
19403 (lto_input_ts_type_common_tree_pointers): Do same changes as in
19404 write_ts_type_common_tree_pointers
19405 (lto_input_ts_type_non_common_tree_pointers): Likewise.
19407 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19409 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
19411 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19413 * tree-inline.c (remap_type_1): Do not duplicate fields
19414 that are shared in between type and its main variant.
19416 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19418 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
19420 (ipa_set_ancestor_jf) Likewise.
19421 (check_stmt_for_type_change): Check that we work on main variant.
19422 (detect_type_change): Look into main variant.
19423 (compute_known_type_jump_func): Check that main variant has BINFO.
19425 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19427 * ipa-devirt.c (set_type_binfo): New function.
19428 (add_type_duplicate): Use it.
19429 (get_odr_type): Sanity check that binfos points to main variants.
19430 (get_class_context): Be sure the context's outer_type is main variant.
19431 (contains_type_p): Walk main variant.
19432 (get_polymorphic_call_info_for_decl): Set outer_type to be
19434 (get_polymorphic_call_info): Likewise.
19435 (possible_polymorphic_call_targets): Sanity check that we operate
19438 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19440 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19442 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19444 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
19445 accidental change due to wide-int branch merge.
19447 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19449 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
19450 compressed debug support.
19451 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
19452 * configure: Regenerate.
19453 * config.in: Regenerate.
19454 * common.opt (compressed_debug_sections): New enum.
19455 (gz, gz=): New options.
19456 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
19457 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
19458 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
19459 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
19460 LINK_COMPRESS_DEBUG_SPEC.
19461 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
19462 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
19463 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
19464 (Debugging Options): Document -gz[=type].
19466 2014-06-27 Martin Jambor <mjambor@suse.cz>
19469 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
19470 args_to_skip, use those from node instead. Copy args_to_skip and
19471 combined_args_to_skip from node to the new thunk.
19472 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
19473 (cgraph_create_virtual_clone): Moved computation of
19474 combined_args_to_skip...
19475 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
19477 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
19479 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
19480 redundant diagnostic machinary.
19482 2014-06-27 Richard Biener <rguenther@suse.de>
19484 * tree-ssa-math-opts.c (bswap_replace): Fix
19485 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
19487 2014-06-27 Martin Liska <mliska@suse.cz>
19489 * gimple.h (gimple_location_safe): New function introduced.
19490 * cgraphunit.c (walk_polymorphic_call_targets): Usage
19491 of gimple_location_safe replaces gimple_location.
19492 (gimple_fold_call): Likewise.
19493 * ipa-devirt.c (ipa_devirt): Likewise.
19494 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19495 * ipa.c (walk_polymorphic_call_targets): Likewise.
19496 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
19498 2014-06-27 Jakub Jelinek <jakub@redhat.com>
19500 PR tree-optimization/57233
19501 PR tree-optimization/61299
19502 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
19504 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
19505 would be lowered to scalar shifts, check if corresponding
19506 shifts and vector BIT_IOR_EXPR are supported and don't lower
19507 or lower just to narrower vector type in that case.
19508 * expmed.c (expand_shift_1): Fix up handling of vector
19509 shifts and rotates.
19511 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
19514 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
19516 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
19518 * doc/invoke.texi (-fsemantic-interposition): Document.
19519 * common.opt (fsemantic-interposition): New flag.
19520 * varasm.c (decl_replaceable_p): Use it.
19522 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19525 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
19526 extraction other than index 3.
19528 2014-06-26 Teresa Johnson <tejohnson@google.com>
19530 * doc/invoke.texi: Fix typo.
19531 * dumpfile.c: Add support for documented -fdump-* options
19532 optimized/missed/note/optall.
19534 2014-06-26 Martin Jambor <mjambor@suse.cz>
19536 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
19537 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
19538 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
19539 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
19540 * opts.c (default_options_optimization): Set
19541 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
19542 * doc/invoke.texi (allow-load-data-races)
19543 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
19544 (allow-store-data-races): Document the new default.
19546 2014-06-26 Martin Jambor <mjambor@suse.cz>
19548 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
19549 renamed to ipa_impossible_devirt_target. Fix typo.
19550 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
19551 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
19552 ipa_impossible_devirt_target.
19554 2014-06-26 Richard Biener <rguenther@suse.de>
19556 PR tree-optimization/61607
19557 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
19558 explaining why we restrict copies on loop depth.
19559 * tree-ssa-dom.c (cprop_operand): Remove restriction on
19561 (record_equivalences_from_phis): Instead add it here.
19563 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
19565 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
19566 (LTO_WRAPPER_OBJS): New variable.
19567 (lto-wrapper$(exeext)): Use it.
19568 * collect2.c: Include "collect-utils.h".
19569 (verbose, debug): Remove variables.
19570 (at_file_supplied): No longer static.
19571 (tool_name): New variable.
19572 (do_wait, fork_execute, maybe_unlink): Don't declare.
19573 (tool_cleanup): No longer static.
19574 (notice): Remove function.
19575 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
19576 fork_execute calls.
19577 (collect_wait, do_wait, collect_execute): Remove functions.
19578 (maybe_unlink): No longer static.
19579 * collect2.h (verbose, debug): Don't declare.
19580 (at_file_supplied): Declare.
19581 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
19583 (collect_execute): Replace with implementation from collect2, plus a
19584 new arg use_atfile. All callers changed.
19585 (collect_wait): Replace with implementation from collect2.
19586 (maybe_unlink_file): Remove function.
19587 (fork_execute): Replace with implementation from collect2, plus a
19588 new arg use_atfile. All callers changed.
19589 (do_wait): Add call to utils_cleanup to the error path.
19590 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
19591 (tool_cleanup): Adjust declarations.
19592 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
19593 * tlink.c: Include "collect-utils.h".
19594 (tlink_execute): New arg use_atfile. All callers changed.
19595 (tlink_init, tlink_execute): Remove declarations.
19597 * collect-utils.c (save_temps): New variable.
19598 (do_wait): Use it instead of debug. Use fatal_error.
19599 * collect-utils.h (save_temps): Declare.
19600 * collect2.c (verbose): Rename from vflag. All uses changed.
19601 (tool_cleanup): New function, copied from collect_atexit.
19602 (collect_atexit, handler): Just call it.
19603 * collect2.h (verbose): Declaration renamed from vflag.
19604 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
19607 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
19608 (lto-wrapper$(exeext)): Link with collect-utils.o.
19609 * collect-utils.c: New file.
19610 * collect-utils.h: New file.
19611 * lto-wrapper.c: Include "collect-utils.h".
19612 (args_name): Delete variable.
19613 (tool_name): New variable.
19614 (tool_cleanup): New function.
19615 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
19616 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
19617 (fork_execute): Remove functions.
19619 2014-06-26 Nick Clifton <nickc@redhat.com>
19621 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
19623 * doc/extend.texi (Function Attributes): Fix typo in description
19624 of RX vector attribute.
19626 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
19628 * config.gcc (supported_defaults): Error when passing either
19629 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
19631 2014-06-26 Richard Biener <rguenther@suse.de>
19633 * tree-ssa-dom.c (cprop_operand): Remove restriction on
19634 propagating volatile pointers.
19636 2014-06-26 Richard Biener <rguenther@suse.de>
19638 PR tree-optimization/61607
19639 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
19640 loop if we redirected its latch edge.
19641 (thread_block_1): Do not cancel loops prematurely.
19643 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
19645 * toplev.c (backend_init_target): Move init_emit_regs and
19647 (backend_init) ... here; skip ira_init_once and backend_init_target.
19648 (target_reinit) ... and here; clear
19649 this_target_rtl->lang_dependent_initialized.
19650 (lang_dependent_init_target): Clear
19651 this_target_rtl->lang_dependent_initialized;
19652 break out rtl initialization to ...
19653 (initialize_rtl): ... here; call also backend_init_target
19655 * toplev.h (initialize_rtl): New function.
19656 * function.c: Include toplev.h
19657 (init_function_start): Call initialize_rtl.
19658 * rtl.h (target_rtl): Add target_specific_initialized,
19659 lang_dependent_initialized.
19661 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
19662 Jakub Jelinek <jakub@redhat.com>
19664 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
19666 2014-06-25 Tom de Vries <tom@codesourcery.com>
19668 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
19670 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
19672 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
19673 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
19674 Issue a strict overflow warning if appropriate.
19676 2014-06-25 Martin Liska <mliska@suse.cz>
19678 IPA REF refactoring
19679 * Makefile.in: Removed header file (ipa-ref-inline.h).
19680 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
19682 (cgraph_speculative_call_info): Likewise.
19683 (cgraph_for_node_thunks_and_aliases): Likewise.
19684 (cgraph_for_node_and_aliases): Likewise.
19685 (verify_cgraph_node): Likewise.
19686 * cgraph.h: Batch of IPA REF functions become member functions of
19687 symtab_node: add_reference, maybe_add_reference, clone_references,
19688 clone_referring, clone_reference, find_reference,
19689 remove_stmt_references, remove_all_references,
19690 remove_all_referring, dump_references, dump_referring,
19691 has_alias_p, iterate_reference, iterate_referring.
19692 * cgraphbuild.c (record_reference): New IPA REF function used.
19693 (record_type_list): Likewise.
19694 (record_eh_tables): Likewise.
19695 (mark_address): Likewise.
19696 (mark_load): Likewise.
19697 (mark_store): Likewise.
19698 (pass_build_cgraph_edges): Likewise.
19699 (rebuild_cgraph_edge): Likewise.
19700 (cgraph_rebuild_references): Likewise.
19701 (pass_remove_cgraph_callee_edges): Likewise.
19702 * cgraphclones.c (cgraph_clone_node): Likewise.
19703 (cgraph_create_virtual_clone): Likewise.
19704 (cgraph_materialize_clone): Likewise.
19705 (cgraph_materialize_all_clones): Likewise.
19706 * cgraphunit.c (cgraph_reset_node): Likewise.
19707 (cgraph_reset_node): Likewise.
19708 (analyze_function): Likewise.
19709 (assemble_thunks_and_aliases): Likewise.
19710 (expand_function): Likewise.
19711 * ipa-comdats.c (propagate_comdat_group): Likewise.
19712 (enqueue_references): Likewise.
19713 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
19714 (create_specialized_node): Likewise.
19715 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
19716 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
19717 * ipa-inline.c (reset_edge_caches): Likewise.
19718 (update_caller_keys): Likewise.
19719 (execute): Likewise.
19720 * ipa-prop.c (remove_described_reference): Likewise.
19721 (propagate_controlled_uses): Likewise.
19722 (ipa_edge_duplication_hook): Likewise.
19723 (ipa_modify_call_arguments): Likewise.
19724 * ipa-pure-const.c (propagate_pure_const): Likewise.
19725 * ipa-ref-inline.h: Header file removed, functions moved
19726 to symtab_node class.
19727 * ipa-ref.c (remove_reference): New class member function.
19728 (cannot_lead_to_return): New class member function.
19729 (referring_ref_list): Likewise.
19730 (referred_ref_list): Likewise.
19731 Rest of functions moved to symtab_node class.
19732 * ipa-ref.h: New member functions remove_reference,
19733 cannot_lead_to_return, referring_ref_list, referred_ref_list added
19735 ipa_ref_list class has new member functions: first_reference,
19736 first_referring, clear, nreferences.
19737 * ipa-reference.c (analyze_function): New IPA REF function used.
19738 (write_node_summary_p): Likewise.
19739 (ipa_reference_write_optimization_summary): Likewise.
19740 * ipa-split.c (split_function): Likewise.
19741 * ipa-utils.c (ipa_reverse_postorder): Likewise.
19742 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
19743 (function_and_variable_visibility): Likewise.
19744 * ipa.c (has_addr_references_p): Likewise.
19745 (process_references): Argument type changed.
19746 (symtab_remove_unreachable_nodes): New IPA REF function used.
19747 (process_references): Likewise.
19748 (set_writeonly_bit): Likewise.
19749 * lto-cgraph.c: Implementation of new symtab_node member functions
19750 that uses new IPA REF functions.
19751 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
19753 * lto-streamer-out.c (output_symbol_p): Likewise.
19754 * lto-streamer.h (referenced_from_this_partition_p): Argument type
19756 * symtab.c: Implementation of new IPA REF API.
19757 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
19758 (ipa_tm_create_version): Likewise.
19759 (ipa_tm_execute): Likewise.
19760 * tree-emutls.c (gen_emutls_addr): Likewise.
19761 * tree-inline.c (copy_bb): Likewise.
19762 (delete_unreachable_blocks_update_callgraph): Likewise.
19763 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
19764 (varpool_for_node_and_aliases): Likewise.
19766 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
19768 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
19770 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
19773 * fold-const.c (fold_checksum_tree): Use a hash_table of const
19774 tree_node * instead of tree_node *.
19776 (print_fold_checksum): Likewise.
19777 (fold_check_failed): Likewise.
19778 (debug_fold_checksum): Likewise.
19779 (fold_build1_stat_loc): Likewise.
19780 (fold_build2_stat_loc): Likewise.
19781 (fold_build3_stat_loc): Likewise.
19782 (fold_build_call_array_loc): Likewise.
19784 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
19786 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
19787 implementation with call to...
19788 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
19790 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
19793 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
19795 PR tree-optimization/57742
19796 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
19797 after replacing the statement.
19799 2014-06-25 Nick Clifton <nickc@redhat.com>
19801 * config/v850/v850.c (GHS_default_section_names): Change to const
19803 (GHS_current_section_names): Likewise.
19804 (v850_insert_attributes): Do not build strings, just assign the
19805 names directly. Change the type of 'chosen_section' to const
19807 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
19808 directly to the array entry.
19809 * config/v850/v850.h (GHS_default_section_names): Change to const
19811 (GHS_current_section_names): Likewise.
19813 2014-06-25 Jakub Jelinek <jakub@redhat.com>
19815 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
19816 (LANG_HOOKS_DECLS): Add it.
19817 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
19819 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
19820 * langhooks.h (struct lang_hooks_for_decls): Add
19821 omp_clause_linear_ctor hook.
19822 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
19823 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
19824 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
19825 combined simd loop use omp_clause_linear_ctor hook.
19827 2014-06-24 Cong Hou <congh@google.com>
19829 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
19830 pattern recognition.
19831 (type_conversion_p): PROMOTION is true if it's a type promotion
19832 conversion, and false otherwise. Return true if the given expression
19833 is a type conversion one.
19834 * tree-vectorizer.h: Adjust the number of patterns.
19835 * tree.def: Add SAD_EXPR.
19836 * optabs.def: Add sad_optab.
19837 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
19838 * expr.c (expand_expr_real_2): Likewise.
19839 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
19840 * gimple.c (get_gimple_rhs_num_ops): Likewise.
19841 * optabs.c (optab_for_tree_code): Likewise.
19842 * tree-cfg.c (estimate_operator_cost): Likewise.
19843 * tree-ssa-operands.c (get_expr_operands): Likewise.
19844 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
19845 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
19846 * doc/generic.texi: Add document for SAD_EXPR.
19847 * doc/md.texi: Add document for ssad and usad.
19849 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
19851 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
19852 qualification in cast.
19854 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
19856 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
19857 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
19858 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
19859 (tree_function_decl): ... here.
19860 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
19861 streaming of vindex to ...
19862 (write_ts_function_decl_tree_pointers): ... here.
19863 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
19864 Do not stream DECL_VINDEX.
19865 (lto_input_ts_function_decl_tree_pointers): Stream it here.
19867 2014-06-24 Catherine Moore <clm@codesourcery.com>
19868 Sandra Loosemore <sandra@codesourcery.com>
19870 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
19871 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
19872 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
19874 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
19876 * doc/invoke.texi (Warning Options): Remove duplicated
19877 -Wmaybe-uninitialized.
19879 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
19881 PR tree-optimization/57742
19882 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
19883 (handle_builtin_malloc, handle_builtin_memset): New functions.
19884 (strlen_optimize_stmt): Call them.
19885 * passes.def: Move strlen after loop+dom but before vrp.
19887 2014-06-24 Jakub Jelinek <jakub@redhat.com>
19890 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
19891 model family 6 CPU with has_longmode never use a CPU without
19894 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
19897 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
19900 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
19902 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
19903 * dominance.c (iterate_fix_dominators): Use hash_map instead of
19905 * hash-map.h: New file.
19906 * ipa-comdats.c: Use hash_map instead of pointer_map.
19908 * lto-section-out.c: Adjust.
19909 * lto-streamer.h: Replace pointer_map with hash_map.
19910 * symtab.c (verify_symtab): Likewise.
19911 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
19912 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
19913 * tree-streamer.h: Likewise.
19914 * tree-streamer.c: Adjust.
19915 * pointer-set.h: Remove pointer_map.
19917 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
19919 * hash-table.h: Add a template arg to choose between storing values
19920 and storing pointers to values, and then provide partial
19921 specializations for both.
19922 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
19923 should store, not the type values should point to.
19924 * tree-into-ssa.c (var_info_hasher): Likewise.
19925 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
19926 * tree-complex.c: Adjust.
19927 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
19928 table instead of int_tree_map *.
19929 * tree-parloops.c: Adjust.
19930 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
19931 type is being stored.
19932 * tree-vectorizer.c: Adjust.
19934 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
19936 * hash-table.h: Remove a layer of indirection from hash_table so that
19937 it contains the hash table's data instead of a pointer to the data.
19938 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
19939 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
19940 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
19941 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
19942 fold-const.c, gcse.c, ggc-common.c,
19943 gimple-ssa-strength-reduction.c, gimplify.c,
19944 graphite-clast-to-gimple.c, graphite-dependences.c,
19945 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
19946 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
19947 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
19948 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
19949 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
19950 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
19951 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
19952 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
19953 tree-ssa-live.c, tree-ssa-loop-im.c,
19954 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
19955 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
19956 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
19957 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
19958 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
19959 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
19960 vtable-verify.c, vtable-verify.h: Adjust.
19962 2014-06-24 Richard Biener <rguenther@suse.de>
19964 PR tree-optimization/61572
19965 * tree-ssa-sink.c (statement_sink_location): Do not sink
19966 loads from hard registers.
19968 2014-06-24 Jakub Jelinek <jakub@redhat.com>
19970 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
19971 not mentioned in clauses use private clause if the iterator is
19972 declared in #pragma omp for simd, and when adding lastprivate
19973 instead, add it to the outer #pragma omp for too. Diagnose
19974 if the variable is private in outer context. For simd collapse > 1
19975 loops, replace all iterators with temporaries.
19976 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
19977 same even in collapse > 1 loops.
19979 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
19980 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
19982 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
19983 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
19985 (gimplify_adjust_omp_clauses): Likewise.
19986 * omp-low.c (lower_rec_simd_input_clauses,
19987 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
19988 safelen the same as safelen(1).
19989 * tree-nested.c (convert_nonlocal_omp_clauses,
19990 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
19991 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
19992 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
19993 Fixup handling of GIMPLE_OMP_TARGET.
19994 (convert_tramp_reference_stmt, convert_gimple_call): Handle
19997 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
19999 PR tree-optimization/61554
20000 * tree-ssa-propagate.c: Include "bitmap.h".
20001 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20002 properly update constructor/destructor.
20003 (substitute_and_fold_dom_walker::before_dom_children):
20004 Remove call to gimple_purge_dead_eh_edges, add bb->index to
20005 need_eh_cleaup instead.
20006 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20009 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20011 * varpool.c (dump_varpool_node): Dump used_by_single_function.
20012 * tree-pass.h (make_pass_ipa_single_use): New pass.
20013 * cgraph.h (used_by_single_function): New flag.
20014 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20016 * passes.def (pass_ipa_single_use): Scedule.
20017 * ipa.c (BOTTOM): New macro.
20018 (meet): New function
20019 (propagate_single_user): New function.
20020 (ipa_single_use): New function.
20021 (pass_data_ipa_single_use): New pass.
20022 (pass_ipa_single_use): New pass.
20023 (pass_ipa_single_use::gate): New gate.
20024 (make_pass_ipa_single_use): New function.
20026 2014-06-23 Kai Tietz <ktietz@redhat.com>
20029 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20030 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20032 2014-06-23 Richard Biener <rguenther@suse.de>
20034 * tree-ssa-loop.c (gate_loop): New function.
20035 (pass_tree_loop::gate): Call it.
20036 (pass_data_tree_no_loop, pass_tree_no_loop,
20037 make_pass_tree_no_loop): New.
20038 * tree-vectorizer.c: Include tree-scalar-evolution.c
20039 (pass_slp_vectorize::execute): Initialize loops and SCEV if
20041 (pass_slp_vectorize::clone): New method.
20042 * timevar.def (TV_TREE_NOLOOP): New.
20043 * tree-pass.h (make_pass_tree_no_loop): Declare.
20044 * passes.def (pass_tree_no_loop): New pass group with
20047 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
20050 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20051 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20053 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20055 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20056 "yes" where needed.
20058 2014-06-23 Alan Modra <amodra@gmail.com>
20061 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20062 to zero on debug statements.
20064 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20067 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20068 Ignore third operand if present by marking qualifier_internal.
20070 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20072 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20074 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20075 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20076 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20077 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20078 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20079 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20080 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20081 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20082 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20083 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20084 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20085 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20086 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20087 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20088 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20089 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20090 logic in GCC vector extensions
20092 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20093 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20094 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20095 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20096 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20097 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20098 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20099 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20100 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20101 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20103 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20105 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20108 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20109 (vget_low_s64): Use __GET_LOW macro.
20110 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20111 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20112 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20113 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20114 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20116 (vcombine_s64): Use GCC vector extensions; remove cast.
20117 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20118 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20119 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20120 Fix type signature; remove cast.
20122 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20125 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20127 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20129 (BUILTIN_VD1): New.
20130 (BUILTIN_VD_RE): Remove.
20131 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20132 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20133 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20134 variant but not df.
20135 (vreinterpretv1df*, vreinterpret*v1df): New.
20136 (vreinterpretdf*, vreinterpret*df): Remove.
20137 * config/aarch64/aarch64-simd.md (aarch64_create,
20138 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20139 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20141 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20142 (vcreate_f64): Remove cast, use v1df builtin.
20143 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20144 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20145 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20146 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20147 vmov_n_f64, vst1_f64): Use gcc vector extensions.
20148 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20149 add range check using __builtin_aarch64_im_lane_boundsi.
20150 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20151 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20152 type signature, use gcc vector extensions.
20153 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20154 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20155 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20156 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20157 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20158 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20159 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20160 vreinterpret_u64_f64): Use v1df builtin not df.
20162 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20164 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20167 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20169 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20172 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20174 * loop-invariant.c (pre_check_invariant_p): New function.
20175 (find_invariant_insn): Call pre_check_invariant_p.
20177 2014-06-22 Richard Henderson <rth@redhat.com>
20180 * compare-elim.c (struct comparison): Add eh_note.
20181 (find_comparison_dom_walker::before_dom_children): Don't eliminate
20182 a redundant comparison in a different EH region. Purge EH edges if
20185 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20187 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20188 (var_shift): Use it.
20189 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20190 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20191 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20192 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20193 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20194 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20195 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20196 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20197 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20198 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20199 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20200 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20201 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20202 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20203 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20204 *rotldi3_internal15be): Use the new attribute. Merge register and
20205 integer alternatives.
20207 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20209 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20210 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20211 split, *ashrdi3_internal3 and split): Delete, merge into...
20212 (ashr<mode>3): New expander.
20213 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20214 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
20216 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20218 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20219 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20220 *rotldi3_internal3 and split): Delete, merge into...
20221 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20222 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
20223 Use "rotlw" extended mnemonic.
20225 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20227 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20228 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20229 and split, *ashldi3_internal3 and split): Delete, merge into...
20230 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20231 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
20233 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20235 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20236 (lshrsi3, two anonymous define_insns and define_splits,
20237 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20238 *lshrdi3_internal3 and split): Delete, merge into...
20239 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20240 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
20242 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20244 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20245 Remove "O" alternative.
20247 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
20249 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20250 (mips_move_from_gpr_cost): Likewise.
20251 (mips_register_move_cost): Update accordingly.
20252 (mips_secondary_reload_class): Remove name of in_p.
20254 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
20257 * config/i386/i386.md (x86_64_shrd, x86_shrd,
20258 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20260 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20262 * config/nios2/nios2.c: Include "builtins.h".
20264 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20266 * cgraph.h (tls_model_names): New variable.
20267 * print-tree.c (print_node): Simplify.
20268 * varpool.c (tls_model_names): New variable.
20269 (dump_varpool_node): Output tls model.
20271 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20273 * ipa-visibility.c (function_and_variable_visibility): Disable
20274 temporarily local aliases for some targets.
20276 2014-06-20 Marek Polacek <polacek@redhat.com>
20278 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20279 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20280 into SANITIZE_UNDEFINED.
20281 * doc/invoke.texi: Describe -fsanitize=bounds.
20282 * gimplify.c (gimplify_call_expr): Add gimplification of internal
20283 functions created in the FEs.
20284 * internal-fn.c: Move "internal-fn.h" after "tree.h".
20285 (expand_UBSAN_BOUNDS): New function.
20286 * internal-fn.def (UBSAN_BOUNDS): New internal function.
20287 * internal-fn.h: Don't define internal functions here.
20288 * opts.c (common_handle_option): Add -fsanitize=bounds.
20289 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20290 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20291 * tree-core.h: Define internal functions here.
20292 (struct tree_base): Add ifn field.
20293 * tree-pretty-print.c: Include "internal-fn.h".
20294 (dump_generic_node): Handle functions without CALL_EXPR_FN.
20295 * tree.c (get_callee_fndecl): Likewise.
20296 (build_call_expr_internal_loc): New function.
20297 * tree.def (CALL_EXPR): Update description.
20298 * tree.h (CALL_EXPR_IFN): Define.
20299 (build_call_expr_internal_loc): Declare.
20300 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20302 (ubsan_type_descriptor): Change bool parameter to enum
20303 ubsan_print_style. Adjust the code. Add handling of
20305 (ubsan_expand_bounds_ifn): New function.
20306 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20307 (ubsan_build_overflow_builtin): Likewise.
20308 (instrument_bool_enum_load): Likewise.
20309 (ubsan_instrument_float_cast): Likewise.
20310 * ubsan.h (enum ubsan_print_style): New enum.
20311 (ubsan_expand_bounds_ifn): Declare.
20312 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
20314 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
20316 * config/rs6000/rs6000.md: Append `DONE' to preparation
20317 statements of `bswap' pattern splitters.
20319 2014-06-20 Tom de Vries <tom@codesourcery.com>
20321 * target.def (call_fusage_contains_non_callee_clobbers): Update
20323 * doc/tm.texi: Regenerate.
20325 2014-06-20 Yury Gribov <y.gribov@samsung.com>
20326 Max Ostapenko <m.ostapenko@partner.samsung.com>
20329 * asan.c (instrument_strlen_call): Fixed instrumentation of
20332 2014-06-20 Martin Jambor <mjambor@suse.cz>
20335 * ipa-prop.c (impossible_devirt_target): New function.
20336 (try_make_edge_direct_virtual_call): Use it, also instead of
20339 2014-06-20 Yury Gribov <y.gribov@samsung.com>
20340 Max Ostapenko <m.ostapenko@partner.samsung.com>
20343 * asan.c (build_check_stmt): Add condition.
20345 2014-06-20 Martin Jambor <mjambor@suse.cz>
20348 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20351 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20353 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20355 (VCONQ): Make comment more helpful.
20357 * config/aarch64/aarch64-simd.md
20358 (aarch64_sqdmulh_lane<mode>):
20359 Use VCOND for operands 2. Update lane checking and flipping logic.
20360 (aarch64_sqrdmulh_lane<mode>): Likewise.
20361 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20362 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20363 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20364 attribute of operand 3 to VCOND.
20365 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20366 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20367 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20368 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20369 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20370 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20372 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20373 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20374 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20375 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20376 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20377 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20378 operand to VCOND. Update lane flipping and bounds checking logic.
20379 (aarch64_sqdmlal2_lane<mode>): Likewise.
20380 (aarch64_sqdmlsl_lane<mode>): Likewise.
20381 (aarch64_sqdmull_lane<mode>): Likewise.
20382 (aarch64_sqdmull2_lane<mode>): Likewise.
20383 (aarch64_sqdmlal_laneq<mode>):
20384 Replace VCON usage with VCONQ.
20385 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20386 (aarch64_sqdmlal2_laneq<mode>): Emit
20387 aarch64_sqdmlal2_laneq<mode>_internal insn.
20388 Replace VCON with VCONQ.
20389 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20390 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20391 (aarch64_sqdmull_laneq<mode>): Emit
20392 aarch64_sqdmull_laneq<mode>_internal insn.
20393 Replace VCON with VCONQ.
20394 (aarch64_sqdmull2_laneq<mode>): Emit
20395 aarch64_sqdmull2_laneq<mode>_internal insn.
20396 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
20397 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
20398 of 3rd argument to int16x4_t.
20399 (vqdmlalh_lane_s16): Likewise.
20400 (vqdmlslh_lane_s16): Likewise.
20401 (vqdmull_high_lane_s16): Likewise.
20402 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
20403 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
20404 (vqdmlsl_lane_s16): Likewise.
20405 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
20406 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
20407 (vqdmlals_lane_s32): Likewise.
20408 (vqdmlsls_lane_s32): Likewise.
20409 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
20410 (vqdmulls_lane_s32): Likewise.
20411 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
20412 (vqdmlsl_lane_s32): Likewise.
20413 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
20414 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
20415 (vqrdmulhh_lane_s16): Likewise.
20416 (vqdmlsl_high_lane_s16): Likewise.
20417 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
20418 (vqdmlsl_high_lane_s32): Likewise.
20419 (vqrdmulhs_lane_s32): Likewise.
20421 2014-06-20 Tom de Vries <tom@codesourcery.com>
20423 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
20424 get_call_reg_set_usage.
20426 2014-06-20 Tom de Vries <tom@codesourcery.com>
20428 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
20429 it contains all call_used_regs.
20431 2014-06-20 Tom de Vries <tom@codesourcery.com>
20433 * final.c (collect_fn_hard_reg_usage): Add and use variable
20434 function_used_regs.
20436 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20438 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
20439 (set_init_priority, get_init_priority, set_fini_priority,
20440 get_fini_priority): New methods.
20441 * tree.c (init_priority_for_decl): Remove.
20442 (init_ttree): Do not initialize init priority.
20443 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
20444 (decl_priority_info): Remove.
20445 (decl_init_priority_insert): Rewrite.
20446 (decl_fini_priority_insert): Rewrite.
20447 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
20448 tree_priority_map_marked_p): Remove.
20449 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
20450 * lto-streamer-out.c (hash_tree): Do not hash priorities.
20451 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
20452 not output priorities.
20453 (pack_ts_function_decl_value_fields): Likewise.
20454 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20455 not input priorities.
20456 (unpack_ts_function_decl_value_fields): Likewise.
20457 * symtab.c (symbol_priority_map): Declare.
20458 (init_priority_hash): Declare.
20459 (symtab_unregister_node): Unregister from priority hash, too.
20460 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
20462 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
20463 (symbol_priority_info): New function.
20464 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
20466 * tree-core.h (tree_priority_map): Remove.
20468 2014-06-20 Jakub Jelinek <jakub@redhat.com>
20470 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
20471 0xff to uint64_t before shifting it up.
20473 2014-06-20 Julian Brown <julian@codesourcery.com>
20474 Chung-Lin Tang <cltang@codesourcery.com>
20476 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
20477 TARGET_THUMB1_ONLY. Add comments.
20479 2014-06-19 Tom de Vries <tom@codesourcery.com>
20481 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
20482 return type to void.
20483 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
20485 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20487 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
20488 as "move", from depends_on.
20490 2014-06-19 Terry Guo <terry.guo@arm.com>
20492 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
20495 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
20497 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
20499 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
20501 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
20504 * config/sh/sh.c (prepare_move_operands): Don't process TLS
20505 addresses here if reload in progress or completed.
20507 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
20509 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
20510 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
20511 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
20512 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
20513 (mips_register_priority): New function that implements the target
20514 hook TARGET_REGISTER_PRIORITY.
20515 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
20516 (mips_lra_p): Likewise for TARGET_LRA_P.
20517 (TARGET_REGISTER_PRIORITY): Define macro.
20518 (TARGET_SPILL_CLASS): Likewise.
20519 (TARGET_LRA_P): Likewise.
20520 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
20522 (REG_CLASS_NAMES): Likewise.
20523 (REG_CLASS_CONTENTS): Likewise.
20524 (BASE_REG_CLASS): Use M16_SP_REGS.
20525 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
20526 New set attribute to enable alternatives depending on the register
20528 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
20529 (*lea64): Disable pattern for MIPS16.
20530 * config/mips/mips.opt (mlra): New option.
20532 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
20534 * lra-constraints.c (base_to_reg): New function.
20535 (process_address): Use new function.
20537 2014-06-18 Tom de Vries <tom@codesourcery.com>
20539 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
20540 * config/aarch64/aarch64.c
20541 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
20542 (aarch64_emit_call_insn): New function.
20543 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
20545 * config/aarch64/aarch64.md (define_expand "call_internal")
20546 (define_expand "call_value_internal", define_expand "sibcall_internal")
20547 (define_expand "sibcall_value_internal"): New.
20548 (define_expand "call", define_expand "call_value")
20549 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
20550 expand variant and aarch64_emit_call_insn.
20552 2014-06-18 Radovan Obradovic <robradovic@mips.com>
20553 Tom de Vries <tom@codesourcery.com>
20555 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
20556 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
20558 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
20559 clobbers to CALL_INSN_FUNCTION_USAGE.
20560 (define_expand "sibcall_internal")
20561 (define_expand "sibcall_value_internal"): New.
20562 (define_expand "call", define_expand "call_value"): Add argument to
20563 arm_emit_call_insn.
20564 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
20565 (define_expand "sibcall_value"): Use sibcall_value_internal and
20566 arm_emit_call_insn.
20568 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20570 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
20572 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20574 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
20577 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20579 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
20580 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
20581 annotations. Fix DWARF information.
20583 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20585 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
20586 __udivmoddi4, and fixups for negative operands.
20588 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20590 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
20592 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20594 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
20597 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20599 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
20602 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20604 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
20605 describing register usage on function entry and exit.
20607 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20609 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
20610 (__aeabi_ldivmod): Fix whitespace.
20612 2014-06-18 Andreas Schwab <schwab@suse.de>
20614 * doc/md.texi (Standard Names): Use @itemx for grouped items.
20615 Remove blank line after @item.
20617 2014-06-18 Richard Henderson <rth@redhat.com>
20620 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
20622 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
20624 * config/arm/arm.c (neon_vector_mem_operand): Allow register
20625 POST_MODIFY for neon loads and stores.
20626 (arm_print_operand): Output post-index register for neon loads and
20629 2014-06-18 Richard Biener <rguenther@suse.de>
20631 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
20633 2014-06-18 Richard Biener <rguenther@suse.de>
20635 * tree-pass.h (make_pass_dce_loop): Remove.
20636 * passes.def: Replace pass_dce_loop with pass_dce.
20637 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
20638 changed free niter estimates and reset the scev cache.
20639 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
20640 make_pass_dce_loop): Remove.
20641 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
20642 (fini_copy_prop): Return whether something changed. Always
20643 let substitute_and_fold perform DCE and free niter estimates
20644 and reset the scev cache if so.
20645 (execute_copy_prop): If sth changed schedule cleanup-cfg.
20646 (pass_data_copy_prop): Do not unconditionally schedule
20647 cleanup-cfg or update-ssa.
20649 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
20651 PR tree-optimization/61518
20652 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
20653 reduction var is used in reduction stmt or phi-function only.
20655 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20657 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
20659 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
20661 PR tree-optimization/61517
20662 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
20663 whose rhs's first tree is the source expression instead of the
20665 (find_bswap_or_nop): Likewise.
20666 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
20667 gimple stmt whose rhs's first tree is the source. In the memory source
20668 case, move the stmt to be replaced close to one of the original load to
20669 avoid the problem of a store between the load and the stmt's original
20671 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
20674 2014-06-18 Andreas Schwab <schwab@suse.de>
20676 PR rtl-optimization/54555
20677 * postreload.c (move2add_use_add2_insn): Substitute
20678 STRICT_LOW_PART only if it is cheaper.
20680 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
20682 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
20683 Do not use unspec as call operand. Use memory_operand instead of
20684 memory_nox32_operand and add "m" operand constraint. Disable
20685 pattern for TARGET_X32.
20686 (*sibcall_pop_memory): Ditto.
20687 (*sibcall_value_memory): Ditto.
20688 (*sibcall_value_pop_memory): Ditto.
20689 (sibcall peepholes): Merge SImode and DImode patterns using
20690 W mode iterator. Use memory_operand instead of memory_nox32_operand.
20691 Disable pattern for TARGET_X32. Check if eliminated register is
20692 really dead after call insn. Generate call RTX without unspec operand.
20693 (sibcall_value peepholes): Ditto.
20694 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
20695 instead of memory_nox32_operand. Check if eliminated register is
20696 really dead after call insn. Generate call RTX without unspec operand.
20697 (sibcall_value_pop peepholes): Ditto.
20698 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
20700 2014-06-18 Terry Guo <terry.guo@arm.com>
20703 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
20706 2014-06-18 Olivier Hainque <hainque@adacore.com>
20708 * tree-core.h (tree_block): Add an "end_locus" field, allowing
20709 memorization of the end of block source location.
20710 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
20711 * gimplify.c (gimplify_bind_expr): Propagate the block start and
20712 end source location info we have on the block entry/exit code we
20715 2014-06-18 Richard Biener <rguenther@suse.de>
20717 * common.opt (fssa-phiopt): New option.
20718 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
20720 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
20721 * doc/invoke.texi (-fssa-phiopt): Document.
20723 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20725 * genattrtab.c (n_bypassed): New variable.
20726 (process_bypasses): Initialise n_bypassed.
20727 Count number of bypassed reservations.
20728 (make_automaton_attrs): Allocate space for bypassed reservations
20729 rather than number of bypasses.
20731 2014-06-18 Richard Biener <rguenther@suse.de>
20733 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
20734 we propagated anything.
20735 (substitute_and_fold_dom_walker::before_dom_children): Something
20736 changed if we propagated into PHI arguments.
20737 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
20740 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
20742 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
20744 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
20745 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
20746 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
20747 Introduces alternative way of loads group permutaions.
20748 (vect_transform_grouped_load): Try alternative way of permutations.
20750 2014-06-18 Jakub Jelinek <jakub@redhat.com>
20752 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
20753 changed in ORT_TARGET region, don't jump to do_outer.
20754 (struct gimplify_adjust_omp_clauses_data): New type.
20755 (gimplify_adjust_omp_clauses_1): Adjust for data being
20756 a struct gimplify_adjust_omp_clauses_data pointer instead
20757 of tree *. Pass pre_p as a new argument to
20758 lang_hooks.decls.omp_finish_clause hook.
20759 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
20760 splay_tree_foreach to pass both list_p and pre_p.
20761 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
20762 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
20763 gimplify_adjust_omp_clauses callers.
20764 * langhooks.c (lhd_omp_finish_clause): New function.
20765 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
20766 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
20767 * langhooks.h (struct lang_hooks_for_decls): Add a new
20768 gimple_seq * argument to omp_finish_clause hook.
20769 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
20770 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
20771 (scan_omp_parallel, lower_omp_for): When adding
20772 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
20773 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
20774 * tree-nested.c (convert_nonlocal_omp_clauses,
20775 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
20776 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
20778 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
20780 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
20781 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
20783 2014-06-17 Xinliang David Li <davidxl@google.com>
20785 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
20786 * passes.c (pass_init_dump_file): Do not set initialize
20787 flag to false unconditionally.
20789 2014-06-17 Richard Biener <rguenther@suse.de>
20791 * genopinit.c (main): Use vec<>::qsort method.
20792 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
20794 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
20796 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
20798 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
20799 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
20800 (mips_move_to_gpr_cost): Remove ST_REGS case.
20801 (mips_move_from_gpr_cost): Likewise.
20802 (mips_register_move_cost): Likewise.
20803 (mips_secondary_reload_class): Likewise.
20805 2014-06-17 Richard Biener <rguenther@suse.de>
20807 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
20808 (pass_all_optimizations): Move 3rd copy-prop pass from after
20809 fre to before ifcombine/phiopt.
20811 2014-06-17 Richard Biener <rguenther@suse.de>
20813 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
20814 and allow all blocks to be forwarders.
20816 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
20819 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
20820 variable 'size'; calculate 'size' right in the front; use
20821 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
20822 pcum->aapcs_stack_words.
20824 2014-06-17 Nick Clifton <nickc@redhat.com>
20826 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
20827 (umulhi3, mulsidi3, umulsidi3): Likewise.
20829 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
20831 PR middle-end/61508
20832 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
20833 check for section name.
20835 2014-06-17 Richard Biener <rguenther@suse.de>
20837 * tree-ssa-propagate.c: Include domwalk.h.
20838 (substitute_and_fold): Outline main worker into a domwalker ...
20839 (substitute_and_fold_dom_walker::before_dom_children): ... here.
20840 Schedule stmts we can fully propagate for removal. Remove
20842 (substitute_and_fold): Apply a dominator walk to perform
20843 substitution. Process stmts scheduled for removal here.
20845 2014-06-17 Richard Biener <rguenther@suse.de>
20847 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
20848 of PHI node moving.
20850 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
20852 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
20853 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
20854 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
20855 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
20856 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
20858 (get_fpscr) : Likewise.
20860 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
20862 PR rtl-optimization/61325
20863 * lra-constraints.c (valid_address_p): Add forward declaration.
20864 (simplify_operand_subreg): Check address validity before and after
20865 alter_reg of memory subreg.
20867 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
20869 * config/i386/i386.c (decide_alg): Correctly handle
20870 maximum size of stringop algorithm.
20872 2014-06-16 Yury Gribov <y.gribov@samsung.com>
20874 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
20876 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
20878 PR rtl-optimization/61522
20879 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
20881 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
20884 * symtab.c (symtab_node::reset_section): New method.
20885 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
20887 * cgraph.h (reset_section): Declare.
20888 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
20889 do not consider comdat locals.
20890 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
20892 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
20893 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
20894 reset sections of symbols dragged out of the comdats.
20895 (function_and_variable_visibility): Reset sections of
20898 2014-06-16 Richard Biener <rguenther@suse.de>
20900 PR tree-optimization/61482
20901 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
20902 [-INF(OVF), +INF(OVF)] range.
20904 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
20906 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
20907 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
20908 handling 32-bit multiplication.
20910 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
20912 PR middle-end/61430
20913 * lra-lives.c (process_bb_lives): Skip creating copy during
20914 insn scan when src/dest has constrained to same regno.
20916 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
20918 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
20919 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
20921 2014-06-16 Yury Gribov <y.gribov@samsung.com>
20923 * asan.c (check_func): New function.
20924 (maybe_create_ssa_name): Likewise.
20925 (build_check_stmt_with_calls): Likewise.
20926 (use_calls_p): Likewise.
20927 (report_error_func): Change interface.
20928 (build_check_stmt): Allow non-integer lengths; add support
20930 (asan_instrument): Likewise.
20931 (instrument_mem_region_access): Moved code to build_check_stmt.
20932 (instrument_derefs): Likewise.
20933 (instrument_strlen_call): Likewise.
20934 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
20935 * doc/invoke.texi: Describe new parameter.
20936 * params.def: Define new parameter.
20937 * params.h: Likewise.
20938 * sanitizer.def: Describe new builtins.
20940 2014-06-16 Richard Biener <rguenther@suse.de>
20942 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20943 Make all defs available at the end.
20944 (eliminate): If we remove a PHI node schedule cfg-cleanup.
20946 2014-06-18 Jakub Jelinek <jakub@redhat.com>
20949 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
20951 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
20954 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
20955 initialization. Replace remaining use of uid.
20957 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
20959 * c-family/c-common.c (handle_tls_model_attribute): Use
20960 set_decl_tls_model.
20961 * c-family/c-common.c (handle_tls_model_attribute): Use
20962 set_decl_tls_model.
20963 * cgraph.h (struct varpool_node): Add tls_model.
20964 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
20965 * tree.h (DECL_TLS_MODEL): Update.
20966 (DECL_THREAD_LOCAL_P): Check that variable is static.
20967 (decl_tls_model): Declare.
20968 (set_decl_tls_model): Declare.
20969 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
20970 set symbol prorperties.
20971 (get_emutls_init_templ_addr): Cleanup.
20972 (new_emutls_decl): Update.
20973 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
20974 (lto_input_varpool_node): Likewise.
20975 * lto-streamer-out.c (hash_tree): Likewise.
20976 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20977 not stream DECL_TLS_MODEL.
20978 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
20979 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
20981 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
20983 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
20985 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
20987 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
20988 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
20990 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
20991 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
20992 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
20993 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
20994 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
20995 (df_get_artificial_defs, df_get_artificial_uses)
20996 (df_single_def, df_single_use): Update accordingly.
20997 (df_refs_chain_dump): Take the first element in a linked list as
20998 parameter, rather than a pointer to an array of pointers.
20999 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21000 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21001 (df_chain_create_bb_process_use): Likewise.
21002 (df_md_bb_local_compute_process_def): Likewise.
21003 * fwprop.c (process_defs, process_uses): Likewise.
21004 (register_active_defs, update_uses): Likewise.
21005 (forward_propagate_asm): Update for new df_ref linking.
21006 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21007 (df_null_ref_rec, df_null_mw_rec): Likewise.
21008 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21010 (df_scan_free_bb_info): Remove check for null artificial_defs.
21011 (df_install_ref_incremental): Adjust for new df_ref linking.
21012 Use a single-element insertion rather than a full sort.
21013 (df_ref_chain_delete_du_chain): Take the first element
21014 in a linked list as parameter, rather than a pointer to an array of
21016 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21017 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21018 (df_insn_info_delete): Remove check for null defs and call to
21019 df_scan_free_mws_vec.
21020 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21021 null rather than df_null_*_rec.
21022 (df_insn_rescan_debug_internal): Likewise, and update null
21023 checks in the same way. Remove check for null defs.
21024 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21025 Move a single element rather doing a full sort.
21026 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21028 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
21029 Initialize df_ref and df_mw_hardreg lists to null rather than
21031 (df_ref_compare): Take df_refs as parameter, transferring the
21032 old interface to...
21033 (df_ref_ptr_compare): ...this new function.
21034 (df_sort_and_compress_refs): Update accordingly.
21035 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21036 old interface to...
21037 (df_mw_ptr_compare): ...this new function.
21038 (df_sort_and_compress_mws): Update accordingly.
21039 (df_install_refs, df_install_mws): Return a linked list rather than
21040 an array of pointers.
21041 (df_refs_add_to_chains): Assert that old lists are empty rather
21043 (df_insn_refs_verify): Don't handle null defs speciailly.
21044 * web.c (union_match_dups): Update for new df_ref linking.
21046 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21048 * df.h (df_ref_create, df_ref_remove): Delete.
21049 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21050 (df_ref_remove): Likewise.
21052 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21054 * df.h (df_single_def, df_single_use): New functions.
21055 * ira.c (find_moveable_pseudos): Use them.
21057 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21059 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21060 * df-problems.c (df_note_bb_compute): Use it.
21061 * regstat.c (regstat_bb_compute_ri): Likewise.
21063 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21065 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21066 * cse.c (cse_extended_basic_block): Use them.
21067 * dce.c (mark_artificial_use): Likewise.
21068 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21069 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21070 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21071 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21072 (df_simulate_initialize_backwards): Likewise.
21073 (df_simulate_finalize_backwards): Likewise.
21074 (df_simulate_initialize_forwards): Likewise.
21075 (df_md_simulate_artificial_defs_at_top): Likewise.
21076 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21077 * regrename.c (init_rename_info): Likewise.
21078 * regstat.c (regstat_bb_compute_ri): Likewise.
21079 (regstat_bb_compute_calls_crossed): Likewise.
21081 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21083 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21084 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21085 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21086 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21087 * combine.c (create_log_links): Likewise.
21088 * compare-elim.c (find_flags_uses_in_insn): Likewise.
21089 (try_eliminate_compare): Likewise.
21090 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21091 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21092 (remove_reg_equal_equiv_notes_for_defs): Likewise.
21093 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21094 (word_dce_process_block, dce_process_block): Likewise.
21095 * ddg.c (def_has_ccmode_p): Likewise.
21096 * df-core.c (df_bb_regno_first_def_find): Likewise.
21097 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21098 * df-problems.c (df_rd_simulate_one_insn): Likewise.
21099 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21100 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21101 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21102 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21103 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21104 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21105 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21106 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21107 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21108 * fwprop.c (local_ref_killed_between_p): Likewise.
21109 (all_uses_available_at, free_load_extend): Likewise.
21110 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21111 * hw-doloop.c (scan_loop): Likewise.
21112 * ifcvt.c (dead_or_predicable): Likewise.
21113 * init-regs.c (initialize_uninitialized_regs): Likewise.
21114 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21115 (process_bb_node_lives): Likewise.
21116 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21117 (find_moveable_pseudos): Likewise.
21118 * loop-invariant.c (check_dependencies, record_uses): Likewise.
21119 * recog.c (peep2_find_free_register): Likewise.
21120 * ree.c (get_defs): Likewise.
21121 * regstat.c (regstat_bb_compute_ri): Likewise.
21122 (regstat_bb_compute_calls_crossed): Likewise.
21123 * sched-deps.c (find_inc, find_mem): Likewise.
21124 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21125 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21126 * shrink-wrap.c (requires_stack_frame_p): Likewise.
21127 (prepare_shrink_wrap): Likewise.
21128 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21129 * web.c (union_defs, pass_web::execute): Likewise.
21130 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21131 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21133 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
21135 * lra-assign.c (assign_by_spills): Add code to assign vector regs
21136 to inheritance pseudos.
21137 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21139 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
21142 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21143 (BU_MISC_2): Rename to ...
21144 (BU_LDBL128_2): ... this.
21145 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21146 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21147 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21148 RS6000_BTM_LDBL128.
21149 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21150 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21151 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21152 (unpacktf_1): Likewise.
21153 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21154 (__builtin_longdouble_dw1): Likewise.
21155 * doc/sourcebuild.texi (longdouble128): Document.
21157 2014-06-13 Jeff Law <law@redhat.com>
21159 PR rtl-optimization/61094
21160 PR rtl-optimization/61446
21161 * ree.c (combine_reaching_defs): Get the mode for the copy from
21162 the extension insn rather than the defining insn.
21164 2014-06-13 Dehao Chen <dehao@google.com>
21166 * dwarf2out.c (add_linkage_name): Emit more linkage name.
21168 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
21170 * doc/install.texi (--enable-linker-plugin-configure-flags)
21171 (--enable-linker-plugin-flags): Document new flags.
21173 2014-06-13 Martin Jambor <mjambor@suse.cz>
21176 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21177 cache_token if returning early.
21179 2014-06-13 Nick Clifton <nickc@redhat.com>
21181 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21182 requested alignment is active.
21183 (LABEL_ALIGN): Likewise.
21184 (LOOP_ALIGN): Likewise.
21186 2014-06-13 Richard Biener <rguenther@suse.de>
21188 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21189 Rewrite to propagate the VN result into all uses where
21190 possible and to remove stmts becoming dead because of that.
21191 (eliminate): Generalize stmt removal handling, remove in
21192 reverse dominator order to support proper debug stmt
21193 generation. Update stmts before removing stmts.
21194 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21196 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
21198 PR tree-optimization/61375
21199 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21200 symbolic number cannot be represented in an uint64_t.
21201 (find_bswap_or_nop_1): Likewise.
21203 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21205 * symtab.c (symtab_node::reset_section): New method.
21206 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21208 * cgraph.h (reset_section): Declare.
21209 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21210 do not consider comdat locals.
21211 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21213 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21214 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21215 reset sections of symbols dragged out of the comdats.
21216 (function_and_variable_visibility): Reset sections of
21219 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21221 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21222 to use symtab and decl_binds_to_current_def_p
21223 * tree-vectorizer.c (increase_alignment): Increase alignment
21224 of alias target, too.
21226 2014-06-12 Jakub Jelinek <jakub@redhat.com>
21228 PR middle-end/61486
21229 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21230 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21231 if outer combined construct is distribute.
21232 (gimplify_omp_for): For OMP_DISTRIBUTE set
21233 gimplify_omp_ctxp->distribute.
21234 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21235 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21236 mapping into decl map.
21238 2014-06-12 Jason Merrill <jason@redhat.com>
21240 * common.opt (fabi-version): Change default to 0.
21242 2014-06-12 Jason Merrill <jason@redhat.com>
21244 * toplev.c (process_options): Reject -fabi-version=1.
21246 2014-06-12 Jeff Law <law@redhat.com>
21248 PR tree-optimization/61009
21249 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21250 value when we stop processing a block due to problematic PHIs.
21252 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
21254 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21255 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21256 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21257 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21258 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21259 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21260 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21261 are not in the spec.
21263 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
21266 * config/aarch64/aarch64-modes.def: Add V1DFmode.
21267 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21270 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
21272 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21274 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
21277 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21278 loading from address spaces.
21280 2014-06-12 Martin Liska <mliska@suse.cz>
21283 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21284 statement is reachable.
21286 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
21288 * symtab.c (section_hash): New hash.
21289 (symtab_unregister_node): Clear section before freeing.
21290 (hash_section_hash_entry): New haser.
21291 (eq_sections): New function.
21292 (symtab_node::set_section_for_node): New method.
21293 (set_section_1): Update.
21294 (symtab_node::set_section): Take string instead of tree as parameter.
21295 (symtab_resolve_alias): Update.
21296 * cgraph.h (section_hash_entry_d): New structure.
21297 (section_hash_entry): New typedef.
21298 (cgraph_node): Change comdat_group_ to x_comdat_group,
21299 change section_ to x_section and turn into section_hash_entry;
21300 update accestors; put set_section_for_node offline.
21301 * tree.c (decl_section_name): Turn into string.
21302 (set_decl_section_name): Change parameter to be string.
21303 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21304 * sdbout.c (sdbout_one_type): Update.
21305 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21306 * varasm.c (IN_NAMED_SECTION, get_named_section,
21307 resolve_unique_section, hot_function_section, get_named_text_section,
21308 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21309 make_decl_rtl, default_unique_section): Update.
21310 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21311 (c6x_elf_unique_section): Update.
21312 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21313 * config/pa/pa.c (pa_function_section): Update.
21314 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21315 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21316 * config/arc/arc.c (arc_in_small_data_p): Update.
21317 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21318 * config/mcore/mcore.c (mcore_unique_section): Update.
21319 * config/mips/mips.c (mips16_build_function_stub): Update.
21320 (mips16_build_call_stub): Update.
21321 (mips_function_rodata_section): Update.
21322 (mips_in_small_data_p): Update.
21323 * config/score/score.c (score_in_small_data_p): Update.
21324 * config/rx/rx.c (rx_in_small_data): Update.
21325 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21326 (rs6000_xcoff_asm_named_section): Update.
21327 (rs6000_xcoff_unique_section): Update.
21328 * config/frv/frv.c (frv_string_begins_with): Update.
21329 (frv_in_small_data_p): Update.
21330 * config/v850/v850.c (v850_encode_data_area): Update.
21331 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21332 (bfin_handle_l1_data_attribute): Update.
21333 (bfin_handle_l2_attribute): Update.
21334 * config/mep/mep.c (mep_unique_section): Update.
21335 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21337 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21338 (h8300_handle_tiny_data_attribute): Update.
21339 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21340 (m32r_in_small_data_p): Update.
21341 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21342 * config/i386/i386.c (ix86_in_large_data_p): Update.
21343 * config/i386/winnt.c (i386_pe_unique_section): Update.
21344 * config/darwin.c (darwin_function_section): Update.
21345 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21346 * tree-emutls.c (get_emutls_init_templ_addr): Update.
21347 (new_emutls_decl): Update.
21348 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21349 input_varpool_node): Update.
21350 (ead_string_cst): Turn to ...
21351 (read_string): ... this one.
21352 * dwarf2out.c (secname_for_decl): Update.
21353 * asan.c (asan_protect_global): Update.
21355 2014-06-11 DJ Delorie <dj@redhat.com>
21357 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21359 * config/rx/rx.c (rx_option_override): Likewise.
21360 (rx_align_for_label): Likewise.
21362 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21364 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
21366 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21369 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21371 * common.md: New file.
21372 * doc/md.texi: Update description of generic, machine-independent
21374 * config/s390/constraints.md (e): Delete.
21375 * Makefile.in (md_file): Include common.md.
21376 * config/m32c/t-m32c (md_file): Likewise.
21377 * genpreds.c (general_mem): New array.
21378 (generic_constraint_letters): Remove constraints now defined by
21380 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21381 Allow the first character to be '<' or '>' as well.
21382 * genoutput.c (general_mem): New array.
21383 (indep_constraints): Remove constraints now defined by common.md.
21384 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21385 Remove special handling of 'm'.
21386 * ira-costs.c (record_reg_classes): Remove special handling of
21387 constraints now defined by common.md.
21388 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21389 * ira-lives.c (single_reg_class): Likewise.
21390 (ira_implicitly_set_insn_hard_regs): Likewise.
21391 * lra-constraints.c (reg_class_from_constraints): Likewise.
21392 (process_alt_operands, process_address, curr_insn_transform): Likewise.
21393 * postreload.c (reload_cse_simplify_operands): Likewise.
21394 * reload.c (push_secondary_reload, scratch_reload_class)
21395 (find_reloads, alternative_allows_const_pool_ref): Likewise.
21396 * reload1.c (maybe_fix_stack_asms): Likewise.
21397 * targhooks.c (default_secondary_reload): Likewise.
21398 * stmt.c (parse_output_constraint): Likewise.
21399 * recog.c (preprocess_constraints): Likewise.
21400 (constrain_operands, peep2_find_free_register): Likewise.
21401 (asm_operand_ok): Likewise, but add a comment saying why 'o'
21402 must be handled specially.
21404 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21406 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
21407 * genpreds.c (have_const_dbl_constraints): Delete.
21408 (add_constraint): Don't set it.
21409 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
21410 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
21411 constraints using the lookup_constraint logic.
21412 * ira-lives.c (single_reg_class): Likewise.
21413 * ira.c (ira_setup_alts): Likewise.
21414 * lra-constraints.c (process_alt_operands): Likewise.
21415 * recog.c (asm_operand_ok, constrain_operands): Likewise.
21416 * reload.c (find_reloads): Likewise.
21418 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21420 * genpreds.c (const_int_start, const_int_end): New variables.
21421 (choose_enum_order): Output CONST_INT constraints before memory
21423 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
21425 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
21426 * ira.c (ira_setup_alts): Likewise.
21427 * lra-constraints.c (process_alt_operands): Likewise.
21428 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21429 * reload.c (find_reloads): Likewise.
21431 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21433 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
21434 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
21435 * recog.c (preprocess_constraints): Update accordingly.
21437 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21439 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
21440 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
21441 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
21442 * genpreds.c (print_type_tree): New function.
21443 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
21444 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
21445 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
21446 Write out enum constraint_type and get_constraint_type.
21447 * lra-constraints.c (satisfies_memory_constraint_p): Take a
21448 constraint_num rather than a constraint string.
21449 (satisfies_address_constraint_p): Likewise.
21450 (reg_class_from_constraints): Avoid old constraint macros.
21451 (process_alt_operands, process_address_1): Likewise.
21452 (curr_insn_transform): Likewise.
21453 * ira-costs.c (record_reg_classes): Likewise.
21454 (record_operand_costs): Likewise.
21455 * ira-lives.c (single_reg_class): Likewise.
21456 (ira_implicitly_set_insn_hard_regs): Likewise.
21457 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21458 * postreload.c (reload_cse_simplify_operands): Likewise.
21459 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21460 (constrain_operands, peep2_find_free_register): Likewise.
21461 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
21462 (find_reloads, alternative_allows_const_pool_ref): Likewise.
21463 * reload1.c (maybe_fix_stack_asms): Likewise.
21464 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
21465 * targhooks.c (default_secondary_reload): Likewise.
21466 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
21467 to EXTRA_CONSTRAINT_STR.
21468 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
21470 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21472 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
21473 (write_constraint_satisfied_p_array): ...this new function.
21474 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
21476 (write_insn_preds_c): Update accordingly.
21478 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21480 * genpreds.c (write_lookup_constraint): Rename to...
21481 (write_lookup_constraint_1): ...this.
21482 (write_lookup_constraint_array): New function.
21483 (write_tm_preds_h): Define lookup_constraint as an inline function
21484 that uses write_lookup_constraint_array where possible.
21485 (write_insn_preds_c): Update for the changes above.
21487 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
21489 * doc/md.texi (regclass_for_constraint): Rename to...
21490 (reg_class_for_constraint): ...this.
21491 * genpreds.c (num_constraints, enum_order, register_start)
21492 (register_end, satisfied_start, memory_start, memory_end)
21493 (address_start, address_end): New variables.
21494 (add_constraint): Count the number of constraints.
21495 (choose_enum_order): New function.
21496 (write_enum_constraint_num): Iterate over enum_order.
21497 (write_regclass_for_constraint): Rename to...
21498 (write_reg_class_for_constraint_1): ...this and update output
21500 (write_constraint_satisfied_p): Rename to...
21501 (write_constraint_satisfied_p_1): ...this and update output
21502 accordingly. Do nothing if all extra constraints are register
21504 (write_insn_extra_memory_constraint): Delete.
21505 (write_insn_extra_address_constraint): Delete.
21506 (write_range_function): New function.
21507 (write_tm_preds_h): Define constraint_satisfied_p and
21508 reg_class_for_constraint as inline functions that do a range check
21509 before calling the out-of-line function. Use write_range_function
21510 to implement insn_extra_{register,memory,address}_constraint,
21511 the first of which is new.
21512 (write_insn_preds_c): Update after above changes to write_* functions.
21513 (main): Call choose_enum_order.
21515 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
21517 PR tree-optimization/61306
21518 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
21519 expression instead of its size.
21520 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
21521 false to prevent optimization when the result is unpredictable due to
21522 arithmetic right shift of signed type with highest byte is set.
21523 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
21524 (init_symbolic_number): Likewise.
21525 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
21526 when the result is unpredictable due to sign extension.
21528 2014-06-11 Terry Guo <terry.guo@arm.com>
21530 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
21531 (*thumb1_addsi3): Ditto.
21532 (*thumb_subdi3): Ditto.
21533 (thumb1_subsi3_insn): Ditto.
21534 (*thumb_mulsi3): Ditto.
21535 (*thumb_mulsi3_v6): Ditto.
21536 (*thumb1_andsi3_insn): Ditto.
21537 (thumb1_bicsi3): Ditto.
21538 (*thumb1_iorsi3_insn): Ditto.
21539 (*thumb1_xorsi3_insn): Ditto.
21540 (*thumb1_ashlsi3): Ditto.
21541 (*thumb1_ashrsi3): Ditto.
21542 (*thumb1_lshrsi3): Ditto.
21543 (*thumb1_rotrsi3): Ditto.
21544 (*thumb1_negdi2): Ditto.
21545 (*thumb1_negsi2): Ditto.
21546 (*thumb1_abssi2): Ditto.
21547 (*thumb1_neg_abssi2): Ditto.
21548 (*thumb1_one_cmplsi2): Ditto.
21549 (*thumb1_zero_extendhisi2): Ditto.
21550 (*thumb1_zero_extendqisi2): Ditto.
21551 (*thumb1_zero_extendqisi2_v6): Ditto.
21552 (thumb1_extendhisi2): Ditto.
21553 (thumb1_extendqisi2): Ditto.
21554 (*thumb1_movdi_insn): Ditto.
21555 (*thumb1_movsi_insn): Ditto.
21556 (*thumb1_movhi_insn): Ditto.
21557 (thumb_movhi_clobber): Ditto.
21558 (*thumb1_movqi_insn): Ditto.
21559 (*thumb1_movhf): Ditto.
21560 (*thumb1_movsf_insn): Ditto.
21561 (*thumb_movdf_insn): Ditto.
21562 (movmem12b): Ditto.
21564 (cbranchqi4): Ditto.
21565 (cbranchsi4_insn): Ditto.
21566 (cbranchsi4_scratch): Ditto.
21567 (*negated_cbranchsi4): Ditto.
21568 (*tbit_cbranch): Ditto.
21569 (*tlobits_cbranch): Ditto.
21570 (*tstsi3_cbranch): Ditto.
21571 (*cbranchne_decr1): Ditto.
21572 (*addsi3_cbranch): Ditto.
21573 (*addsi3_cbranch_scratch): Ditto.
21574 (*thumb_cmpdi_zero): Ditto.
21575 (cstoresi_eq0_thumb1): Ditto.
21576 (cstoresi_ne0_thumb1): Ditto.
21577 (*cstoresi_eq0_thumb1_insn): Ditto.
21578 (*cstoresi_ne0_thumb1_insn): Ditto.
21579 (cstoresi_nltu_thumb1): Ditto.
21580 (cstoresi_ltu_thumb1): Ditto.
21581 (thumb1_addsi3_addgeu): Ditto.
21582 (*thumb_jump): Ditto.
21583 (*call_reg_thumb1_v5): Ditto.
21584 (*call_reg_thumb1): Ditto.
21585 (*call_value_reg_thumb1_v5): Ditto.
21586 (*call_value_reg_thumb1): Ditto.
21587 (*call_insn): Ditto.
21588 (*call_value_insn): Ditto.
21589 (thumb1_casesi_internal_pic): Ditto.
21590 (thumb1_casesi_dispatch): Ditto.
21591 (*thumb1_indirect_jump): Ditto.
21592 (prologue_thumb1_interwork): Ditto.
21593 (*epilogue_insns): Ditto.
21594 (consttable_1): Ditto.
21595 (consttable_2): Ditto.
21596 (tablejump): Ditto.
21597 (*thumb1_tablejump): Ditto.
21598 (thumb_eh_return): Ditto.
21599 (define_peephole2): Two of them are thumb1 only and got moved into
21600 new file thumb1.md.
21601 (define_split): Six of them are thumb1 only and got moved into new
21603 * config/arm/thumb1.md: New file comprised of above thumb1 only
21606 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21608 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
21609 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
21611 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
21612 (aarch64_crc_builtin_datum): New struct.
21613 (aarch64_crc_builtin_data): New.
21614 (aarch64_init_crc32_builtins): New function.
21615 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
21616 (aarch64_crc32_expand_builtin): New.
21617 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
21618 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
21619 __ARM_FEATURE_CRC32 when appropriate.
21620 (TARGET_CRC32): Define.
21621 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
21622 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
21623 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
21624 (aarch64_<crc_variant>): New pattern.
21625 * config/aarch64/arm_acle.h: New file.
21626 * config/aarch64/iterators.md (CRC): New int iterator.
21627 (crc_variant, crc_mode): New int attributes.
21628 * doc/aarch64-acle-intrinsics.texi: New file.
21629 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
21630 Include aarch64-acle-intrinsics.texi.
21632 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
21634 * tree-vect-data-refs.c (vect_grouped_store_supported): New
21635 check for stores group of length 3.
21636 (vect_permute_store_chain): New permutations for stores group of
21638 * tree-vect-stmts.c (vect_model_store_cost): Change cost
21639 of vec_perm_shuffle for the new permutations.
21641 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
21643 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
21644 table rewriting temporarily on targets not supporting ONE_ONLY.
21646 2014-06-11 Richard Biener <rguenther@suse.de>
21648 PR middle-end/61437
21650 2014-06-04 Richard Biener <rguenther@suse.de>
21652 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
21653 TREE_PUBLIC and DECL_EXTERNAL decls.
21655 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
21657 * varasm.c (set_implicit_section): New function.
21658 (resolve_unique_section): Use it to set implicit section
21660 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
21661 (default_function_section): Likewise.
21662 (decl_binds_to_current_def_p): Constify argument.
21663 * varasm.h (decl_binds_to_current_def_p): Update prototype.
21664 * asan.c (asan_protect_global): Use
21665 symtab_get_node (decl)->implicit_section.
21666 * symtab.c (dump_symtab_base): Dump implicit sections.
21667 (verify_symtab_base): Verify sanity of sectoins and comdats.
21668 (symtab_resolve_alias): Alias share the section of its target.
21669 (set_section_1): New function.
21670 (symtab_node::set_section): Move here, recurse to aliases.
21671 (verify_symtab): Check for duplicated symtab lists.
21672 * tree-core.h (implicit_section_name_p): Remove.
21673 * tree-vect-data-refs.c: Include varasm.h.
21674 (vect_can_force_dr_alignment_p): Fix conditional on when
21675 decl bints to current definition; use
21676 symtab_get_node (decl)->implicit_section.
21677 * cgraph.c (cgraph_make_node_local_1): Fix section set.
21678 * cgraph.h (struct symtab_node): Add implicit_section.
21679 (set_section): Rename to ...
21680 (set_section_for_node): ... this one.
21681 (set_section): Declare.
21682 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
21683 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
21684 input_overwrite_node, input_varpool_node): Stream implicit_section.
21685 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
21686 removal; it will fail in LTO.
21688 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21690 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
21691 Change second alternative type to f_mcr.
21692 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
21693 and 12th alternatives' types to f_mcr and f_mrc.
21694 (*movdi_aarch64): Same for 12th and 13th alternatives.
21695 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
21696 (aarch64_movtilow_tilow): Change type to fmov.
21698 2014-06-10 Jiong Wang <jiong.wang@arm.com>
21700 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
21701 (aarch64_save_or_restore_callee_save_registers): Fix layout.
21703 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21705 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
21707 (aarch64_sqrdmulh_lane<mode>): Likewise.
21708 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21709 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21710 (aarch64_sqdmulh_laneq<mode>): New expander.
21711 (aarch64_sqrdmulh_laneq<mode>): Likewise.
21712 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
21713 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
21714 (aarch64_sqdmulh_lane<mode>): New expander.
21715 (aarch64_sqrdmulh_lane<mode>): Likewise.
21716 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21717 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21718 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
21719 (aarch64_sqdmlal_laneq<mode>): Likewise.
21720 (aarch64_sqdmlsl_lane<mode>): Likewise.
21721 (aarch64_sqdmlsl_laneq<mode>): Likewise.
21722 (aarch64_sqdmlal2_lane<mode>): Likewise.
21723 (aarch64_sqdmlal2_laneq<mode>): Likewise.
21724 (aarch64_sqdmlsl2_lane<mode>): Likewise.
21725 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21726 (aarch64_sqdmull_lane<mode>): Likewise.
21727 (aarch64_sqdmull_laneq<mode>): Likewise.
21728 (aarch64_sqdmull2_lane<mode>): Likewise.
21729 (aarch64_sqdmull2_laneq<mode>): Likewise.
21731 2014-06-10 Richard Biener <rguenther@suse.de>
21733 PR tree-optimization/61438
21734 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
21735 (eliminate_dom_walker::before_dom_children): Only try to inhibit
21736 insertion of IVs if running PRE.
21737 (eliminate): Adjust.
21738 (pass_pre::execute): Likewise.
21739 (pass_fre::execute): Likewise.
21741 2014-06-10 Richard Biener <rguenther@suse.de>
21743 PR middle-end/61456
21744 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21745 Do not use the main variant for the type comparison.
21746 (ncr_compar): Likewise.
21747 (nonoverlapping_component_refs_p): Likewise.
21749 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
21751 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
21752 REG_CFA_RESTORE mode.
21754 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
21756 * config/i386/i386.c (expand_vec_perm_pblendv): New.
21757 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
21758 expand_vec_perm_pblendv.
21760 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21762 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
21764 Simplify description of __crc32d and __crc32cd intrinsics.
21765 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
21768 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
21771 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
21772 * config.in: Regenerate.
21773 * configure: Likewise.
21775 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
21777 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
21779 (intersect_static_var_sets): Remove.
21780 (propagate): Do not prune local statics.
21782 2014-06-10 Jakub Jelinek <jakub@redhat.com>
21785 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
21786 Set lastprivate_firstprivate even if omp_private_outer_ref
21787 langhook returns true.
21788 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
21789 langhook, call unshare_expr on new_var and call
21790 build_outer_var_ref to get the last argument.
21792 2014-06-10 Marek Polacek <polacek@redhat.com>
21795 * doc/extend.texi: Add cindex for transparent_union.
21797 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
21799 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
21800 init_symbolic_number ().
21802 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
21804 PR middle-end/61141
21805 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
21806 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
21807 (verify_rtl_sharing): Likewise.
21809 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
21812 * tree.c (build_qualified_type): Use a canonical type for
21815 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21817 * config/arm/arm-modes.def: Remove XFmode.
21819 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
21822 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
21823 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
21824 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
21825 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
21826 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
21827 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
21828 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
21829 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
21830 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
21832 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
21834 * tree-core.h (tree_decl_with_vis): Remove section_name.
21836 2014-06-09 Kito Cheng <kito@0xlab.org>
21838 * ira.c (ira): Don't call init_caller_save if LRA enabled
21839 since LRA use its own infrastructure to handle that.
21841 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
21843 * symtab.c (dump_symtab_base): Update dumping.
21844 (symtab_make_decl_local): Clear only DECL_COMDAT.
21845 * tree-vect-data-refs.c (Check that variable is static before
21846 tampering with sections.
21847 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
21848 (cgraph_create_virtual_clone): Likewise.
21849 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
21850 (decl_section_name, set_decl_section_name): New accessors.
21851 (find_decls_types_r): Do not walk section name
21852 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
21853 (decl_comdat_group, decl_comdat_group_id): Constify.
21854 (decl_section_name, set_decl_section_name): Update.
21855 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
21856 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
21857 (cgraph_make_node_local_1): Clear section and comdat group.
21858 * cgraph.h (set_comdat_group): Sanity check.
21859 (get_section, set_section): New.
21860 * ipa-comdats.c (ipa_comdats): Use get_section.
21861 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
21862 * lto-streamer-out.c: Do not follow section names.
21863 * c-family/c-common.c (handle_section_attribute): Update.
21864 * lto-cgraph.c (lto_output_node): Output section.
21865 (lto_output_varpool_node): Likewise.
21866 (read_comdat_group): Rename to ...
21867 (read_identifier): ... this one.
21868 (read_string_cst): New function.
21869 (input_node, input_varpool_node): Input section names.
21870 * tree-emutls.c (get_emutls_init_templ_addr): Update.
21871 (new_emutls_decl): Update.
21872 (secname_for_decl): Check section names only of static vars.
21873 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
21874 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
21875 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21876 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21877 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
21878 * config/mcore/mcore.c (mcore_unique_section): Likewise.
21879 * config/mips/mips.c (mips16_build_function_stub): Likewise.
21880 * config/v850/v850.c (v850_insert_attributes): Likewise.
21881 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
21883 (h8300_handle_tiny_data_attribute): Likewise.
21884 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
21885 (bfin_handle_l2_attribute): Likewise.
21887 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
21889 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
21890 remove static initializer.
21892 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
21894 * varasm.c (use_blocks_for_decl_p): Check symbol table
21895 instead of alias attribute.
21896 (place_block_symbol): Recurse on aliases.
21898 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
21900 * ipa-visibility.c: Include varasm.h
21901 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
21903 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
21905 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
21906 outputting aliases.
21908 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
21910 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
21911 from test_insn into GGC space escape via SET_SRC.
21913 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
21915 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
21916 call statement, if any.
21917 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
21918 statements, if any. Tidy up.
21920 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
21923 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
21924 iterators, VSX_D that handles 64-bit types, and VSX_LE that
21925 handles swapping the two 64-bit double words on little endian
21926 systems. Include V1TImode and optionally TImode in VSX_LE so that
21927 these types are properly swapped. Change all of the insns and
21928 splits that do the 64-bit swaps to use VSX_LE.
21929 (vsx_le_perm_load_<mode>): Likewise.
21930 (vsx_le_perm_store_<mode>): Likewise.
21931 (splitters for little endian memory operations): Likewise.
21932 (vsx_xxpermdi2_le_<mode>): Likewise.
21933 (vsx_lxvd2x2_le_<mode>): Likewise.
21934 (vsx_stxvd2x2_le_<mode>): Likewise.
21936 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
21939 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
21940 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
21941 and corresponding splitters. Zero extend general register
21942 or memory input operand to XMM temporary. Enable for
21943 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
21944 (floatunssi<mode>2): Update expander predicate.
21946 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
21948 PR rtl-optimization/61325
21949 * lra-constraints.c (process_address_1): Check scale equal to one
21950 to prevent transformation: base + scale * index => base + new_reg.
21952 2014-06-06 Richard Biener <rguenther@suse.de>
21954 PR tree-optimization/59299
21955 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
21957 (nearest_common_dominator_of_uses): Likewise.
21958 (statement_sink_location): Adjust. Support sinking loads.
21960 2014-06-06 Martin Jambor <mjambor@suse.cz>
21962 * ipa-prop.c (get_place_in_agg_contents_list): New function.
21963 (build_agg_jump_func_from_list): Likewise.
21964 (determine_known_aggregate_parts): Renamed to
21965 determine_locally_known_aggregate_parts. Moved some functionality
21966 to the two functions above, removed bound checks.
21968 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
21970 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
21971 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
21972 (aarch64_progress_pointer): Likewise.
21973 (aarch64_copy_one_part_and_move_pointers): Likewise.
21974 (aarch64_expand_movmen): Likewise.
21975 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
21976 * config/aarch64/aarch64.md (movmem<mode>): New.
21978 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
21980 * targhooks.c (default_add_stmt_cost): Call target specific
21981 hook instead of default one.
21983 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
21985 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
21986 endianness instead of host endianness.
21987 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
21990 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
21993 * function.c (instantiate_decls): Process the saved static chain.
21994 (expand_function_start): If not optimizing, save the static chain
21996 * tree-nested.c (convert_all_function_calls): Always create the static
21997 chain for nested functions if not optimizing.
21999 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22001 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22003 2014-06-06 Richard Biener <rguenther@suse.de>
22005 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22006 (construct_init_block): Likewise.
22007 (construct_exit_block): Likewise.
22008 (pass_expand::execute): Likewise.
22009 * graphite.c (graphite_transforms): Replace check for current_loops
22010 with a check for > 1 loops.
22011 (pass_graphite_transforms::execute): Adjust.
22012 * ipa-split.c (split_function): Remove check for current_loops.
22013 * omp-low.c (expand_parallel_call): Likewise.
22014 (expand_omp_for_init_counts): Likewise.
22015 (extract_omp_for_update_vars): Likewise.
22016 (expand_omp_for_generic): Likewise.
22017 (expand_omp_sections): Likewise.
22018 (expand_omp_target): Likewise.
22019 * tracer.c (tail_duplicate): Likewise.
22020 (pass_tracer::execute): Likewise.
22021 * trans-mem.c (expand_transaction): Likewise.
22022 * tree-complex.c (expand_complex_div_wide): Likewise.
22023 * tree-eh.c (lower_resx): Likewise.
22024 (cleanup_empty_eh_merge_phis): Likewise.
22025 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22026 current_loops with a check for > 1 loops.
22027 (pass_predcom::execute): Adjust.
22028 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22029 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22030 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22031 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22032 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22033 * tree-switch-conversion.c (process_switch): Likewise.
22034 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22035 * tree-vrp.c (vrp_visit_phi_node): Likewise.
22036 (execute_vrp): Likewise.
22037 * ubsan.c (ubsan_expand_null_ifn): Likewise.
22039 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22041 * rtl.h (insn_location): Declare.
22042 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22043 with UNKNOWN_LOCATION.
22044 * emit-rtl.c (insn_location): New function.
22045 * final.c (notice_source_line): Check that the instruction has a
22046 location before retrieving it and use insn_location.
22047 * modulo-sched.c (loop_single_full_bb_p): Likewise.
22048 * print-rtl.c (print_rtx): Likewise.
22050 2014-06-06 Richard Biener <rguenther@suse.de>
22052 * passes.def: Move 2nd VRP pass before phi-only-cprop.
22054 2014-06-06 Christian Bruel <christian.bruel@st.com>
22056 PR tree-optimization/43934
22057 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22060 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
22062 * ira-lives.c (single_reg_class): Add missing break. Explicitly
22063 return NO_REGS for extra address and memory constraints. Handle
22064 operands that match (or are equivalent to something that matches)
22065 extra constant constraints. Ignore other non-register operands.
22067 2014-06-06 Alan Modra <amodra@gmail.com>
22070 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22071 * doc/tm.texi: Regenerate.
22072 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22073 Use throughout in place of REG_PARM_STACK_SPACE.
22074 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22075 "incoming" param. Pass to rs6000_function_parms_need_stack.
22076 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22077 prototype_p when incoming. Use function decl when incoming
22078 to handle K&R style functions.
22079 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22080 (INCOMING_REG_PARM_STACK_SPACE): Define.
22082 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22085 * cfgexpand.c (expand_debug_expr): Use address space of nested
22086 TREE_TYPE for ADDR_EXPR and MEM_REF.
22088 2014-06-05 Jeff Law <law@redhat.com>
22090 PR tree-optimization/61289
22091 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22092 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
22093 looking for those which match LHS. All callers changed.
22094 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22095 parameters and code which manipulated them. All callers changed.
22096 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22097 and DST_MAP parameters. Simplify invalidation code by just calling
22098 invalidate_equivalences. All callers changed.
22099 (thread_across_edge): Simplify now that we don't need to maintain
22100 the map of equivalences to invalidate.
22102 2014-06-05 Kai Tietz <ktietz@redhat.com>
22103 Richard Henderson <rth@redhat.com>
22106 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22107 checking for !TARGET_X32.
22108 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22109 (sibcall_intern): New define_insn, plus required peepholes.
22110 (sibcall_pop_intern): Likewise.
22111 (sibcall_value_intern): Likewise.
22112 (sibcall_value_pop_intern): Likewise.
22114 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
22116 * tree-inline.c (tree_function_versioning): Check DF info existence
22117 before accessing it.
22119 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22121 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22123 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22124 aarch64_frame hard_fp_offset and frame_size.
22125 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22126 frame_size; remove original_frame_size.
22127 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22128 (aarch64_initial_elimination_offset): Remove frame_size and
22129 offset. Use aarch64_frame frame_size.
22131 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22132 Jiong Wang <jiong.wang@arm.com>
22133 Renlin <renlin.li@arm.com>
22135 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22136 initialization of R30 offset. Update offset. Iterate core
22137 regisers upto X30. Remove X29, X30 specific code.
22139 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22140 Jiong Wang <jiong.wang@arm.com>
22142 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22143 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22144 (aarch64_register_saved_on_entry): Adjust test.
22146 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22148 * config/aarch64/aarch64.h (machine_function): Move
22149 saved_varargs_size from here...
22150 (aarch64_frame): ... to here.
22152 * config/aarch64/aarch64.c (aarch64_expand_prologue)
22153 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22154 (aarch64_initial_elimination_offset)
22155 (aarch64_setup_incoming_varargs): Adjust location of
22156 saved_varargs_size.
22158 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22160 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22163 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
22164 Prachi Godbole <Prachi.Godbole@imgtec.com>
22166 * config/mips/mips-cpus.def: Add definition for p5600. Updated
22167 mips32r5 entry to use PROCESSOR_P5600.
22168 * config/mips/mips-tables.opt: Regenerate.
22169 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22170 * config/mips/mips.c (mips_fmadd_bypass): New function.
22171 (mips_rtx_cost_data): Add costs for p5600.
22172 (mips_issue_rate): Add support for p5600.
22173 (mips_multipass_dfa_lookahead): Likewise.
22174 * config/mips/mips.h (TUNE_P5600): New define.
22175 (TUNE_MACC_CHAINS): Add TUNE_P5600.
22176 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22177 * config/mips/mips.md: Include p5600.md.
22178 (processor): Add p5600.
22179 * config/mips/p5600.md: New file.
22181 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
22183 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22184 * config/i386/predicates.md (palignr_operand): New.
22185 Indicates if permutation is suitable for palignr instruction.
22187 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
22189 PR tree-optimization/61319
22190 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22191 stmt belongs to loop.
22193 2014-06-05 Richard Biener <rguenther@suse.de>
22195 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22196 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22197 (lookup_tmp_var): Adjust.
22198 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22200 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22202 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22204 2014-06-05 Marek Polacek <polacek@redhat.com>
22207 * doc/invoke.texi: Document -Wlogical-not-parentheses.
22209 2014-06-04 Tom de Vries <tom@codesourcery.com>
22211 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22214 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
22216 PR tree-optimization/61385
22217 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22219 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
22221 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
22222 changed to use fatal_error.
22223 (main): Ensure lto_wrapper_cleanup is run atexit.
22225 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22227 * lra-constraints.c (valid_address_p): Move earlier in file.
22228 (address_eliminator): New structure.
22229 (satisfies_memory_constraint_p): New function.
22230 (satisfies_address_constraint_p): Likewise.
22231 (process_alt_operands, process_address, curr_insn_transform): Use them.
22233 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22235 * lra-int.h (lra_static_insn_data): Make operand_alternative a
22237 (target_lra_int, default_target_lra_int, this_target_lra_int)
22238 (op_alt_data): Delete.
22239 * lra.h (lra_init): Delete.
22240 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22241 (init_insn_code_data_once): Remove op_alt_data handling.
22242 (finish_insn_code_data_once): Likewise.
22243 (init_op_alt_data): Delete.
22244 (get_static_insn_data): Initialize operand_alternative to null.
22245 (free_insn_recog_data): Cast operand_alternative before freeing it.
22246 (setup_operand_alternative): Take the operand_alternative as
22247 parameter and assume it isn't already cached in the static
22249 (lra_set_insn_recog_data): Update accordingly.
22250 (lra_init): Delete.
22251 * ira.c (ira_init): Don't call lra_init.
22252 * target-globals.h (this_target_lra_int): Declare.
22253 (target_globals): Remove lra_int.
22254 (restore_target_globals): Update accordingly.
22255 * target-globals.c: Don't include lra-int.h.
22256 (default_target_globals, save_target_globals): Remove lra_int.
22258 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22260 * recog.h (operand_alternative): Convert reg_class, reject,
22261 matched and matches into bitfields.
22262 (preprocess_constraints): New overload.
22263 (preprocess_insn_constraints): New function.
22264 (preprocess_constraints): Take the insn as parameter.
22265 (recog_op_alt): Change into a pointer.
22266 (target_recog): Add x_op_alt.
22267 * recog.c (asm_op_alt): New variable.
22268 (recog_op_alt): Change into a pointer.
22269 (preprocess_constraints): New overload, replacing the old function
22270 definition with one that doesn't use global state.
22271 (preprocess_insn_constraints): New function.
22272 (preprocess_constraints): Use them. Take the insn as parameter.
22273 Use asm_op_alt for asms.
22274 (recog_init): Free existing x_op_alt entries.
22275 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22277 (make_early_clobber_and_input_conflicts): Likewise.
22278 (process_bb_node_lives): Pass the insn to process_constraints.
22279 * reg-stack.c (check_asm_stack_operands): Likewise.
22280 (subst_asm_stack_regs): Likewise.
22281 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22282 * regrename.c (build_def_use): Likewise.
22283 * sched-deps.c (sched_analyze_insn): Likewise.
22284 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22285 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22286 (note_invalid_constants): Likewise.
22287 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22288 (ix86_legitimate_combined_insn): Make operand_alternative pointer
22291 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22293 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22294 * ira-lives.c (check_and_make_def_conflict): Check for disabled
22296 (make_early_clobber_and_input_conflicts): Likewise.
22297 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22299 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22301 * recog.h (alternative_class): New function.
22302 (which_op_alt): Return a const recog_op_alt.
22303 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22304 (subst_asm_stack_regs): Likewise.
22305 * config/arm/arm.c (note_invalid_constants): Likewise.
22306 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
22307 the operand_alternative; use alternative class instead.
22308 * sel-sched.c (get_reg_class): Likewise.
22309 * regrename.c (build_def_use): Likewise.
22310 (hide_operands, restore_operands, record_out_operands): Update type
22313 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22315 * recog.h (recog_op_alt): Convert to a flat array.
22316 (which_op_alt): New function.
22317 * recog.c (recog_op_alt): Convert to a flat array.
22318 (preprocess_constraints): Update accordingly, grouping all
22319 operands of the same alternative together, rather than the
22321 * ira-lives.c (check_and_make_def_conflict): Likewise.
22322 (make_early_clobber_and_input_conflicts): Likewise.
22323 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22324 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22325 (subst_asm_stack_regs): Likewise.
22326 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22327 * regrename.c (hide_operands, record_out_operands): Likewise.
22328 (build_def_use): Likewise.
22329 * sel-sched.c (get_reg_class): Likewise.
22330 * config/arm/arm.c (note_invalid_constants): Likewise.
22332 2014-06-04 Jason Merrill <jason@redhat.com>
22336 * gimplify.c (gimplify_arg): Non-static.
22337 * gimplify.h: Declare it.
22339 2014-06-04 Richard Biener <rguenther@suse.de>
22341 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22342 TREE_PUBLIC and DECL_EXTERNAL decls.
22344 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
22346 * regcprop.c (copyprop_hardreg_forward_1): Account for
22347 HARD_REGNO_CALL_PART_CLOBBERED.
22349 2014-06-04 Richard Biener <rguenther@suse.de>
22351 * configure.ac: Check whether the underlying type of int64_t
22352 is long or long long.
22353 * configure: Regenerate.
22354 * config.in: Likewise.
22355 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22356 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22358 2014-06-04 Richard Biener <rguenther@suse.de>
22360 PR tree-optimization/60098
22361 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22363 (dse_optimize_stmt): Simplify, now that we found a kill
22366 2014-06-04 Richard Biener <rguenther@suse.de>
22368 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22369 of accesses with non-invariant address.
22371 2014-06-04 Martin Liska <mliska@suse.cz>
22373 * cgraph.h (cgraph_make_wrapper): New function introduced.
22374 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22375 * ipa-inline.h (inline_analyze_function): The function is global.
22376 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22378 2014-06-04 Martin Liska <mliska@suse.cz>
22380 * tree.h (private_lookup_attribute_starting): New function.
22381 (lookup_attribute_starting): Likewise.
22382 * tree.c (private_lookup_attribute_starting): Likewise.
22384 2014-06-04 Martin Liska <mliska@suse.cz>
22386 * cgraph.h (expand_thunk): New argument added.
22387 (address_taken_from_non_vtable_p): New global function.
22388 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22389 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22390 * cgraphunit.c (analyze_function): Likewise.
22391 (assemble_thunks_and_aliases): Argument added to call.
22392 (expand_thunk): New argument forces to produce GIMPLE thunk.
22394 2014-06-04 Martin Liska <mliska@suse.cz>
22396 * coverage.h (coverage_compute_cfg_checksum): Argument added.
22397 * coverage.c (coverage_compute_cfg_checksum): Likewise.
22398 * profile.c (branch_prob): Likewise.
22400 2014-06-04 Martin Jambor <mjambor@suse.cz>
22403 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
22404 handler for switch on an ipa_ref_use enum.
22405 * ipa-reference.c (analyze_function): Likewise.
22407 2014-06-04 Kai Tietz <ktietz@redhat.com>
22409 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
22410 from old call-instruction.
22412 2014-06-04 Bin Cheng <bin.cheng@arm.com>
22414 * config/aarch64/aarch64.c (aarch64_classify_address)
22415 (aarch64_legitimize_reload_address): Support full addressing modes
22417 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
22418 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
22420 2014-06-03 Andrew Pinski <apinski@cavium.com>
22422 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
22425 2014-06-03 Andrew Pinski <apinski@cavium.com>
22427 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
22428 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
22430 2014-06-03 Kai Tietz <ktietz@redhat.com>
22432 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
22435 2014-06-03 Dehao Chen <dehao@google.com>
22437 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
22440 2014-06-03 Marek Polacek <polacek@redhat.com>
22443 * doc/invoke.texi: Document -Wswitch-bool.
22444 * function.c (stack_protect_epilogue): Cast controlling expression of
22446 * gengtype.c (walk_type): Generate switch expression with its
22447 controlling expression cast to int.
22449 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
22451 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
22453 * config/avr/avr-tables.opt: Regenerate.
22454 * config/avr/t-multilib: Regenerate.
22455 * doc/avr-mmcu.texi: Regenerate.
22457 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
22458 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22460 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
22461 (ata6617c, ata664251): Add new avr35 devices.
22462 (ata6612c): Add new avr4 device.
22463 (ata6613c, ata6614q): Add new avr5 devices.
22464 * config/avr/avr-tables.opt: Regenerate.
22465 * config/avr/t-multilib: Regenerate.
22466 * doc/avr-mmcu.texi: Regenerate.
22468 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
22470 * gcc/config/aarch64/aarch64-builtins.c
22471 (aarch64_types_binop_ssu_qualifiers): New static data.
22472 (TYPES_BINOP_SSU): Define.
22473 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
22474 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
22475 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
22476 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
22477 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
22478 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
22479 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
22480 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
22481 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
22482 suffix to builtin function name, remove cast.
22483 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
22484 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
22485 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
22487 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
22489 * gcc/config/aarch64/aarch64-builtins.c
22490 (aarch64_types_binop_uus_qualifiers,
22491 aarch64_types_shift_to_unsigned_qualifiers,
22492 aarch64_types_unsigned_shiftacc_qualifiers): Define.
22493 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
22494 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
22495 sqshlu_n, uqshl_n): Update qualifiers.
22496 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
22497 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
22498 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
22499 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
22500 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
22501 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
22502 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
22503 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
22504 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
22505 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
22506 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
22507 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
22508 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
22509 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
22510 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
22511 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
22512 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
22513 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
22514 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
22515 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
22516 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
22517 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
22518 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
22519 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
22520 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
22521 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
22522 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
22524 2014-06-03 Teresa Johnson <tejohnson@google.com>
22526 * tree-sra.c (modify_function): Record caller nodes after rebuild.
22528 2014-06-02 Jason Merrill <jason@redhat.com>
22531 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
22533 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
22535 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
22538 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
22540 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
22542 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
22543 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
22544 * config/aarch64/iterators.md (REVERSE): New iterator.
22545 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
22546 (rev_op): New int_attribute.
22547 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
22548 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
22549 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
22550 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
22551 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
22552 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
22553 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
22554 Replace temporary __asm__ with __builtin_shuffle.
22556 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
22558 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
22560 * config/mips/mips-tables.opt: Regenerate.
22561 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
22562 to use mips_isa_rev rather than ISA_MIPS32R2.
22563 * config/mips/mips.h (ISA_MIPS32R3): New define.
22564 (ISA_MIPS32R5): New define.
22565 (ISA_MIPS64R3): New define.
22566 (ISA_MIPS64R5): New define.
22567 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
22568 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
22569 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
22571 (MIPS_ISA_SYNCI_SPEC): Likewise.
22572 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
22573 (LINK_SPEC): Added mips32r3 and mips32r5.
22574 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
22575 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
22576 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
22577 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
22578 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
22579 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
22580 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
22582 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
22584 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
22586 * config/mips/mips.opt (mxpa): New option.
22587 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
22590 2014-06-03 Martin Jambor <mjambor@suse.cz>
22593 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
22596 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
22598 PR tree-optimization/61328
22599 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
22600 initialization from find_bswap_or_nop_1.
22601 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
22602 in source_expr2 before using the size value the function sets. Also
22603 make use of init_symbolic_number () in both the old place and
22604 find_bswap_or_nop_load () to avoid reading uninitialized memory when
22605 doing recursion in the GIMPLE_BINARY_RHS case.
22607 2014-06-03 Richard Biener <rguenther@suse.de>
22609 PR tree-optimization/61383
22610 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
22613 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
22615 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
22616 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
22617 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
22618 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
22620 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
22621 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
22622 * system.h: ...here and make it unconditional.
22623 * target.def (conditional_register_usage): Mention
22624 define_register_constraint instead of old-style constraint macros.
22625 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
22626 * doc/tm.texi: Regenerate.
22627 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
22628 protected by !USE_MD_CONSTRAINTS.
22629 * config/frv/frv.md: Remove quote from old version of documentation.
22630 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
22631 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
22632 CONST_DOUBLE_OK_FOR_LETTER.
22633 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
22635 2014-06-02 Andrew Pinski <apinski@cavium.com>
22637 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
22638 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
22639 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
22640 file whose name depends on -mabi= and -mbig-endian.
22641 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
22642 Handle LP64 better and handle ilp32 too.
22643 (MULTILIB_OPTIONS): Delete.
22644 (MULTILIB_DIRNAMES): Delete.
22646 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
22648 * expr.h: Remove prototypes of functions defined in builtins.c.
22649 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
22650 Remove prototypes of functions defined in builtins.c.
22651 * builtins.h: Update prototype list to include all exported functions.
22652 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
22653 no_c99_libc_has_function): Move to targhooks.c
22654 (build_string_literal, build_call_expr_loc_array,
22655 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
22657 (expand_builtin_object_size, fold_builtin_object_size): Make static.
22658 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
22659 no_c99_libc_has_function): Relocate from builtins.c.
22660 * tree.c: Include builtins.h.
22661 (build_call_expr_loc_array, build_call_expr_loc_vec,
22662 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
22664 * fold-const.h (fold_fma): Move prototype to builtins.h.
22665 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
22666 * asan.c: Include builtins.h.
22667 * cfgexpand.c: Likewise.
22668 * convert.c: Likewise.
22669 * emit-rtl.c: Likewise.
22670 * except.c: Likewise.
22671 * expr.c: Likewise.
22672 * fold-const.c: Likewise.
22673 * gimple-fold.c: Likewise.
22674 * gimple-ssa-strength-reduction.c: Likewise.
22675 * gimplify.c: Likewise.
22676 * ipa-inline.c: Likewise.
22677 * ipa-prop.c: Likewise.
22678 * lto-streamer-out.c: Likewise.
22679 * stmt.c: Likewise.
22680 * tree-inline.c: Likewise.
22681 * tree-object-size.c: Likewise.
22682 * tree-sra.c: Likewise.
22683 * tree-ssa-ccp.c: Likewise.
22684 * tree-ssa-forwprop.c: Likewise.
22685 * tree-ssa-loop-ivcanon.c: Likewise.
22686 * tree-ssa-loop-ivopts.c: Likewise.
22687 * tree-ssa-math-opts.c: Likewise.
22688 * tree-ssa-reassoc.c: Likewise.
22689 * tree-ssa-threadedge.c: Likewise.
22690 * tree-streamer-in.c: Likewise.
22691 * tree-vect-data-refs.c: Likewise.
22692 * tree-vect-patterns.c: Likewise.
22693 * tree-vect-stmts.c: Likewise.
22694 * config/aarch64/aarch64.c: Likewise.
22695 * config/alpha/alpha.c: Likewise.
22696 * config/arc/arc.c: Likewise.
22697 * config/arm/arm.c: Likewise.
22698 * config/avr/avr.c: Likewise.
22699 * config/bfin/bfin.c: Likewise.
22700 * config/c6x/c6x.c: Likewise.
22701 * config/cr16/cr16.c: Likewise.
22702 * config/cris/cris.c: Likewise.
22703 * config/epiphany/epiphany.c: Likewise.
22704 * config/fr30/fr30.c: Likewise.
22705 * config/frv/frv.c: Likewise.
22706 * config/h8300/h8300.c: Likewise.
22707 * config/i386/i386.c: Likewise.
22708 * config/i386/winnt.c: Likewise.
22709 * config/ia64/ia64.c: Likewise.
22710 * config/iq2000/iq2000.c: Likewise.
22711 * config/lm32/lm32.c: Likewise.
22712 * config/m32c/m32c.c: Likewise.
22713 * config/m32r/m32r.c: Likewise.
22714 * config/m68k/m68k.c: Likewise.
22715 * config/mcore/mcore.c: Likewise.
22716 * config/mep/mep.c: Likewise.
22717 * config/microblaze/microblaze.c: Likewise.
22718 * config/mips/mips.c: Likewise.
22719 * config/mmix/mmix.c: Likewise.
22720 * config/mn10300/mn10300.c: Likewise.
22721 * config/moxie/moxie.c: Likewise.
22722 * config/msp430/msp430.c: Likewise.
22723 * config/nds32/nds32.c: Likewise.
22724 * config/pa/pa.c: Likewise.
22725 * config/pdp11/pdp11.c: Likewise.
22726 * config/picochip/picochip.c: Likewise.
22727 * config/rl78/rl78.c: Likewise.
22728 * config/rs6000/rs6000.c: Likewise.
22729 * config/rx/rx.c: Likewise.
22730 * config/s390/s390.c: Likewise.
22731 * config/score/score.c: Likewise.
22732 * config/sh/sh.c: Likewise.
22733 * config/sparc/sparc.c: Likewise.
22734 * config/spu/spu.c: Likewise.
22735 * config/stormy16/stormy16.c: Likewise.
22736 * config/tilegx/tilegx.c: Likewise.
22737 * config/tilepro/tilepro.c: Likewise.
22738 * config/v850/v850.c: Likewise.
22739 * config/vax/vax.c: Likewise.
22740 * config/xtensa/xtensa.c: Likewise.
22742 2014-06-02 Jeff Law <law@redhat.com>
22744 PR rtl-optimization/61094
22745 * ree.c (combine_reaching_defs): Do not reextend an insn if it
22746 was marked as do_no_reextend. If a copy is needed to eliminate
22747 an extension, then mark it as do_not_reextend.
22749 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
22751 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
22753 2014-06-02 Richard Henderson <rth@redhat.com>
22756 * config/alpha/alpha.c (print_operand_address): Allow symbolic
22757 addresses inside asms. Use output_operand_lossage instead of
22760 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
22763 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
22764 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
22766 2014-06-02 Tom de Vries <tom@codesourcery.com>
22768 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
22769 case that x has VOIDmode.
22771 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
22773 * varasm.c (copy_constant): Delete function.
22774 (build_constant_desc): Don't call it.
22776 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22779 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
22780 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
22781 with immediate_operand.
22783 2014-06-02 Andreas Schwab <schwab@suse.de>
22785 * config/ia64/ia64.c
22786 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
22787 pending_data_specs first.
22789 2014-06-02 Richard Biener <rguenther@suse.de>
22791 PR tree-optimization/61378
22792 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
22793 valueized_anything.
22795 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
22797 * config/i386/constraints.md (Bw): Rename from 'w'.
22798 (Bz): Rename from 'z'.
22799 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
22801 2014-06-01 Kai Tietz <ktietz@redhat.com>
22804 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
22805 * config/i386/i386.md (sibcall_insn_operand): Use Bs
22806 instead of m constraint.
22808 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
22810 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
22811 a separate alternative where the scratch operand 2 is marked as
22814 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
22816 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
22817 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
22818 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
22819 and __builtins_arm_get_fpscr.
22820 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
22821 __builtins_arm_get_fpscr.
22822 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
22823 __builtins_arm_ldfpscr.
22824 (arm_atomic_assign_expand_fenv): New function.
22825 * config/arm/vfp.md (set_fpscr): New pattern.
22826 (get_fpscr) : Likewise.
22827 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
22829 * doc/extend.texi (AARCH64 Built-in Functions) : Document
22830 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
22832 2014-05-30 Jakub Jelinek <jakub@redhat.com>
22834 * asan.c (report_error_func): Add SLOW_P argument, use
22835 BUILT_IN_ASAN_*_N if set.
22836 (build_check_stmt): Likewise.
22837 (instrument_derefs): If T has insufficient alignment,
22838 force same handling as for odd sizes.
22840 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
22841 BUILT_IN_ASAN_REPORT_STORE_N): New.
22842 * asan.c (struct asan_mem_ref): Change access_size type to
22844 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
22845 update_mem_ref_hash_table): Likewise.
22846 (asan_mem_ref_hasher::hash): Hash in a HWI.
22847 (report_error_func): Change size_in_bytes argument to HWI.
22848 Use *_N builtins if size_in_bytes is larger than 16 or not power of
22850 (build_shadow_mem_access): New function.
22851 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
22852 Handle size_in_bytes not power of two or larger than 16.
22853 (instrument_derefs): Don't give up if size_in_bytes is not
22854 power of two or is larger than 16.
22856 2014-05-30 Kai Tietz <ktietz@redhat.com>
22859 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
22860 for sibling-tail-calls.
22861 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
22863 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
22864 (sibcall_insn_operand): Add check for sibcall_memory_operand.
22866 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22868 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
22869 * config/avr/avr-tables.opt: Regenerate.
22870 * config/avr/t-multilib: Regenerate.
22871 * doc/avr-mmcu.texi: Regenerate.
22873 2014-05-30 Ian Lance Taylor <iant@google.com>
22875 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
22878 2014-05-30 Tom de Vries <tom@codesourcery.com>
22880 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
22883 2014-05-30 Tom de Vries <tom@codesourcery.com>
22885 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22886 * lra.c (initialize_lra_reg_info_element): Add init of
22887 actual_call_used_reg_set field.
22888 (lra): Call lra_create_live_ranges before lra_inheritance for
22890 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22892 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
22893 instead of call_used_reg_set for -fuse-caller-save.
22894 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22896 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22898 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
22900 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
22902 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
22904 * ira.c (ira_get_dup_out_num): Check for output operands at
22905 the start of the loop. Handle cases where an included alternative
22906 follows an excluded one.
22908 2014-05-29 Mike Stump <mikestump@comcast.net>
22911 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
22912 post ld passes when lto is used.
22914 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
22916 PR rtl-optimization/61325
22917 * lra-constraints.c (process_address): Rename to process_address_1.
22918 (process_address): New function.
22920 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
22922 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
22923 TYPES_BINOPV): New static data.
22924 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
22926 * config/aarch64/aarch64-simd.md (aarch64_ext,
22927 aarch64_im_lane_boundsi): New patterns.
22928 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
22930 (aarch64_evpc_ext): New function.
22932 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
22934 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
22935 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
22936 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
22937 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
22938 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
22940 2014-05-29 Tom de Vries <tom@codesourcery.com>
22942 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
22944 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
22945 Richard Sandiford <rdsandiford@googlemail.com>
22947 * arm/iterators.md (shiftable_ops): New code iterator.
22948 (t2_binop0, arith_shift_insn): New code attributes.
22949 * arm/predicates.md (shift_nomul_operator): New predicate.
22950 * arm/arm.md (insn_enabled): Delete.
22951 (enabled): Remove insn_enabled test.
22952 (*arith_shiftsi): Delete. Replace with ...
22953 (*<arith_shift_insn>_multsi): ... new pattern.
22954 (*<arith_shift_insn>_shiftsi): ... new pattern.
22955 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
22957 2014-05-29 Radovan Obradovic <robradovic@mips.com>
22958 Tom de Vries <tom@codesourcery.com>
22960 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
22961 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
22963 (mips_split_call): Use POST_CALL_TMP_REG.
22964 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
22966 2014-05-29 Tom de Vries <tom@codesourcery.com>
22968 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
22969 with #ifdef STACK_REGS.
22971 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
22973 * varasm.c (get_variable_section): Walk aliases.
22974 (place_block_symbol): Walk aliases.
22976 2014-05-28 Tom de Vries <tom@codesourcery.com>
22979 2014-05-28 Tom de Vries <tom@codesourcery.com>
22981 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22982 * lra.c (initialize_lra_reg_info_element): Add init of
22983 actual_call_used_reg_set field.
22984 (lra): Call lra_create_live_ranges before lra_inheritance for
22986 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22988 * lra-constraints.c (need_for_call_save_p): Use
22989 actual_call_used_reg_set instead of call_used_reg_set for
22991 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22993 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
22995 * doc/md.texi: Document that the % constraint character must
22996 be at the beginning of the string.
22997 * genoutput.c (validate_insn_alternatives): Check that '=',
22998 '+' and '%' only appear at the beginning of a constraint.
22999 * ira.c (commutative_constraint_p): Delete.
23000 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23001 at the start of the string.
23002 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23004 * config/arm/neon.md (bicdi3_neon): Likewise.
23005 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23006 (slt_si, sltu_si): Likewise.
23007 * config/vax/vax.md (sbcdi3): Likewise.
23008 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23009 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23010 (mul64): Move '%' to beginning of constraint.
23011 * config/arm/arm.md (*xordi3_insn): Likewise.
23012 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23013 (xorsi3): Likewise.
23015 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23017 * doc/md.texi: Document the restrictions on the "enabled" attribute.
23019 2014-05-28 Jason Merrill <jason@redhat.com>
23022 * cgraph.h (symtab_node::get_comdat_group_id): New.
23023 * cgraphunit.c (analyze_functions): Call it.
23024 * symtab.c (dump_symtab_node): Likewise.
23025 * tree.c (decl_comdat_group_id): New.
23026 * tree.h: Declare it.
23027 * lto-streamer-out.c (write_symbol): Use it.
23028 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23030 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
23032 PR bootstrap/PR61146
23033 * wide-int.cc: Do not include longlong.h when compiling with clang.
23035 2014-05-28 Richard Biener <rguenther@suse.de>
23037 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23038 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23039 (vrp_visit_assignment_or_call): Print less vertical space.
23040 (vrp_visit_stmt): Likewise.
23041 (vrp_visit_phi_node): Likewise. For a PHI argument with
23042 VR_VARYING range consider recording it as copy.
23044 2014-05-28 Richard Biener <rguenther@suse.de>
23047 2014-05-28 Richard Biener <rguenther@suse.de>
23049 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23051 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
23053 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23054 sufficiently aligned and an offset is used at the same time.
23055 (expand_expr_real_1): Likewise.
23057 2014-05-28 Richard Biener <rguenther@suse.de>
23059 PR middle-end/61045
23060 * fold-const.c (fold_comparison): When folding
23061 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23062 the sign of the remaining constant operand stays the same.
23064 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
23066 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23067 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23068 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23070 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23071 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23072 (m32bit-doubles) Likewise.
23073 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23074 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23077 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23079 * configure.ac ($gcc_cv_ld_clearcap): New test.
23080 * configure: Regenerate.
23081 * config.in: Regenerate.
23082 * config/sol2.opt (mclear-hwcap): New option.
23083 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23084 * config/sol2-clearcap.map: Moved here from
23085 testsuite/gcc.target/i386/clearcap.map.
23086 * config/sol2-clearcapv2.map: Move here from
23087 gcc.target/i386/clearcapv2.map.
23088 * config/t-sol2 (install): Depend on install-clearcap-map.
23089 (install-clearcap-map): New target.
23090 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23093 2014-05-28 Richard Biener <rguenther@suse.de>
23095 * hwint.h (*_HALF_WIDE_INT*): Move to ...
23096 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23097 ... here and remove the rest.
23098 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23100 2014-05-28 Richard Biener <rguenther@suse.de>
23102 PR tree-optimization/61335
23103 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23104 new range fails, drop to varying.
23106 2014-05-28 Olivier Hainque <hainque@adacore.com>
23108 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23109 (CPP_SPEC): Add entry for -mcpu=8548.
23110 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23111 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23113 2014-05-28 Tom de Vries <tom@codesourcery.com>
23115 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23116 * lra.c (initialize_lra_reg_info_element): Add init of
23117 actual_call_used_reg_set field.
23118 (lra): Call lra_create_live_ranges before lra_inheritance for
23120 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23122 * lra-constraints.c (need_for_call_save_p): Use
23123 actual_call_used_reg_set instead of call_used_reg_set for
23125 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23127 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23128 Tom de Vries <tom@codesourcery.com>
23130 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23132 (@item -fuse-caller-save): New item.
23134 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23135 Tom de Vries <tom@codesourcery.com>
23137 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23138 OPT_fuse_caller_save.
23140 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23141 Tom de Vries <tom@codesourcery.com>
23143 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23144 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23145 get_call_reg_set_usage.
23146 * resource.c (mark_set_resources, mark_target_live_regs): Use
23147 get_call_reg_set_usage.
23148 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23150 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23151 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23152 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23153 * ira-build.c (ira_create_allocno): Init
23154 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23155 (create_cap_allocno, propagate_allocno_info)
23156 (propagate_some_info_from_allocno)
23157 (copy_info_to_removed_store_destinations): Handle
23158 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23159 * ira-costs.c (ira_tune_allocno_costs): Use
23160 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23162 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23163 Tom de Vries <tom@codesourcery.com>
23165 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23166 and function_used_regs_valid fields.
23167 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23168 find_all_hard_reg_sets.
23169 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23170 (get_call_reg_set_usage): New function.
23171 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23172 * regs.h (get_call_reg_set_usage): Declare.
23174 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23177 * config/dbx.h (License): Add Runtime Library Exception.
23178 * config/newlib-stdint.h (License): Same.
23179 * config/rtems.h (License): Same
23180 * config/initfini-array.h (License): Same
23181 * config/v850/v850.h (License): Same.
23182 * config/v850/v850-opts.h (License): Same
23183 * config/v850/rtems.h (License): Same.
23185 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23188 * doc/extend.texi (Local Labels): Note that label differences are
23189 not supported for AVR.
23191 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23192 Olivier Hainque <hainque@adacore.com>
23194 * rtl.h (set_for_reg_notes): Declare.
23195 * emit-rtl.c (set_for_reg_notes): New function.
23196 (set_unique_reg_note): Use it.
23197 * optabs.c (add_equal_note): Likewise
23199 2014-05-27 Andrew Pinski <apinski@cavium.com>
23201 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23202 Use <w> for the register in assembly template.
23203 (stack_protect_test): Use the mode of operands[0] for the result.
23204 (stack_protect_test_<mode>): Use <w> for the register
23205 in assembly template.
23207 2014-05-27 DJ Delorie <dj@redhat.com>
23209 * config/rx/rx.c (add_vector_labels): New.
23210 (rx_output_function_prologue): Call it.
23211 (rx_handle_func_attribute): Don't require empty arguments.
23212 (rx_handle_vector_attribute): New.
23213 (rx_attribute_table): Add "vector" attribute.
23214 * doc/extend.texi (interrupt, vector): Document new/changed
23215 RX-specific attributes.
23217 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23219 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23221 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23222 predicate to detect a negative quotient.
23224 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23226 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23227 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23228 Add X - Y CMP 0 to X CMP Y transformation.
23229 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23231 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
23233 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23236 2014-05-27 Steve Ellcey <sellcey@mips.com>
23238 * config/mips/mips.c: Add include of cgraph.h.
23240 2014-05-27 Richard Biener <rguenther@suse.de>
23242 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23244 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23247 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23248 * config/arm/arm-cores.def (License): Same.
23249 * config/arm/arm-opts.h (License): Same.
23250 * config/arm/aout.h (License): Same.
23251 * config/arm/bpabi.h (License): Same.
23252 * config/arm/elf.h (License): Same.
23253 * config/arm/linux-elf.h (License): Same.
23254 * config/arm/linux-gas.h (License): Same.
23255 * config/arm/netbsd-elf.h (License): Same.
23256 * config/arm/uclinux-eabi.h (License): Same.
23257 * config/arm/uclinux-elf.h (License): Same.
23258 * config/arm/vxworks.h (License): Same.
23260 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23262 * config/arm/neon.md (neon_bswap<mode>): New pattern.
23263 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23264 (arm_init_neon_builtins): Handle NEON_BSWAP.
23265 Define required type nodes.
23266 (arm_expand_neon_builtin): Handle NEON_BSWAP.
23267 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23268 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23269 * config/arm/iterators.md (VDQHSD): New mode iterator.
23271 2014-05-27 Richard Biener <rguenther@suse.de>
23273 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23274 Try using literal operands when comparing value-ranges failed.
23276 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23278 * ira.c (commutative_operand): Adjust for change to recog_data.
23279 [Missing from previous commit.]
23281 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23283 * system.h (TEST_BIT): New macro.
23284 * recog.h (alternative_mask): New type.
23285 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23286 (recog_data_d): Replace alternative_enabled_p array with
23287 enabled_alternatives.
23288 (target_recog): New structure.
23289 (default_target_recog, this_target_recog): Declare.
23290 (get_enabled_alternatives, recog_init): Likewise.
23291 * recog.c (default_target_recog, this_target_recog): New variables.
23292 (get_enabled_alternatives): New function.
23293 (extract_insn): Use it.
23294 (recog_init): New function.
23295 (preprocess_constraints, constrain_operands): Adjust for change to
23297 * postreload.c (reload_cse_simplify_operands): Likewise.
23298 * reload.c (find_reloads): Likewise.
23299 * ira-costs.c (record_reg_classes): Likewise.
23300 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
23301 all alternatives after a disabled one would be skipped.
23302 (ira_implicitly_set_insn_hard_regs): Likewise.
23303 * ira.c (ira_setup_alts): Adjust for change to recog_data.
23304 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23305 with enabled_alternatives.
23306 * lra.c (free_insn_recog_data): Update accordingly.
23307 (lra_update_insn_recog_data): Likewise.
23308 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
23309 * lra-constraints.c (process_alt_operands): Likewise. Handle
23310 only_alternative as part of the enabled mask.
23311 * target-globals.h (this_target_recog): Declare.
23312 (target_globals): Add a recog field.
23313 (restore_target_globals): Restore this_target_recog.
23314 * target-globals.c: Include recog.h.
23315 (default_target_globals): Initialize recog field.
23316 (save_target_globals): Likewise.
23317 * reginfo.c (reinit_regs): Call recog_init.
23318 * toplev.c (backend_init_target): Likewise.
23320 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23322 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23323 rather than any named insn's code.
23325 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23328 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23329 * config/arm/arm-cores.def (License): Same.
23331 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
23333 * tree.h (decl_comdat_group): Declare.
23334 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23335 * tree.c (decl_comdat_group): Here.
23337 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
23339 PR rtl-optimization/61222
23340 * combine.c (simplify_shift_const_1): When moving a PLUS outside
23341 the shift, truncate the PLUS operand to the result mode.
23343 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
23346 * config/i386/i386.c (ix86_rtx_costs)
23347 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23350 2014-05-26 Martin Jambor <mjambor@suse.cz>
23352 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23355 2014-05-26 Richard Biener <rguenther@suse.de>
23357 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23358 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23359 Provide specializations.
23360 (wi::int_traits <HOST_WIDE_INT>,
23361 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23363 2014-05-26 Alan Modra <amodra@gmail.com>
23366 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23367 params and return a bool. Remove dead code. Update comment.
23368 Assert we have a const_int source. Remove bogus code from
23369 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
23370 handling of constants > 2G and reg_equal note, from..
23371 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
23372 return value. Update comment. If we can, use a new pseudo
23373 for intermediate calculations.
23374 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23376 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23377 call to rs6000_emit_set_const in splitter.
23378 (movdi_internal64+2, +3): Likewise.
23380 2014-05-26 Richard Biener <rguenther@suse.de>
23382 * system.h: Define __STDC_FORMAT_MACROS before
23383 including inttypes.h.
23384 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23385 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23386 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23387 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23388 HOST_WIDEST_INT_C): Remove.
23389 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23390 if C99 inttypes.h is not available.
23391 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23392 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
23393 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
23394 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
23395 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
23396 (struct output_info): Likewise.
23397 (print_statistics): Adjust.
23398 (dump_bitmap_statistics): Likewise.
23399 * bt-load.c (migrate_btr_defs): Print with PRId64.
23400 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
23401 (MAX_SAFE_MULTIPLIER): Adjust.
23402 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
23403 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
23404 dump_cgraph_node): Likewise.
23405 * final.c (dump_basic_block_info): Likewise.
23406 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
23407 * gcov.c (format_gcov): Likewise.
23408 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
23410 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
23411 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
23412 (inline_small_functions, dump_overall_stats, dump_inline_stats):
23413 Use PRId64 for dumping.
23414 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
23415 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
23416 (add_allocno_hard_regs): Adjust.
23417 * loop-doloop.c (doloop_modify): Print using PRId64.
23418 * loop-iv.c (inverse): Compute in uint64_t.
23419 (determine_max_iter, iv_number_of_iterations): Likewise.
23420 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
23421 Print using PRId64.
23422 * lto-streamer-out.c (write_symbol): Use uint64_t.
23423 * mcf.c (CAP_INFINITY): Use int64_t maximum.
23424 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
23425 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
23426 * modulo-sched.c (const_iteration_count): Use int64_t.
23427 (sms_schedule): Dump using PRId64.
23428 * predict.c (dump_prediction): Likewise.
23429 * pretty-print.h (pp_widest_integer): Remove.
23430 * profile.c (get_working_sets, is_edge_inconsistent,
23431 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
23432 * tree-pretty-print.c (pp_double_int): Remove case handling
23433 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
23434 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
23436 (pass_optimize_bswap::execute): Remove restriction on hosts.
23437 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
23438 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23439 * tree.c (widest_int_cst_value): Remove.
23440 * tree.h (widest_int_cst_value): Likewise.
23441 * value-prof.c (dump_histogram_value): Print using PRId64.
23442 * gengtype.c (main): Also inject int64_t.
23443 * ggc-page.c (struct max_alignment): Use int64_t.
23444 * alloc-pool.c (struct allocation_object_def): Likewise.
23445 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
23447 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
23448 * doc/tm.texi: Regenerated.
23449 * gengtype-lex.l (IWORD): Handle [u]int64_t.
23450 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
23451 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
23452 mmix_output_register_setting): Use [u]int64_t in prototypes.
23453 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
23454 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
23455 mmix_output_octa, mmix_output_shifted_value): Adjust.
23456 (mmix_intval): Adjust. Remove unreachable case.
23457 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
23459 2014-05-26 Richard Biener <rguenther@suse.de>
23461 * configure.ac: Drop __int64 type check. Insist that we
23462 found uint64_t and int64_t.
23463 * hwint.h (HOST_BITS_PER___INT64): Remove.
23464 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
23465 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
23466 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
23467 (HOST_WIDEST_FAST_INT): Remove __int64 case.
23468 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
23469 for dst_q_src_df_rms_cdt.
23470 * configure: Regenerate.
23471 * config.in: Likewise.
23473 2014-05-26 Michael Tautschnig <mt@debian.org>
23476 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
23477 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
23479 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23481 PR rtl-optimization/61278
23482 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
23484 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23486 PR rtl-optimization/61220
23487 Part of PR rtl-optimization/61225
23488 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
23489 insn; skip split_edge for a block with only one successor.
23491 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23493 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
23496 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23498 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
23499 (update_vtable_references): New function.
23500 (function_and_variable_visibility): Rewrite also vtable initializers.
23501 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
23503 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23505 * ggc.h (ggc_grow): New function.
23506 * ggc-none.c (ggc_grow): New function.
23507 * ggc-page.c (ggc_grow): Likewise.
23509 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23511 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
23512 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
23513 comdat_can_be_unshared_p, cgraph_externally_visible_p,
23514 varpool_externally_visible_p, can_replace_by_local_alias,
23515 update_visibility_by_resolution_info, function_and_variable_visibility,
23516 pass_data_ipa_function_and_variable_visibility,
23517 make_pass_ipa_function_and_variable_visibility,
23518 whole_program_function_and_variable_visibility,
23519 pass_data_ipa_whole_program_visibility,
23520 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
23521 * cgraph.h (cgraph_local_node_p): Declare.
23522 * ipa-visibility.c: New file.
23523 * Makefile.in (OBJS): Add ipa-visiblity.o
23525 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23527 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
23528 that var decl is available.
23530 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23532 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
23533 symtab_node pointer.
23534 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
23535 (find_decls_types_r): Do not walk COMDAT_GROUP.
23536 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
23537 * varasm.c (make_decl_one_only): Use set_comdat_group;
23538 create node if needed.
23539 * ipa-inline-transform.c (save_inline_function_body): Update
23540 way we decl->symtab mapping.
23541 * symtab.c (symtab_hash, hash_node, eq_node
23542 symtab_insert_node_to_hashtable): Remove.
23543 (symtab_register_node): Update.
23544 (symtab_unregister_node): Update.
23545 (symtab_get_node): Reimplement as inline function.
23546 (symtab_add_to_same_comdat_group): Update.
23547 (symtab_dissolve_same_comdat_group_list): Update.
23548 (dump_symtab_base): Update.
23549 (verify_symtab_base): Update.
23550 (symtab_make_decl_local): Update.
23551 (fixup_same_cpp_alias_visibility): Update.
23552 (symtab_nonoverwritable_alias): Update.
23553 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
23554 * ipa.c (update_visibility_by_resolution_info): UPdate.
23555 * bb-reorder.c: Include cgraph.h
23556 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
23557 with comdat groups.
23558 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
23559 * cgraph.c (cgraph_get_create_node): Update.
23560 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
23562 (symtab_get_node): Make inline.
23563 (symtab_insert_node_to_hashtable): Remove.
23564 (symtab_can_be_discarded): Update.
23565 (decl_comdat_group): New function.
23566 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
23568 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
23570 (read_comdat_group): New function.
23571 (input_node, input_varpool_node): Use it.
23572 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
23574 * mips.c (mips_start_unique_function): Likewise.
23575 (ix86_code_end): Likewise.
23576 (rs6000_code_end): Likweise.
23577 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
23579 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23581 * gengtype-state.c (fatal_reading_state): Bring offline.
23582 * optabs.c (widening_optab_handler): Bring offline.
23583 * optabs.h (widening_optab_handler): Likewise.
23584 * final.c (get_attr_length_1): Likewise.
23586 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
23588 * sched-int.h (sd_iterator_cond): Manually tail recurse.
23590 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23592 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
23593 (ppc440-compare): Include shift with dot.
23594 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
23595 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
23597 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
23599 (e6500_sfx2): Include it.
23600 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
23601 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
23602 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
23603 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
23604 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
23605 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
23606 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
23607 *lshiftrt_internal1le, *lshiftrt_internal1be,
23608 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
23609 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
23610 *rotldi3_internal10le, *rotldi3_internal10be,
23611 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
23612 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
23613 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
23614 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
23615 define_insns): Use type "shift" in the appropriate alternatives.
23617 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23619 * config/rs6000/rs6000.md (type): Add "logical". Delete
23621 (dot): Adjust comment.
23622 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
23623 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
23624 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
23625 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
23626 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
23627 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
23628 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
23629 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23631 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23632 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23633 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23634 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23635 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23636 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23637 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23638 * config/rs6000/8540.md (ppc8540_su): Adjust.
23639 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23640 cell-cmp-microcoded): Adjust.
23641 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23642 * config/rs6000/e500mc.md (e500mc_su): Adjust.
23643 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23644 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23645 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23646 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23647 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23648 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23649 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23651 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23652 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
23653 Adjust. Adjust comment.
23654 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23655 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23657 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23659 * config/rs6000/rs6000.md (type): Add "add".
23660 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
23661 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
23662 define_insns): Use it.
23663 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23665 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23666 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23667 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23668 * config/rs6000/601.md (ppc601-integer): Adjust.
23669 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23670 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23671 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23672 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23673 * config/rs6000/8540.md (ppc8540_su): Adjust.
23674 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23675 cell-cmp-microcoded): Adjust.
23676 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23677 * config/rs6000/e500mc.md (e500mc_su): Adjust.
23678 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23679 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23680 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23681 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23682 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23683 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23684 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23686 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23687 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
23688 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23689 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23691 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23693 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
23694 "delayed_compare", "var_delayed_compare".
23695 (var_shift): New attribute.
23696 (cell_micro): Adjust.
23697 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
23698 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
23699 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
23700 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
23701 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
23702 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
23703 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
23704 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
23705 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
23706 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
23707 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
23708 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
23709 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
23710 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
23711 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
23712 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
23713 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
23714 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
23715 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
23716 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
23717 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
23718 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
23719 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
23720 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23721 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23723 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23724 * config/rs6000/440.md (ppc440-integer): Adjust.
23725 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23726 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
23727 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23728 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23729 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23730 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23731 * config/rs6000/8540.md (ppc8540_su): Adjust.
23732 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23733 cell-cmp-microcoded): Adjust.
23734 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
23735 * config/rs6000/e500mc.md (e500mc_su): Adjust.
23736 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
23737 e500mc64_delayed): Adjust.
23738 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
23739 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
23740 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23741 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
23742 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
23743 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
23744 power6-delayed-compare, power6-var-delayed-compare): Adjust.
23745 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
23746 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
23748 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23749 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23751 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23753 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
23754 (bits): New mode_attr.
23755 (idiv_ldiv): Delete mode_attr.
23756 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
23757 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23758 rs6000_adjust_priority, is_nonpipeline_insn,
23759 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23761 * config/rs6000/40x.md (ppc403-idiv): Adjust.
23762 * config/rs6000/440.md (ppc440-idiv): Adjust.
23763 * config/rs6000/476.md (ppc476-idiv): Adjust.
23764 * config/rs6000/601.md (ppc601-idiv): Adjust.
23765 * config/rs6000/603.md (ppc603-idiv): Adjust.
23766 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
23767 ppc620-ldiv): Adjust.
23768 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
23769 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
23770 * config/rs6000/8540.md (ppc8540_divide): Adjust.
23771 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
23772 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
23773 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
23774 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
23775 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
23776 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
23777 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
23778 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
23779 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
23780 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
23781 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
23782 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
23783 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
23784 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
23785 * config/rs6000/titan.md (titan_fxu_div): Adjust.
23787 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23789 * config/rs6000/rs6000.md (type): Delete "insert_word",
23790 "insert_dword". Add "insert".
23791 (size): Update comment.
23792 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23793 insn_must_be_first_in_group): Adjust.
23794 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
23795 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
23796 *insvsi_internal6, insvdi_internal): Adjust.
23798 * config/rs6000/40x.md (ppc403-integer): Adjust.
23799 * config/rs6000/440.md (ppc440-integer): Adjust.
23800 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
23801 * config/rs6000/601.md (ppc601-integer): Adjust.
23802 * config/rs6000/603.md (ppc603-integer): Adjust.
23803 * config/rs6000/6xx.md (ppc604-integer): Adjust.
23804 * config/rs6000/7450.md (ppc7450-integer): Adjust.
23805 * config/rs6000/7xx.md (ppc750-integer): Adjust.
23806 * config/rs6000/8540.md (ppc8540_su): Adjust.
23807 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
23808 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
23809 * config/rs6000/e500mc.md (e500mc_su): Adjust.
23810 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
23811 * config/rs6000/e5500.md (e5500_sfx): Adjust.
23812 * config/rs6000/e6500.md (e6500_sfx): Adjust.
23813 * config/rs6000/mpc.md (mpccore-integer): Adjust.
23814 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
23815 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
23816 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
23817 * config/rs6000/power7.md (power7-integer): Adjust.
23818 * config/rs6000/power8.md (power8-1cyc): Adjust.
23819 * config/rs6000/rs64.md (rs64a-integer): Adjust.
23820 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23822 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23824 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
23825 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
23826 (size): New attribute.
23827 (dot): New attribute.
23828 (cell_micro): Adjust.
23829 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
23830 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
23831 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
23832 umuldi3_highpart): Adjust.
23833 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23834 rs6000_adjust_priority, is_nonpipeline_insn,
23835 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23837 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
23838 ppc405-imul3): Adjust.
23839 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
23840 * config/rs6000/476.md (ppc476-imul): Adjust.
23841 * config/rs6000/601.md (ppc601-imul): Adjust.
23842 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
23843 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
23844 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
23845 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
23846 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
23848 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
23849 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
23850 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
23851 cell-imul): Adjust.
23852 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
23853 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
23854 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
23855 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
23856 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
23857 * config/rs6000/mpc.md (mpccore-imul): Adjust.
23858 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
23859 power4-lmul, power4-imul, power4-imul3): Adjust.
23860 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
23861 power5-lmul, power5-imul, power5-imul3): Adjust.
23862 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
23863 power6-lmul, power6-imul, power6-imul3): Adjust.
23864 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
23865 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
23867 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
23868 rs64a-lmul): Adjust.
23869 * config/rs6000/titan.md (titan_imul): Adjust.
23871 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23873 * config/rs6000/rs6000.md (type): Add new value "halfmul".
23874 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
23875 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
23876 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
23877 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
23878 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
23879 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
23880 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
23881 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
23882 * config/rs6000/titan.md: Delete nonsensical comment.
23883 (titan_imul): Add type imul3.
23884 (titan_mulhw): Remove type imul3; add type halfmul.
23886 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
23888 * config/rs6000/rs6000.md (type): Reorder, reformat.
23890 2014-05-23 Martin Jambor <mjambor@suse.cz>
23892 PR tree-optimization/53787
23893 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
23894 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
23895 analysis_done, update all uses.
23896 * ipa-prop.c: Include domwalk.h
23897 (param_analysis_info): Removed.
23898 (param_aa_status): New type.
23899 (ipa_bb_info): Likewise.
23900 (func_body_info): Likewise.
23901 (ipa_get_bb_info): New function.
23902 (aa_overwalked): Likewise.
23903 (find_dominating_aa_status): Likewise.
23904 (parm_bb_aa_status_for_bb): Likewise.
23905 (parm_preserved_before_stmt_p): Changed to use new param AA info.
23906 (load_from_unmodified_param): Accept func_body_info as a parameter
23907 instead of parms_ainfo.
23908 (parm_ref_data_preserved_p): Changed to use new param AA info.
23909 (parm_ref_data_pass_through_p): Likewise.
23910 (ipa_load_from_parm_agg_1): Likewise. Update callers.
23911 (compute_complex_assign_jump_func): Changed to use new param AA info.
23912 (compute_complex_ancestor_jump_func): Likewise.
23913 (ipa_compute_jump_functions_for_edge): Likewise.
23914 (ipa_compute_jump_functions): Removed.
23915 (ipa_compute_jump_functions_for_bb): New function.
23916 (ipa_analyze_indirect_call_uses): Likewise, moved variable
23918 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
23919 and info, moved variable declarations down.
23920 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
23922 (ipa_analyze_stmt_uses): Likewise.
23923 (ipa_analyze_params_uses): Removed.
23924 (ipa_analyze_params_uses_in_bb): New function.
23925 (ipa_analyze_controlled_uses): Likewise.
23926 (free_ipa_bb_info): Likewise.
23927 (analysis_dom_walker): New class.
23928 (ipa_analyze_node): Handle node-specific forbidden analysis,
23929 initialize and free func_body_info, use dominator walker.
23930 (ipcp_modif_dom_walker): New class.
23931 (ipcp_transform_function): Create and free func_body_info, use
23932 ipcp_modif_dom_walker, moved a lot of functionality there.
23934 2014-05-23 Marek Polacek <polacek@redhat.com>
23935 Jakub Jelinek <jakub@redhat.com>
23937 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
23938 * gcc.c (sanitize_spec_function): Likewise.
23939 * convert.c (convert_to_integer): Include "ubsan.h". Add
23940 floating-point to integer instrumentation.
23941 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
23942 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
23943 SANITIZE_NONDEFAULT.
23944 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
23945 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
23946 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
23947 * ubsan.c: Include "realmpfr.h" and "dfp.h".
23948 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
23949 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
23950 float/double/long double.
23951 (ubsan_instrument_float_cast): New function.
23952 * ubsan.h (ubsan_instrument_float_cast): Declare.
23954 2014-05-23 Jiong Wang <jiong.wang@arm.com>
23956 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
23958 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
23959 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
23960 Adjust for tailcalling through registers.
23961 * config/aarch64/aarch64.h (enum reg_class): New caller save
23963 (REG_CLASS_NAMES): Likewise.
23964 (REG_CLASS_CONTENTS): Likewise.
23965 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
23966 Allow tailcalling without decls.
23968 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
23970 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23971 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
23973 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
23974 gsi, and variables v_* to v*.
23976 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
23978 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
23980 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
23982 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
23983 * omp-low.c: Update accordingly.
23985 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
23986 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
23987 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
23988 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
23989 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
23990 GF_OMP_TARGET_KIND_UPDATE.
23992 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23993 Explicitly enumerate the expected region types.
23995 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
23998 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
23999 documentation; the old documentation didn't clearly state the
24000 constraints on the contents of the pointed-to storage.
24002 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24004 Fix bootstrap error on ia64
24005 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24006 Return default value.
24008 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
24010 PR tree-optimization/54733
24011 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24013 (find_bswap_or_nop_load): New.
24014 (find_bswap_1): Renamed to ...
24015 (find_bswap_or_nop_1): This. Also add support for memory source.
24016 (find_bswap): Renamed to ...
24017 (find_bswap_or_nop): This. Also add support for memory source and
24018 detection of bitwise operations equivalent to load in target
24020 (execute_optimize_bswap): Likewise. Also move its leading comment back
24021 in place and split statement transformation into ...
24022 (bswap_replace): This.
24024 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24026 PR rtl-optimization/61215
24027 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24028 simplify_gen_subreg until final substitution.
24030 2014-05-23 Alan Modra <amodra@gmail.com>
24033 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24034 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24035 Use "Y" constraint rather than "m".
24037 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
24039 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24041 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24042 New function declaration.
24043 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24044 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24045 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24046 (aarch64_init_builtins) : Initialize builtins
24047 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24048 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24049 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24050 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24051 and __builtins_aarch64_set_fpsr.
24052 (aarch64_atomic_assign_expand_fenv): New function.
24053 * config/aarch64/aarch64.md (set_fpcr): New pattern.
24054 (get_fpcr) : Likewise.
24055 (set_fpsr) : Likewise.
24056 (get_fpsr) : Likewise.
24057 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24058 and UNSPECV_SET_FPSR.
24059 * doc/extend.texi (AARCH64 Built-in Functions) : Document
24060 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24061 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24063 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24065 PR rtl-optimization/60969
24066 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24067 constraints. Set up mem cost for NO_REGS case.
24069 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
24071 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24073 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
24075 * config/darwin.c: Include "lto-section-names.h".
24076 (LTO_SEGMENT_NAME): Don't define.
24077 * config/i386/winnt.c: Include "lto-section-names.h".
24078 * lto-streamer.c: Include "lto-section-names.h".
24079 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24080 * lto-wrapper.c: Include "lto-section-names.h".
24081 (LTO_SECTION_NAME_PREFIX): Don't define.
24082 * lto-section-names.h: New file.
24083 * cgraphunit.c: Include "lto-section-names.h".
24085 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
24087 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24089 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
24092 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24094 2014-05-22 Nick Clifton <nickc@redhat.com>
24096 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24098 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
24100 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24101 -> (T)A transformation to integer types.
24103 2014-05-22 Teresa Johnson <tejohnson@google.com>
24105 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24106 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24107 (gcov_rewrite): Use gcov_nonruntime_assert.
24108 (gcov_open): Ditto.
24109 (gcov_write_words): Ditto.
24110 (gcov_write_length): Ditto.
24111 (gcov_read_words): Use gcov_nonruntime_assert, and remove
24112 gcc_assert from IN_LIBGCOV code.
24113 (gcov_read_summary): Use gcov_error to flag profile corruption.
24114 (gcov_sync): Use gcov_nonruntime_assert.
24115 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24116 (gcov_histo_index): Use gcov_nonruntime_assert.
24117 (static void gcov_histogram_merge): Ditto.
24118 (compute_working_sets): Ditto.
24119 * gcov-io.h (gcov_nonruntime_assert): Define.
24120 (gcov_error): Define for !IN_LIBGCOV
24122 2014-05-22 Richard Biener <rguenther@suse.de>
24124 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24125 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24126 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24127 and deallocation site.
24128 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24129 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24130 passing through the incoming points-to set.
24131 (handle_lhs_call): Use flags argument instead of recomputing it.
24132 (find_func_aliases_for_call): Call handle_lhs_call with proper
24135 2014-05-22 Jakub Jelinek <jakub@redhat.com>
24137 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24138 all padding bits in REAL_VALUE_TYPE are cleared.
24140 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24142 Cleanup and improve multipass_dfa_lookahead_guard
24143 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24144 (core2i7_first_cycle_multipass_begin,)
24145 (core2i7_first_cycle_multipass_issue,)
24146 (core2i7_first_cycle_multipass_backtrack): Update signature.
24147 * config/ia64/ia64.c
24148 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24149 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24150 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24152 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24153 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
24155 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24157 * doc/tm.texi: Regenerate.
24159 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24160 * haifa-sched.c (ready_try): Make signed to allow negative values.
24161 (rebug_ready_list_1): Update.
24162 (choose_ready): Simplify.
24163 (sched_extend_ready_list): Update.
24165 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24167 Remove IA64 speculation tweaking flags
24168 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24169 speculation tuning flags.
24170 (msched-prefer-non-data-spec-insns,)
24171 (msched-prefer-non-control-spec-insns): Obsolete options.
24172 * haifa-sched.c (choose_ready): Remove handling of
24173 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24174 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24175 and PREFER_NON_DATA_SPEC.
24176 * sel-sched.c (process_spec_exprs): Remove handling of
24177 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24179 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24181 Improve scheduling debug output
24182 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24183 (advance_one_cycle): Update.
24184 (schedule_insn, queue_to_ready): Add debug printouts.
24185 (debug_ready_list_1): New static function.
24186 (debug_ready_list): Update.
24187 (max_issue): Add debug printouts.
24188 (dump_insn_stream): New static function.
24189 (schedule_block): Use it. Also better indent printouts.
24191 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24193 Fix sched_insn debug counter
24194 * haifa-sched.c (schedule_insn): Update.
24195 (struct haifa_saved_data): Add nonscheduled_insns_begin.
24196 (save_backtrack_point, restore_backtrack_point): Update.
24197 (first_nonscheduled_insn): New static function.
24198 (queue_to_ready, choose_ready): Use it.
24199 (schedule_block): Init nonscheduled_insns_begin.
24200 (sched_emit_insn): Update.
24203 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
24205 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24207 (aarch64_secondary_reload) : LikeWise.
24208 (aarch64_class_max_nregs) : Remove CORE_REGS.
24209 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24210 (REG_CLASS_NAMES) : Likewise.
24211 (REG_CLASS_CONTENTS) : LikeWise.
24212 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24214 2014-05-21 Guozhi Wei <carrot@google.com>
24217 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24219 (vqdmulhq_n_s16): Likewise.
24221 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
24223 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24225 2014-05-21 Marek Polacek <polacek@redhat.com>
24228 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24230 2014-05-21 Martin Jambor <mjambor@suse.cz>
24232 * doc/invoke.texi (Optimize Options): Document parameters
24233 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24234 ipa-cp-array-index-hint-bonus.
24236 2014-05-21 Mark Wielaard <mjw@redhat.com>
24239 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24240 version >= 3 or not strict DWARF.
24241 * langhooks.h (struct lang_hooks_for_types): Add
24242 enum_underlying_base_type.
24243 * langhooks.c (lhd_enum_underlying_base_type): New function.
24244 * gcc/langhooks.h (struct lang_hooks_for_types): Add
24245 enum_underlying_base_type.
24246 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24247 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24248 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24250 2014-05-21 Richard Biener <rguenther@suse.de>
24252 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24254 2014-05-21 John Marino <gnugcc@marino.st>
24256 * config.gcc (*-*-dragonfly*): New target.
24257 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24258 * configure: Regenerate.
24259 * config/dragonfly-stdint.h: New.
24260 * config/dragonfly.h: New.
24261 * config/dragonfly.opt: New.
24262 * config/i386/dragonfly.h: New.
24263 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24265 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
24267 * tree.def (VOID_CST): New.
24268 * tree-core.h (TI_VOID): New.
24269 * tree.h (void_node): New.
24270 * tree.c (tree_node_structure_for_code, tree_code_size)
24271 (iterative_hash_expr): Handle VOID_CST.
24272 (build_common_tree_nodes): Initialize void_node.
24274 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
24276 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24278 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24280 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24283 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24284 flag_reorder_blocks_and_partition.
24285 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24287 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
24290 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
24292 (*addc_r_t): Add new insn_and_split.
24294 2014-05-21 Jakub Jelinek <jakub@redhat.com>
24296 PR middle-end/61252
24297 * omp-low.c (handle_simd_reference): New function.
24298 (lower_rec_input_clauses): Use it. Defer adding reference
24299 initialization even for reduction without placeholder if in simd,
24300 handle it properly later on.
24302 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24304 PR tree-optimization/60899
24305 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24306 assume all static symbols will have definition wile parsing and
24307 check the do have definition later in compilation; check that
24308 variable referring symbol will be output before concluding that
24309 reference is safe; be conservative for referring local statics;
24310 be more precise about when comdat is output in other partition.
24312 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24315 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24317 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24318 (ipa_inline): Loop inline_to_all_callers until no more aliases
24321 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24323 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24324 set writeonly flag only for vars actually written to.
24326 2014-05-20 Dehao Chen <dehao@google.com>
24328 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24329 and callee count to get clone count.
24330 * tree-inline.c (expand_call_inline): Use callee count instead of bb
24331 count in copy_body.
24333 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
24335 PR rtl-optimization/61243
24336 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24338 2014-05-20 Xinliang David Li <davidxl@google.com>
24340 * cgraphunit.c (walk_polymorphic_call_targets): Add
24341 dbgcnt and fopt-info support.
24342 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24343 * ipa-devirt.c (ipa_devirt): Ditto.
24344 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24345 * ipa.c (walk_polymorphic_call_targets): Ditto.
24346 * gimple-fold.c (fold_gimple_assign): Ditto.
24347 (gimple_fold_call): Ditto.
24348 * dbgcnt.def: New counter.
24350 2014-05-20 DJ Delorie <dj@redhat.com>
24352 * config/msp430/msp430.md (split): Don't allow subregs when
24353 splitting SImode adds.
24354 (andneghi): Fix subtraction logic.
24355 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24357 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24359 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24361 * except.c (switch_to_exception_section, resolve_unique_section,
24362 get_named_text_section, default_function_rodata_section,
24363 align_variable, get_block_for_decl, default_section_type_flags):
24364 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24365 * symtab.c (symtab_add_to_same_comdat_group,
24366 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24367 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24369 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24370 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24371 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24372 (c6x_function_in_section_p): Likewise.
24373 * config/darwin.c (machopic_select_section): Likewise.
24374 * config/arm/arm.c (arm_function_in_section_p): Likewise.
24375 * config/mips/mips.c (mips_function_rodata_section): Likewise.
24376 * config/mep/mep.c (mep_select_section): LIkewise.
24377 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24379 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
24381 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24382 EH region of calls to pure functions that can throw an exception.
24383 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24384 (copy_reference_ops_from_call): Also copy the EH region of the call if
24385 it can throw an exception.
24387 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24389 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24390 nested VEC_SELECTs that are inverses of each other.
24392 2014-05-20 Richard Biener <rguenther@suse.de>
24394 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
24395 (extract_and_process_scc_for_name): not here.
24396 (cond_dom_walker::before_dom_children): Only process
24397 stmts that end the BB in interesting ways.
24398 (run_scc_vn): Mark param uses as visited.
24400 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24402 * config/arm/arm.md (arith_shiftsi): Do not predicate for
24405 2014-05-20 Nick Clifton <nickc@redhat.com>
24407 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
24408 (msp430_gimplify_va_arg_expr): New function.
24409 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
24411 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
24412 operand 0 in order to prevent confusion about the number of
24413 registers involved.
24415 2014-05-20 Richard Biener <rguenther@suse.de>
24417 PR tree-optimization/61221
24418 * tree-ssa-pre.c (el_to_update): Remove.
24419 (eliminate_dom_walker::before_dom_children): Handle released
24420 VDEFs by value-numbering them to the associated VUSE. Update
24421 stmt immediately for substituted call address.
24422 (eliminate): Remove delayed stmt updating code.
24423 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
24424 possibly late re-numbered vuses.
24425 (vn_reference_lookup_2): Adjust.
24426 (vn_reference_lookup_pieces): Likewise.
24427 (vn_reference_lookup): Likewise.
24429 2014-05-20 Richard Biener <rguenther@suse.de>
24431 * config.gcc: Remove need_64bit_hwint.
24432 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
24433 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
24435 * config.in: Regenerate.
24436 * configure: Likewise.
24438 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
24440 * doc/extend.texi: Create Label Attributes section,
24441 move all label attributes into it and reference it.
24443 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
24445 * arm.c (thumb1_reorg): When scanning backwards skip anything
24446 that's not a proper insn.
24448 2014-05-19 Richard Biener <rguenther@suse.de>
24450 PR tree-optimization/61221
24451 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24452 Do nothing for unreachable blocks.
24453 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
24454 Improve unreachability detection.
24456 2014-05-19 Richard Biener <rguenther@suse.de>
24458 PR tree-optimization/61209
24459 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
24461 2014-05-19 Nick Clifton <nickc@redhat.com>
24463 * except.c (init_eh): Fix computation of builtin setjmp buffer
24464 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
24466 2014-05-19 Richard Biener <rguenther@suse.de>
24468 PR tree-optimization/61184
24469 * tree-vrp.c (is_negative_overflow_infinity): Use
24470 TREE_OVERFLOW_P and do that check first.
24471 (is_positive_overflow_infinity): Likewise.
24472 (is_overflow_infinity): Likewise.
24473 (vrp_operand_equal_p): Properly treat operands with
24474 differing overflow as not equal.
24476 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
24478 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
24479 shift simplification where it was intended.
24481 2014-05-19 Christian Bruel <christian.bruel@st.com>
24484 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
24486 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
24489 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
24492 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
24494 * reg-notes.def (CROSSING_JUMP): Likewise.
24495 * rtl.h (rtx_def): Update comment for jump flag.
24496 (CROSSING_JUMP_P): Define.
24497 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
24498 of a REG_CROSSING_JUMP note.
24499 * cfghooks.c (tidy_fallthru_edges): Likewise.
24500 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
24501 * emit-rtl.c (try_split): Likewise.
24502 * haifa-sched.c (sched_create_recovery_edges): Likewise.
24503 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
24504 * jump.c (redirect_jump_2): Likewise.
24505 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
24506 (relax_delay_slots): Likewise.
24507 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
24508 (bbit_di): Likewise.
24509 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
24510 * config/sh/sh.md (jump_compact): Likewise.
24511 * bb-reorder.c (rotate_loop): Likewise.
24512 (pass_duplicate_computed_gotos::execute): Likewise.
24513 (add_reg_crossing_jump_notes): Rename to...
24514 (update_crossing_jump_flags): ...this.
24515 (pass_partition_blocks::execute): Update accordingly.
24517 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
24519 * tree.h: Remove extraneous template <>.
24521 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
24523 * ipa.c (symtab_remove_unreachable_nodes): Remove
24524 symbol from comdat group if its body was eliminated.
24525 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
24526 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
24527 (symtab_unregister_node): ... this one.
24528 (verify_symtab_base): More strict checking of comdats.
24529 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
24531 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
24533 * tree-pass.h (make_pass_ipa_comdats): New pass.
24534 * timevar.def (TV_IPA_COMDATS): New timevar.
24535 * passes.def (pass_ipa_comdats): Add.
24536 * Makefile.in (OBJS): Add ipa-comdats.o
24537 * ipa-comdats.c: New file.
24539 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
24541 * ipa.c (update_visibility_by_resolution_info): New function.
24542 (function_and_variable_visibility): Use it.
24544 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
24546 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
24548 (FOR_EACH_DEFINED_SYMBOL): New macro.
24549 (varpool_first_static_initializer, varpool_next_static_initializer,
24550 varpool_first_defined_variable, varpool_next_defined_variable):
24552 (symtab_in_same_comdat_p): Correctly deal with inline functions.
24554 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
24556 * ggc-page.c (ggc_handle_finalizers): Add comment.
24558 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
24560 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
24561 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
24562 (ggc_internal_cleared_alloc): Likewise.
24563 * ggc-page.c (finalizer): New class.
24564 (vec_finalizer): Likewise.
24565 (globals::finalizers): New member.
24566 (globals::vec_finalizers): Likewise.
24567 (ggc_internal_alloc): Record the finalizer if any for the block being
24569 (ggc_handle_finalizers): New function.
24570 (ggc_collect): Call ggc_handle_finalizers.
24571 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
24573 (ggc_internal_cleared_alloc): Likewise.
24574 (finalize): New function.
24575 (need_finalization_p): Likewise.
24576 (ggc_alloc): Install the type's destructor as the finalizer if it
24577 might do something.
24578 (ggc_cleared_alloc): Likewise.
24579 (ggc_vec_alloc): Likewise.
24580 (ggc_cleared_vec_alloc): Likewise.
24582 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
24584 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
24586 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
24588 * alias.c (record_alias_subset): Adjust.
24589 * bitmap.c (bitmap_element_allocate): Likewise.
24590 (bitmap_gc_alloc_stat): Likewise.
24591 * cfg.c (init_flow): Likewise.
24592 (alloc_block): Likewise.
24593 (unchecked_make_edge): Likewise.
24594 * cfgloop.c (alloc_loop): Likewise.
24595 (flow_loops_find): Likewise.
24596 (rescan_loop_exit): Likewise.
24597 * cfgrtl.c (init_rtl_bb_info): Likewise.
24598 * cgraph.c (insert_new_cgraph_node_version): Likewise.
24599 (cgraph_allocate_node): Likewise.
24600 (cgraph_create_edge_1): Likewise.
24601 (cgraph_allocate_init_indirect_info): Likewise.
24602 * cgraphclones.c (cgraph_clone_edge): Likewise.
24603 * cgraphunit.c (add_asm_node): Likewise.
24604 (init_lowered_empty_function): Likewise.
24605 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
24606 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24607 (alpha_use_linkage): Likewise.
24608 * config/arc/arc.c (arc_init_machine_status): Likewise.
24609 * config/arm/arm.c (arm_init_machine_status): Likewise.
24610 * config/avr/avr.c (avr_init_machine_status): Likewise.
24611 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24612 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
24613 * config/cris/cris.c (cris_init_machine_status): Likewise.
24614 * config/darwin.c (machopic_indirection_name): Likewise.
24615 (darwin_build_constant_cfstring): Likewise.
24616 (darwin_enter_string_into_cfstring_table): Likewise.
24617 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
24618 * config/frv/frv.c (frv_init_machine_status): Likewise.
24619 * config/i386/i386.c (get_dllimport_decl): Likewise.
24620 (ix86_init_machine_status): Likewise.
24621 (assign_386_stack_local): Likewise.
24622 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24623 (i386_pe_maybe_record_exported_symbol): Likewise.
24624 (i386_pe_record_stub): Likewise.
24625 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24626 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24627 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24628 (m32c_note_pragma_address): Likewise.
24629 * config/mep/mep.c (mep_init_machine_status): Likewise.
24630 (mep_note_pragma_flag): Likewise.
24631 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24632 (mips16_local_alias): Likewise.
24633 (mips_init_machine_status): Likewise.
24634 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24635 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24636 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
24637 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
24638 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
24639 * config/pa/pa.c (pa_init_machine_status): Likewise.
24640 (pa_get_deferred_plabel): Likewise.
24641 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
24642 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24643 (rs6000_init_machine_status): Likewise.
24644 (output_toc): Likewise.
24645 * config/s390/s390.c (s390_init_machine_status): Likewise.
24646 * config/score/score.c (score_output_external): Likewise.
24647 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24648 * config/spu/spu.c (spu_init_machine_status): Likewise.
24649 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
24650 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
24651 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24652 * coverage.c (coverage_end_function): Likewise.
24653 * dbxout.c (dbxout_init): Likewise.
24654 * doc/gty.texi: Don't mention variable_size attribute.
24655 * dwarf2cfi.c (new_cfi): Adjust.
24656 (new_cfi_row): Likewise.
24657 (copy_cfi_row): Likewise.
24658 (create_cie_data): Likewise.
24659 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
24660 (new_loc_descr): Likewise.
24661 (find_AT_string_in_table): Likewise.
24662 (add_addr_table_entry): Likewise.
24663 (new_die): Likewise.
24664 (add_var_loc_to_decl): Likewise.
24665 (clone_die): Likewise.
24666 (clone_as_declaration): Likewise.
24667 (break_out_comdat_types): Likewise.
24668 (new_loc_list): Likewise.
24669 (add_loc_descr_to_each): Likewise.
24670 (add_location_or_const_value_attribute): Likewise.
24671 (add_linkage_name): Likewise.
24672 (lookup_filename): Likewise.
24673 (dwarf2out_var_location): Likewise.
24674 (new_line_info_table): Likewise.
24675 (dwarf2out_init): Likewise.
24676 (mem_loc_descriptor): Likewise.
24677 (loc_descriptor): Likewise.
24678 (add_const_value_attribute): Likewise.
24679 (tree_add_const_value_attribute): Likewise.
24680 (comp_dir_string): Likewise.
24681 (dwarf2out_vms_debug_main_pointer): Likewise.
24682 (string_cst_pool_decl): Likewise.
24683 * emit-rtl.c (set_mem_attrs): Likewise.
24684 (get_reg_attrs): Likewise.
24685 (start_sequence): Likewise.
24686 (init_emit): Likewise.
24687 (init_emit_regs): Likewise.
24688 * except.c (init_eh_for_function): Likewise.
24689 (gen_eh_region): Likewise.
24690 (gen_eh_region_catch): Likewise.
24691 (gen_eh_landing_pad): Likewise.
24692 (add_call_site): Likewise.
24693 * function.c (add_frame_space): Likewise.
24694 (insert_temp_slot_address): Likewise.
24695 (assign_stack_temp_for_type): Likewise.
24696 (get_hard_reg_initial_val): Likewise.
24697 (allocate_struct_function): Likewise.
24698 (prepare_function_start): Likewise.
24699 (types_used_by_var_decl_insert): Likewise.
24700 * gengtype.c (variable_size_p): Remove function.
24701 (enum alloc_quantity): Remove enum.
24702 (write_typed_alloc_def): Remove function.
24703 (write_typed_struct_alloc_def): Likewise.
24704 (write_typed_typedef_alloc_def): Likewise.
24705 (write_typed_alloc_defns): Likewise.
24707 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
24708 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
24709 * ggc.h (ggc_alloc): new function.
24710 (ggc_cleared_alloc): Likewise.
24711 (ggc_vec_alloc): Template on type of vector element, and remove
24712 element size argument.
24713 (ggc_cleared_vec_alloc): Likewise.
24714 * gimple.c (gimple_build_omp_for): Adjust.
24715 (gimple_copy): Likewise.
24716 * ipa-cp.c (get_replacement_map): Likewise.
24717 (find_aggregate_values_for_callers_subset): Likewise.
24718 (known_aggs_to_agg_replacement_list): Likewise.
24719 * ipa-devirt.c (get_odr_type): Likewise.
24720 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
24721 (read_agg_replacement_chain): Likewise.
24722 * loop-iv.c (get_simple_loop_desc): Likewise.
24723 * lto-cgraph.c (input_node_opt_summary): Likewise.
24724 * lto-section-in.c (lto_new_in_decl_state): Likewise.
24725 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24726 (input_eh_region): Likewise.
24727 (input_eh_lp): Likewise.
24728 (input_cfg): Likewise.
24729 * optabs.c (set_optab_libfunc): Likewise.
24730 (init_tree_optimization_optabs): Likewise.
24731 (set_conv_libfunc): Likewise.
24732 * passes.c (do_per_function_toporder): Likewise.
24733 * rtl.h: Don't use variable_size gty attribute.
24734 * sese.c (if_region_set_false_region): Adjust.
24735 * stringpool.c (gt_pch_save_stringpool): Likewise.
24736 * target-globals.c (save_target_globals): Likewise.
24737 * toplev.c (general_init): Likewise.
24738 * trans-mem.c (record_tm_replacement): Likewise.
24739 (split_bb_make_tm_edge): Likewise.
24740 * tree-cfg.c (move_sese_region_to_fn): Likewise.
24741 * tree-data-ref.h (lambda_vector_new): Likewise.
24742 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24743 * tree-iterator.c (tsi_link_before): Likewise.
24744 (tsi_link_after): Likewise.
24745 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24746 * tree-ssa-loop-niter.c (record_estimate): Likewise.
24747 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24748 * tree-ssa-operands.h: Don't use variable_size gty attribute.
24749 * tree-ssa.c (init_tree_ssa): Adjust.
24750 * tree-ssanames.c (set_range_info): Likewise.
24751 (get_ptr_info): Likewise.
24752 (duplicate_ssa_name_ptr_info): Likewise.
24753 (duplicate_ssa_name_range_info): Likewise.
24754 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
24755 (unpack_ts_fixed_cst_value_fields): Likewise.
24756 * tree.c (build_fixed): Likewise.
24757 (build_real): Likewise.
24758 (build_string): Likewise.
24759 (decl_priority_info): Likewise.
24760 (decl_debug_expr_insert): Likewise.
24761 (decl_value_expr_insert): Likewise.
24762 (decl_debug_args_insert): Likewise.
24763 (type_hash_add): Likewise.
24764 (build_omp_clause): Likewise.
24765 * ubsan.c (decl_for_type_insert): Likewise.
24766 * varasm.c (get_unnamed_section): Likewise.
24767 (get_noswitch_section): Likewise.
24768 (get_section): Likewise.
24769 (get_block_for_section): Likewise.
24770 (create_block_symbol): Likewise.
24771 (build_constant_desc): Likewise.
24772 (create_constant_pool): Likewise.
24773 (force_const_mem): Likewise.
24774 (record_tm_clone_pair): Likewise.
24775 * varpool.c (varpool_create_empty_node): Likewise.
24777 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
24779 * dwarf2out.c (tree_add_const_value_attribute): Call
24780 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
24781 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
24782 instead of ggc_internal_<x>alloc_stat.
24783 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
24784 (ggc_realloc): Likewise.
24785 * ggc-none.c (ggc_internal_alloc): Likewise.
24786 (ggc_internal_cleared_alloc): Likewise.
24787 * ggc-page.c: Likewise.
24788 * ggc.h (ggc_internal_alloc_stat): Likewise.
24789 (ggc_internal_alloc): Remove macro.
24790 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
24791 (ggc_internal_cleared_alloc): Remove macro.
24792 (GGC_RESIZEVEC): Adjust.
24793 (ggc_resizevar): Remove macro.
24794 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
24795 (ggc_internal_cleared_vec_alloc_stat): Likewise.
24796 (ggc_internal_vec_cleared_alloc): Remove macro.
24797 (ggc_alloc_atomic_stat): Drop _stat suffix.
24798 (ggc_alloc_atomic): Remove macro.
24799 (ggc_alloc_cleared_atomic): Remove macro.
24800 (ggc_alloc_string_stat): Drop _stat suffix.
24801 (ggc_alloc_string): Remove macro.
24802 (ggc_alloc_rtx_def_stat): Adjust.
24803 (ggc_alloc_tree_node_stat): Likewise.
24804 (ggc_alloc_cleared_tree_node_stat): Likewise.
24805 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
24806 (ggc_alloc_cleared_simd_clone_stat): Likewise.
24807 * gimple.c (gimple_build_omp_for): Likewise.
24808 (gimple_copy): Likewise.
24809 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
24810 * toplev.c (realloc_for_line_map): Adjust.
24811 * tree-data-ref.h (lambda_vector_new): Likewise.
24812 * tree-phinodes.c (allocate_phi_node): Likewise.
24813 * tree.c (grow_tree_vec_stat): Likewise.
24814 * vec.h (va_gc::reserve): Adjust.
24816 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
24818 * config/microblaze/microblaze.c (break_handler): New Declaration.
24819 (microblaze_break_function_p,microblaze_is_break_handler): New.
24820 (compute_frame_size): Use microblaze_break_function_p.
24821 Add the test of break_handler.
24822 (microblaze_function_prologue) : Add the test of variable
24823 break_handler. Check the fnname by BREAK_HANDLER_NAME.
24824 (microblaze_function_epilogue) : Add the test of break_handler.
24825 (microblaze_globalize_label) : Add the test of break_handler.
24826 Check the name by BREAK_HANDLER_NAME.
24828 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
24830 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
24831 microblaze_is_break_handler test.
24832 (call_internal1,call_value_intern): Use microblaze_break_function_p.
24833 Use SYMBOL_REF_DECL.
24835 * config/microblaze/microblaze-protos.h
24836 (microblaze_break_function_p,microblaze_is_break_handler):
24839 * doc/extend.texi (MicroBlaze break_handler Functions): Document
24840 new MicroBlaze break_handler functions.
24842 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
24844 * doc/extend.texi (Size of an asm): Move node text according
24845 to its @menu entry position.
24847 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
24849 PR tree-optimization/61140
24850 PR tree-optimization/61150
24851 PR tree-optimization/61197
24852 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
24854 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
24856 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
24858 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
24860 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
24861 __SIZEOF_INT128__ is defined.
24863 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
24865 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
24866 (rs6000_delegitimize_address): Use it.
24868 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
24870 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
24871 inplace argument. Store the new address in the original MEM when true.
24872 * emit-rtl.c (change_address_1): Likewise.
24873 (adjust_address_1, adjust_automodify_address_1, offset_address):
24874 Update accordingly.
24875 * rtl.h (plus_constant): Add an inplace argument.
24876 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
24877 when true. Avoid generating (plus X (const_int 0)).
24878 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
24879 in-place. Pass true to plus_constant.
24880 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
24882 2014-05-16 Dehao Chen <dehao@google.com>
24884 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
24886 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
24889 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
24891 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
24893 2014-05-16 Dehao Chen <dehao@google.com>
24895 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
24896 optimize_function_for_size_p.
24897 * regs.h (REG_FREQ_FROM_BB): Likewise.
24899 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
24902 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
24903 negt_reg_operand cases.
24904 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
24906 * config/sh/predicates.md (cbranch_treg_value): Simplify.
24908 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
24910 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
24913 2014-05-16 David Malcolm <dmalcolm@redhat.com>
24916 2014-04-29 David Malcolm <dmalcolm@redhat.com>
24918 * tree-cfg.c (dump_function_to_file): Dump the return type of
24919 functions, in a line to itself before the function body, mimicking
24920 the layout of a C function.
24922 2014-05-16 Dehao Chen <dehao@google.com>
24924 * cfghooks.c (make_forwarder_block): Use direct computation to
24925 get fall-through edge's count and frequency.
24927 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
24929 * config/arc/arc.c (arc_init): Fix typo in error message.
24930 * config/i386/i386.c (ix86_expand_builtin): Likewise.
24931 (split_stack_prologue_scratch_regno): Likewise.
24932 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
24933 word from error message.
24935 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
24937 * ira-costs.c: Fix typo in comment.
24939 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
24941 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
24943 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
24945 * varpool.c (dump_varpool_node): Dump write-only flag.
24946 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
24948 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
24949 write-only variables.
24950 * ipa.c (process_references): New function.
24951 (set_readonly_bit): New function.
24952 (set_writeonly_bit): New function.
24953 (clear_addressable_bit): New function.
24954 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
24955 fix handling of aliases.
24956 * cgraph.h (struct varpool_node): Add writeonly flag.
24958 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
24960 PR rtl-optimization/60969
24961 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
24962 Calculate costs for this case.
24964 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
24966 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
24967 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
24969 2014-05-16 Richard Biener <rguenther@suse.de>
24971 PR tree-optimization/61194
24972 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
24973 bool patterns ending in a COND_EXPR.
24975 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
24977 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
24979 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
24981 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
24982 where we were unable to cost an RTX.
24984 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
24986 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
24989 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
24990 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
24992 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
24994 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
24995 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
24997 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
24998 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25000 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25001 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25003 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25006 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25007 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25009 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25012 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25013 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25015 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25016 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25018 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25019 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25021 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25022 rotates and shifts.
25024 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25025 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25027 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25028 ZERO_EXTEND and SIGN_EXTEND better.
25030 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25031 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25033 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25034 logical operations.
25036 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25037 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25039 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25040 costs when costing loads and stores to memory.
25042 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25043 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
25045 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25048 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25050 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25052 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25053 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25055 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25057 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25059 (aarch64_rtx_mult_cost): New.
25060 (aarch64_rtx_costs): Use it, refactor as appropriate.
25062 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25063 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25065 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25066 emit instructions, return number of instructions which would
25068 (aarch64_add_constant): Update call to aarch64_build_constant.
25069 (aarch64_output_mi_thunk): Likewise.
25070 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25073 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25075 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25076 (TARGET_RTX_COSTS): Call it.
25078 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25080 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25081 (cortexa57_vector_cost): Likewise.
25082 (cortexa57_tunings): Use them.
25084 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25086 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25087 (cpu_addrcost_table): Use it.
25088 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25089 (aarch64_address_cost): Rewrite using aarch64_classify_address,
25092 2014-05-16 Richard Biener <rguenther@suse.de>
25094 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25095 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25096 (visit_phi): Ignore edges marked as not executable.
25097 (class cond_dom_walker): New.
25098 (cond_dom_walker::before_dom_children): Value-number
25099 control statements and mark successor edges as not
25100 executable if possible.
25101 (run_scc_vn): First walk all control statements in
25102 dominator order, marking edges as not executable.
25103 * tree-inline.c (copy_edges_for_bb): Be not confused
25104 about random edge flags.
25106 2014-05-16 Richard Biener <rguenther@suse.de>
25108 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25110 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
25113 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25114 (__TM_simple_begin): Use it.
25115 (__TM_begin): Likewise.
25117 2014-05-15 Martin Jambor <mjambor@suse.cz>
25120 * ipa-prop.c (update_indirect_edges_after_inlining): Check
25121 type_preserved flag when the indirect edge is polymorphic.
25123 2014-05-15 Martin Jambor <mjambor@suse.cz>
25125 PR tree-optimization/61090
25126 * tree-sra.c (sra_modify_expr): Pass the current gsi to
25127 build_ref_for_model.
25129 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25131 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25132 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25134 2014-05-15 Jakub Jelinek <jakub@redhat.com>
25136 PR tree-optimization/61158
25137 * fold-const.c (fold_binary_loc): If X is zero-extended and
25138 shiftc >= prec, make sure zerobits is all ones instead of
25139 invoking undefined behavior.
25141 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25143 * regcprop.h: New file.
25144 * regcprop.c (skip_debug_insn_p): New decl.
25145 (replace_oldest_value_reg): Check skip_debug_insn_p.
25146 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25147 * shrink-wrap.c: Include regcprop.h.
25148 (prepare_shrink_wrap): Call
25149 copyprop_hardreg_forward_bb_without_debug_insn.
25151 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25153 * shrink-wrap.h: Update comment.
25154 * shrink-wrap.c: Update comment.
25155 (next_block_for_reg): Rename to live_edge_for_reg.
25156 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25157 (move_insn_for_shrink_wrap): Split live_edge.
25158 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25160 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25162 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25164 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25165 * config/sparc/sparc.md (fptype_ut699): New attribute.
25166 (in_branch_delay): Return false if -mfix-ut699 is specified and
25167 fptype_ut699 is set to single.
25168 (truncdfsf2): Add fptype_ut699 attribute.
25169 (fix_truncdfsi2): Likewise.
25170 (floatsisf2): Change fptype attribute.
25171 (fix_truncsfsi2): Likewise.
25172 (negtf2_notv9): Delete.
25173 (negtf2_v9): Likewise.
25174 (negtf2_hq): New instruction.
25175 (negtf2): New instruction and splitter.
25176 (negdf2_notv9): Rewrite.
25177 (abstf2_notv9): Delete.
25178 (abstf2_hq_v9): Likewise.
25179 (abstf2_v9): Likewise.
25180 (abstf2_hq): New instruction.
25181 (abstf2): New instruction and splitter.
25182 (absdf2_notv9): Rewrite.
25184 2014-05-14 Cary Coutant <ccoutant@google.com>
25187 * opts.c (common_handle_option): Don't special-case "-g".
25188 (set_debug_level): Default to at least level 2 with "-g".
25190 2014-05-14 DJ Delorie <dj@redhat.com>
25192 * config/msp430/msp430.c (msp430_builtin): Add
25193 MSP430_BUILTIN_DELAY_CYCLES.
25194 (msp430_init_builtins): Register void __delay_cycles(long long).
25195 (msp430_builtin_decl): Add it.
25196 (cg_magic_constant): New.
25197 (msp430_expand_delay_cycles): New.
25198 (msp430_expand_builtin): Call it.
25199 (msp430_print_operand_raw): Change integer printing from "int" to
25201 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25202 (delay_cycles_start): New.
25203 (delay_cycles_end): New.
25204 (delay_cycles_32): New.
25205 (delay_cycles_32x): New.
25206 (delay_cycles_16): New.
25207 (delay_cycles_16x): New.
25208 (delay_cycles_2): New.
25209 (delay_cycles_1): New.
25210 * doc/extend.texi: Document __delay_cycles().
25212 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
25214 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25215 length attribute computation.
25217 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
25220 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25222 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
25225 * config/sparc/sparc.md: Fix types of low and high in DI constant
25226 splitter. Use gen_int_mode in some other splitters.
25228 2014-05-14 Martin Jambor <mjambor@suse.cz>
25231 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25233 2014-05-14 James Norris <jnorris@codesourcery.com>
25235 * omp-low.c (expand_parallel_call): Remove shadow variable.
25236 (expand_omp_taskreg): Likewise.
25238 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
25240 * common/config/i386/i386-common.c
25241 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25242 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25243 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25244 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25245 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25246 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25247 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25248 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25249 xsavecintrin.h, xsavesintrin.h.
25250 (x86_64-*-*): Ditto.
25251 * config/i386/clflushoptintrin.h: New.
25252 * config/i386/xsavecintrin.h: Ditto.
25253 * config/i386/xsavesintrin.h: Ditto.
25254 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25255 (bit_XSAVES): Ditto.
25256 (bit_XSAVES): Ditto.
25257 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25258 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25260 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25261 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25262 OPTION_MASK_ISA_XSAVES.
25263 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25264 -mxsavec, -mxsaves.
25265 (PTA_CLFLUSHOPT) Define.
25266 (PTA_XSAVEC): Ditto.
25267 (PTA_XSAVES): Ditto.
25268 (ix86_option_override_internal): Handle new options.
25269 (ix86_valid_target_attribute_inner_p): Ditto.
25270 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25271 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25272 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25273 (bdesc_special_args): Add __builtin_ia32_xsaves,
25274 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25275 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25276 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25277 (ix86_expand_builtin): Handle new builtins.
25278 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25279 (TARGET_CLFLUSHOPT_P): Ditto.
25280 (TARGET_XSAVEC): Ditto.
25281 (TARGET_XSAVEC_P): Ditto.
25282 (TARGET_XSAVES): Ditto.
25283 (TARGET_XSAVES_P): Ditto.
25284 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25285 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25286 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25288 (ANY_XRSTOR64): Ditto.
25290 (xrstor): Change into <xrstor>.
25291 (xrstor_rex64): Change into <xrstor>_rex64.
25292 (xrstor64): Change into <xrstor>64
25294 * config/i386/i386.opt (mclflushopt): New.
25297 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25299 * doc/invoke.texi: Document new options.
25301 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25303 PR rtl-optimization/60866
25304 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25305 Default it to -1. Pass it down to init_simplejump_data.
25306 (init_simplejump_data): New parameter old_seqno. Pass it down
25307 to get_seqno_for_a_jump.
25308 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
25309 initializing new jump seqno as a last resort. Add comment.
25310 (sel_redirect_edge_and_branch): Save old seqno of the conditional
25311 jump and pass it down to sel_init_new_insn.
25312 (sel_redirect_edge_and_branch_force): Likewise.
25314 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
25316 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25317 shifted values to avoid build warning.
25319 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25321 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25322 * cfgrtl.c (rtl_merge_blocks): Fix comment.
25323 (cfg_layout_merge_blocks): Likewise.
25324 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25326 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25328 PR rtl-optimization/60901
25329 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25330 bb predecessor belongs to the same scheduling region. Adjust comment.
25332 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
25334 * doc/sourcebuild.texi: (dfp_hw): Document.
25335 (p8vector_hw): Likewise.
25336 (powerpc_eabi_ok): Likewise.
25337 (powerpc_elfv2): Likewise.
25338 (powerpc_htm_ok): Likewise.
25339 (ppc_recip_hw): Likewise.
25340 (vsx_hw): Likewise.
25342 2014-05-13 Cary Coutant <ccoutant@google.com>
25344 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25346 2014-05-13 David Malcolm <dmalcolm@redhat.com>
25348 * gengtype-parse.c (require3): Eliminate in favor of...
25350 (require_template_declaration): Update to support optional single *
25353 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25354 (create_user_defined_type): Handle a single level of explicit
25355 pointerness within template arguments.
25356 (struct write_types_data): Add field "kind".
25357 (filter_type_name): Handle "*" character.
25358 (write_user_func_for_structure_ptr): Require a write_types_data
25359 rather than just a prefix string, so that we can look up the kind
25360 of the wtd and use it as an index into wrote_user_func_for_ptr,
25361 ensuring that such functions are written at most once. Support
25362 subclasses by invoking the marking function of the ultimate base class.
25363 (write_user_func_for_structure_body): Require a write_types_data
25364 rather than just a prefix string, so that we can pass this to
25365 write_user_func_for_structure_ptr.
25366 (write_func_for_structure): Likewise.
25367 (ggc_wtd): Add initializer of new "kind" field.
25368 (pch_wtd): Likewise.
25370 * gengtype.h (enum write_types_kinds): New.
25371 (struct type): Add field wrote_user_func_for_ptr to the "s"
25374 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
25376 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25377 instead of const_binop.
25378 (fold_binary_loc): Likewise.
25380 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
25382 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25383 calculation to match get_ref_base_and_extent.
25385 2014-05-13 Catherine Moore <clm@codesourcery.com>
25386 Sandra Loosemore <sandra@codesourcery.com>
25388 * configure.ac: Fix assembly for explicit JALR relocation check.
25389 * configure: Regenerate.
25391 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25393 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
25394 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
25395 Remove associated type declarations and initialisations.
25396 (arm_expand_neon_builtin): Likewise.
25397 (neon_emit_pair_result_insn): Delete.
25398 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
25399 * config/arm/neon.md (neon_vtrn<mode>): Delete.
25400 (neon_vzip<mode>): Likewise.
25401 (neon_vuzp<mode>): Likewise.
25403 2014-05-13 Richard Biener <rguenther@suse.de>
25406 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
25407 it needs revisiting whether the call still may be tail-called.
25409 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25411 * rtl.def (SYMBOL_REF): Remove middle "0" field.
25412 * rtl.h (block_symbol): Reduce number of fields to 2.
25413 (rtx_def): Add u2.symbol_ref_flags.
25414 (SYMBOL_REF_FLAGS): Use it.
25415 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
25416 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
25417 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
25418 Lower index of SYMBOL_REF_DATA.
25419 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
25420 Print SYMBOL_REF_FLAGS at the same time.
25421 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
25423 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25425 * rtl.def (VAR_LOCATION): Remove "i" field.
25426 * rtl.h (rtx_def): Add u2.var_location_status.
25427 (PAT_VAR_LOCATION_STATUS): Use it.
25428 (gen_rtx_VAR_LOCATION): Declare.
25429 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
25430 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
25431 * var-tracking.c (emit_note_insn_var_location): Remove casts.
25433 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25435 * rtl.def (scratch): Fix outdated comment and remove "0" field.
25436 * gengtype.c (adjust_field_rtx_def): Update accordingly.
25438 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25440 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
25441 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
25442 * rtl.h (rtx_def): Add insn_uid to u2 field.
25443 (RTX_FLAG_CHECK8): Delete in favor of...
25444 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
25445 (INSN_DELETED_P): Update accordingly.
25446 (INSN_UID): Use u2.insn_uid.
25447 (INSN_CHAIN_CODE_P): Define.
25448 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
25449 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
25450 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
25451 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
25452 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
25453 indices accordingly.
25454 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
25455 Update indices for insn-chain rtxes.
25456 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
25457 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
25458 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
25459 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
25460 * combine.c (try_combine): Likewise.
25461 * ira.c (setup_prohibited_mode_move_regs): Likewise.
25463 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25465 * rtl.def (REG): Remove middle field.
25466 * rtl.h (rtx_def): Add orignal_regno to u2.
25467 (ORIGINAL_REGNO): Use it instead of field 1.
25468 (REG_ATTRS): Lower field index accordingly.
25469 * gengtype.c (adjust_field_rtx_def): Remove handling of
25470 ORIGINAL_REGNO. Move REG_ATTRS index down.
25471 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
25472 code that prints the REGNO.
25474 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25476 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
25479 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
25481 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
25483 2014-05-13 Bin Cheng <bin.cheng@arm.com>
25485 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
25486 (alloc_iv): Lower base expressions containing ADDR_EXPR.
25488 2014-05-13 Ian Bolton <ian.bolton@arm.com>
25490 * config/aarch64/aarch64-protos.h
25491 (aarch64_hard_regno_caller_save_mode): New prototype.
25492 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
25494 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
25496 2014-05-13 Christian Bruel <christian.bruel@st.com>
25498 * target.def (mode_switching): New hook vector.
25499 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
25500 (mode_exit, modepriority_to_mode): Likewise.
25501 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
25502 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25503 * target.h: Include tm.h and hard-reg-set.h.
25504 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
25505 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
25506 * doc/tm.texi Regenerate.
25507 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25508 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25509 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
25510 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
25511 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25512 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25513 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
25514 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
25515 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
25516 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
25517 (ix86_emit_mode_set): Hookify.
25518 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
25520 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25521 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
25522 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
25523 (epiphany_mode_priority_to_mode): Remove declaration.
25524 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
25525 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
25526 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
25528 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
25529 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
25530 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
25532 2014-05-13 Jakub Jelinek <jakub@redhat.com>
25535 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
25536 is const0_rtx, return immediately. Don't test count == 0 when
25539 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25541 * Makefile.in: add shrink-wrap.o.
25542 * config/i386/i386.c: include "shrink-wrap.h"
25543 * function.c: Likewise.
25544 (requires_stack_frame_p, next_block_for_reg,
25545 move_insn_for_shrink_wrap, prepare_shrink_wrap,
25546 dup_block_and_redirect): Move to shrink-wrap.c
25547 (thread_prologue_and_epilogue_insns): Extract three code segments
25548 as functions in shrink-wrap.c
25549 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
25551 * shrink-wrap.c: New file.
25552 * shrink-wrap.h: New file.
25554 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
25556 * doc/extend.texi: Reflect current numbers of pragmas. Remove
25557 reference to Solaris.
25559 2014-05-12 Mike Stump <mikestump@comcast.net>
25562 * genattrtab.c (filename): Add.
25563 (convert_set_attr_alternative): Improve error message.
25564 (check_defs): Restore read_md_filename for error messages.
25565 (gen_insn): Save filename.
25567 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
25569 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
25570 -fno-local-ivars and -fivar-visibility.
25571 * c-family/c.opt: Make -Wshadow also implicitly enable
25574 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
25576 * doc/tm.texi: Remove reference to deleted macro.
25577 * doc/tm.texi.in: Likewise.
25579 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
25582 * config/avr/avr.c (avr_out_store_psi): Use correct constant
25585 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
25588 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
25589 * config/arm/aout.h (License): Same.
25590 * config/arm/bpabi.h (License): Same.
25591 * config/arm/elf.h (License): Same.
25592 * config/arm/linux-elf.h (License): Same.
25593 * config/arm/linux-gas.h (License): Same.
25594 * config/arm/netbsd-elf.h (License): Same.
25595 * config/arm/uclinux-eabi.h (License): Same.
25596 * config/arm/uclinux-elf.h (License): Same.
25597 * config/arm/vxworks.h (License): Same.
25599 2014-05-11 Jakub Jelinek <jakub@redhat.com>
25601 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
25602 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
25603 number of operands to 3.
25604 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
25605 * tree-nested.c (convert_nonlocal_omp_clauses,
25606 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
25607 * gimplify.c (gimplify_scan_omp_clauses): Handle
25608 OMP_CLAUSE_LINEAR_STMT.
25609 * omp-low.c (lower_rec_input_clauses): Fix typo.
25610 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
25611 cast between Fortran boolean_type_node and C _Bool if
25614 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
25616 PR tree-optimization/61136
25617 * wide-int.h (multiple_of_p): Define a version that doesn't return
25619 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
25620 integer_zerop/const_binop pair.
25621 (multiple_of_p): Likewise, converting both operands to widest_int
25624 2014-05-09 Teresa Johnson <tejohnson@google.com>
25626 * cgraphunit.c (analyze_functions): Use correct dump file.
25628 2014-05-09 Florian Weimer <fweimer@redhat.com>
25630 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
25632 (stack_protect_return_slot_p): New function.
25633 (expand_used_vars): Call stack_protect_decl_p and
25634 stack_protect_return_slot_p for -fstack-protector-strong.
25636 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
25637 Andrew Haley <aph@redhat.com>
25638 Richard Sandiford <rdsandiford@googlemail.com>
25640 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
25643 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
25645 PR middle-end/61111
25646 * fold-const.c (fold_binary_loc): Changed width of mask.
25648 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
25650 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
25651 unsigned int initializers for regno_in, regno_out.
25653 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
25656 * config/avr/avr.md (cc): Add new attribute set_vzn.
25657 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
25658 Set cc insn attribute to set_vzn instead of set_zn for alternatives
25659 with INC, DEC or NEG.
25660 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
25661 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
25662 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
25664 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25667 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25669 * wide-int.cc (UTItype): Define.
25670 (UDWtype): Define for appropriate W_TYPE_SIZE.
25672 2014-05-09 Richard Biener <rguenther@suse.de>
25674 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
25675 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
25676 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
25677 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
25678 ssa_propagate): Adjust.
25680 2014-05-08 Jeff Law <law@redhat.com>
25682 PR tree-optimization/61009
25683 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
25684 tri-state rather than a boolean. When a block is too big to
25685 thread through, inform caller via negative return value.
25686 (thread_across_edge): If a block was too big for normal threading,
25687 then it's too big for a joiner too, so remove temporary equivalences
25688 and return immediately.
25690 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
25691 Matthias Klose <doko@ubuntu.com>
25694 * optc-gen.awk: Fix option handling for -Wunused-parameter.
25696 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
25699 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
25701 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
25704 * config/alpha/alpha.c: Include gimple-iterator.h.
25705 (alpha_gimple_fold_builtin): New function. Move
25706 ALPHA_BUILTIN_UMULH folding from ...
25707 (alpha_fold_builtin): ... here.
25708 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
25710 2014-05-08 Wei Mi <wmi@google.com>
25713 * config/i386/i386.c (ix86_compute_frame_layout): Update
25714 preferred_stack_boundary for call, expanded from tls descriptor.
25715 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
25716 to depend on SP register.
25717 (*tls_local_dynamic_base_32_gnu): Ditto.
25718 (*tls_local_dynamic_32_once): Ditto.
25719 (tls_global_dynamic_64_<mode>): Set
25720 ix86_tls_descriptor_calls_expanded_in_cfun.
25721 (tls_local_dynamic_base_64_<mode>): Ditto.
25722 (tls_global_dynamic_32): Set
25723 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
25724 to depend on SP register.
25725 (tls_local_dynamic_base_32): Ditto.
25727 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25729 * config/arm/arm_neon.h: Update comment.
25730 * config/arm/neon-docgen.ml: Delete.
25731 * config/arm/neon-gen.ml: Delete.
25732 * doc/arm-neon-intrinsics.texi: Update comment.
25734 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25736 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
25738 (vand, vorr, veor, vorn, vbic): Remove.
25739 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
25741 (neon_vsub_unspec): Likewise.
25742 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
25744 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25746 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
25747 (vadd_s16): Likewise.
25748 (vadd_s32): Likewise.
25749 (vadd_f32): Likewise.
25750 (vadd_u8): Likewise.
25751 (vadd_u16): Likewise.
25752 (vadd_u32): Likewise.
25753 (vadd_s64): Likewise.
25754 (vadd_u64): Likewise.
25755 (vaddq_s8): Likewise.
25756 (vaddq_s16): Likewise.
25757 (vaddq_s32): Likewise.
25758 (vaddq_s64): Likewise.
25759 (vaddq_f32): Likewise.
25760 (vaddq_u8): Likewise.
25761 (vaddq_u16): Likewise.
25762 (vaddq_u32): Likewise.
25763 (vaddq_u64): Likewise.
25764 (vmul_s8): Likewise.
25765 (vmul_s16): Likewise.
25766 (vmul_s32): Likewise.
25767 (vmul_f32): Likewise.
25768 (vmul_u8): Likewise.
25769 (vmul_u16): Likewise.
25770 (vmul_u32): Likewise.
25771 (vmul_p8): Likewise.
25772 (vmulq_s8): Likewise.
25773 (vmulq_s16): Likewise.
25774 (vmulq_s32): Likewise.
25775 (vmulq_f32): Likewise.
25776 (vmulq_u8): Likewise.
25777 (vmulq_u16): Likewise.
25778 (vmulq_u32): Likewise.
25779 (vsub_s8): Likewise.
25780 (vsub_s16): Likewise.
25781 (vsub_s32): Likewise.
25782 (vsub_f32): Likewise.
25783 (vsub_u8): Likewise.
25784 (vsub_u16): Likewise.
25785 (vsub_u32): Likewise.
25786 (vsub_s64): Likewise.
25787 (vsub_u64): Likewise.
25788 (vsubq_s8): Likewise.
25789 (vsubq_s16): Likewise.
25790 (vsubq_s32): Likewise.
25791 (vsubq_s64): Likewise.
25792 (vsubq_f32): Likewise.
25793 (vsubq_u8): Likewise.
25794 (vsubq_u16): Likewise.
25795 (vsubq_u32): Likewise.
25796 (vsubq_u64): Likewise.
25797 (vand_s8): Likewise.
25798 (vand_s16): Likewise.
25799 (vand_s32): Likewise.
25800 (vand_u8): Likewise.
25801 (vand_u16): Likewise.
25802 (vand_u32): Likewise.
25803 (vand_s64): Likewise.
25804 (vand_u64): Likewise.
25805 (vandq_s8): Likewise.
25806 (vandq_s16): Likewise.
25807 (vandq_s32): Likewise.
25808 (vandq_s64): Likewise.
25809 (vandq_u8): Likewise.
25810 (vandq_u16): Likewise.
25811 (vandq_u32): Likewise.
25812 (vandq_u64): Likewise.
25813 (vorr_s8): Likewise.
25814 (vorr_s16): Likewise.
25815 (vorr_s32): Likewise.
25816 (vorr_u8): Likewise.
25817 (vorr_u16): Likewise.
25818 (vorr_u32): Likewise.
25819 (vorr_s64): Likewise.
25820 (vorr_u64): Likewise.
25821 (vorrq_s8): Likewise.
25822 (vorrq_s16): Likewise.
25823 (vorrq_s32): Likewise.
25824 (vorrq_s64): Likewise.
25825 (vorrq_u8): Likewise.
25826 (vorrq_u16): Likewise.
25827 (vorrq_u32): Likewise.
25828 (vorrq_u64): Likewise.
25829 (veor_s8): Likewise.
25830 (veor_s16): Likewise.
25831 (veor_s32): Likewise.
25832 (veor_u8): Likewise.
25833 (veor_u16): Likewise.
25834 (veor_u32): Likewise.
25835 (veor_s64): Likewise.
25836 (veor_u64): Likewise.
25837 (veorq_s8): Likewise.
25838 (veorq_s16): Likewise.
25839 (veorq_s32): Likewise.
25840 (veorq_s64): Likewise.
25841 (veorq_u8): Likewise.
25842 (veorq_u16): Likewise.
25843 (veorq_u32): Likewise.
25844 (veorq_u64): Likewise.
25845 (vbic_s8): Likewise.
25846 (vbic_s16): Likewise.
25847 (vbic_s32): Likewise.
25848 (vbic_u8): Likewise.
25849 (vbic_u16): Likewise.
25850 (vbic_u32): Likewise.
25851 (vbic_s64): Likewise.
25852 (vbic_u64): Likewise.
25853 (vbicq_s8): Likewise.
25854 (vbicq_s16): Likewise.
25855 (vbicq_s32): Likewise.
25856 (vbicq_s64): Likewise.
25857 (vbicq_u8): Likewise.
25858 (vbicq_u16): Likewise.
25859 (vbicq_u32): Likewise.
25860 (vbicq_u64): Likewise.
25861 (vorn_s8): Likewise.
25862 (vorn_s16): Likewise.
25863 (vorn_s32): Likewise.
25864 (vorn_u8): Likewise.
25865 (vorn_u16): Likewise.
25866 (vorn_u32): Likewise.
25867 (vorn_s64): Likewise.
25868 (vorn_u64): Likewise.
25869 (vornq_s8): Likewise.
25870 (vornq_s16): Likewise.
25871 (vornq_s32): Likewise.
25872 (vornq_s64): Likewise.
25873 (vornq_u8): Likewise.
25874 (vornq_u16): Likewise.
25875 (vornq_u32): Likewise.
25876 (vornq_u64): Likewise.
25878 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25880 * wide-int.cc (UTItype): Define.
25881 (UDWtype): Define for appropriate W_TYPE_SIZE.
25883 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
25885 PR tree-optimization/59100
25886 * tree-ssa-phiopt.c: Include tree-inline.h.
25887 (neutral_element_p, absorbing_element_p): New functions.
25888 (value_replacement): Handle conditional binary operations with a
25889 neutral or absorbing element.
25891 2014-05-08 Richard Biener <rguenther@suse.de>
25893 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
25894 folding the expression.
25895 (valueize_expr): Remove.
25896 (visit_reference_op_load): Do not valueize the result of
25898 (simplify_binary_expression): Likewise.
25899 (simplify_unary_expression): Likewise.
25901 2014-05-08 Richard Biener <rguenther@suse.de>
25903 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
25904 looking at TYPE_ARG_TYPES.
25906 2014-05-08 Richard Biener <rguenther@suse.de>
25908 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
25909 pointer propagation special-case.
25911 2014-05-08 Bin Cheng <bin.cheng@arm.com>
25913 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
25914 core part of address expressions.
25916 2014-05-08 Alan Modra <amodra@gmail.com>
25919 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
25920 loads and stores when -mno-strict-align at any alignment.
25921 (expand_block_clear): Similarly. Also correct calculation of
25924 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
25926 PR middle-end/39246
25927 * tree-complex.c (expand_complex_move): Keep line info when expanding
25929 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
25930 of complex expression. Use new argument to display correct location
25931 for values coming from phi statement.
25932 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
25933 (warn_uninitialized_phi): Pass location of phi argument to
25935 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
25936 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
25938 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
25940 * config/rs6000/predicates.md (indexed_address_mem): New.
25941 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
25942 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
25943 fpstore_ux, fpstore_u.
25944 (sign_extend, indexed, update): New.
25945 (cell_micro): Adjust.
25946 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
25947 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
25948 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
25949 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
25950 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
25951 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
25952 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
25953 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
25954 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
25955 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
25956 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
25957 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
25958 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
25959 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
25960 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
25962 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
25963 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
25964 *vsx_extract_<mode>_store): Adjust.
25965 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
25966 is_cracked_insn, insn_must_be_first_in_group,
25967 insn_must_be_last_in_group): Adjust.
25969 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
25971 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
25972 ppc440-fpstore): Adjust.
25973 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
25974 ppc476-fpstore): Adjust.
25975 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
25976 ppc601-fpstore): Adjust.
25977 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
25979 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
25981 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
25982 ppc7450-fpstore): Adjust.
25983 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
25984 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
25985 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
25987 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
25988 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
25989 cell-fpstore, cell-fpstore-update): Adjust.
25990 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
25991 ppce300c3_store, ppce300c3_fpstore): Adjust.
25992 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
25993 e500mc_fpstore): Adjust.
25994 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
25995 e500mc64_store, e500mc64_fpstore): Adjust.
25996 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
25997 e5500_fpstore): Adjust.
25998 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
25999 e6500_fpstore): Adjust.
26000 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26002 * config/rs6000/power4.md (power4-load, power4-load-ext,
26003 power4-load-ext-update, power4-load-ext-update-indexed,
26004 power4-load-update-indexed, power4-load-update, power4-fpload,
26005 power4-fpload-update, power4-store, power4-store-update,
26006 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26008 * config/rs6000/power5.md (power5-load, power5-load-ext,
26009 power5-load-ext-update, power5-load-ext-update-indexed,
26010 power5-load-update-indexed, power5-load-update, power5-fpload,
26011 power5-fpload-update, power5-store, power5-store-update,
26012 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26014 * config/rs6000/power6.md (power6-load, power6-load-ext,
26015 power6-load-update, power6-load-update-indexed,
26016 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26017 power6-fpload-update, power6-store, power6-store-update,
26018 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26020 * config/rs6000/power7.md (power7-load, power7-load-ext,
26021 power7-load-update, power7-load-update-indexed,
26022 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26023 power7-fpload-update, power7-store, power7-store-update,
26024 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26026 * config/rs6000/power8.md (power8-load, power8-load-update,
26027 power8-load-ext, power8-load-ext-update, power8-fpload,
26028 power8-fpload-update, power8-store, power8-store-update-indexed,
26029 power8-fpstore, power8-fpstore-update): Adjust.
26030 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26032 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26033 titan_lsu_store, titan_lsu_fpstore): Adjust.
26034 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26036 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
26039 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26040 unrolled byte insns. Emit address increments after move insns.
26042 2014-05-07 David Malcolm <dmalcolm@redhat.com>
26044 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26045 const_gimple, rather than a gimple.
26046 (gimple_call_builtin_p): Likewise, for the three variants.
26048 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26049 (gimple_call_builtin_p): Likewise, for the three variants.
26051 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
26053 PR tree-optimization/61095
26054 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26056 2014-05-07 Richard Biener <rguenther@suse.de>
26058 PR tree-optimization/61034
26059 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26060 (maybe_skip_until): Use translate to take into account
26061 lattices when trying to do disambiguations.
26062 (get_continuation_for_phi_1): Likewise.
26063 (get_continuation_for_phi): Adjust for added translate arguments.
26064 (walk_non_aliased_vuses): Likewise.
26065 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26066 (walk_non_aliased_vuses): Likewise.
26067 (call_may_clobber_ref_p_1): Declare.
26068 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26069 calls. Stop early if we are only supposed to disambiguate.
26070 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26072 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
26074 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26075 Emit an error when the function has arguments.
26077 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26079 * cfgloop.h (unswitch_loops): Remove.
26080 * doc/passes.texi: Remove references to loop-unswitch.c
26081 * timevar.def (TV_LOOP_UNSWITCH): Remove.
26083 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
26085 * tree-vect-data-refs.c (vect_grouped_load_supported): New
26086 check for loads group of length 3.
26087 (vect_permute_load_chain): New permutations for loads group of
26089 * tree-vect-stmts.c (vect_model_load_cost): Change cost
26090 of vec_perm_shuffle for the new permutations.
26092 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
26094 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26095 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26096 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26097 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26098 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26099 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26100 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26101 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26103 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26105 * loop-unswitch.c: Delete.
26107 2014-05-07 Richard Biener <rguenther@suse.de>
26109 * config.gcc: Always set need_64bit_hwint to yes.
26111 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
26113 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26114 of using optimize_size.
26116 2014-05-06 Mike Stump <mikestump@comcast.net>
26118 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26120 2014-05-06 Joseph Myers <joseph@codesourcery.com>
26122 * config/i386/sse.md (*mov<mode>_internal)
26123 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26124 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26125 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26126 (*<code><mode>3, *andnot<mode>3<mask_name>)
26127 (<mask_codefor><code><mode>3<mask_name>): Only consider
26128 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26130 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26133 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
26135 * lra-constraints.c (valid_address_p): Move earlier in file.
26136 Add a constraint argument to the address_info version.
26137 (satisfies_memory_constraint_p): New function.
26138 (satisfies_address_constraint_p): Likewise.
26139 (process_alt_operands, curr_insn_transform): Use them.
26140 (process_address): Pass the constraint to valid_address_p when
26141 checking address operands.
26143 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
26145 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26146 to their respective blocks. Fix inadvertent use of "node".
26148 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26150 * emit-rtl.c (init_derived_machine_modes): New functionm, split
26152 (init_emit_once): ...here.
26153 * rtl.h (init_derived_machine_modes): Declare.
26154 * toplev.c (do_compile): Call it even if no_backend.
26156 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
26157 Mike Stump <mikestump@comcast.net>
26158 Richard Sandiford <rdsandiford@googlemail.com>
26159 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26161 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26162 (rtx_equal_for_memref_p): Update comment.
26163 (adjust_offset_for_component_ref): Use wide-int interfaces.
26164 * builtins.c (get_object_alignment_2): Likewise.
26165 (c_readstr): Likewise.
26166 (target_char_cast): Add comment.
26167 (determine_block_size): Use wide-int interfaces.
26168 (expand_builtin_signbit): Likewise.
26169 (fold_builtin_int_roundingfn): Likewise.
26170 (fold_builtin_bitop): Likewise.
26171 (fold_builtin_bswap): Likewise.
26172 (fold_builtin_logarithm): Use signop.
26173 (fold_builtin_pow): Likewise.
26174 (fold_builtin_memory_op): Use wide-int interfaces.
26175 (fold_builtin_object_size): Likewise.
26176 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26177 nb_iterations_estimate.
26178 (record_niter_bound): Use wide-int interfaces.
26179 (get_estimated_loop_iterations_int): Likewise.
26180 (get_estimated_loop_iterations): Likewise.
26181 (get_max_loop_iterations): Likewise.
26182 * cfgloop.h: Include wide-int.h.
26183 (struct nb_iter_bound): Change bound to widest_int.
26184 (struct loop): Change nb_iterations_upper_bound and
26185 nb_iterations_estimate to widest_int.
26186 (record_niter_bound): Switch to use widest_int.
26187 (get_estimated_loop_iterations): Likewise.
26188 (get_max_loop_iterations): Likewise.
26189 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26190 update for wide-int.
26191 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26192 * combine.c (try_combine): Likewise.
26193 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26194 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26196 (aarch64_float_const_representable_p): Likewise.
26197 * config/arc/arc.c: Include wide-int.h.
26198 (arc_can_use_doloop_p): Use wide-int interfaces.
26199 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26200 (vfp3_const_double_index): Likewise.
26201 * config/avr/avr.c (avr_out_round): Likewise.
26202 (avr_fold_builtin): Likewise.
26203 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26204 (bfin_can_use_doloop_p): Likewise.
26205 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26206 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26207 * config/i386/i386.c: Include wide-int.h.
26208 (ix86_data_alignment): Use wide-int interfaces.
26209 (ix86_local_alignment): Likewise.
26210 (ix86_emit_swsqrtsf): Update real_from_integer.
26211 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26212 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26213 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26214 (zero_constant): Likewise.
26215 (input_operand): Likewise.
26216 (splat_input_operand): Likewise.
26217 (non_logical_cint_operand): Change const_double to const_wide_int.
26218 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26219 (easy_altivec_constant): Remove comment.
26220 (paired_expand_vector_init): Use CONSTANT_P.
26221 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26222 (rs6000_emit_move): Update checks.
26223 (rs6000_aggregate_candidate): Use wide-int interfaces.
26224 (rs6000_expand_ternop_builtin): Likewise.
26225 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26226 (rs6000_assemble_integer): Likewise.
26227 (rs6000_hash_constant): Likewise.
26228 (output_toc): Likewise.
26229 (rs6000_rtx_costs): Likewise.
26230 (rs6000_emit_swrsqrt); Update call to real_from_integer.
26231 * config/rs6000/rs6000-c.c: Include wide-int.h.
26232 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26233 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26234 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26235 Handle CONST_WIDE_INT.
26236 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26237 Use tree_fits_uhwi_p.
26238 * config/sparc/sparc.c: Include wide-int.h.
26239 (sparc_fold_builtin): Use wide-int interfaces.
26240 * config/vax/vax.c: Include wide-int.h.
26241 (vax_float_literal): Use real_from_integer.
26242 * coretypes.h (struct hwivec_def): New.
26244 (const_hwivec): New.
26245 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26246 (equiv_constant): Handle CONST_WIDE_INT.
26247 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26248 (cselib_hash_rtx): Handle CONST_WIDE_INT.
26249 * dbxout.c (stabstr_U): Use wide-int interfaces.
26250 (dbxout_type): Update to use cst_fits_shwi_p.
26251 * defaults.h (LOG2_BITS_PER_UNIT): Define.
26252 (TARGET_SUPPORTS_WIDE_INT): Add default.
26253 * dfp.c: Include wide-int.h.
26254 (decimal_real_to_integer2): Use wide-int interfaces and rename to
26255 decimal_real_to_integer.
26256 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26257 decimal_real_to_integer.
26258 * doc/generic.texi (Constant expressions): Update for wide_int.
26259 * doc/rtl.texi (const_double): Likewise.
26260 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26261 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26262 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26263 (REAL_VALUE_FROM_INT): Remove.
26264 (TARGET_SUPPORTS_WIDE_INT): New.
26265 * doc/tm.texi: Regenerate.
26266 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26267 * double-int.h: Include wide-int.h.
26268 (struct wi::int_traits): New.
26269 * dwarf2out.c (get_full_len): New.
26270 (dw_val_equal_p): Add case dw_val_class_wide_int.
26271 (size_of_loc_descr): Likewise.
26272 (output_loc_operands): Likewise.
26273 (insert_double): Remove.
26274 (insert_wide_int): New.
26275 (add_AT_wide): New.
26276 (print_die): Add case dw_val_class_wide_int.
26277 (attr_checksum): Likewise.
26278 (attr_checksum_ordered): Likewise.
26279 (same_dw_val_p): Likewise.
26280 (size_of_die): Likewise.
26281 (value_format): Likewise.
26282 (output_die): Likewise.
26283 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26285 (clz_loc_descriptor): Use wide-int interfaces.
26286 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
26287 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
26288 (round_up_to_align): Use wide-int interfaces.
26289 (field_byte_offset): Likewise.
26290 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
26291 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
26292 CONST_DOUBLE handling. Use wide-int interfaces.
26293 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
26294 (gen_enumeration_type_die): Use add_AT_wide.
26295 (hash_loc_operands): Add case dw_val_class_wide_int.
26296 (compare_loc_operands): Likewise.
26297 * dwarf2out.h: Include wide-int.h.
26298 (wide_int_ptr): New.
26299 (enum dw_val_class): Add dw_val_class_wide_int.
26300 (struct dw_val_struct): Add val_wide.
26301 * emit-rtl.c (const_wide_int_htab): New.
26302 (const_wide_int_htab_hash): New.
26303 (const_wide_int_htab_eq): New.
26304 (lookup_const_wide_int): New.
26305 (const_double_htab_hash): Use wide-int interfaces.
26306 (const_double_htab_eq): Likewise.
26307 (rtx_to_double_int): Conditionally compile for wide-int.
26308 (immed_double_int_const): Rename to immed_wide_int_const and
26309 update for wide-int.
26310 (immed_double_const): Conditionally compile for wide-int.
26311 (init_emit_once): Use wide-int interfaces.
26312 * explow.c (plus_constant): Likewise.
26313 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
26314 (lshift_value): Use wide-int interfaces.
26315 (expand_mult): Likewise.
26316 (choose_multiplier): Likewise.
26317 (expand_smod_pow2): Likewise.
26318 (make_tree): Likewise.
26319 * expr.c (convert_modes): Consolidate handling of constants.
26320 Use wide-int interfaces.
26321 (emit_group_load_1): Add note.
26322 (store_expr): Update comment.
26323 (get_inner_reference): Use wide-int interfaces.
26324 (expand_constructor): Update comment.
26325 (expand_expr_real_2): Use wide-int interfaces.
26326 (expand_expr_real_1): Likewise.
26327 (reduce_to_bit_field_precision): Likewise.
26328 (const_vector_from_tree): Likewise.
26329 * final.c: Include wide-int-print.h.
26330 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
26331 * fixed-value.c: Include wide-int.h.
26332 (fixed_from_string): Use wide-int interfaces.
26333 (fixed_to_decimal): Likewise.
26334 (fixed_convert_from_real): Likewise.
26335 (real_convert_from_fixed): Likewise.
26336 * fold-const.h (mem_ref_offset): Return an offset_int.
26337 (div_if_zero_remainder): Remove code parameter.
26338 * fold-const.c (div_if_zero_remainder): Remove code parameter.
26339 Use wide-int interfaces.
26340 (may_negate_without_overflow_p): Use wide-int interfaces.
26341 (negate_expr_p): Likewise.
26342 (fold_negate_expr): Likewise.
26343 (int_const_binop_1): Likewise.
26344 (const_binop): Likewise.
26345 (fold_convert_const_int_from_int): Likewise.
26346 (fold_convert_const_int_from_real): Likewise.
26347 (fold_convert_const_int_from_fixed): Likewise.
26348 (fold_convert_const_fixed_from_int): Likewise.
26349 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
26350 (sign_bit_p): Use wide-int interfaces.
26351 (make_range_step): Likewise.
26352 (build_range_check): Likewise. Pass an integer of the correct type
26353 instead of using integer_one_node.
26354 (range_predecessor): Pass an integer of the correct type instead
26355 of using integer_one_node.
26356 (range_successor): Likewise.
26357 (merge_ranges): Likewise.
26358 (unextend): Use wide-int interfaces.
26359 (extract_muldiv_1): Likewise.
26360 (fold_div_compare): Likewise.
26361 (fold_single_bit_test): Likewise.
26362 (fold_sign_changed_comparison): Likewise.
26363 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26364 (fold_plusminus_mult_expr): Use wide-int interfaces.
26365 (native_encode_int): Likewise.
26366 (native_interpret_int): Likewise.
26367 (fold_unary_loc): Likewise.
26368 (pointer_may_wrap_p): Likewise.
26369 (size_low_cst): Likewise.
26370 (mask_with_tz): Likewise.
26371 (fold_binary_loc): Likewise.
26372 (fold_ternary_loc): Likewise.
26373 (multiple_of_p): Likewise.
26374 (tree_call_nonnegative_warnv_p): Update calls to
26375 tree_int_cst_min_precision and real_from_integer.
26376 (fold_negate_const): Use wide-int interfaces.
26377 (fold_abs_const): Likewise.
26378 (fold_relational_const): Use tree_int_cst_lt.
26379 (round_up_loc): Use wide-int interfaces.
26380 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26381 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26382 * gengtype.c: Remove include of double-int.h.
26383 (do_typedef): Use wide-int interfaces.
26384 (open_base_files): Add wide-int.h.
26385 (main): Add offset_int and widest_int typedefs.
26386 * gengtype-lex.l: Handle "^".
26387 (CXX_KEYWORD): Add "static".
26388 * gengtype-parse.c (require3): New.
26389 (require_template_declaration): Handle constant template arguments
26390 and nested templates.
26391 * gengtype-state.c: Don't include "double-int.h".
26392 * genpreds.c (write_one_predicate_function): Update comment.
26393 (write_tm_constrs_h): Add check for hval and lval use in
26395 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
26396 (add_to_sequence): Likewise.
26397 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
26398 and const_double_operand.
26399 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
26401 * gimple-fold.c (get_base_constructor): Likewise.
26402 (fold_array_ctor_reference): Likewise.
26403 (fold_nonarray_ctor_reference): Likewise.
26404 (fold_const_aggregate_ref_1): Likewise.
26405 (gimple_val_nonnegative_real_p): Likewise.
26406 (gimple_fold_indirect_ref): Likewise.
26407 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
26408 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
26409 (struct slsr_cand_d): Change index to be widest_int.
26410 (struct incr_info_d): Change incr to be widest_int.
26411 (alloc_cand_and_find_basis): Use wide-int interfaces.
26412 (slsr_process_phi): Likewise.
26413 (backtrace_base_for_ref): Likewise. Return a widest_int.
26414 (restructure_reference): Take a widest_int instead of a double_int.
26415 (slsr_process_ref): Use wide-int interfaces.
26416 (create_mul_ssa_cand): Likewise.
26417 (create_mul_imm_cand): Likewise.
26418 (create_add_ssa_cand): Likewise.
26419 (create_add_imm_cand): Take a widest_int instead of a double_int.
26420 (slsr_process_add): Use wide-int interfaces.
26421 (slsr_process_cast): Likewise.
26422 (slsr_process_copy): Likewise.
26423 (dump_candidate): Likewise.
26424 (dump_incr_vec): Likewise.
26425 (replace_ref): Likewise.
26426 (cand_increment): Likewise. Return a widest_int.
26427 (cand_abs_increment): Likewise.
26428 (replace_mult_candidate): Take a widest_int instead of a double_int.
26429 (replace_unconditional_candidate): Use wide-int interfaces.
26430 (incr_vec_index): Take a widest_int instead of a double_int.
26431 (create_add_on_incoming_edge): Likewise.
26432 (create_phi_basis): Use wide-int interfaces.
26433 (replace_conditional_candidate): Likewise.
26434 (record_increment): Take a widest_int instead of a double_int.
26435 (record_phi_increments): Use wide-int interfaces.
26436 (phi_incr_cost): Take a widest_int instead of a double_int.
26437 (lowest_cost_path): Likewise.
26438 (total_savings): Likewise.
26439 (analyze_increments): Use wide-int interfaces.
26440 (ncd_with_phi): Take a widest_int instead of a double_int.
26441 (ncd_of_cand_and_phis): Likewise.
26442 (nearest_common_dominator_for_cands): Likewise.
26443 (insert_initializers): Use wide-int interfaces.
26444 (all_phi_incrs_profitable): Likewise.
26445 (replace_one_candidate): Likewise.
26446 (replace_profitable_candidates): Likewise.
26447 * godump.c: Include wide-int-print.h.
26448 (go_output_typedef): Use wide-int interfaces.
26449 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
26450 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
26451 (build_loop_iteration_domains): Likewise.
26452 * hooks.h: Include wide-int.h rather than double-int.h.
26453 (hook_bool_dint_dint_uint_bool_true): Delete.
26454 (hook_bool_wint_wint_uint_bool_true): Declare.
26455 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
26456 (hook_bool_wint_wint_uint_bool_true): New.
26457 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
26459 (ubsan_expand_si_overflow_mul_check): Likewise.
26460 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
26461 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
26462 (get_ancestor_addr_info): Likewise.
26463 (ipa_modify_call_arguments): Likewise.
26464 * loop-doloop.c (doloop_modify): Likewise.
26465 (doloop_optimize): Likewise.
26466 * loop-iv.c (iv_number_of_iterations): Likewise.
26467 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
26468 (unroll_loop_constant_iterations): Likewise.
26469 (decide_unroll_runtime_iterations): Likewise.
26470 (unroll_loop_runtime_iterations): Likewise.
26471 (decide_peel_simple): Likewise.
26472 (decide_unroll_stupid): Likewise.
26473 * lto-streamer-in.c (streamer_read_wi): Add.
26474 (input_cfg): Use wide-int interfaces.
26475 (lto_input_tree_1): Likewise.
26476 * lto-streamer-out.c (streamer_write_wi): Add.
26477 (hash_tree): Use wide-int interfaces.
26478 (output_cfg): Likewise.
26479 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
26480 (GTFILES): Add wide-int.h and signop.h.
26481 (TAGS): Look for .cc files too.
26482 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
26483 * optabs.c (expand_subword_shift): Likewise.
26484 (expand_doubleword_shift): Likewise.
26485 (expand_absneg_bit): Likewise.
26486 (expand_copysign_absneg): Likewise.
26487 (expand_copysign_bit): Likewise.
26488 * postreload.c (reload_cse_simplify_set): Likewise.
26489 * predict.c (predict_iv_comparison): Likewise.
26490 * pretty-print.h: Include wide-int-print.h.
26492 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
26493 * print-tree.c: Include wide-int-print.h.
26494 (print_node_brief): Use wide-int interfaces.
26495 (print_node): Likewise.
26496 * read-rtl.c (validate_const_wide_int): New.
26497 (read_rtx_code): Add CONST_WIDE_INT case.
26498 * real.c: Include wide-int.h.
26499 (real_to_integer2): Delete.
26500 (real_to_integer): New function, returning a wide_int.
26501 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26502 (ten_to_ptwo): Update call to real_from_integer.
26503 (real_digit): Likewise.
26504 * real.h: Include signop.h, wide-int.h and insn-modes.h.
26505 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
26506 (REAL_VALUE_TO_INT): Delete.
26507 (real_to_integer): Declare a wide-int form.
26508 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26509 * recog.c (const_int_operand): Improve comment.
26510 (const_scalar_int_operand): New.
26511 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
26512 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
26513 (split_double): Likewise.
26514 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
26515 (rtx_size): Likewise.
26516 (rtx_alloc_stat_v): New.
26517 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
26518 (cwi_output_hex): New.
26519 (iterative_hash_rtx): Handle CONST_WIDE_INT.
26520 (cwi_check_failed_bounds): New.
26521 * rtl.def (CONST_WIDE_INT): New.
26522 * rtl.h: Include <utility> and wide-int.h.
26523 (struct hwivec_def): New.
26524 (CWI_GET_NUM_ELEM): New.
26525 (CWI_PUT_NUM_ELEM): New.
26526 (struct rtx_def): Add num_elem and hwiv.
26527 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
26528 (CASE_CONST_UNIQUE): Likewise.
26529 (CASE_CONST_ANY): Likewise.
26530 (CONST_SCALAR_INT_P): Likewise.
26531 (CONST_WIDE_INT_P): New.
26533 (HWIVEC_CHECK): New.
26534 (cwi_check_failed_bounds): New.
26536 (HWIVEC_CHECK): New.
26537 (CONST_WIDE_INT_VEC) New.
26538 (CONST_WIDE_INT_NUNITS) New.
26539 (CONST_WIDE_INT_ELT) New.
26540 (rtx_mode_t): New type.
26541 (wi::int_traits <rtx_mode_t>): New.
26543 (wi::min_value): New.
26544 (wi::max_value): New.
26546 (const_wide_int_alloc): New.
26547 (immed_wide_int_const): New.
26548 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
26549 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
26550 * signop.h: New file.
26551 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
26552 (simplify_const_unary_operation): Use wide-int interfaces.
26553 (simplify_binary_operation_1): Likewise.
26554 (simplify_const_binary_operation): Likewise.
26555 (simplify_const_relational_operation): Likewise.
26556 (simplify_immed_subreg): Likewise.
26557 * stmt.c (expand_case): Likewise.
26558 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
26559 signop rather than a bool.
26560 * stor-layout.c (layout_type): Use wide-int interfaces.
26561 (initialize_sizetypes): Update calls to
26562 set_min_and_max_values_for_integral_type.
26563 (set_min_and_max_values_for_integral_type): Take a signop rather
26564 than a bool. Use wide-int interfaces.
26565 (fixup_signed_type): Update accordingly. Remove
26566 HOST_BITS_PER_DOUBLE_INT limit.
26567 (fixup_unsigned_type): Likewise.
26568 * system.h (STATIC_CONSTANT_P): New.
26569 (STATIC_ASSERT): New.
26570 * target.def (can_use_doloop_p): Take widest_ints rather than
26572 * target.h: Include wide-int.h rather than double-int.h.
26573 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
26575 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
26576 rather than INT_CST_LT_UNSIGNED.
26577 (can_use_doloop_if_innermost): Take widest_ints rather than
26579 * tree-affine.c: Include wide-int-print.h.
26580 (double_int_ext_for_comb): Delete.
26581 (wide_int_ext_for_comb): New.
26582 (aff_combination_zero): Use wide-int interfaces.
26583 (aff_combination_const): Take a widest_int instead of a double_int.
26584 (aff_combination_elt): Use wide-int interfaces.
26585 (aff_combination_scale): Take a widest_int instead of a double_int.
26586 (aff_combination_add_elt): Likewise.
26587 (aff_combination_add_cst): Likewise.
26588 (aff_combination_add): Use wide-int interfaces.
26589 (aff_combination_convert): Likewise.
26590 (tree_to_aff_combination): Likewise.
26591 (add_elt_to_tree): Take a widest_int instead of a double_int.
26592 (aff_combination_to_tree): Use wide-int interfaces.
26593 (aff_combination_remove_elt): Likewise.
26594 (aff_combination_add_product): Take a widest_int instead of
26596 (aff_combination_mult): Use wide-int interfaces.
26597 (aff_combination_expand): Likewise.
26598 (double_int_constant_multiple_p): Delete.
26599 (wide_int_constant_multiple_p): New.
26600 (aff_combination_constant_multiple_p): Take a widest_int pointer
26601 instead of a double_int pointer.
26602 (print_aff): Use wide-int interfaces.
26603 (get_inner_reference_aff): Take a widest_int pointer
26604 instead of a double_int pointer.
26605 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
26606 * tree-affine.h: Include wide-int.h.
26607 (struct aff_comb_elt): Change type of coef to widest_int.
26608 (struct affine_tree_combination): Change type of offset to widest_int.
26609 (double_int_ext_for_comb): Delete.
26610 (wide_int_ext_for_comb): New.
26611 (aff_combination_const): Use widest_int instead of double_int.
26612 (aff_combination_scale): Likewise.
26613 (aff_combination_add_elt): Likewise.
26614 (aff_combination_constant_multiple_p): Likewise.
26615 (get_inner_reference_aff): Likewise.
26616 (aff_comb_cannot_overlap_p): Likewise.
26617 (aff_combination_zero_p): Use wide-int interfaces.
26618 * tree.c: Include tree.h.
26619 (init_ttree): Use make_int_cst.
26620 (tree_code_size): Removed code for INTEGER_CST case.
26621 (tree_size): Add INTEGER_CST case.
26622 (make_node_stat): Update comment.
26623 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
26624 (build_int_cst_type): Use wide-int interfaces.
26625 (double_int_to_tree): Likewise.
26626 (double_int_fits_to_tree_p): Delete.
26627 (force_fit_type_double): Delete.
26628 (force_fit_type): New.
26629 (int_cst_hash_hash): Use wide-int interfaces.
26630 (int_cst_hash_eq): Likewise.
26631 (build_int_cst_wide): Delete.
26632 (wide_int_to_tree): New.
26633 (cache_integer_cst): Use wide-int interfaces.
26634 (build_low_bits_mask): Likewise.
26635 (cst_and_fits_in_hwi): Likewise.
26636 (real_value_from_int_cst): Likewise.
26637 (make_int_cst_stat): New.
26638 (integer_zerop): Use wide_int interfaces.
26639 (integer_onep): Likewise.
26640 (integer_all_onesp): Likewise.
26641 (integer_pow2p): Likewise.
26642 (integer_nonzerop): Likewise.
26643 (tree_log2): Likewise.
26644 (tree_floor_log2): Likewise.
26645 (tree_ctz): Likewise.
26646 (int_size_in_bytes): Likewise.
26647 (mem_ref_offset): Return an offset_int rather than a double_int.
26648 (build_type_attribute_qual_variant): Use wide_int interfaces.
26649 (type_hash_eq): Likewise
26650 (tree_int_cst_equal): Likewise.
26651 (tree_int_cst_lt): Delete.
26652 (tree_int_cst_compare): Likewise.
26653 (tree_fits_shwi_p): Use wide_int interfaces.
26654 (tree_fits_uhwi_p): Likewise.
26655 (tree_int_cst_sign_bit): Likewise.
26656 (tree_int_cst_sgn): Likewise.
26657 (tree_int_cst_min_precision): Take a signop rather than a bool.
26658 (simple_cst_equal): Use wide_int interfaces.
26659 (compare_tree_int): Likewise.
26660 (iterative_hash_expr): Likewise.
26661 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
26663 (get_type_static_bounds): Use wide_int interfaces.
26664 (tree_int_cst_elt_check_failed): New.
26665 (build_common_tree_nodes): Reordered to set prec before filling in
26667 (int_cst_value): Check cst_and_fits_in_hwi.
26668 (widest_int_cst_value): Use wide_int interfaces.
26669 (upper_bound_in_type): Likewise.
26670 (lower_bound_in_type): Likewise.
26671 (num_ending_zeros): Likewise.
26672 (drop_tree_overflow): Likewise.
26673 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
26674 (gen_conditions_for_pow_cst_base): Likewise.
26675 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
26676 (group_case_labels_stmt): Use wide-int interfaces.
26677 (verify_gimple_assign_binary): Likewise.
26678 (print_loop): Likewise.
26679 * tree-chrec.c (tree_fold_binomial): Likewise.
26680 * tree-core.h (struct tree_base): Add int_length.
26681 (struct tree_int_cst): Change rep of value.
26682 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
26683 (dr_may_alias_p): Likewise.
26684 (max_stmt_executions_tree): Likewise.
26685 * tree.def (INTEGER_CST): Update comment.
26686 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
26687 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
26688 * tree-dump.c: Include wide-int.h and wide-int-print.h.
26689 (dequeue_and_dump): Use wide-int interfaces.
26690 * tree.h: Include wide-int.h.
26691 (NULL_TREE): Moved to earlier loc in file.
26692 (TREE_INT_CST_ELT_CHECK): New.
26693 (tree_int_cst_elt_check_failed): New.
26695 (TREE_INT_CST): Delete.
26696 (TREE_INT_CST_LOW): Use wide-int interfaces.
26697 (TREE_INT_CST_HIGH): Delete.
26698 (TREE_INT_CST_NUNITS): New.
26699 (TREE_INT_CST_EXT_NUNITS): Likewise.
26700 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
26701 (TREE_INT_CST_ELT): Likewise.
26702 (INT_CST_LT): Delete.
26703 (tree_int_cst_elt_check): New (two forms).
26704 (type_code_size): Update comment.
26705 (make_int_cst_stat, make_int_cst): New.
26706 (tree_to_double_int): Delete.
26707 (double_int_fits_to_tree_p): Delete.
26708 (force_fit_type_double): Delete.
26709 (build_int_cstu): Replace with out-of-line function.
26710 (build_int_cst_wide): Delete.
26711 (tree_int_cst_lt): Define inline.
26712 (tree_int_cst_le): New.
26713 (tree_int_cst_compare): Define inline.
26714 (tree_int_cst_min_precision): Take a signop rather than a bool.
26715 (wi::int_traits <const_tree>): New.
26716 (wi::int_traits <tree>): New.
26717 (wi::extended_tree): New.
26718 (wi::int_traits <wi::extended_tree>): New.
26719 (wi::to_widest): New.
26720 (wi::to_offset): New.
26721 (wi::fits_to_tree_p): New.
26722 (wi::min_value): New.
26723 (wi::max_value): New.
26724 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
26725 (copy_tree_body_r): Likewise.
26726 * tree-object-size.c (compute_object_offset): Likewise.
26727 (addr_object_size): Likewise.
26728 * tree-predcom.c: Include wide-int-print.h.
26729 (struct dref_d): Change type of offset to widest_int.
26730 (dump_dref): Call wide-int printer.
26731 (aff_combination_dr_offset): Use wide-int interfaces.
26732 (determine_offset): Take a widest_int pointer rather than a
26733 double_int pointer.
26734 (split_data_refs_to_components): Use wide-int interfaces.
26735 (suitable_component_p): Likewise.
26736 (order_drefs): Likewise.
26737 (add_ref_to_chain): Likewise.
26738 (valid_initializer_p): Likewise.
26739 (determine_roots_comp): Likewise.
26740 * tree-pretty-print.c: Include wide-int-print.h.
26741 (dump_generic_node): Use wide-int interfaces.
26742 * tree-sra.c (sra_ipa_modify_expr): Likewise.
26743 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
26744 (move_fixed_address_to_symbol): Likewise.
26745 (move_hint_to_base): Likewise.
26746 (move_pointer_to_base): Likewise.
26747 (move_variant_to_index): Likewise.
26748 (most_expensive_mult_to_index): Likewise.
26749 (addr_to_parts): Likewise.
26750 (copy_ref_info): Likewise.
26751 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26752 (indirect_refs_may_alias_p): Likewise.
26753 (stmt_kills_ref_p_1): Likewise.
26754 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
26755 * tree-ssa-ccp.c: Update comment at top of file. Include
26757 (struct prop_value_d): Change type of mask to widest_int.
26758 (extend_mask): New function.
26759 (dump_lattice_value): Use wide-int interfaces.
26760 (get_default_value): Likewise.
26761 (set_constant_value): Likewise.
26762 (set_value_varying): Likewise.
26763 (valid_lattice_transition): Likewise.
26764 (set_lattice_value): Likewise.
26765 (value_to_double_int): Delete.
26766 (value_to_wide_int): New.
26767 (get_value_from_alignment): Use wide-int interfaces.
26768 (get_value_for_expr): Likewise.
26769 (do_dbg_cnt): Likewise.
26770 (ccp_finalize): Likewise.
26771 (ccp_lattice_meet): Likewise.
26772 (bit_value_unop_1): Use widest_ints rather than double_ints.
26773 (bit_value_binop_1): Likewise.
26774 (bit_value_unop): Use wide-int interfaces.
26775 (bit_value_binop): Likewise.
26776 (bit_value_assume_aligned): Likewise.
26777 (evaluate_stmt): Likewise.
26778 (ccp_fold_stmt): Likewise.
26779 (visit_cond_stmt): Likewise.
26780 (ccp_visit_stmt): Likewise.
26781 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26782 (constant_pointer_difference): Likewise.
26783 (associate_pointerplus): Likewise.
26784 (combine_conversions): Likewise.
26785 * tree-ssa-loop.h: Include wide-int.h.
26786 (struct tree_niter_desc): Change type of max to widest_int.
26787 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
26788 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
26789 (remove_redundant_iv_tests): Likewise.
26790 (canonicalize_loop_induction_variables): Likewise.
26791 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
26792 (constant_multiple_of): Take a widest_int pointer instead of
26793 a double_int pointer.
26794 (get_computation_aff): Use wide-int interfaces.
26795 (ptr_difference_cost): Likewise.
26796 (difference_cost): Likewise.
26797 (get_loop_invariant_expr_id): Likewise.
26798 (get_computation_cost_at): Likewise.
26799 (iv_elimination_compare_lt): Likewise.
26800 (may_eliminate_iv): Likewise.
26801 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
26802 instead of double_int.
26803 (max_loop_iterations): Likewise.
26804 (max_stmt_executions): Likewise.
26805 (estimated_stmt_executions): Likewise.
26806 * tree-ssa-loop-niter.c: Include wide-int-print.h.
26807 (split_to_var_and_offset): Use wide-int interfaces.
26808 (determine_value_range): Likewise.
26809 (bound_difference_of_offsetted_base): Likewise.
26810 (bounds_add): Take a widest_int instead of a double_int.
26811 (number_of_iterations_ne_max): Use wide-int interfaces.
26812 (number_of_iterations_ne): Likewise.
26813 (number_of_iterations_lt_to_ne): Likewise.
26814 (assert_loop_rolls_lt): Likewise.
26815 (number_of_iterations_lt): Likewise.
26816 (number_of_iterations_le): Likewise.
26817 (number_of_iterations_cond): Likewise.
26818 (number_of_iterations_exit): Likewise.
26819 (finite_loop_p): Likewise.
26820 (derive_constant_upper_bound_assign): Likewise.
26821 (derive_constant_upper_bound): Return a widest_int.
26822 (derive_constant_upper_bound_ops): Likewise.
26823 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
26824 (record_estimate): Take a widest_int rather than a double_int.
26825 (record_nonwrapping_iv): Use wide-int interfaces.
26826 (double_int_cmp): Delete.
26827 (wide_int_cmp): New.
26828 (bound_index): Take a widest_int rather than a double_int.
26829 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
26830 (maybe_lower_iteration_bound): Likewise.
26831 (estimate_numbers_of_iterations_loop): Likewise.
26832 (estimated_loop_iterations): Take a widest_int pointer than than
26833 a double_int pointer.
26834 (estimated_loop_iterations_int): Use wide-int interfaces.
26835 (max_loop_iterations): Take a widest_int pointer than than
26836 a double_int pointer.
26837 (max_loop_iterations_int): Use wide-int interfaces.
26838 (max_stmt_executions): Take a widest_int pointer than than
26839 a double_int pointer.
26840 (estimated_stmt_executions): Likewise.
26841 (n_of_executions_at_most): Use wide-int interfaces.
26842 (scev_probably_wraps_p): Likewise.
26843 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
26844 to real_to_integer.
26845 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
26847 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
26848 double_ints. Adjust for trailing_wide_ints <3> representation.
26849 (set_nonzero_bits): Likewise.
26850 (get_range_info): Return wide_ints rather than double_ints.
26851 Adjust for trailing_wide_ints <3> representation.
26852 (get_nonzero_bits): Likewise.
26853 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
26855 * tree-ssanames.h (struct range_info_def): Replace min, max and
26856 nonzero_bits with a trailing_wide_ints <3>.
26857 (set_range_info): Use wide_int_refs rather than double_ints.
26858 (set_nonzero_bits): Likewise.
26859 (get_range_info): Return wide_ints rather than double_ints.
26860 (get_nonzero_bits): Likewise.
26861 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
26862 * tree-ssa-pre.c (phi_translate_1): Likewise.
26863 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
26864 (acceptable_pow_call): Likewise.
26865 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
26867 (vn_reference_fold_indirect): Likewise.
26868 (vn_reference_maybe_forwprop_address): Likewise.
26869 (valueize_refs_1): Likewise.
26870 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
26871 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
26872 tree_int_cst_lt and tree_int_cst_le.
26873 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
26875 (streamer_alloc_tree): Likewise.
26876 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
26877 (streamer_write_tree_header): Likewise.
26878 (streamer_write_integer_cst): Likewise.
26879 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
26880 (build_constructors): Likewise.
26881 (array_value_type): Likewise.
26882 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
26883 (vect_check_gather): Likewise.
26884 * tree-vect-generic.c (build_replicated_const): Likewise.
26885 (expand_vector_divmod): Likewise.
26886 * tree-vect-loop.c (vect_transform_loop): Likewise.
26887 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
26888 (vect_do_peeling_for_alignment): Likewise.
26889 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
26890 * tree-vrp.c: Include wide-int.h.
26891 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
26892 (extract_range_from_assert): Use wide-int interfaces.
26893 (vrp_int_const_binop): Likewise.
26894 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
26895 double_int pointers.
26896 (ranges_from_anti_range): Use wide-int interfaces.
26897 (quad_int_cmp): Delete.
26898 (quad_int_pair_sort): Likewise.
26899 (extract_range_from_binary_expr_1): Use wide-int interfaces.
26900 (extract_range_from_unary_expr_1): Likewise.
26901 (adjust_range_with_scev): Likewise.
26902 (masked_increment): Take and return wide_ints rather than double_ints.
26903 (register_edge_assert_for_2): Use wide-int interfaces.
26904 (check_array_ref): Likewise.
26905 (search_for_addr_array): Likewise.
26906 (maybe_set_nonzero_bits): Likewise.
26907 (union_ranges): Pass an integer of the correct type instead of
26908 using integer_one_node.
26909 (intersect_ranges): Likewise.
26910 (simplify_truth_ops_using_ranges): Likewise.
26911 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
26912 (range_fits_type_p): Likewise.
26913 (simplify_cond_using_ranges): Likewise. Take a signop rather than
26915 (simplify_conversion_using_ranges): Use wide-int interfaces.
26916 (simplify_float_conversion_using_ranges): Likewise.
26917 (vrp_finalize): Likewise.
26918 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
26919 (gimple_stringops_transform): Likewise.
26920 * varasm.c (decode_addr_const): Likewise.
26921 (const_hash_1): Likewise.
26922 (const_rtx_hash_1): Likewise
26923 (output_constant): Likewise.
26924 (array_size_for_constructor): Likewise.
26925 (output_constructor_regular_field): Likewise.
26926 (output_constructor_bitfield): Likewise.
26927 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
26928 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
26930 * gencheck.c: Define BITS_PER_UNIT.
26931 * wide-int.cc: New.
26933 * wide-int-print.cc: New.
26934 * wide-int-print.h: New.
26936 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26938 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
26940 2014-05-06 Richard Biener <rguenther@suse.de>
26942 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
26943 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
26944 (TODO_verify_all): Adjust.
26945 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
26946 TODO_verify_stmts and TODO_verify_rtl_sharing.
26947 * bb-reorder.c: Likewise.
26948 * cfgexpand.c: Likewise.
26949 * cprop.c: Likewise.
26951 * function.c: Likewise.
26952 * fwprop.c: Likewise.
26953 * gcse.c: Likewise.
26954 * gimple-ssa-isolate-paths.c: Likewise.
26955 * gimple-ssa-strength-reduction.c: Likewise.
26956 * ipa-split.c: Likewise.
26957 * loop-init.c: Likewise.
26958 * loop-unroll.c: Likewise.
26959 * lower-subreg.c: Likewise.
26960 * modulo-sched.c: Likewise.
26961 * postreload-gcse.c: Likewise.
26962 * predict.c: Likewise.
26963 * recog.c: Likewise.
26964 * sched-rgn.c: Likewise.
26965 * store-motion.c: Likewise.
26966 * tracer.c: Likewise.
26967 * trans-mem.c: Likewise.
26968 * tree-call-cdce.c: Likewise.
26969 * tree-cfg.c: Likewise.
26970 * tree-cfgcleanup.c: Likewise.
26971 * tree-complex.c: Likewise.
26972 * tree-eh.c: Likewise.
26973 * tree-emutls.c: Likewise.
26974 * tree-if-conv.c: Likewise.
26975 * tree-into-ssa.c: Likewise.
26976 * tree-loop-distribution.c: Likewise.
26977 * tree-object-size.c: Likewise.
26978 * tree-parloops.c: Likewise.
26979 * tree-pass.h: Likewise.
26980 * tree-sra.c: Likewise.
26981 * tree-ssa-ccp.c: Likewise.
26982 * tree-ssa-copy.c: Likewise.
26983 * tree-ssa-copyrename.c: Likewise.
26984 * tree-ssa-dce.c: Likewise.
26985 * tree-ssa-dom.c: Likewise.
26986 * tree-ssa-dse.c: Likewise.
26987 * tree-ssa-forwprop.c: Likewise.
26988 * tree-ssa-ifcombine.c: Likewise.
26989 * tree-ssa-loop-ch.c: Likewise.
26990 * tree-ssa-loop-ivcanon.c: Likewise.
26991 * tree-ssa-loop.c: Likewise.
26992 * tree-ssa-math-opts.c: Likewise.
26993 * tree-ssa-phiopt.c: Likewise.
26994 * tree-ssa-phiprop.c: Likewise.
26995 * tree-ssa-pre.c: Likewise.
26996 * tree-ssa-reassoc.c: Likewise.
26997 * tree-ssa-sink.c: Likewise.
26998 * tree-ssa-strlen.c: Likewise.
26999 * tree-ssa-tail-merge.c: Likewise.
27000 * tree-ssa-uncprop.c: Likewise.
27001 * tree-switch-conversion.c: Likewise.
27002 * tree-tailcall.c: Likewise.
27003 * tree-vect-generic.c: Likewise.
27004 * tree-vectorizer.c: Likewise.
27005 * tree-vrp.c: Likewise.
27006 * tsan.c: Likewise.
27007 * var-tracking.c: Likewise.
27008 * bt-load.c: Likewise.
27009 * cfgcleanup.c: Likewise.
27010 * combine-stack-adj.c: Likewise.
27011 * combine.c: Likewise.
27012 * compare-elim.c: Likewise.
27013 * config/epiphany/resolve-sw-modes.c: Likewise.
27014 * config/i386/i386.c: Likewise.
27015 * config/mips/mips.c: Likewise.
27016 * config/s390/s390.c: Likewise.
27017 * config/sh/sh_treg_combine.cc: Likewise.
27018 * config/sparc/sparc.c: Likewise.
27021 * final.c: Likewise.
27022 * ifcvt.c: Likewise.
27023 * mode-switching.c: Likewise.
27024 * passes.c: Likewise.
27025 * postreload.c: Likewise.
27027 * reg-stack.c: Likewise.
27028 * regcprop.c: Likewise.
27029 * regrename.c: Likewise.
27032 2014-05-06 Richard Biener <rguenther@suse.de>
27034 PR middle-end/61070
27035 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27036 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27038 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
27041 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27043 2014-05-05 Radovan Obradovic <robradovic@mips.com>
27044 Tom de Vries <tom@codesourcery.com>
27046 * target.def (call_fusage_contains_non_callee_clobbers): New
27048 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27050 (@node Miscellaneous Register Hooks): New node.
27051 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27052 * doc/tm.texi: Regenerate.
27054 2014-05-05 Marek Polacek <polacek@redhat.com>
27057 * opts.c (common_handle_option): Call error_at instead of warning_at.
27059 2014-05-05 Richard Biener <rguenther@suse.de>
27061 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27062 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
27063 under the TODO_verify_il umbrella.
27065 2014-05-05 Richard Biener <rguenther@suse.de>
27067 * passes.c (execute_function_todo): Move TODO_verify_flow under
27068 the TODO_verify_ul umbrella.
27070 2014-05-05 Richard Biener <rguenther@suse.de>
27072 PR middle-end/61010
27073 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27074 X & CST away from a CST that is the mask of a mode.
27076 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27078 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27079 int argument to enum machine_mode.
27080 (picochip_class_max_nregs): Ditto.
27081 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27082 (picochip_class_max_nregs): Ditto.
27084 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27086 * target.def: Add new target hook.
27087 * doc/tm.texi: Regenerate.
27088 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27089 * targhooks.c (default_keep_leaf_when_profiled): New function.
27091 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27092 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27094 2014-05-05 Bin Cheng <bin.cheng@arm.com>
27096 PR tree-optimization/60363
27097 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27098 (copy_phi_args): New parameters. Call get_value_locus_in_path.
27099 (update_destination_phis): New parameter.
27100 (create_edge_and_update_destination_phis): Ditto.
27101 (ssa_fix_duplicate_block_edges): Pass new arguments.
27102 (thread_single_edge): Ditto.
27104 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
27106 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27107 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27108 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27109 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27110 Use RS6000_BTM_HARD_FLOAT.
27111 (BU_MISC_2): Likewise.
27112 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27113 RS6000_BTM_HARD_FLOAT.
27114 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27115 is explicitly used.
27116 (rs6000_invalid_builtin): Add hard floating builtin support.
27117 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27118 hard float builtins.
27119 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27121 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27123 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27124 Add missing function* argument.
27126 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27128 * lra-constraints.c (valid_address_p): Move earlier in file.
27129 Add a constraint argument to the address_info version.
27130 (satisfies_memory_constraint_p): New function.
27131 (satisfies_address_constraint_p): Likewise.
27132 (process_alt_operands, curr_insn_transform): Use them.
27133 (process_address): Pass the constraint to valid_address_p when
27134 checking address operands.
27136 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27138 * config/mips/mips.c (mips_isa_rev): New variable.
27139 (mips_set_architecture): Set it.
27140 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27142 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27143 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27144 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27145 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27146 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27147 conditions in terms of mips_isa_rev.
27148 (mips_isa_rev): Declare.
27150 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27152 * config/sh/sh-mem.cc: Use tabs instead of spaces.
27153 (prob_unlikely, prob_likely): Make variables const.
27155 2014-05-03 Denis Chertykov <chertykov@gmail.com>
27157 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27159 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27161 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27163 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27165 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27166 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27167 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27169 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27170 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27172 Replace usage of ROUND_REG with sh_round_reg.
27173 Use CEIL instead of ROUND_ADVANCE.
27175 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27178 * config/sh/sh.c: Include stdlib headers before everything else.
27180 2014-05-02 Jakub Jelinek <jakub@redhat.com>
27182 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27183 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27184 (gimplify_adjust_omp_clauses): Simd region is never
27185 directly nested in combined parallel. Instead, for linear
27186 with copyin/copyout, if in combined for simd loop, make decl
27187 firstprivate/lastprivate on OMP_FOR.
27188 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27189 expand_omp_for_static_chunk): When setting endvar, also set
27190 fd->loop.v to the same value.
27192 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27194 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27196 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
27198 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27201 2014-05-02 Marek Polacek <polacek@redhat.com>
27203 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27205 2014-05-02 Kito Cheng <kito@0xlab.org>
27207 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27208 to a C expression marco.
27209 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27210 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27211 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27212 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27213 HONOR_REG_ALLOC_ORDER.
27214 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27216 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27218 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27220 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27222 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27224 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
27226 * tree-if-conv.c (is_cond_scalar_reduction): New function.
27227 (convert_scalar_cond_reduction): Likewise.
27228 (predicate_scalar_phi): Add recognition and transformation
27229 of simple conditioanl reduction to be vectorizable.
27231 2014-05-01 Marek Polacek <polacek@redhat.com>
27234 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27236 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
27238 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27239 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27240 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27241 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27242 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27243 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27244 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27245 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27247 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
27249 * config/arc/arc.opt (mlra): Move comment above option name
27250 to avoid mis-parsing as language options.
27252 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27254 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27255 * config/sol2.h: ... here.
27256 * config/sol2-10.h: Remove.
27258 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27259 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27260 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27261 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27262 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27263 * config/sol2.h: ... here.
27264 (SECTION_NAME_FORMAT): Don't redefine.
27265 (STARTFILE_ARCH32_SPEC): Rename to ...
27266 (STARTFILE_ARCH_SPEC): ... this.
27267 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27268 * config/sparc/sol2.h: ... here.
27269 (SECTION_NAME_FORMAT): Don't undef.
27270 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27271 (SUBTARGET_EXTRA_SPECS): Remove.
27272 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27274 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27275 (MD_STARTFILE_PREFIX): Remove.
27276 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27277 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27278 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27279 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27280 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27281 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27282 * config/i386/sol2.h: ... here.
27283 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27284 * config/i386/sol2-bi.h: Remove.
27285 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27286 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27288 * config/i386/t-sol2-64: Rename to ...
27289 * config/i386/t-sol2: ... this.
27290 * config/sparc/t-sol2-64: Rename to ...
27291 * config/sparc/t-sol2: ... this.
27293 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27294 sol2_tm_file_head, sol2_tm_file_tail.
27295 Include ${cpu_type}/sol2.h before sol2.h.
27297 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27298 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27299 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27300 Reflect i386/t-sol2-64 renaming.
27301 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27302 Reflect sparc/t-sol2-64 renaming.
27304 2014-04-30 Richard Biener <rguenther@suse.de>
27306 * passes.c (execute_function_todo): Move TODO_verify_stmts
27307 and TODO_verify_ssa under the TODO_verify_il umbrella.
27308 * tree-ssa.h (verify_ssa): Adjust prototype.
27309 * tree-ssa.c (verify_ssa): Add parameter to tell whether
27310 we should verify SSA operands.
27311 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27312 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27313 whether we should verify whether not throwing stmts have EH info.
27314 * graphite-scop-detection.c (create_sese_edges): Adjust.
27315 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27316 * tree-eh.c (lower_try_finally_switch): Do not add the
27317 default case label twice.
27319 2014-04-30 Marek Polacek <polacek@redhat.com>
27321 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27322 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27323 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27324 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27326 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
27328 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27329 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27330 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27331 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27332 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27333 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27334 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27335 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27337 2014-04-29 David Malcolm <dmalcolm@redhat.com>
27339 * tree-cfg.c (dump_function_to_file): Dump the return type of
27340 functions, in a line to itself before the function body, mimicking
27341 the layout of a C function.
27343 2014-04-29 Jakub Jelinek <jakub@redhat.com>
27345 PR tree-optimization/60971
27346 * tree-tailcall.c (process_assignment): Reject conversions which
27349 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
27351 * calls.c (initialize_argument_information): Always treat
27352 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27353 (expand_call): Likewise.
27354 (emit_library_call_calue_1): Likewise.
27355 * expr.c (PUSH_ARGS_REVERSED): Do not define.
27356 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27359 2014-04-29 Nick Clifton <nickc@redhat.com>
27361 * config/msp430/msp430.md (umulsidi): Fix typo.
27362 (mulhisi3): Enable even inside interrupt handlers.
27363 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27364 bigger return address pushed in large mode.
27366 2014-04-29 Nick Clifton <nickc@redhat.com>
27368 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27369 (arc_init_reg_tables): Use a machine_mode enum to iterate over
27371 * config/m32r/m32r.c (init_reg_tables): Likewise.
27372 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27373 enum to hold the modes.
27375 2014-04-29 Richard Biener <rguenther@suse.de>
27377 * dominance.c (free_dominance_info): Add overload with
27378 function parameter.
27379 (dom_info_state): Likewise.
27380 (dom_info_available_p): Likewise.
27381 * basic-block.h (free_dominance_info, dom_info_state,
27382 dom_info_available_p): Declare overloads.
27383 * passes.c (execute_function_todo): Verify that verifiers
27384 don't change dominator info state. Drop dominator info
27385 for IPA pass invocations.
27386 * cgraph.c (release_function_body): Restore asserts that
27387 dominator information is released.
27389 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
27391 * doc/invoke.texi: Fix typo.
27392 * tree-vrp.c: Fix typos.
27393 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
27395 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27397 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
27399 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
27401 * config/aarch64/aarch64-builtins.c
27402 (aarch64_types_storestruct_lane_qualifiers): New.
27403 (TYPES_STORESTRUCT_LANE): Likewise.
27404 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
27405 (st3_lane): Likewise.
27406 (st4_lane): Likewise.
27407 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
27408 (vec_store_lanesci_lane<mode>): Likewise.
27409 (vec_store_lanesxi_lane<mode>): Likewise.
27410 (aarch64_st2_lane<VQ:mode>): Likewise.
27411 (aarch64_st3_lane<VQ:mode>): Likewise.
27412 (aarch64_st4_lane<VQ:mode>): Likewise.
27413 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
27414 * config/aarch64/arm_neon.h
27415 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
27416 use new macro arguments.
27417 (__ST3_LANE_FUNC): Likewise.
27418 (__ST4_LANE_FUNC): Likewise.
27419 * config/aarch64/iterators.md (V_TWO_ELEM): New.
27420 (V_THREE_ELEM): Likewise.
27421 (V_FOUR_ELEM): Likewise.
27423 2014-04-28 David Malcolm <dmalcolm@redhat.com>
27425 * doc/gimple.texi: Replace the description of the now-defunct
27426 union gimple_statement_d with a diagram showing the
27427 gimple_statement_base class hierarchy and its relationships to
27428 the GSS_ and GIMPLE_ enums.
27430 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
27432 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
27433 * config/aarch64/aarch64.c
27434 (aarch64_cannot_change_mode_class): Weaken conditions.
27435 (aarch64_modes_tieable_p): New.
27436 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
27438 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
27440 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
27441 (loadsync_<mode>): Change mode.
27442 (load_quadpti, store_quadpti): New.
27443 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
27444 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
27446 2014-04-28 Martin Jambor <mjambor@suse.cz>
27448 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
27449 same alias type as the original statement.
27450 (subreplacement_assignment_data): New type.
27451 (handle_unscalarized_data_in_subtree): New type of parameter,
27452 generate new memory accesses with same alias type as the original
27454 (load_assign_lhs_subreplacements): Likewise.
27455 (sra_modify_constructor_assign): Generate new memory accesses with
27456 same alias type as the original statement.
27458 2014-04-28 Richard Biener <rguenther@suse.de>
27460 * tree-pass.h (TODO_verify_il): Define.
27461 (TODO_verify_all): Complete properly.
27462 * passes.c (execute_function_todo): Move existing loop-closed
27463 SSA verification under TODO_verify_il.
27464 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
27465 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
27466 Fix tree sharing issue.
27468 2014-04-28 Richard Biener <rguenther@suse.de>
27470 PR middle-end/60092
27471 * builtins.def (DEF_C11_BUILTIN): Add.
27472 (BUILT_IN_ALIGNED_ALLOC): Likewise.
27473 * coretypes.h (enum function_class): Add function_c11_misc.
27474 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
27475 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
27476 (call_may_clobber_ref_p_1): Likewise.
27477 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27478 (mark_all_reaching_defs_necessary_1): Likewise.
27479 (propagate_necessity): Likewise.
27480 (eliminate_unnecessary_stmts): Likewise.
27481 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
27483 2014-04-28 Richard Biener <rguenther@suse.de>
27485 * tree-vrp.c (vrp_var_may_overflow): Remove.
27486 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
27487 with overflow immediately bump to one before that value and
27488 let iteration figure out overflow status.
27490 2014-04-28 Richard Biener <rguenther@suse.de>
27492 * configure.ac: Do valgrind header checks unconditionally.
27493 Add --enable-valgrind-annotations.
27494 * system.h: Guard valgrind header inclusion with
27495 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
27496 * alloc-pool.c (pool_alloc, pool_free): Use
27497 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
27498 to guard possibly dead code.
27499 * config.in: Regenerated.
27500 * configure: Likewise.
27502 2014-04-28 Jeff Law <law@redhat.com>
27504 PR tree-optimization/60902
27505 * tree-ssa-threadedge.c
27506 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
27507 over real defs when invalidating outputs from statements that do not
27508 produce useful outputs for threading.
27510 2014-04-28 Richard Biener <rguenther@suse.de>
27512 PR tree-optimization/60979
27513 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
27514 SCOPs that end in a block with a successor with abnormal
27517 2014-04-28 Richard Biener <rguenther@suse.de>
27519 * tree-pass.h (execute_pass_list): Adjust prototype.
27520 * passes.c (pass_manager::execute_early_local_passes): Adjust.
27521 (do_per_function): Change callback signature, push all actual
27522 work to the callbals.
27523 (do_per_function_toporder): Likewise.
27524 (execute_function_dump): Adjust.
27525 (execute_function_todo): Likewise.
27526 (clear_last_verified): Likewise.
27527 (verify_curr_properties): Likewise.
27528 (update_properties_after_pass): Likewise.
27529 (execute_pass_list_1): Split out from ...
27530 (execute_pass_list): ... here. Adjust.
27531 (execute_ipa_pass_list): Likewise.
27532 * cgraphunit.c (cgraph_add_new_function): Adjust.
27533 (analyze_function): Likewise.
27534 (expand_function): Likewise.
27535 * cgraph.c (release_function_body): Free dominance info
27536 here instead of asserting it was magically freed elsewhere.
27538 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
27540 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
27541 * configure: Regenerate.
27542 * config/sparc/sparc.opt (muser-mode): New option.
27543 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
27545 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
27546 * doc/invoke.texi (SPARC options): Document -muser-mode.
27548 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
27550 * cselib.c (find_slot_memmode): Delete.
27551 (cselib_hasher): Change compare_type to a struct.
27552 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
27554 (preserve_constants_and_equivs): Adjust for new compare_type.
27555 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
27556 (wrap_constant): Delete.
27557 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
27559 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
27561 * doc/install.texi (Building with profile feedback): Remove
27564 2014-04-26 Tom de Vries <tom@codesourcery.com>
27566 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
27569 2014-04-25 Cary Coutant <ccoutant@google.com>
27572 * dwarf2out.c (should_move_die_to_comdat): A type definition
27573 can contain a subprogram definition, but don't move it to a
27575 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
27576 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
27578 (clone_tree_hash): Rename to...
27579 (clone_tree_partial): ...this; change callers. Copy
27580 DW_TAG_subprogram DIEs as declarations.
27581 (copy_decls_walk): Don't copy children of a declaration into a
27584 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
27587 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
27590 2014-04-25 Jiong Wang <jiong.wang@arm.com>
27592 * config/arm/predicates.md (call_insn_operand): Add long_call check.
27593 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
27595 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
27598 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27600 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
27602 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27604 PR tree-optimization/60930
27605 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
27606 creating a multiply candidate by folding two constant
27607 multiplicands when the result overflows.
27609 2014-04-25 Jakub Jelinek <jakub@redhat.com>
27611 PR tree-optimization/60960
27612 * tree-vect-generic.c (expand_vector_operation): Only call
27613 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
27615 2014-04-25 Tom de Vries <tom@codesourcery.com>
27617 * expr.c (clobber_reg_mode): New function.
27618 * expr.h (clobber_reg): New function.
27620 2014-04-25 Tom de Vries <tom@codesourcery.com>
27622 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
27625 2014-04-25 Radovan Obradovic <robradovic@mips.com>
27626 Tom de Vries <tom@codesourcery.com>
27628 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
27630 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
27631 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
27632 new argument to find_all_hard_reg_sets call.
27634 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27636 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
27637 Use HOST_WIDE_INT_C for mask literal.
27638 (aarch_rev16_shleft_mask_imm_p): Likewise.
27640 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
27643 * config/sparc/sparc.md (ashlsi3_extend): Delete.
27645 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
27647 PR preprocessor/56540
27648 * config/i386/i386-c.c (ix86_target_macros): Define
27649 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
27651 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27653 * configure.ac (tga_func): Remove.
27654 (LIB_TLS_SPEC): Remove.
27655 * configure: Regenerate.
27656 * config.in: Regenerate.
27657 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
27659 2014-04-25 Richard Biener <rguenther@suse.de>
27662 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
27663 call stmt use/clobber sets during stmt walk instead of
27664 walking the possibly incomplete set of caller edges.
27666 2014-04-25 Richard Biener <rguenther@suse.de>
27669 * passes.c (apply_ipa_transforms): Inline into only caller ...
27670 (execute_one_pass): ... here. Properly bring in function
27671 bodies for nodes we want to apply IPA transforms to.
27673 2014-04-24 Cong Hou <congh@google.com>
27675 PR tree-optimization/60896
27676 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
27677 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
27678 (vect_mark_pattern_stmts): Set the def type of all statements in
27679 PATTERN_DEF_SEQ as vect_internal_def.
27681 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
27683 * doc/extend.texi (PowerPC Built-in Functions): Document new
27684 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
27685 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
27687 * config/rs6000/predicates.md (const_0_to_3_operand): New
27688 predicate to match 0..3 integer constants.
27690 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
27691 to support adding miscellaneous builtin functions.
27692 (BU_DFP_MISC_2): Likewise.
27693 (BU_P7_MISC_1): Likewise.
27694 (BU_P7_MISC_2): Likewise.
27695 (BU_P8V_MISC_3): Likewise.
27696 (BU_MISC_1): Likewise.
27697 (BU_MISC_2): Likewise.
27698 (DIVWE): Add extended divide builtin functions.
27699 (DIVWEO): Likewise.
27700 (DIVWEU): Likewise.
27701 (DIVWEUO): Likewise.
27703 (DIVDEO): Likewise.
27704 (DIVDEU): Likewise.
27705 (DIVDEUO): Likewise.
27706 (DXEX): Add decimal floating-point builtin functions.
27708 (DDEDPD): Likewise.
27709 (DDEDPDQ): Likewise.
27710 (DENBCD): Likewise.
27711 (DENBCDQ): Likewise.
27715 (DSCLIQ): Likewise.
27717 (DSCRIQ): Likewise.
27718 (CDTBCD): Add new BCD builtin functions.
27719 (CBCDTD): Likewise.
27720 (ADDG6S): Likewise.
27721 (BCDADD): Likewise.
27722 (BCDADD_LT): Likewise.
27723 (BCDADD_EQ): Likewise.
27724 (BCDADD_GT): Likewise.
27725 (BCDADD_OV): Likewise.
27726 (BCDSUB): Likewise.
27727 (BCDSUB_LT): Likewise.
27728 (BCDSUB_EQ): Likewise.
27729 (BCDSUB_GT): Likewise.
27730 (BCDSUB_OV): Likewise.
27731 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
27732 (UNPACK_TD): Likewise.
27733 (PACK_TF): Likewise.
27734 (UNPACK_TF): Likewise.
27735 (UNPACK_TF_0): Likewise.
27736 (UNPACK_TF_1): Likewise.
27737 (PACK_V1TI): Likewise.
27738 (UNPACK_V1TI): Likewise.
27740 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
27741 support for decimal floating point builtin functions.
27742 (rs6000_expand_ternop_builtin): Add checks for the new builtin
27743 functions that take constant arguments.
27744 (rs6000_invalid_builtin): Add decimal floating point builtin support.
27745 (rs6000_init_builtins): Setup long double, _Decimal64, and
27746 _Decimal128 types for new builtin functions.
27747 (builtin_function_type): Set the unsigned flags appropriately for
27748 the new builtin functions.
27749 (rs6000_opt_masks): Add support for decimal floating point builtin
27752 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
27753 floating point builtin functions.
27754 (RS6000_BTM_COMMON): Likewise.
27755 (RS6000_BTI_long_double): Likewise.
27756 (RS6000_BTI_dfloat64): Likewise.
27757 (RS6000_BTI_dfloat128): Likewise.
27758 (long_double_type_internal_node): Likewise.
27759 (dfloat64_type_internal_node): Likewise.
27760 (dfloat128_type_internal_node): Likewise.
27762 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
27763 2.07 bcd arithmetic instructions.
27764 (UNSPEC_BCDSUB): Likewise.
27765 (UNSPEC_BCD_OVERFLOW): Likewise.
27766 (UNSPEC_BCD_ADD_SUB): Likewise.
27767 (bcd_add_sub): Likewise.
27768 (BCD_TEST): Likewise.
27769 (bcd<bcd_add_sub>): Likewise.
27770 (bcd<bcd_add_sub>_test): Likewise.
27771 (bcd<bcd_add_sub>_test2): Likewise.
27772 (bcd<bcd_add_sub>_<code>): Likewise.
27773 (peephole2 for combined bcd ops): Likewise.
27775 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
27776 decimal floating point builtin functions.
27777 (UNSPEC_DENBCD): Likewise.
27778 (UNSPEC_DXEX): Likewise.
27779 (UNSPEC_DIEX): Likewise.
27780 (UNSPEC_DSCLI): Likewise.
27781 (UNSPEC_DSCRI): Likewise.
27782 (D64_D128): Likewise.
27783 (dfp_suffix): Likewise.
27784 (dfp_ddedpd_<mode>): Likewise.
27785 (dfp_denbcd_<mode>): Likewise.
27786 (dfp_dxex_<mode>): Likewise.
27787 (dfp_diex_<mode>): Likewise.
27788 (dfp_dscli_<mode>): Likewise.
27789 (dfp_dscri_<mode>): Likewise.
27791 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
27793 (UNSPEC_CDTBCD): Likewise.
27794 (UNSPEC_CBCDTD): Likewise.
27795 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
27796 (UNSPEC_DIVEO): Likewise.
27797 (UNSPEC_DIVEU): Likewise.
27798 (UNSPEC_DIVEUO): Likewise.
27799 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
27800 pack/unpack 128-bit types.
27801 (UNSPEC_PACK_128BIT): Likewise.
27802 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
27803 (udiv<mode>3): Use idiv_ldiv mode attribute.
27804 (div<mode>3): Likewise.
27805 (addg6s): Add new BCD builtin functions.
27806 (cdtbcd): Likewise.
27807 (cbcdtd): Likewise.
27808 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
27809 (div_extend): Likewise.
27810 (div<div_extend>_<mode>"): Likewise.
27811 (FP128_64): Add support for new builtin functions to pack/unpack
27813 (unpack<mode>): Likewise.
27814 (unpacktf_0): Likewise.
27815 (unpacktf_1): Likewise.
27816 (unpack<mode>_dm): Likewise.
27817 (unpack<mode>_nodm): Likewise.
27818 (pack<mode>): Likewise.
27819 (unpackv1ti): Likewise.
27820 (packv1ti): Likewise.
27822 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
27824 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
27827 2014-04-24 Jakub Jelinek <jakub@redhat.com>
27829 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
27830 * gimplify.c (omp_is_private): Change last argument's type to int.
27831 Only diagnose lastprivate if the simd argument is 1, only diagnose
27832 linear if the simd argument is 2.
27833 (gimplify_omp_for): Adjust omp_is_private callers. When adding
27834 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
27835 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
27836 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
27837 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
27838 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27839 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
27840 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27841 * tree-nested.c (convert_nonlocal_omp_clauses,
27842 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
27844 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
27847 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
27850 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
27852 * flag-types.h (enum ivar_visibility): Add.
27854 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
27856 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
27857 function * argument.
27859 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
27861 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
27863 2014-04-24 Radovan Obradovic <robradovic@mips.com>
27864 Tom de Vries <tom@codesourcery.com>
27866 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
27867 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
27869 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
27870 * emit-rtl.c (try_split): Same.
27872 2014-04-24 Radovan Obradovic <robradovic@mips.com>
27873 Tom de Vries <tom@codesourcery.com>
27875 * common.opt (fuse-caller-save): New option.
27877 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
27879 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
27880 elements for big-endian.
27882 2014-04-24 Richard Biener <rguenther@suse.de>
27884 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
27885 during TER and instead use the sepops interface for expanding
27886 non-GIMPLE_SINGLE_RHS.
27888 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27890 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
27891 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
27893 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27895 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
27896 assembler 64-bit option.
27897 * configure: Regenerate.
27899 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27901 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
27902 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
27903 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
27904 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
27905 (TARGET_CRYPTO): Take TARGET_SIMD into account.
27907 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27909 * config/aarch64/aarch64-builtins.c
27910 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
27911 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
27912 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
27913 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
27915 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
27916 (Vrevsuff): New mode attribute.
27918 2014-04-24 Terry Guo <terry.guo@arm.com>
27920 * config/arm/arm.h (machine_function): Define variable
27921 after_arm_reorg here.
27922 * config/arm/arm.c (after_arm_reorg): Remove the definition.
27923 (arm_split_constant): Update the way to access variable
27925 (arm_reorg): Ditto.
27926 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
27928 2014-04-23 Tom de Vries <tom@codesourcery.com>
27930 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
27932 2014-04-23 David Malcolm <dmalcolm@redhat.com>
27934 * is-a.h: Update comments to reflect the following changes to the
27935 "pointerness" of the API, making the template parameter match the
27936 return type, allowing use of is-a.h with typedefs of pointers.
27937 (is_a_helper::cast): Return a T rather then a pointer to a T, so
27938 that the return type matches the parameter to the is_a_helper.
27940 (dyn_cast): Likewise.
27942 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
27943 pointer from the is-a.h API.
27945 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
27946 (is_a_helper <cgraph_node *>::test): ...this, matching change to
27948 (is_a_helper <varpool_node>::test): Likewise, convert to...
27949 (is_a_helper <varpool_node *>::test): ...this.
27951 (varpool_first_variable): Update for removal of implicit pointer
27952 from the is-a.h API.
27953 (varpool_next_variable): Likewise.
27954 (varpool_first_static_initializer): Likewise.
27955 (varpool_next_static_initializer): Likewise.
27956 (varpool_first_defined_variable): Likewise.
27957 (varpool_next_defined_variable): Likewise.
27958 (cgraph_first_defined_function): Likewise.
27959 (cgraph_next_defined_function): Likewise.
27960 (cgraph_first_function): Likewise.
27961 (cgraph_next_function): Likewise.
27962 (cgraph_first_function_with_gimple_body): Likewise.
27963 (cgraph_next_function_with_gimple_body): Likewise.
27964 (cgraph_alias_target): Likewise.
27965 (varpool_alias_target): Likewise.
27966 (cgraph_function_or_thunk_node): Likewise.
27967 (varpool_variable_node): Likewise.
27968 (symtab_real_symbol_p): Likewise.
27969 * cgraphunit.c (referred_to_p): Likewise.
27970 (analyze_functions): Likewise.
27971 (handle_alias_pairs): Likewise.
27972 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
27973 * gimple-ssa.h (gimple_vuse_op): Likewise.
27974 (gimple_vdef_op): Likewise.
27975 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
27976 * gimple.c (gimple_build_asm_1): Likewise.
27977 (gimple_build_try): Likewise.
27978 (gimple_build_resx): Likewise.
27979 (gimple_build_eh_dispatch): Likewise.
27980 (gimple_build_omp_for): Likewise.
27981 (gimple_omp_for_set_clauses): Likewise.
27983 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
27984 (is_a_helper <gimple_statement_asm *>::test): ...this.
27985 (is_a_helper <gimple_statement_bind>::test): Convert to...
27986 (is_a_helper <gimple_statement_bind *>::test): ...this.
27987 (is_a_helper <gimple_statement_call>::test): Convert to...
27988 (is_a_helper <gimple_statement_call *>::test): ...this.
27989 (is_a_helper <gimple_statement_catch>::test): Convert to...
27990 (is_a_helper <gimple_statement_catch *>::test): ...this.
27991 (is_a_helper <gimple_statement_resx>::test): Convert to...
27992 (is_a_helper <gimple_statement_resx *>::test): ...this.
27993 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
27994 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
27995 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
27996 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
27997 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
27998 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
27999 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28000 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28001 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28002 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28003 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28004 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28005 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28006 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28007 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28008 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28009 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28010 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28011 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28012 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28013 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28014 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28015 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28016 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28017 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28018 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28019 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28020 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28021 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28022 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28023 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28024 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28025 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28026 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28027 (is_a_helper <gimple_statement_phi>::test): Convert to...
28028 (is_a_helper <gimple_statement_phi *>::test): ...this.
28029 (is_a_helper <gimple_statement_transaction>::test): Convert to...
28030 (is_a_helper <gimple_statement_transaction *>::test): ...this.
28031 (is_a_helper <gimple_statement_try>::test): Convert to...
28032 (is_a_helper <gimple_statement_try *>::test): ...this.
28033 (is_a_helper <gimple_statement_wce>::test): Convert to...
28034 (is_a_helper <gimple_statement_wce *>::test): ...this.
28035 (is_a_helper <const gimple_statement_asm>::test): Convert to...
28036 (is_a_helper <const gimple_statement_asm *>::test): ...this.
28037 (is_a_helper <const gimple_statement_bind>::test): Convert to...
28038 (is_a_helper <const gimple_statement_bind *>::test): ...this.
28039 (is_a_helper <const gimple_statement_call>::test): Convert to...
28040 (is_a_helper <const gimple_statement_call *>::test): ...this.
28041 (is_a_helper <const gimple_statement_catch>::test): Convert to...
28042 (is_a_helper <const gimple_statement_catch *>::test): ...this.
28043 (is_a_helper <const gimple_statement_resx>::test): Convert to...
28044 (is_a_helper <const gimple_statement_resx *>::test): ...this.
28045 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28046 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28047 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28048 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28049 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28051 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28053 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28055 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28057 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28058 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28059 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28061 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28062 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28064 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28065 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28066 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28067 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28068 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28069 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28071 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28072 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28073 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28074 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28076 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28077 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28078 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28079 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28080 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28081 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28082 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28083 (is_a_helper <const gimple_statement_phi>::test): Convert to...
28084 (is_a_helper <const gimple_statement_phi *>::test): ...this.
28085 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28086 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28087 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28088 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28089 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28090 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28091 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28093 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28095 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28096 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28098 (gimple_use_ops): Update for removal of implicit pointer from the
28100 (gimple_set_use_ops): Likewise.
28101 (gimple_vuse): Likewise.
28102 (gimple_vdef): Likewise.
28103 (gimple_vuse_ptr): Likewise.
28104 (gimple_vdef_ptr): Likewise.
28105 (gimple_set_vuse): Likewise.
28106 (gimple_set_vdef): Likewise.
28107 (gimple_omp_return_set_lhs): Likewise.
28108 (gimple_omp_return_lhs): Likewise.
28109 (gimple_omp_return_lhs_ptr): Likewise.
28110 (gimple_call_fntype): Likewise.
28111 (gimple_call_set_fntype): Likewise.
28112 (gimple_call_set_internal_fn): Likewise.
28113 (gimple_call_use_set): Likewise.
28114 (gimple_call_clobber_set): Likewise.
28115 (gimple_bind_vars): Likewise.
28116 (gimple_bind_set_vars): Likewise.
28117 (gimple_bind_body_ptr): Likewise.
28118 (gimple_bind_set_body): Likewise.
28119 (gimple_bind_add_stmt): Likewise.
28120 (gimple_bind_block): Likewise.
28121 (gimple_bind_set_block): Likewise.
28122 (gimple_asm_ninputs): Likewise.
28123 (gimple_asm_noutputs): Likewise.
28124 (gimple_asm_nclobbers): Likewise.
28125 (gimple_asm_nlabels): Likewise.
28126 (gimple_asm_input_op): Likewise.
28127 (gimple_asm_input_op_ptr): Likewise.
28128 (gimple_asm_output_op): Likewise.
28129 (gimple_asm_output_op_ptr): Likewise.
28130 (gimple_asm_set_output_op): Likewise.
28131 (gimple_asm_clobber_op): Likewise.
28132 (gimple_asm_set_clobber_op): Likewise.
28133 (gimple_asm_label_op): Likewise.
28134 (gimple_asm_set_label_op): Likewise.
28135 (gimple_asm_string): Likewise.
28136 (gimple_catch_types): Likewise.
28137 (gimple_catch_types_ptr): Likewise.
28138 (gimple_catch_handler_ptr): Likewise.
28139 (gimple_catch_set_types): Likewise.
28140 (gimple_catch_set_handler): Likewise.
28141 (gimple_eh_filter_types): Likewise.
28142 (gimple_eh_filter_types_ptr): Likewise.
28143 (gimple_eh_filter_failure_ptr): Likewise.
28144 (gimple_eh_filter_set_types): Likewise.
28145 (gimple_eh_filter_set_failure): Likewise.
28146 (gimple_eh_must_not_throw_fndecl): Likewise.
28147 (gimple_eh_must_not_throw_set_fndecl): Likewise.
28148 (gimple_eh_else_n_body_ptr): Likewise.
28149 (gimple_eh_else_e_body_ptr): Likewise.
28150 (gimple_eh_else_set_n_body): Likewise.
28151 (gimple_eh_else_set_e_body): Likewise.
28152 (gimple_try_eval_ptr): Likewise.
28153 (gimple_try_cleanup_ptr): Likewise.
28154 (gimple_try_set_eval): Likewise.
28155 (gimple_try_set_cleanup): Likewise.
28156 (gimple_wce_cleanup_ptr): Likewise.
28157 (gimple_wce_set_cleanup): Likewise.
28158 (gimple_phi_capacity): Likewise.
28159 (gimple_phi_num_args): Likewise.
28160 (gimple_phi_result): Likewise.
28161 (gimple_phi_result_ptr): Likewise.
28162 (gimple_phi_set_result): Likewise.
28163 (gimple_phi_arg): Likewise.
28164 (gimple_phi_set_arg): Likewise.
28165 (gimple_resx_region): Likewise.
28166 (gimple_resx_set_region): Likewise.
28167 (gimple_eh_dispatch_region): Likewise.
28168 (gimple_eh_dispatch_set_region): Likewise.
28169 (gimple_omp_critical_name): Likewise.
28170 (gimple_omp_critical_name_ptr): Likewise.
28171 (gimple_omp_critical_set_name): Likewise.
28172 (gimple_omp_for_clauses): Likewise.
28173 (gimple_omp_for_clauses_ptr): Likewise.
28174 (gimple_omp_for_set_clauses): Likewise.
28175 (gimple_omp_for_collapse): Likewise.
28176 (gimple_omp_for_index): Likewise.
28177 (gimple_omp_for_index_ptr): Likewise.
28178 (gimple_omp_for_set_index): Likewise.
28179 (gimple_omp_for_initial): Likewise.
28180 (gimple_omp_for_initial_ptr): Likewise.
28181 (gimple_omp_for_set_initial): Likewise.
28182 (gimple_omp_for_final): Likewise.
28183 (gimple_omp_for_final_ptr): Likewise.
28184 (gimple_omp_for_set_final): Likewise.
28185 (gimple_omp_for_incr): Likewise.
28186 (gimple_omp_for_incr_ptr): Likewise.
28187 (gimple_omp_for_set_incr): Likewise.
28188 (gimple_omp_for_pre_body_ptr): Likewise.
28189 (gimple_omp_for_set_pre_body): Likewise.
28190 (gimple_omp_parallel_clauses): Likewise.
28191 (gimple_omp_parallel_clauses_ptr): Likewise.
28192 (gimple_omp_parallel_set_clauses): Likewise.
28193 (gimple_omp_parallel_child_fn): Likewise.
28194 (gimple_omp_parallel_child_fn_ptr): Likewise.
28195 (gimple_omp_parallel_set_child_fn): Likewise.
28196 (gimple_omp_parallel_data_arg): Likewise.
28197 (gimple_omp_parallel_data_arg_ptr): Likewise.
28198 (gimple_omp_parallel_set_data_arg): Likewise.
28199 (gimple_omp_task_clauses): Likewise.
28200 (gimple_omp_task_clauses_ptr): Likewise.
28201 (gimple_omp_task_set_clauses): Likewise.
28202 (gimple_omp_task_child_fn): Likewise.
28203 (gimple_omp_task_child_fn_ptr): Likewise.
28204 (gimple_omp_task_set_child_fn): Likewise.
28205 (gimple_omp_task_data_arg): Likewise.
28206 (gimple_omp_task_data_arg_ptr): Likewise.
28207 (gimple_omp_task_set_data_arg): Likewise.
28208 (gimple_omp_taskreg_clauses): Likewise.
28209 (gimple_omp_taskreg_clauses_ptr): Likewise.
28210 (gimple_omp_taskreg_set_clauses): Likewise.
28211 (gimple_omp_taskreg_child_fn): Likewise.
28212 (gimple_omp_taskreg_child_fn_ptr): Likewise.
28213 (gimple_omp_taskreg_set_child_fn): Likewise.
28214 (gimple_omp_taskreg_data_arg): Likewise.
28215 (gimple_omp_taskreg_data_arg_ptr): Likewise.
28216 (gimple_omp_taskreg_set_data_arg): Likewise.
28217 (gimple_omp_task_copy_fn): Likewise.
28218 (gimple_omp_task_copy_fn_ptr): Likewise.
28219 (gimple_omp_task_set_copy_fn): Likewise.
28220 (gimple_omp_task_arg_size): Likewise.
28221 (gimple_omp_task_arg_size_ptr): Likewise.
28222 (gimple_omp_task_set_arg_size): Likewise.
28223 (gimple_omp_task_arg_align): Likewise.
28224 (gimple_omp_task_arg_align_ptr): Likewise.
28225 (gimple_omp_task_set_arg_align): Likewise.
28226 (gimple_omp_single_clauses): Likewise.
28227 (gimple_omp_single_clauses_ptr): Likewise.
28228 (gimple_omp_single_set_clauses): Likewise.
28229 (gimple_omp_target_clauses): Likewise.
28230 (gimple_omp_target_clauses_ptr): Likewise.
28231 (gimple_omp_target_set_clauses): Likewise.
28232 (gimple_omp_target_child_fn): Likewise.
28233 (gimple_omp_target_child_fn_ptr): Likewise.
28234 (gimple_omp_target_set_child_fn): Likewise.
28235 (gimple_omp_target_data_arg): Likewise.
28236 (gimple_omp_target_data_arg_ptr): Likewise.
28237 (gimple_omp_target_set_data_arg): Likewise.
28238 (gimple_omp_teams_clauses): Likewise.
28239 (gimple_omp_teams_clauses_ptr): Likewise.
28240 (gimple_omp_teams_set_clauses): Likewise.
28241 (gimple_omp_sections_clauses): Likewise.
28242 (gimple_omp_sections_clauses_ptr): Likewise.
28243 (gimple_omp_sections_set_clauses): Likewise.
28244 (gimple_omp_sections_control): Likewise.
28245 (gimple_omp_sections_control_ptr): Likewise.
28246 (gimple_omp_sections_set_control): Likewise.
28247 (gimple_omp_for_set_cond): Likewise.
28248 (gimple_omp_for_cond): Likewise.
28249 (gimple_omp_atomic_store_set_val): Likewise.
28250 (gimple_omp_atomic_store_val): Likewise.
28251 (gimple_omp_atomic_store_val_ptr): Likewise.
28252 (gimple_omp_atomic_load_set_lhs): Likewise.
28253 (gimple_omp_atomic_load_lhs): Likewise.
28254 (gimple_omp_atomic_load_lhs_ptr): Likewise.
28255 (gimple_omp_atomic_load_set_rhs): Likewise.
28256 (gimple_omp_atomic_load_rhs): Likewise.
28257 (gimple_omp_atomic_load_rhs_ptr): Likewise.
28258 (gimple_omp_continue_control_def): Likewise.
28259 (gimple_omp_continue_control_def_ptr): Likewise.
28260 (gimple_omp_continue_set_control_def): Likewise.
28261 (gimple_omp_continue_control_use): Likewise.
28262 (gimple_omp_continue_control_use_ptr): Likewise.
28263 (gimple_omp_continue_set_control_use): Likewise.
28264 (gimple_transaction_body_ptr): Likewise.
28265 (gimple_transaction_label): Likewise.
28266 (gimple_transaction_label_ptr): Likewise.
28267 (gimple_transaction_set_body): Likewise.
28268 (gimple_transaction_set_label): Likewise.
28270 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28271 * ipa-inline-analysis.c (inline_write_summary): Likewise.
28272 * ipa-ref.c (ipa_record_reference): Likewise.
28273 * ipa-reference.c (analyze_function): Likewise.
28274 (ipa_reference_write_optimization_summary): Likewise.
28275 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28276 (address_taken_from_non_vtable_p): Likewise.
28277 (comdat_can_be_unshared_p_1): Likewise.
28278 * lto-cgraph.c (lto_output_ref): Likewise.
28279 (add_references): Likewise.
28280 (compute_ltrans_boundary): Likewise.
28281 (output_symtab): Likewise.
28282 (input_ref): Likewise.
28283 (input_cgraph_1): Likewise.
28284 (output_cgraph_opt_summary): Likewise.
28285 * lto-streamer-out.c (lto_output): Likewise.
28286 (output_symbol_p): Likewise.
28287 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28288 (lsei_start_function_in_partition): Likewise.
28289 (lsei_next_variable_in_partition): Likewise.
28290 (lsei_start_variable_in_partition): Likewise.
28291 * symtab.c (insert_to_assembler_name_hash): Likewise.
28292 (unlink_from_assembler_name_hash): Likewise.
28293 (symtab_unregister_node): Likewise.
28294 (symtab_remove_node): Likewise.
28295 (dump_symtab_node): Likewise.
28296 (verify_symtab_base): Likewise.
28297 (verify_symtab_node): Likewise.
28298 (symtab_make_decl_local): Likewise.
28299 (symtab_alias_ultimate_target): Likewise.
28300 (symtab_resolve_alias): Likewise.
28301 (symtab_get_symbol_partitioning_class): Likewise.
28302 * tree-phinodes.c (allocate_phi_node): Likewise.
28303 (reserve_phi_args_for_new_edge): Likewise.
28304 (remove_phi_args): Likewise.
28305 * varpool.c (varpool_node_for_asm): Likewise.
28306 (varpool_remove_unreferenced_decls): Likewise.
28308 2014-04-23 Jeff Law <law@redhat.com>
28310 PR tree-optimization/60902
28311 * tree-ssa-threadedge.c
28312 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28313 invalidate outputs from statements that do not produce useful
28314 outputs for threading.
28316 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
28318 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28319 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28320 machine descriptions for Stack Smashing Protector.
28322 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
28324 * aarch64.md (<optab>_rol<mode>3): New pattern.
28325 (<optab>_rolsi3_uxtw): Likewise.
28326 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28328 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
28330 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28331 (arm_cortex_a12_tune): Likewise.
28333 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28335 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28337 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28339 * config/arm/arm.md (arm_rev16si2): New pattern.
28340 (arm_rev16si2_alt): Likewise.
28341 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28343 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28345 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28346 (rev16<mode>2_alt): Likewise.
28347 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28348 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28349 (aarch_rev16_shleft_mask_imm_p): Likewise.
28350 (aarch_rev16_p_1): Likewise.
28351 (aarch_rev16_p): Likewise.
28352 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28353 (aarch_rev16_shright_mask_imm_p): Likewise.
28354 (aarch_rev16_shleft_mask_imm_p): Likewise.
28356 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28358 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28359 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28361 (cortex_a53_extra_costs): Likewise.
28362 (cortex_a57_extra_costs): Likewise.
28363 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28364 (cortexa7_extra_costs): Likewise.
28365 (cortexa8_extra_costs): Likewise.
28366 (cortexa12_extra_costs): Likewise.
28367 (cortexa15_extra_costs): Likewise.
28368 (v7m_extra_costs): Likewise.
28369 (arm_new_rtx_costs): Handle BSWAP.
28371 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28373 * config/arm/arm.c (cortexa8_extra_costs): New table.
28374 (arm_cortex_a8_tune): New tuning struct.
28375 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28377 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28379 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28381 2014-04-23 Richard Biener <rguenther@suse.de>
28383 * Makefile.in (OBJS): Remove loop-unswitch.o.
28384 * tree-pass.h (make_pass_rtl_unswitch): Remove.
28385 * passes.def (pass_rtl_unswitch): Likewise.
28386 * loop-init.c (gate_rtl_unswitch): Likewise.
28387 (rtl_unswitch): Likewise.
28388 (pass_data_rtl_unswitch): Likewise.
28389 (pass_rtl_unswitch): Likewise.
28390 (make_pass_rtl_unswitch): Likewise.
28391 * rtl.h (reversed_condition): Likewise.
28392 (compare_and_jump_seq): Likewise.
28393 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
28395 * loop-unroll.c (compare_and_jump_seq): Likewise.
28397 2014-04-23 Richard Biener <rguenther@suse.de>
28399 PR tree-optimization/60903
28400 * tree-ssa-loop-im.c (analyze_memory_references): Remove
28401 commented code block.
28402 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
28403 loop flags to newly created BBs and edges.
28405 2014-04-23 Nick Clifton <nickc@redhat.com>
28407 * config/msp430/msp430.c (msp430_handle_option): Move function
28409 (msp430_option_override): Simplify mcu and mcpu option handling.
28410 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
28411 support for -mhwmult command line option.
28412 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
28413 -mhwmult command line option.
28414 (msp430_hwmult_enabled): Delete.
28415 (msp43o_output_labelref): Add support for -mhwmult command line option.
28416 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
28417 (umulsidi3): Likewise.
28418 * config/msp430/msp430.opt (mmcu): Add Report attribute.
28419 (mcpu, mlarge, msmall): Likewise.
28420 (mhwmult): New option.
28421 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
28423 (msp430_is_f5_mcu): Remove prototype.
28424 (msp430_use_f5_series_hwmult): Add prototype.
28425 * config/msp430/msp430-opts.h: New file.
28426 * common/config/msp430: New directory.
28427 * common/config/msp430/msp430-common.c: New file.
28428 * config.gcc (msp430): Remove target_has_targetm_common.
28429 * doc/invoke.texi: Document -mhwmult command line option.
28431 2014-04-23 Nick Clifton <nickc@redhat.com>
28433 * config/i386/cygwin.h (ENDFILE_SPEC): Include
28434 default-manifest.o if it can be found in the search path.
28435 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
28437 2014-04-23 Terry Guo <terry.guo@arm.com>
28439 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
28441 2014-04-23 Richard Biener <rguenther@suse.de>
28443 PR middle-end/60895
28444 * tree-inline.c (declare_return_variable): Use mark_addressable.
28446 2014-04-23 Richard Biener <rguenther@suse.de>
28448 PR middle-end/60891
28449 * loop-init.c (loop_optimizer_init): Make sure to apply
28450 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
28452 2014-04-22 Jakub Jelinek <jakub@redhat.com>
28455 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
28457 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
28458 if flag_sanitize_undefined_trap_on_error.
28459 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
28460 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
28461 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
28462 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
28463 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
28464 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
28465 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
28466 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
28467 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
28468 * ubsan.c (ubsan_instrument_unreachable): Return
28469 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
28470 (ubsan_expand_null_ifn): Emit __builtin_trap ()
28471 if flag_sanitize_undefined_trap_on_error and
28472 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
28473 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
28474 instrument_bool_enum_load): Emit __builtin_trap () if
28475 flag_sanitize_undefined_trap_on_error and
28476 __builtin_handle_*_abort () if !flag_sanitize_recover.
28477 * doc/invoke.texi (-fsanitize-recover,
28478 -fsanitize-undefined-trap-on-error): Document.
28480 2014-04-22 Christian Bruel <christian.bruel@st.com>
28482 * config/sh/sh.md (mov<mode>): Replace movQIHI.
28483 Force immediates to SImode.
28485 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
28487 * config/nios2/nios2.md (UNSPEC_ROUND): New.
28488 (lroundsfsi2): New.
28489 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
28490 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
28491 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
28492 (nios2_fpu_insn): Add entry for round.
28493 (N2FPU_NO_ERRNO_P): Define.
28494 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
28496 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
28498 2014-04-22 Richard Henderson <rth@redhat.com>
28500 * config/aarch64/aarch64 (addti3, subti3): New expanders.
28501 (add<GPI>3_compare0): Remove leading * from name.
28502 (add<GPI>3_carryin): Likewise.
28503 (sub<GPI>3_compare0): Likewise.
28504 (sub<GPI>3_carryin): Likewise.
28505 (<su_optab>mulditi3): New expander.
28506 (multi3): New expander.
28507 (madd<GPI>): Remove leading * from name.
28509 2014-04-22 Martin Jambor <mjambor@suse.cz>
28511 * cgraphclones.c (cgraph_function_versioning): Copy
28512 ipa_transforms_to_apply instead of asserting it is empty.
28514 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
28517 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
28518 on count_exp to get mode.
28520 2014-04-22 Andrew Pinski <apinski@cavium.com>
28522 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
28523 Handle TLS for ILP32.
28524 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
28525 (tlsie_small_<mode>): this and handle PTR.
28526 (tlsie_small_sidi): New pattern.
28527 (tlsle_small): Change to an expand to handle ILP32.
28528 (tlsle_small_<mode>): New pattern.
28529 (tlsdesc_small): Rename to ...
28530 (tlsdesc_small_<mode>): this and handle PTR.
28532 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28534 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
28536 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
28538 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28539 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
28540 (aarch64_types_signed_poly_qualifiers): Likewise.
28541 (aarch64_types_unsigned_signed_qualifiers): Likewise.
28542 (aarch64_types_poly_signed_qualifiers): Likewise.
28543 (TYPES_REINTERP_SS): Type macro added.
28544 (TYPES_REINTERP_SU): Likewise.
28545 (TYPES_REINTERP_SP): Likewise.
28546 (TYPES_REINTERP_US): Likewise.
28547 (TYPES_REINTERP_PS): Likewise.
28548 (aarch64_fold_builtin): New expression folding added.
28549 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
28550 Declarations removed.
28551 (REINTERP_SS): Declarations added.
28552 (REINTERP_US): Likewise.
28553 (REINTERP_PS): Likewise.
28554 (REINTERP_SU): Likewise.
28555 (REINTERP_SP): Likewise.
28556 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
28557 (vreinterpretq_p8_f64): Likewise.
28558 (vreinterpret_p16_f64): Likewise.
28559 (vreinterpretq_p16_f64): Likewise.
28560 (vreinterpret_f32_f64): Likewise.
28561 (vreinterpretq_f32_f64): Likewise.
28562 (vreinterpret_f64_f32): Likewise.
28563 (vreinterpret_f64_p8): Likewise.
28564 (vreinterpret_f64_p16): Likewise.
28565 (vreinterpret_f64_s8): Likewise.
28566 (vreinterpret_f64_s16): Likewise.
28567 (vreinterpret_f64_s32): Likewise.
28568 (vreinterpret_f64_s64): Likewise.
28569 (vreinterpret_f64_u8): Likewise.
28570 (vreinterpret_f64_u16): Likewise.
28571 (vreinterpret_f64_u32): Likewise.
28572 (vreinterpret_f64_u64): Likewise.
28573 (vreinterpretq_f64_f32): Likewise.
28574 (vreinterpretq_f64_p8): Likewise.
28575 (vreinterpretq_f64_p16): Likewise.
28576 (vreinterpretq_f64_s8): Likewise.
28577 (vreinterpretq_f64_s16): Likewise.
28578 (vreinterpretq_f64_s32): Likewise.
28579 (vreinterpretq_f64_s64): Likewise.
28580 (vreinterpretq_f64_u8): Likewise.
28581 (vreinterpretq_f64_u16): Likewise.
28582 (vreinterpretq_f64_u32): Likewise.
28583 (vreinterpretq_f64_u64): Likewise.
28584 (vreinterpret_s64_f64): Likewise.
28585 (vreinterpretq_s64_f64): Likewise.
28586 (vreinterpret_u64_f64): Likewise.
28587 (vreinterpretq_u64_f64): Likewise.
28588 (vreinterpret_s8_f64): Likewise.
28589 (vreinterpretq_s8_f64): Likewise.
28590 (vreinterpret_s16_f64): Likewise.
28591 (vreinterpretq_s16_f64): Likewise.
28592 (vreinterpret_s32_f64): Likewise.
28593 (vreinterpretq_s32_f64): Likewise.
28594 (vreinterpret_u8_f64): Likewise.
28595 (vreinterpretq_u8_f64): Likewise.
28596 (vreinterpret_u16_f64): Likewise.
28597 (vreinterpretq_u16_f64): Likewise.
28598 (vreinterpret_u32_f64): Likewise.
28599 (vreinterpretq_u32_f64): Likewise.
28601 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
28603 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28604 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
28605 (vreinterpret_p8_s8): Likewise.
28606 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
28607 (vreinterpret_p8_s16): Likewise.
28608 (vreinterpret_p8_s32): Likewise.
28609 (vreinterpret_p8_s64): Likewise.
28610 (vreinterpret_p8_f32): Likewise.
28611 (vreinterpret_p8_u8): Likewise.
28612 (vreinterpret_p8_u16): Likewise.
28613 (vreinterpret_p8_u32): Likewise.
28614 (vreinterpret_p8_u64): Likewise.
28615 (vreinterpret_p8_p16): Likewise.
28616 (vreinterpretq_p8_s8): Likewise.
28617 (vreinterpretq_p8_s16): Likewise.
28618 (vreinterpretq_p8_s32): Likewise.
28619 (vreinterpretq_p8_s64): Likewise.
28620 (vreinterpretq_p8_f32): Likewise.
28621 (vreinterpretq_p8_u8): Likewise.
28622 (vreinterpretq_p8_u16): Likewise.
28623 (vreinterpretq_p8_u32): Likewise.
28624 (vreinterpretq_p8_u64): Likewise.
28625 (vreinterpretq_p8_p16): Likewise.
28626 (vreinterpret_p16_s8): Likewise.
28627 (vreinterpret_p16_s16): Likewise.
28628 (vreinterpret_p16_s32): Likewise.
28629 (vreinterpret_p16_s64): Likewise.
28630 (vreinterpret_p16_f32): Likewise.
28631 (vreinterpret_p16_u8): Likewise.
28632 (vreinterpret_p16_u16): Likewise.
28633 (vreinterpret_p16_u32): Likewise.
28634 (vreinterpret_p16_u64): Likewise.
28635 (vreinterpret_p16_p8): Likewise.
28636 (vreinterpretq_p16_s8): Likewise.
28637 (vreinterpretq_p16_s16): Likewise.
28638 (vreinterpretq_p16_s32): Likewise.
28639 (vreinterpretq_p16_s64): Likewise.
28640 (vreinterpretq_p16_f32): Likewise.
28641 (vreinterpretq_p16_u8): Likewise.
28642 (vreinterpretq_p16_u16): Likewise.
28643 (vreinterpretq_p16_u32): Likewise.
28644 (vreinterpretq_p16_u64): Likewise.
28645 (vreinterpretq_p16_p8): Likewise.
28646 (vreinterpret_f32_s8): Likewise.
28647 (vreinterpret_f32_s16): Likewise.
28648 (vreinterpret_f32_s32): Likewise.
28649 (vreinterpret_f32_s64): Likewise.
28650 (vreinterpret_f32_u8): Likewise.
28651 (vreinterpret_f32_u16): Likewise.
28652 (vreinterpret_f32_u32): Likewise.
28653 (vreinterpret_f32_u64): Likewise.
28654 (vreinterpret_f32_p8): Likewise.
28655 (vreinterpret_f32_p16): Likewise.
28656 (vreinterpretq_f32_s8): Likewise.
28657 (vreinterpretq_f32_s16): Likewise.
28658 (vreinterpretq_f32_s32): Likewise.
28659 (vreinterpretq_f32_s64): Likewise.
28660 (vreinterpretq_f32_u8): Likewise.
28661 (vreinterpretq_f32_u16): Likewise.
28662 (vreinterpretq_f32_u32): Likewise.
28663 (vreinterpretq_f32_u64): Likewise.
28664 (vreinterpretq_f32_p8): Likewise.
28665 (vreinterpretq_f32_p16): Likewise.
28666 (vreinterpret_s64_s8): Likewise.
28667 (vreinterpret_s64_s16): Likewise.
28668 (vreinterpret_s64_s32): Likewise.
28669 (vreinterpret_s64_f32): Likewise.
28670 (vreinterpret_s64_u8): Likewise.
28671 (vreinterpret_s64_u16): Likewise.
28672 (vreinterpret_s64_u32): Likewise.
28673 (vreinterpret_s64_u64): Likewise.
28674 (vreinterpret_s64_p8): Likewise.
28675 (vreinterpret_s64_p16): Likewise.
28676 (vreinterpretq_s64_s8): Likewise.
28677 (vreinterpretq_s64_s16): Likewise.
28678 (vreinterpretq_s64_s32): Likewise.
28679 (vreinterpretq_s64_f32): Likewise.
28680 (vreinterpretq_s64_u8): Likewise.
28681 (vreinterpretq_s64_u16): Likewise.
28682 (vreinterpretq_s64_u32): Likewise.
28683 (vreinterpretq_s64_u64): Likewise.
28684 (vreinterpretq_s64_p8): Likewise.
28685 (vreinterpretq_s64_p16): Likewise.
28686 (vreinterpret_u64_s8): Likewise.
28687 (vreinterpret_u64_s16): Likewise.
28688 (vreinterpret_u64_s32): Likewise.
28689 (vreinterpret_u64_s64): Likewise.
28690 (vreinterpret_u64_f32): Likewise.
28691 (vreinterpret_u64_u8): Likewise.
28692 (vreinterpret_u64_u16): Likewise.
28693 (vreinterpret_u64_u32): Likewise.
28694 (vreinterpret_u64_p8): Likewise.
28695 (vreinterpret_u64_p16): Likewise.
28696 (vreinterpretq_u64_s8): Likewise.
28697 (vreinterpretq_u64_s16): Likewise.
28698 (vreinterpretq_u64_s32): Likewise.
28699 (vreinterpretq_u64_s64): Likewise.
28700 (vreinterpretq_u64_f32): Likewise.
28701 (vreinterpretq_u64_u8): Likewise.
28702 (vreinterpretq_u64_u16): Likewise.
28703 (vreinterpretq_u64_u32): Likewise.
28704 (vreinterpretq_u64_p8): Likewise.
28705 (vreinterpretq_u64_p16): Likewise.
28706 (vreinterpret_s8_s16): Likewise.
28707 (vreinterpret_s8_s32): Likewise.
28708 (vreinterpret_s8_s64): Likewise.
28709 (vreinterpret_s8_f32): Likewise.
28710 (vreinterpret_s8_u8): Likewise.
28711 (vreinterpret_s8_u16): Likewise.
28712 (vreinterpret_s8_u32): Likewise.
28713 (vreinterpret_s8_u64): Likewise.
28714 (vreinterpret_s8_p8): Likewise.
28715 (vreinterpret_s8_p16): Likewise.
28716 (vreinterpretq_s8_s16): Likewise.
28717 (vreinterpretq_s8_s32): Likewise.
28718 (vreinterpretq_s8_s64): Likewise.
28719 (vreinterpretq_s8_f32): Likewise.
28720 (vreinterpretq_s8_u8): Likewise.
28721 (vreinterpretq_s8_u16): Likewise.
28722 (vreinterpretq_s8_u32): Likewise.
28723 (vreinterpretq_s8_u64): Likewise.
28724 (vreinterpretq_s8_p8): Likewise.
28725 (vreinterpretq_s8_p16): Likewise.
28726 (vreinterpret_s16_s8): Likewise.
28727 (vreinterpret_s16_s32): Likewise.
28728 (vreinterpret_s16_s64): Likewise.
28729 (vreinterpret_s16_f32): Likewise.
28730 (vreinterpret_s16_u8): Likewise.
28731 (vreinterpret_s16_u16): Likewise.
28732 (vreinterpret_s16_u32): Likewise.
28733 (vreinterpret_s16_u64): Likewise.
28734 (vreinterpret_s16_p8): Likewise.
28735 (vreinterpret_s16_p16): Likewise.
28736 (vreinterpretq_s16_s8): Likewise.
28737 (vreinterpretq_s16_s32): Likewise.
28738 (vreinterpretq_s16_s64): Likewise.
28739 (vreinterpretq_s16_f32): Likewise.
28740 (vreinterpretq_s16_u8): Likewise.
28741 (vreinterpretq_s16_u16): Likewise.
28742 (vreinterpretq_s16_u32): Likewise.
28743 (vreinterpretq_s16_u64): Likewise.
28744 (vreinterpretq_s16_p8): Likewise.
28745 (vreinterpretq_s16_p16): Likewise.
28746 (vreinterpret_s32_s8): Likewise.
28747 (vreinterpret_s32_s16): Likewise.
28748 (vreinterpret_s32_s64): Likewise.
28749 (vreinterpret_s32_f32): Likewise.
28750 (vreinterpret_s32_u8): Likewise.
28751 (vreinterpret_s32_u16): Likewise.
28752 (vreinterpret_s32_u32): Likewise.
28753 (vreinterpret_s32_u64): Likewise.
28754 (vreinterpret_s32_p8): Likewise.
28755 (vreinterpret_s32_p16): Likewise.
28756 (vreinterpretq_s32_s8): Likewise.
28757 (vreinterpretq_s32_s16): Likewise.
28758 (vreinterpretq_s32_s64): Likewise.
28759 (vreinterpretq_s32_f32): Likewise.
28760 (vreinterpretq_s32_u8): Likewise.
28761 (vreinterpretq_s32_u16): Likewise.
28762 (vreinterpretq_s32_u32): Likewise.
28763 (vreinterpretq_s32_u64): Likewise.
28764 (vreinterpretq_s32_p8): Likewise.
28765 (vreinterpretq_s32_p16): Likewise.
28766 (vreinterpret_u8_s8): Likewise.
28767 (vreinterpret_u8_s16): Likewise.
28768 (vreinterpret_u8_s32): Likewise.
28769 (vreinterpret_u8_s64): Likewise.
28770 (vreinterpret_u8_f32): Likewise.
28771 (vreinterpret_u8_u16): Likewise.
28772 (vreinterpret_u8_u32): Likewise.
28773 (vreinterpret_u8_u64): Likewise.
28774 (vreinterpret_u8_p8): Likewise.
28775 (vreinterpret_u8_p16): Likewise.
28776 (vreinterpretq_u8_s8): Likewise.
28777 (vreinterpretq_u8_s16): Likewise.
28778 (vreinterpretq_u8_s32): Likewise.
28779 (vreinterpretq_u8_s64): Likewise.
28780 (vreinterpretq_u8_f32): Likewise.
28781 (vreinterpretq_u8_u16): Likewise.
28782 (vreinterpretq_u8_u32): Likewise.
28783 (vreinterpretq_u8_u64): Likewise.
28784 (vreinterpretq_u8_p8): Likewise.
28785 (vreinterpretq_u8_p16): Likewise.
28786 (vreinterpret_u16_s8): Likewise.
28787 (vreinterpret_u16_s16): Likewise.
28788 (vreinterpret_u16_s32): Likewise.
28789 (vreinterpret_u16_s64): Likewise.
28790 (vreinterpret_u16_f32): Likewise.
28791 (vreinterpret_u16_u8): Likewise.
28792 (vreinterpret_u16_u32): Likewise.
28793 (vreinterpret_u16_u64): Likewise.
28794 (vreinterpret_u16_p8): Likewise.
28795 (vreinterpret_u16_p16): Likewise.
28796 (vreinterpretq_u16_s8): Likewise.
28797 (vreinterpretq_u16_s16): Likewise.
28798 (vreinterpretq_u16_s32): Likewise.
28799 (vreinterpretq_u16_s64): Likewise.
28800 (vreinterpretq_u16_f32): Likewise.
28801 (vreinterpretq_u16_u8): Likewise.
28802 (vreinterpretq_u16_u32): Likewise.
28803 (vreinterpretq_u16_u64): Likewise.
28804 (vreinterpretq_u16_p8): Likewise.
28805 (vreinterpretq_u16_p16): Likewise.
28806 (vreinterpret_u32_s8): Likewise.
28807 (vreinterpret_u32_s16): Likewise.
28808 (vreinterpret_u32_s32): Likewise.
28809 (vreinterpret_u32_s64): Likewise.
28810 (vreinterpret_u32_f32): Likewise.
28811 (vreinterpret_u32_u8): Likewise.
28812 (vreinterpret_u32_u16): Likewise.
28813 (vreinterpret_u32_u64): Likewise.
28814 (vreinterpret_u32_p8): Likewise.
28815 (vreinterpret_u32_p16): Likewise.
28816 (vreinterpretq_u32_s8): Likewise.
28817 (vreinterpretq_u32_s16): Likewise.
28818 (vreinterpretq_u32_s32): Likewise.
28819 (vreinterpretq_u32_s64): Likewise.
28820 (vreinterpretq_u32_f32): Likewise.
28821 (vreinterpretq_u32_u8): Likewise.
28822 (vreinterpretq_u32_u16): Likewise.
28823 (vreinterpretq_u32_u64): Likewise.
28824 (vreinterpretq_u32_p8): Likewise.
28825 (vreinterpretq_u32_p16): Likewise.
28827 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
28829 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
28831 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
28833 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
28834 (vqnegd_s64): Likewise.
28835 (vqabs_s64): Likewise.
28836 (vqabsd_s64): Likewise.
28838 2014-04-22 Richard Henderson <rth@redhat.com>
28840 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
28841 computation to the top of the loop.
28843 2014-04-22 Renlin <renlin.li@arm.com>
28844 Jiong Wang <jiong.wang@arm.com>
28846 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
28847 * config/aarch64/aarch64.c (aarch64_layout_frame)
28848 (aarch64_initial_elimination_offset): Likewise.
28850 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
28852 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
28855 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
28857 * machmode.h (bitwise_mode_for_mode): Declare.
28858 * stor-layout.h (bitwise_type_for_mode): Likewise.
28859 * stor-layout.c (bitwise_mode_for_mode): New function.
28860 (bitwise_type_for_mode): Likewise.
28861 * builtins.c (fold_builtin_memory_op): Use it instead of
28862 int_mode_for_mode and build_nonstandard_integer_type.
28864 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28866 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
28867 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
28868 (*-*-solaris2*): Simplify.
28869 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
28870 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
28871 *-*-solaris2.9* handling.
28873 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
28875 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
28876 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
28877 handling, simplify.
28878 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
28879 * configure: Regenerate.
28881 * config/i386/sol2-9.h: Remove.
28883 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
28884 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
28885 Remove Solaris 9 references.
28887 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
28889 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
28890 (floatuns<GPI:mode><GPF:mode>2): Remove.
28891 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
28892 and floatuns conversions.
28893 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
28894 and floatuns conversions.
28895 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
28896 (w1,w2): New mode attributes for inequal width conversions.
28898 2014-04-22 Renlin Li <Renlin.Li@arm.com>
28900 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
28901 the output asm format.
28903 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
28905 * config/aarch64/aarch64-simd.md
28906 (aarch64_cm<optab>di): Always split.
28907 (*aarch64_cm<optab>di): New.
28908 (aarch64_cmtstdi): Always split.
28909 (*aarch64_cmtstdi): New.
28911 2014-04-22 Jakub Jelinek <jakub@redhat.com>
28913 PR tree-optimization/60823
28914 * omp-low.c (ipa_simd_modify_function_body): Go through
28915 all SSA_NAMEs and for those refering to vector arguments
28916 which are going to be replaced adjust SSA_NAME_VAR and,
28917 if it is a default definition, change it into a non-default
28918 definition assigned at the beginning of function from new_decl.
28919 (ipa_simd_modify_stmt_ops): Rewritten.
28920 * tree-dfa.c (set_ssa_default_def): When removing default def,
28921 check for NULL loc instead of NULL *loc.
28923 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28925 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
28926 restrictions on core registers for DImode values in Thumb2.
28928 2014-04-22 Ian Bolton <ian.bolton@arm.com>
28930 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
28931 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
28933 2014-04-22 Ian Bolton <ian.bolton@arm.com>
28935 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
28936 (*iordi_notzesidi_di): Likewise.
28937 (*iordi_notsesidi_di): Likewise.
28939 2014-04-22 Ian Bolton <ian.bolton@arm.com>
28941 * config/arm/arm-protos.h (tune_params): New struct members.
28942 * config/arm/arm.c: Initialise tune_params per processor.
28943 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
28944 for speed, based on new tune_params.
28946 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
28948 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
28949 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
28950 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
28951 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
28952 * config/aarch64/arm_neon.h (vrnd_f64): Added.
28953 (vrnda_f64): Likewise.
28954 (vrndi_f64): Likewise.
28955 (vrndm_f64): Likewise.
28956 (vrndn_f64): Likewise.
28957 (vrndp_f64): Likewise.
28958 (vrndx_f64): Likewise.
28960 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28962 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
28963 GET_MODE_SIZE argument is enum machine_mode.
28965 2014-04-22 Jakub Jelinek <jakub@redhat.com>
28968 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
28969 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
28971 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
28973 PR middle-end/60281
28974 * asan.c (asan_emit_stack_protection): Force the base to align to
28975 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
28976 appropriate bits if STRICT_ALIGNMENT.
28977 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
28979 (expand_used_vars): Leave a space in the stack frame for alignment
28980 if STRICT_ALIGNMENT.
28982 2014-04-21 David Malcolm <dmalcolm@redhat.com>
28984 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
28986 (gimple_store_p): Likewise.
28987 (gimple_assign_load_p): Likewise.
28988 (gimple_assign_cast_p): Likewise.
28989 (gimple_clobber_p): Likewise.
28991 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
28992 rather than a gimple.
28993 (gimple_assign_cast_p): Likewise.
28995 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
28998 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
28999 If mode is DDmode and TARGET_E500_DOUBLE allow move.
29001 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29002 more debug information for E500 if -mdebug=reg.
29004 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
29007 * config/i386/i386.c (ix86_expand_builtin)
29008 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29009 register for target RTX.
29010 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29012 2014-04-18 Cong Hou <congh@google.com>
29014 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29015 the widen-mult pattern by handling two operands with different sizes,
29016 and operands whose size is smaller than half of the result type.
29018 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29020 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29021 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29022 (do_estimate_edge_time): Compute it.
29023 * ipa-inline.c (want_inline_small_function_p): Bypass
29024 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29026 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29028 * ipa-inline.c (spec_rem): New static variable.
29029 (dump_overall_stats): New function.
29030 (dump_inline_stats): New function.
29032 2014-04-18 Richard Henderson <rth@redhat.com>
29034 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29035 to GET_MODE_SIZE, not a reg_class_t.
29037 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29039 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29040 (vsx_xxmrglw_<mode>): Likewise.
29042 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
29045 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29046 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29047 (rs6000_init_hard_regno_mode_ok): Likewise.
29049 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
29051 * ipa-inline.c (inline_small_functions): Account only non-cold
29053 * doc/invoke.texi (inline-unit-growth): Update documentation.
29055 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
29057 * config/rs6000/rs6000.md (addti3, subti3): New.
29059 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
29062 * config/i386/i386.c (ix86_expand_clear): Remove outdated
29063 comment. Check optimize_insn_for_size_p instead of
29064 optimize_insn_for_speed_p.
29066 2014-04-17 Martin Jambor <mjambor@suse.cz>
29068 * gimple-iterator.c (gsi_start_edge): New function.
29069 * gimple-iterator.h (gsi_start_edge): Declare.
29070 * tree-sra.c (single_non_eh_succ): New function.
29071 (disqualify_ops_if_throwing_stmt): Renamed to
29072 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
29073 having one non-EH successor BB.
29074 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29075 generate loads into replacements.
29076 (sra_modify_assign): Likewise and and also use the simple path for
29078 (sra_modify_function_body): Commit statements on edges.
29080 2014-04-17 Richard Biener <rguenther@suse.de>
29082 PR middle-end/60849
29083 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29084 comparison results and add clarifying comment.
29086 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29088 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29089 (blank_mode): Initialize it.
29090 (emit_mode_size_inline, emit_mode_nunits_inline,
29091 emit_mode_inner_inline): New functions.
29092 (emit_insn_modes_h): Call them and surround their output with
29093 #if GCC_VERSION >= 4001 ... #endif.
29094 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29095 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29096 mode_* arrays if the argument is __builtin_constant_p.
29097 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29098 is enum machine_mode.
29100 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29102 * passes.c (opt_pass::execute): Adjust.
29103 (pass_manager::execute_pass_mode_switching): Likewise.
29104 (early_local_passes::execute): Likewise.
29105 (execute_one_pass): Pass cfun to the pass's execute method.
29106 * tree-pass.h (opt_pass::execute): Add function * argument.
29107 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29108 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29109 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29110 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29111 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29112 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29113 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29114 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29115 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29116 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29117 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29118 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29119 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29120 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29121 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29122 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29123 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29124 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29125 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29126 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29127 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29128 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29129 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29130 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29131 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29132 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29133 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29134 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29135 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29138 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29140 * passes.c (opt_pass::gate): Take function * argument.
29141 (gate_all_early_local_passes): Merge into
29142 (early_local_passes::gate): this.
29143 (gate_all_early_optimizations): Merge into
29144 (all_early_optimizations::gate): this.
29145 (gate_all_optimizations): Mege into
29146 (all_optimizations::gate): this.
29147 (gate_all_optimizations_g): Merge into
29148 (all_optimizations_g::gate): this.
29149 (gate_rest_of_compilation): Mege into
29150 (rest_of_compilation::gate): this.
29151 (gate_postreload): Merge into
29152 (postreload::gate): this.
29153 (dump_one_pass): Pass cfun to the pass's gate method.
29154 (execute_ipa_summary_passes): Likewise.
29155 (execute_one_pass): Likewise.
29156 (ipa_write_summaries_2): Likewise.
29157 (ipa_write_optimization_summaries_1): Likewise.
29158 (ipa_read_summaries_1): Likewise.
29159 (ipa_read_optimization_summaries_1): Likewise.
29160 (execute_ipa_stmt_fixups): Likewise.
29161 * tree-pass.h (opt_pass::gate): Add function * argument.
29162 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29163 combine-stack-adj.c, combine.c, compare-elim.c,
29164 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29165 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29166 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29167 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
29168 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29169 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29170 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29171 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29172 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29173 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29174 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29175 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29176 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29177 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29178 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29179 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29180 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29181 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29182 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29183 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29184 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29185 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29186 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29187 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29188 var-tracking.c, vtable-verify.c, web.c: Adjust.
29190 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29192 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29193 * configure: Regenerate.
29195 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29197 * passes.c (dump_one_pass): don't check pass->has_gate.
29198 (execute_ipa_summary_passes): Likewise.
29199 (execute_one_pass): Likewise.
29200 (ipa_write_summaries_2): Likewise.
29201 (ipa_write_optimization_summaries_1): Likewise.
29202 (ipa_read_optimization_summaries_1): Likewise.
29203 (execute_ipa_stmt_fixups): Likewise.
29204 * tree-pass.h (pass_data::has_gate): Remove.
29205 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29206 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29207 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29208 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29209 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29210 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29211 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29212 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29213 gimple-low.c, gimple-ssa-isolate-paths.c,
29214 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29215 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29216 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29217 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29218 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29219 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29220 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29221 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29222 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29223 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29224 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29225 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29226 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29227 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29228 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29229 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29230 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29231 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29232 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29233 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29234 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29235 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29238 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29240 * pass_manager.h (pass_manager::register_dump_files_1): Remove
29242 * passes.c (pass_manager::register_dump_files_1): Merge into
29243 (pass_manager::register_dump_files): this, and remove its handling of
29244 properties since the pass always has the properties anyway.
29245 (pass_manager::pass_manager): Adjust.
29247 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29249 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29250 * passes.c (pass_manager::register_dump_files_1): Remove dead code
29251 dealing with properties.
29252 (pass_manager::register_dump_files): Adjust.
29254 2014-03-20 Mark Wielaard <mjw@redhat.com>
29256 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29257 then represent the bound as normal constant value.
29259 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29262 Forward port from 4.8 branch
29263 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
29265 * config/i386/bmiintrin.h (_blsi_u32): New.
29266 (_blsi_u64): Ditto.
29267 (_blsr_u32): Ditto.
29268 (_blsr_u64): Ditto.
29269 (_blsmsk_u32): Ditto.
29270 (_blsmsk_u64): Ditto.
29271 (_tzcnt_u32): Ditto.
29272 (_tzcnt_u64): Ditto.
29274 2014-04-17 Kito Cheng <kito@0xlab.org>
29276 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29278 2014-04-17 Richard Biener <rguenther@suse.de>
29280 PR middle-end/60849
29281 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29282 boolean results for comparisons.
29284 2014-04-17 Richard Biener <rguenther@suse.de>
29286 PR tree-optimization/60836
29287 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29288 initial PHI args to be gimple values.
29290 2014-04-17 Richard Biener <rguenther@suse.de>
29292 PR tree-optimization/60841
29293 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29294 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29295 of stmts to SLP build.
29296 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29297 (vect_analyze_slp): Likewise.
29298 (vect_analyze_slp_instance): Likewise.
29299 (vect_build_slp_tree): Limit overall SLP tree growth.
29300 * tree-vectorizer.h (vect_analyze_data_refs,
29301 vect_analyze_slp): Adjust prototypes.
29303 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29305 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29308 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29310 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29311 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29312 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29313 for TARGET_SLOW_PSHUFB
29315 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29317 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29318 * config/i386/i386.c (intel_cost): Ditto.
29320 2014-04-17 Joey Ye <joey.ye@arm.com>
29322 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29324 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29326 * opts.c (common_handle_option): Disable -fipa-reference coorectly
29327 with -fuse-profile.
29329 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29331 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29332 (type_all_derivations_known_p): New predicate.
29333 (type_all_ctors_visible_p): New predicate.
29334 (type_possibly_instantiated_p): New predicate.
29335 (get_odr_type): Compute all_derivations_known.
29336 (dump_odr_type): Dump the flag.
29337 (maybe_record_type): Cleanup.
29338 (record_target_from_binfo): Add bases_to_consider array;
29339 record bases for types w/o instances and skip CXX destructor.
29340 (possible_polymorphic_call_targets_1): Add bases_to_consider
29341 and consider_construction parameters; check if type may have instance.
29342 (get_polymorphic_call_info): Set maybe_in_construction to true
29343 when we know nothing.
29344 (record_targets_from_bases): Skip CXX destructors; they are
29345 never called for types in construction.
29346 (possible_polymorphic_call_targets): Do not record target when
29347 type may not have instance.
29349 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29352 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29353 external aliases alive, too.
29355 2014-04-16 Andrew Pinski <apinski@cavium.com>
29357 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29360 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
29362 * final.c (compute_alignments): Do not apply loop alignment to a block
29363 falling through to the exit.
29365 2014-04-16 Catherine Moore <clm@codesourcery.com>
29367 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29368 Adjust constraints for microMIPS store patterns.
29370 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
29372 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29374 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
29376 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29377 (append_use): Run at -O0.
29378 (append_vdef): Likewise.
29379 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29380 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29382 2014-04-16 Jakub Jelinek <jakub@redhat.com>
29384 PR tree-optimization/60844
29385 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29386 (propagate_op_to_single_use, remove_visited_stmt_chain,
29387 linearize_expr, repropagate_negates, reassociate_bb): Use it
29388 instead of gsi_remove.
29390 2014-04-16 Martin Jambor <mjambor@suse.cz>
29392 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
29393 ipa_transforms_to_apply.
29394 (cgraph_function_versioning): Assert that old_node has empty
29395 ipa_transforms_to_apply.
29396 * trans-mem.c (ipa_tm_create_version): Likewise.
29397 * tree-inline.c (tree_function_versioning): Do not duplicate
29398 ipa_transforms_to_apply.
29400 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29403 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
29405 Pass necessary as flags on 64-bit Solaris/x86.
29406 Use lowercase relocs for x86_64-*-*.
29407 * configure: Regenerate.
29409 2014-04-15 Jan Hubicka <jh@suse.cz>
29411 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
29412 (maybe_record_node, likely_target_p): Use it.
29414 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29417 Revert following patch
29419 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
29422 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
29423 software floating point or no floating point registers, do not
29424 allow any type in the FPRs. Eliminate a test for SPE SIMD types
29425 in GPRs that occurs after we tested for GPRs that would never be
29428 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
29429 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
29430 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
29431 specifically allow DDmode, since that does not use the SPE SIMD
29434 2014-03-21 Mark Wielaard <mjw@redhat.com>
29436 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
29437 as unsigned or int depending on type and value used.
29439 2014-04-15 Richard Biener <rguenther@suse.de>
29441 PR rtl-optimization/56965
29442 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
29443 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
29445 * alias.c (true_dependence_1): Do not call
29446 nonoverlapping_component_refs_p.
29447 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
29448 nonoverlapping_component_refs_p.
29449 (indirect_refs_may_alias_p): Likewise.
29451 2014-04-15 Teresa Johnson <tejohnson@google.com>
29453 * cfg.c (dump_bb_info): Fix flags check.
29454 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
29456 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29458 PR rtl-optimization/60663
29459 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
29462 2014-04-15 Richard Biener <rguenther@suse.de>
29464 * lto-streamer.h (LTO_major_version): Bump to 4.
29466 2014-04-15 Richard Biener <rguenther@suse.de>
29468 * common.opt (lto_partition_model): New enum.
29469 (flto-partition=): Merge separate options with a single with argument,
29470 add -flto-partition=one support.
29471 * flag-types.h (enum lto_partition_model): Declare.
29472 * opts.c (finish_options): Remove duplicate -flto-partition=
29474 * lto-wrapper.c (run_gcc): Adjust.
29476 2014-04-15 Richard Biener <rguenther@suse.de>
29478 * alias.c (ncr_compar): New function.
29479 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
29481 2014-04-15 Richard Biener <rguenther@suse.de>
29483 * alias.c (record_component_aliases): Do not walk BINFOs.
29485 2014-04-15 Richard Biener <rguenther@suse.de>
29487 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29488 Add struct function argument and adjust.
29489 (find_func_aliases_for_call): Likewise.
29490 (find_func_aliases): Likewise.
29491 (find_func_clobbers): Likewise.
29492 (intra_create_variable_infos): Likewise.
29493 (compute_points_to_sets): Likewise.
29494 (ipa_pta_execute): Adjust. Do not push/pop cfun.
29496 2014-04-15 Richard Biener <rguenther@suse.de>
29498 * tree.c (iterative_hash_expr): Use enum tree_code_class
29499 to store TREE_CODE_CLASS.
29500 (tree_block): Likewise.
29501 (tree_set_block): Likewise.
29502 * tree.h (fold_build_pointer_plus_loc): Use
29503 convert_to_ptrofftype_loc.
29505 2014-04-15 Jakub Jelinek <jakub@redhat.com>
29508 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
29511 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
29513 * cfgloop.h (struct loop): Move force_vectorize down.
29514 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
29515 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
29516 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
29517 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
29518 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
29519 * tree-core.h (enum annot_expr_kind): Add new kind values.
29520 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
29521 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
29523 * tree.def (ANNOTATE_EXPR): Tweak comment.
29525 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
29527 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
29530 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
29532 * tree.h (TYPE_IDENTIFIER): Declare.
29533 * tree.c (subrange_type_for_debug_p): Use it.
29534 * godump.c (go_format_type): Likewise.
29535 * dwarf2out.c (is_cxx_auto, modified_type_die,
29536 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
29537 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
29539 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
29542 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
29544 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
29546 * config/i386/i386.c (examine_argument): Return bool. Return true if
29547 parameter should be passed in memory.
29548 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
29549 (construct_container): Update calls to examine_argument.
29550 (function_arg_advance_64): Ditto.
29551 (return_in_memory_32): Merge with ix86_return_in_memory.
29552 (return_in_memory_64): Ditto.
29553 (return_in_memory_ms_64): Ditto.
29555 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
29557 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
29558 * coverage.c (coverage_compute_profile_id): Handle externally visible
29561 2014-04-14 Martin Jambor <mjambor@suse.cz>
29563 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
29564 DECL_DISREGARD_INLINE_LIMITS functions.
29566 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
29569 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
29571 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
29574 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
29575 optimize_insn_for_speed_p instead of
29576 optimize_function_for_speed_p.
29578 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
29580 * doc/invoke.texi (free): Document AArch64.
29582 2014-04-14 Richard Biener <rguenther@suse.de>
29584 PR tree-optimization/60042
29585 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
29586 (insert_into_preds_of_block): Do not prevent PHI insertion
29587 for REFERENCE exprs here ...
29588 (eliminate_dom_walker::before_dom_children): ... but prevent
29589 their use here under similar conditions when applied to the
29590 IL after PRE optimizations.
29592 2014-04-14 Richard Biener <rguenther@suse.de>
29594 * passes.def: Move early points-to after early SRA.
29596 2014-04-14 Richard Biener <rguenther@suse.de>
29598 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
29599 check for which sign-changes we allow when forwarding
29600 a converted value into a switch.
29602 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
29604 * stor-layout.c (place_field): Finalize non-constant offset for the
29607 2014-04-14 Richard Biener <rguenther@suse.de>
29609 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
29611 (expand_switch_using_bit_tests_p): Likewise.
29612 (process_switch): Compute and pass on speed_p based on the
29614 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
29615 optimize_bb_for_speed_p.
29617 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
29619 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
29620 * function.h (struct function): Rename has_force_vect_loops into
29621 has_force_vectorize_loops.
29622 * lto-streamer-in.c (input_cfg): Adjust for renaming.
29623 (input_struct_function_base): Likewise.
29624 * lto-streamer-out.c (output_cfg): Likewise.
29625 (output_struct_function_base): Likewise.
29626 * omp-low.c (expand_omp_simd): Likewise.
29627 * tree-cfg.c (move_sese_region_to_fn): Likewise.
29628 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
29629 (version_loop_for_if_conversion): Likewise.
29630 (tree_if_conversion): Likewise.
29631 (main_tree_if_conversion): Likewise.
29632 (gate_tree_if_conversion): Likewise.
29633 * tree-inline.c (copy_loops): Likewise.
29634 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
29635 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
29636 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
29637 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
29638 * tree-vectorizer.c (vectorize_loops): Likewise.
29639 * tree-vectorizer.h (unlimited_cost_model): Likewise.
29641 2014-04-14 Richard Biener <rguenther@suse.de>
29644 * lto-streamer-out.c (wrap_refs): New function.
29645 (lto_output): Wrap symbol references in global initializes in
29646 type-preserving MEM_REFs.
29648 2014-04-14 Christian Bruel <christian.bruel@st.com>
29650 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
29652 2014-04-14 Christian Bruel <christian.bruel@st.com>
29654 * config/sh/sh.md (setmemqi): New expand pattern.
29655 * config/sh/sh.h (CLEAR_RATIO): Define.
29656 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
29657 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
29659 2014-04-14 Richard Biener <rguenther@suse.de>
29661 PR middle-end/55022
29662 * fold-const.c (negate_expr_p): Don't negate directional rounding
29664 (fold_negate_expr): Likewise.
29666 2014-04-14 Richard Biener <rguenther@suse.de>
29668 PR tree-optimization/59817
29669 PR tree-optimization/60453
29670 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
29671 recursion to catch all CHRECs in the scalar evolution and restrict
29672 the predicate for the remains appropriately.
29674 2014-04-12 Catherine Moore <clm@codesourcery.com>
29676 * config/mips/constraints.md: Add new register constraint "kb".
29677 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
29678 (*movhi_internal): Likewise.
29679 (*movqi_internal): Likewise.
29680 * config/mips/mips.h (M16_STORE_REGS): New register class.
29681 (REG_CLASS_NAMES): Add M16_STORE_REGS.
29682 (REG_CLASS_CONTENTS): Likewise.
29683 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
29685 2014-04-11 Tobias Burnus <burnus@net-b.de>
29688 * doc/invoke.texi (-Wformat-signedness): Document it.
29689 (Wformat=2): Mention that this enables -Wformat-signedness.
29691 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
29693 * common/config/epiphany/epiphany-common.c
29694 (epiphany_option_optimization_table): Enable section anchors by
29695 default at -O1 or higher.
29696 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
29697 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
29698 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
29699 carries no extra cost.
29700 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
29701 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
29702 * config/epiphany/predicates.md (memclob_operand): New predicate.
29703 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
29704 Use memclob_operand predicate and X constraint for operand 3.
29706 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
29708 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
29709 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
29712 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
29714 PR rtl-optimization/60651
29715 * mode-switching.c (optimize_mode_switching): Make sure to emit
29716 sets of a lower numbered entity before sets of a higher numbered
29717 entity to a mode of the same or lower priority.
29718 When creating a seginfo for a basic block that starts with a code
29719 label, move the insertion point past the code label.
29720 (new_seginfo): Document and enforce requirement that
29721 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
29722 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
29723 * doc/tm.texi: Regenerate.
29725 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
29728 * config/arc/arc.c (arc_save_restore): Fix assert typo.
29730 2013-04-11 Jakub Jelinek <jakub@redhat.com>
29732 * BASE-VER: Set to 4.10.0.
29734 2014-04-11 Tobias Burnus <burnus@net-b.de>
29737 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
29738 * doc/gcc.texi (Service): Update description in the @menu
29739 * doc/invoke.texi (Option Summary): Remove misplaced and
29742 2014-04-11 Steve Ellcey <sellcey@mips.com>
29743 Jakub Jelinek <jakub@redhat.com>
29745 PR middle-end/60556
29746 * expr.c (convert_move): Use emit_store_flag_force instead of
29747 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
29750 2014-04-11 Richard Biener <rguenther@suse.de>
29752 PR middle-end/60797
29753 * varasm.c (assemble_alias): Avoid endless error reporting
29754 recursion by setting TREE_ASM_WRITTEN.
29756 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29758 * config/s390/s390.md: Add a splitter for NOT rtx.
29760 2014-04-11 Jakub Jelinek <jakub@redhat.com>
29762 PR rtl-optimization/60663
29763 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
29765 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
29766 Jakub Jelinek <jakub@redhat.com>
29769 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
29770 flag from decl_node to node.
29772 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29775 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
29776 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
29777 ameliorating the cases where it can be.
29779 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
29782 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
29784 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29785 (loadsync_<mode>): Change mode.
29786 (load_quadpti, store_quadpti): New.
29787 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29788 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29789 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
29791 2014-04-09 Cong Hou <congh@google.com>
29794 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
29797 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29799 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
29800 instead of vnor to exploit possible fusion opportunity in the
29802 (altivec_expand_vec_perm_const_le): Likewise.
29804 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
29806 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29807 (loadsync_<mode>): Change mode.
29808 (load_quadpti, store_quadpti): New.
29809 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29810 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29812 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
29815 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
29816 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
29817 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
29819 2014-04-08 Richard Biener <rguenther@suse.de>
29821 PR middle-end/60706
29822 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
29823 a 64bit widest int print double-int similar to on HWI64 hosts.
29825 2014-04-08 Richard Biener <rguenther@suse.de>
29827 PR tree-optimization/60785
29828 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
29829 default defs properly.
29831 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
29833 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
29834 (Weffc++): Likewise.
29836 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
29838 * ipa-devirt.c (maybe_record_node): When node is not recorded,
29839 set completep to false rather than true.
29841 2014-04-07 Douglas B Rupp <rupp@adacore.com>
29844 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
29845 ARM_TARGET2_DWARF_FORMAT.
29847 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
29850 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
29851 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
29854 2014-04-07 Richard Biener <rguenther@suse.de>
29856 PR tree-optimization/60766
29857 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
29858 (may_eliminate_iv): Convert cand_value_at result to desired type.
29860 2014-04-07 Jason Merrill <jason@redhat.com>
29863 * common.opt (-fno-gnu-unique): Add.
29864 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
29866 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29868 * haifa-sched.c: Fix outdated function reference and minor
29869 grammar errors in introductory comment.
29871 2014-04-07 Richard Biener <rguenther@suse.de>
29873 PR middle-end/60750
29874 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
29875 for noreturn calls.
29876 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
29878 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
29881 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
29882 size accounting for thunks.
29883 (pa_asm_output_mi_thunk): Use final_start_function() and
29884 final_end_function() to output function start and end directives.
29886 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
29888 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
29889 device specific ISA/ feature information. Remove short_sp and
29890 errata_skip ds. Add avr_device_specific_features enum to have device
29892 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
29893 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
29894 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
29895 updated device specific info.
29896 * config/avr/avr-mcus.def: Merge device specific details to
29897 dev_attribute field.
29898 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
29900 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
29901 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
29902 assembler if RMW isa supported by current device.
29903 * config/avr/genmultilib.awk: Update as device info structure changed.
29904 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
29906 2014-04-04 Cong Hou <congh@google.com>
29908 PR tree-optimization/60656
29909 * tree-vect-stmts.c (supportable_widening_operation):
29910 Fix a bug that elements in a vector with vect_used_by_reduction
29911 property are incorrectly reordered when the operation on it is not
29912 consistant with the one in reduction operation.
29914 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
29916 PR rtl-optimization/60155
29917 * gcse.c (record_set_data): New function.
29918 (single_set_gcse): New function.
29919 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
29920 (hoist_code): Likewise.
29921 (get_pressure_class_and_nregs): Likewise.
29923 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
29925 * explow.c (probe_stack_range): Emit a final optimization blockage.
29927 2014-04-04 Anthony Green <green@moxielogic.com>
29929 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
29932 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
29935 * lto-cgraph.c (input_overwrite_node): Check that partitioning
29936 flags are set only during streaming.
29937 * ipa.c (process_references, walk_polymorphic_call_targets,
29938 symtab_remove_unreachable_nodes): Drop bodies of always inline
29939 after early inlining.
29940 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
29942 2014-04-04 Jakub Jelinek <jakub@redhat.com>
29943 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29946 * dwarf2out.c (const_ok_for_output_1): Reject expressions
29949 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29952 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
29954 (cortex_a53_fdivd): Likewise.
29956 2014-04-04 Martin Jambor <mjambor@suse.cz>
29959 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
29960 Adjust all callers.
29961 * cgraph.c (clone_of_p): Also return true if thunks match.
29962 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
29963 cgraph_function_or_thunk_node and an obsolete comment.
29964 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
29966 (build_function_decl_skip_args): Likewise.
29967 (set_new_clone_decl_and_node_flags): New function.
29968 (duplicate_thunk_for_node): Likewise.
29969 (redirect_edge_duplicating_thunks): Likewise.
29970 (cgraph_clone_node): New parameter args_to_skip, pass it to
29971 redirect_edge_duplicating_thunks which is called instead of
29972 cgraph_redirect_edge_callee.
29973 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
29974 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
29976 2014-04-04 Jeff Law <law@redhat.com>
29979 * config/arm/predicates.md (const_int_I_operand): New predicate.
29980 (const_int_M_operand): Similarly.
29981 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
29983 (insv_t2, extv_reg, extzv_t2): Likewise.
29984 (load_multiple_with_writeback): Similarly for const_int_I_operand.
29985 (pop_multiple_with_writeback_and_return): Likewise.
29986 (vfp_pop_multiple_with_writeback): Likewise
29988 2014-04-04 Richard Biener <rguenther@suse.de>
29991 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
29992 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
29994 * gimplify.h (gimple_add_tmp_var_fn): Declare.
29995 * gimplify.c (gimple_add_tmp_var_fn): New function.
29996 * gimple-expr.h (create_tmp_reg_fn): Declare.
29997 * gimple-expr.c (create_tmp_reg_fn): New function.
29998 * gimple-low.c (record_vars_into): Don't change cfun.
29999 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30000 code generation without cfun.
30002 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
30005 * Makefile.in (install-driver): Fix shell scripting.
30007 2014-04-03 Cong Hou <congh@google.com>
30009 PR tree-optimization/60505
30010 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30011 threshold of number of iterations below which no vectorization
30013 * tree-vect-loop.c (new_loop_vec_info):
30014 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30015 * tree-vect-loop.c (vect_analyze_loop_operations):
30016 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30017 * tree-vect-loop.c (vect_transform_loop):
30018 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30019 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30020 of iterations of the loop and see if we should build the epilogue.
30022 2014-04-03 Richard Biener <rguenther@suse.de>
30024 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30025 (streamer_tree_cache_create): Adjust.
30026 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30027 to allow optional nodes array.
30028 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30029 (streamer_tree_cache_append): Likewise.
30030 (streamer_tree_cache_create): Create nodes array optionally
30031 as specified by parameter.
30032 * lto-streamer-out.c (create_output_block): Avoid maintaining
30033 the node array in the writer cache.
30034 (DFS_write_tree): Remove assertion.
30035 (produce_asm_for_decls): Free the out decl state hash table early.
30036 * lto-streamer-in.c (lto_data_in_create): Adjust for
30037 streamer_tree_cache_create prototype change.
30039 2014-04-03 Richard Biener <rguenther@suse.de>
30041 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30042 set TREE_CHAIN to NULL_TREE.
30044 2014-04-03 Richard Biener <rguenther@suse.de>
30046 PR tree-optimization/60740
30047 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30048 over all GIMPLE_COND operands.
30050 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
30052 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30053 (Weffc++): Remove Scott's numbering, merge lists and reference
30056 2014-04-03 Nick Clifton <nickc@redhat.com>
30058 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30061 2014-04-03 Martin Jambor <mjambor@suse.cz>
30063 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30064 mention gcc_unreachable before failing.
30065 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30068 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
30071 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30072 inconsistent code and instead mark the context inconsistent.
30073 (possible_polymorphic_call_targets): For inconsistent contexts
30074 return empty complete list.
30076 2014-04-02 Anthony Green <green@moxielogic.com>
30078 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30079 (extendqisi2, extendhisi2): Define.
30080 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30081 (WCHAR_TYPE): Change to unsigned int.
30083 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30085 PR tree-optimization/60733
30086 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30087 insertion point for PHI candidates to be the end of the feeding
30088 block for the PHI argument.
30090 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
30092 PR rtl-optimization/60650
30093 * lra-constraints.c (process_alt_operands): Decrease reject for
30094 earlyclobber matching.
30096 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30098 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30100 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30102 * config/spu/spu.c (pad_bb): Do not crash when the last
30103 insn is CODE_FOR_blockage.
30105 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30107 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30108 lies outside the target mode.
30110 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30113 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30114 software floating point or no floating point registers, do not
30115 allow any type in the FPRs. Eliminate a test for SPE SIMD types
30116 in GPRs that occurs after we tested for GPRs that would never be
30119 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30120 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30121 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
30122 specifically allow DDmode, since that does not use the SPE SIMD
30125 2014-04-02 Richard Biener <rguenther@suse.de>
30127 PR middle-end/60729
30128 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30129 MODE_INTs. Properly use negv_optab.
30130 (expand_abs): Likewise.
30132 2014-04-02 Richard Biener <rguenther@suse.de>
30135 * Makefile.in (install-driver): Guard extra installs with special
30138 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
30140 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30141 Document vec_vgbbd.
30143 2014-04-01 Richard Henderson <rth@redhat.com>
30146 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30147 alternative enabled before register allocation.
30149 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
30151 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30152 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30154 (nios2_large_got_address): Remove unneeded 'sym' parameter.
30155 (nios2_got_address): Update nios2_large_got_address call site.
30156 (nios2_delegitimize_address): New function.
30157 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30158 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30159 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30161 2014-04-01 Martin Husemann <martin@duskware.de>
30163 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30166 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
30168 PR rtl-optimization/60604
30169 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30170 check from register_operand.
30171 (register_operand): Redefine in terms of general_operand.
30172 (nonmemory_operand): Use register_operand for the non-constant cases.
30174 2014-04-01 Richard Biener <rguenther@suse.de>
30176 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30178 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
30180 * doc/invoke.texi (mapp-regs): Clarify.
30182 2014-03-31 Ulrich Drepper <drepper@gmail.com>
30184 * config/i386/avx512fintrin.h (__v32hi): Define type.
30185 (__v64qi): Likewise.
30186 (_mm512_set1_epi8): Define.
30187 (_mm512_set1_epi16): Define.
30188 (_mm512_set4_epi32): Define.
30189 (_mm512_set4_epi64): Define.
30190 (_mm512_set4_pd): Define.
30191 (_mm512_set4_ps): Define.
30192 (_mm512_setr4_epi64): Define.
30193 (_mm512_setr4_epi32): Define.
30194 (_mm512_setr4_pd): Define.
30195 (_mm512_setr4_ps): Define.
30196 (_mm512_setzero_epi32): Define.
30198 2014-03-31 Martin Jambor <mjambor@suse.cz>
30200 PR middle-end/60647
30201 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30202 callsite_arguments_match_p. Updated all callers. Also check types of
30203 corresponding formal parameters and actual arguments.
30204 (not_all_callers_have_enough_arguments_p) Renamed to
30205 some_callers_have_mismatched_arguments_p.
30207 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
30209 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30211 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
30214 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30217 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
30219 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30220 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30222 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30223 Use FMAMODE_NOVF512 mode iterator.
30224 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30225 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30226 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30227 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30229 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30230 Use VF_128_256 mode iterator.
30231 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30234 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30236 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30237 static chain if needed.
30239 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30242 * lra-constraints.c (index_part_to_reg): New.
30243 (process_address): Use it.
30245 2014-03-27 Jeff Law <law@redhat.com>
30246 Jakub Jelinek <jakub@redhat.com>
30249 * expr.c (do_tablejump): Use simplify_gen_binary rather than
30250 gen_rtx_{PLUS,MULT} to build up the address expression.
30252 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30253 creating non-canonical RTL.
30255 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30258 * ipa-inline.c (want_inline_small_function_p): Short circuit large
30259 functions; reorganize to make cheap checks first.
30260 (inline_small_functions): Do not estimate growth when dumping;
30262 * ipa-inline.h (inline_summary): Add min_size.
30263 (growth_likely_positive): New function.
30264 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30265 (set_cond_stmt_execution_predicate): Cleanup.
30266 (estimate_edge_size_and_time): Compute min_size.
30267 (estimate_calls_size_and_time): Likewise.
30268 (estimate_node_size_and_time): Likewise.
30269 (inline_update_overall_summary): Update min_size.
30270 (do_estimate_edge_time): Likewise.
30271 (do_estimate_edge_size): Update.
30272 (do_estimate_edge_hints): Update.
30273 (growth_likely_positive): New function.
30275 2014-03-28 Jakub Jelinek <jakub@redhat.com>
30278 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30279 also if addr has VOIDmode.
30281 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30283 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30284 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30286 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30287 instructions as well as AdvancedSIMD loads.
30289 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30291 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30292 Use crypto_aese type.
30293 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30294 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30295 crypto_aese, crypto_aesmc. Move to types.md.
30296 * config/arm/types.md (crypto_aes): Split into crypto_aese,
30298 * config/arm/iterators.md (crypto_type): Likewise.
30300 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30302 * cgraph.c: Include expr.h and tree-dfa.h.
30303 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30306 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30309 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30310 regs from checking multi-reg pseudos.
30312 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30314 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30316 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30318 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30319 if it would clobber the stack pointer, even temporarily.
30321 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
30323 * mode-switching.c: Make small adjustments to the top comment.
30325 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
30327 * config/rs6000/constraints.md (wD constraint): New constraint to
30328 match the constant integer to get the top DImode/DFmode out of a
30329 vector in a VSX register.
30331 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30332 match the constant integer to get the top DImode/DFmode out of a
30333 vector in a VSX register.
30335 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30338 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30341 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30342 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30344 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30345 Optimize vec_extract of 64-bit values, where the value being
30346 extracted is in the top word, where we can use scalar
30347 instructions. Add direct move and store support. Combine the big
30348 endian/little endian vector select load support into a single insn.
30349 (vsx_extract_<mode>_internal1): Likewise.
30350 (vsx_extract_<mode>_internal2): Likewise.
30351 (vsx_extract_<mode>_load): Likewise.
30352 (vsx_extract_<mode>_store): Likewise.
30353 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30354 combined into vsx_extract_<mode>_load.
30355 (vsx_extract_<mode>_one_le): Likewise.
30357 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30358 define the top 64-bit vector element.
30360 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30363 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30364 Document vec_vbpermq builtin.
30367 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30368 enable use of xxsldwi and xxpermdi builtin functions.
30369 (vec_xxpermdi): Likewise.
30371 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30372 Document use of vec_xxsldwi and vec_xxpermdi builtins.
30374 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
30376 PR rtl-optimization/60650
30377 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30379 (find_spills_for): New.
30380 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30381 Spill all pseudos on the second iteration.
30383 2014-03-27 Marek Polacek <polacek@redhat.com>
30386 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30389 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30391 * config/s390/s390.c (s390_can_use_return_insn): Check for
30392 call-saved FPRs on 31 bit.
30394 2014-03-27 Jakub Jelinek <jakub@redhat.com>
30396 PR middle-end/60682
30397 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
30398 if they need regimplification, just drop them instead of
30399 calling gimple_regimplify_operands on them.
30401 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
30404 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
30405 (aarch64_frame_pointer_required): Adjust logic.
30406 (aarch64_can_eliminate): Adjust logic.
30407 (aarch64_override_options_after_change): Adjust logic.
30409 2014-03-27 Dehao Chen <dehao@google.com>
30411 * ipa-inline.c (early_inliner): Update node's inline info.
30413 2014-03-26 Dehao Chen <dehao@google.com>
30415 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
30416 compiler inserted conditional jumps for NAN float check.
30418 2014-03-26 Jakub Jelinek <jakub@redhat.com>
30420 * ubsan.h (ubsan_create_data): Change second argument's type
30421 to const location_t *.
30422 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
30424 (ubsan_create_data): Change second argument to const location_t *PLOC.
30425 Create Loc field whenever PLOC is non-NULL.
30426 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
30427 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
30431 * real.c (real_to_integer2): Change type of low to UHWI.
30433 2014-03-26 Tobias Burnus <burnus@net-b.de>
30435 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
30436 (CILK_SELF_SPECS): New define.
30437 (driver_self_specs): Use it.
30439 2014-03-26 Richard Biener <rguenther@suse.de>
30441 * tree-pretty-print.c (percent_K_format): Implement special
30442 case for LTO and its stripped down BLOCK tree.
30444 2014-03-26 Jakub Jelinek <jakub@redhat.com>
30447 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
30449 * tree-vrp.c (simplify_internal_call_using_ranges): If only
30450 one range is range_int_cst_p, but not both, at least optimize
30451 addition/subtraction of 0 and multiplication by 0 or 1.
30452 * gimple-fold.c (gimple_fold_call): Fold
30453 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
30454 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
30455 INTEGER_CSTs, try to fold at least x * 0 and y - y.
30457 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
30459 PR rtl-optimization/60452
30460 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
30461 <case REG>: Return 1 for invalid offsets from the frame pointer.
30463 2014-03-26 Marek Polacek <polacek@redhat.com>
30466 * doc/extend.texi (C Extensions): Mention variable-length arrays in
30469 2014-03-26 Marek Polacek <polacek@redhat.com>
30472 * doc/extend.texi (Designated Inits): Describe what happens to omitted
30475 2014-03-26 Marek Polacek <polacek@redhat.com>
30478 * ira-color.c (update_conflict_hard_regno_costs): Perform the
30479 multiplication in unsigned type.
30481 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
30483 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
30485 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
30487 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
30489 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
30492 * cif-code.def (UNREACHABLE) New code.
30493 * ipa-inline.c (inline_small_functions): Skip edges to
30494 __builtlin_unreachable.
30495 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
30496 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
30497 predicate to __bulitin_unreachable.
30498 (set_cond_stmt_execution_predicate): Fix issue when
30499 invert_tree_comparison returns ERROR_MARK.
30500 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
30501 propagate to inline clones.
30502 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
30504 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
30505 * cgraphclones.c (cgraph_clone_node): If call destination is already
30506 ureachable, do not redirect it back.
30507 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
30510 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
30512 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
30513 Do not modify inline clones.
30515 2014-03-25 Jakub Jelinek <jakub@redhat.com>
30517 * config/i386/i386.md (general_sext_operand): New mode attr.
30518 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
30519 don't generate (sign_extend (const_int)).
30520 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
30521 operands[2]. Use We constraint instead of <i> and
30522 <general_sext_operand> predicate instead of <general_operand>.
30523 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
30524 * config/i386/constraints.md (We): New constraint.
30525 * config/i386/predicates.md (x86_64_sext_operand,
30526 sext_operand): New predicates.
30528 2014-03-25 Martin Jambor <mjambor@suse.cz>
30531 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
30532 inconsistent devirtualizations to __builtin_unreachable.
30534 2014-03-25 Marek Polacek <polacek@redhat.com>
30537 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
30539 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
30541 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
30542 order of elements for big-endian.
30544 2014-03-25 Richard Biener <rguenther@suse.de>
30546 PR middle-end/60635
30547 * gimplify-me.c (gimple_regimplify_operands): Update the
30550 2014-03-25 Martin Jambor <mjambor@suse.cz>
30553 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
30554 (lto_output_varpool_node): Likewise.
30555 (input_overwrite_node): Likewise.
30556 (input_varpool_node): Likewise.
30558 2014-03-25 Richard Biener <rguenther@suse.de>
30560 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
30561 (run_gcc): Likewise.
30563 2014-03-25 Jakub Jelinek <jakub@redhat.com>
30565 * combine.c (simplify_compare_const): Add MODE argument.
30566 Handle mode_width 0 as very large mode_width.
30567 (try_combine, simplify_comparison): Adjust callers.
30569 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
30570 type to avoid signed integer overflow.
30571 * explow.c (plus_constant): Likewise.
30573 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
30575 * doc/generic.texi: Correct typos.
30577 2014-03-24 Tobias Burnus <burnus@net-b.de>
30579 * doc/invoke.texi (-flto): Expand section about
30580 using static libraries with LTO.
30582 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30584 PR rtl-optimization/60501
30585 * optabs.def (addptr3_optab): New optab.
30586 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
30587 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
30588 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
30590 * lra.c (emit_add3_insn): Use the addptr pattern if available.
30592 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
30594 2014-03-24 Ulrich Drepper <drepper@gmail.com>
30596 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
30599 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
30600 (_mm256_undefined_ps): Define.
30601 (_mm256_undefined_pd): Define.
30602 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
30603 (_mm_undefined_pd): Define.
30604 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
30605 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
30606 (_mm512_undefined_ps): Define.
30607 (_mm512_undefined_pd): Define.
30608 Use _mm*_undefined_*.
30609 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
30611 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
30613 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
30614 (lshr_simd): DI mode added.
30615 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
30616 (aarch64_ushr_simddi): Likewise.
30617 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
30618 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
30619 (vshrd_n_u64): Likewise.
30621 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30623 * Makefile.in (s-macro_list): Depend on cc1.
30625 2014-03-23 Teresa Johnson <tejohnson@google.com>
30627 * ipa-utils.c (ipa_print_order): Use specified dump file.
30629 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
30631 PR rtl-optimization/60601
30632 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
30634 * gcc.c (eval_spec_function): Initialize save_growing_value.
30636 2014-03-22 Jakub Jelinek <jakub@redhat.com>
30639 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
30640 code == MINUS_EXPR, never swap op0 with op1.
30642 * toplev.c (init_local_tick): Avoid signed integer multiplication
30644 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
30645 shift by first operand's bitsize.
30647 2014-03-21 Jakub Jelinek <jakub@redhat.com>
30650 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
30651 redefine to 1 or 0.
30652 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
30653 TARGET_ISA_64BIT_P(x).
30655 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30657 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
30658 pattern for vector nor instead of subtract from splat(-1).
30659 (altivec_expand_vec_perm_const_le): Likewise.
30661 2014-03-21 Richard Henderson <rth@twiddle.net>
30664 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
30665 related insns after epilogue_completed.
30667 2014-03-21 Martin Jambor <mjambor@suse.cz>
30670 * cgraph.h (symtab_node): New flag body_removed.
30671 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
30672 when removing bodies.
30673 * symtab.c (dump_symtab_base): Dump body_removed flag.
30674 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
30675 had their bodies removed.
30677 2014-03-21 Martin Jambor <mjambor@suse.cz>
30680 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
30683 2014-03-21 Richard Biener <rguenther@suse.de>
30685 PR tree-optimization/60577
30686 * tree-core.h (struct tree_base): Document nothrow_flag use
30687 in DECL_NONALIASED.
30688 * tree.h (DECL_NONALIASED): New.
30689 (may_be_aliased): Adjust.
30690 * coverage.c (build_var): Set DECL_NONALIASED.
30692 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
30694 * expr.c (expand_expr_real_1): Remove outdated comment.
30696 2014-03-20 Jakub Jelinek <jakub@redhat.com>
30698 PR middle-end/60597
30699 * ira.c (adjust_cleared_regs): Call copy_rtx on
30700 *reg_equiv[REGNO (loc)].src_p before passing it to
30701 simplify_replace_fn_rtx.
30704 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
30705 into CONST, put pic register as first operand of PLUS. Use
30706 gen_const_mem for both 32-bit and 64-bit PIC got loads.
30708 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30710 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
30712 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
30714 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
30715 around for store forwarding issue in the FPU on the UT699.
30716 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
30717 loads and operations if -mfix-ut699 is specified.
30718 (divtf3_hq): Tweak attribute.
30719 (sqrttf2_hq): Likewise.
30721 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
30723 * calls.c (store_one_arg): Remove incorrect const qualification on the
30724 type of the temporary.
30725 * cfgexpand.c (expand_return): Likewise.
30726 * expr.c (expand_constructor): Likewise.
30727 (expand_expr_real_1): Likewise.
30729 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
30731 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
30734 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
30737 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
30739 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
30741 * config/arm/aarch-common-protos.h
30742 (alu_cost_table): Fix spelling of "extend".
30743 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
30745 2014-03-19 Richard Biener <rguenther@suse.de>
30747 PR middle-end/60553
30748 * tree-core.h (tree_type_common): Re-order pointer members
30749 to reduce recursion depth during GC walks.
30751 2014-03-19 Marek Polacek <polacek@redhat.com>
30754 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
30755 before accessing it.
30757 2014-03-19 Richard Biener <rguenther@suse.de>
30760 * lto-streamer-in.c (input_function): In WPA stage do not drop
30763 2014-03-19 Jakub Jelinek <jakub@redhat.com>
30765 PR tree-optimization/60559
30766 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
30767 with build_zero_cst assignment.
30769 2014-03-18 Kai Tietz <ktietz@redhat.com>
30771 PR rtl-optimization/56356
30772 * sdbout.c (sdbout_parms): Verify that parms'
30773 incoming argument is valid.
30774 (sdbout_reg_parms): Likewise.
30776 2014-03-18 Richard Henderson <rth@redhat.com>
30779 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
30780 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
30781 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
30783 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
30785 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
30786 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
30787 Italicize plugin event names in description. Explain that
30788 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
30789 Remind that no GCC functions should be called after PLUGIN_FINISH.
30790 Explain what pragmas with expansion are.
30792 2014-03-18 Martin Liska <mliska@suse.cz>
30794 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
30795 gimple call statement is update.
30796 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
30797 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
30799 2014-03-18 Jakub Jelinek <jakub@redhat.com>
30802 * ubsan.c (ubsan_instrument_unreachable): Call
30803 initialize_sanitizer_builtins.
30804 (ubsan_pass): Likewise.
30807 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
30808 varpool_finalize_decl instead of rest_of_decl_compilation.
30810 2014-03-18 Richard Biener <rguenther@suse.de>
30812 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
30813 by using bitmap_and_compl instead of bitmap_and_compl_into.
30814 (df_rd_transfer_function): Likewise.
30816 2014-03-18 Richard Biener <rguenther@suse.de>
30818 * doc/lto.texi (fresolution): Fix typo.
30820 2014-03-18 Richard Biener <rguenther@suse.de>
30822 * doc/invoke.texi (flto): Update for changes in 4.9.
30824 2014-03-18 Richard Biener <rguenther@suse.de>
30826 * doc/loop.texi: Remove section on the removed lambda framework.
30827 Update loop docs with recent changes in preserving loop structure.
30829 2014-03-18 Richard Biener <rguenther@suse.de>
30831 * doc/lto.texi (-fresolution): Document.
30833 2014-03-18 Richard Biener <rguenther@suse.de>
30835 * doc/contrib.texi: Adjust my name.
30837 2014-03-18 Jakub Jelinek <jakub@redhat.com>
30840 * internal-fn.c: Include diagnostic-core.h.
30841 (expand_BUILTIN_EXPECT): New function.
30842 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
30843 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
30844 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
30845 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
30846 IFN_BUILTIN_EXPECT.
30847 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
30848 Revert 3 argument __builtin_expect code.
30849 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
30850 * gimple-fold.c (gimple_fold_call): Likewise.
30851 * tree.h (fold_builtin_expect): New prototype.
30852 * builtins.c (build_builtin_expect_predicate): Add predictor
30853 argument, if non-NULL, create 3 argument __builtin_expect.
30854 (fold_builtin_expect): No longer static. Add ARG2 argument,
30855 pass it through to build_builtin_expect_predicate.
30856 (fold_builtin_2): Adjust caller.
30857 (fold_builtin_3): Handle BUILT_IN_EXPECT.
30858 * internal-fn.def (BUILTIN_EXPECT): New.
30860 2014-03-18 Tobias Burnus <burnus@net-b.de>
30863 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
30864 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
30865 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
30867 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
30870 * predict.c (combine_predictions_for_bb): Fix up formatting.
30871 (expr_expected_value_1, expr_expected_value): Add predictor argument,
30872 fill what it points to if non-NULL.
30873 (tree_predict_by_opcode): Adjust caller, use the predictor.
30874 * predict.def (PRED_COMPARE_AND_SWAP): Add.
30876 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
30878 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
30879 proper constant for the store mode.
30881 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
30883 * symtab.c (change_decl_assembler_name): Fix transparent alias
30884 chain construction.
30886 2014-03-16 Renlin Li <Renlin.Li@arm.com>
30888 * config/aarch64/aarch64.c: Correct the comments about the
30889 aarch64 stack layout.
30891 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
30893 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
30894 check for GF_OMP_FOR_KIND_FOR.
30896 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
30898 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
30899 ymm and zmm register names.
30901 2014-03-17 Jakub Jelinek <jakub@redhat.com>
30904 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
30905 note creation for the 2010-08-31 changes.
30907 2014-03-17 Marek Polacek <polacek@redhat.com>
30909 PR middle-end/60534
30910 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
30911 as -fno-tree-loop-vectorize.
30912 (expand_omp_simd): Likewise.
30914 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
30916 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
30917 (eligible_for_call_delay): New prototype.
30918 * config/sparc/sparc.c (tls_call_delay): Rename into...
30919 (eligible_for_call_delay): ...this. Return false if the instruction
30920 cannot be put in the delay slot of a branch.
30921 (eligible_for_restore_insn): Simplify.
30922 (eligible_for_return_delay): Return false if the instruction cannot be
30923 put in the delay slot of a branch and simplify.
30924 (eligible_for_sibcall_delay): Return false if the instruction cannot be
30925 put in the delay slot of a branch.
30926 * config/sparc/sparc.md (fix_ut699): New attribute.
30927 (tls_call_delay): Delete.
30928 (in_call_delay): Reimplement.
30929 (eligible_for_sibcall_delay): Rename into...
30930 (in_sibcall_delay): ...this.
30931 (eligible_for_return_delay): Rename into...
30932 (in_return_delay): ...this.
30933 (in_branch_delay): Reimplement.
30934 (in_uncond_branch_delay): Delete.
30935 (in_annul_branch_delay): Delete.
30937 2014-03-14 Richard Henderson <rth@redhat.com>
30940 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
30941 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
30942 (*floathi<X87MODEF>2_i387_with_temp): Remove.
30943 (floathi splitters): Remove.
30944 (float<SWI48x>xf2): New pattern.
30945 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
30946 code that tried to handle DImode for 32-bit, but which was excluded
30947 by the pattern's condition. Drop allocation of stack temporary.
30948 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
30949 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
30950 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
30951 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
30952 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
30953 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
30954 (*float<SWI48><MODEF>2_sse_interunit): Remove.
30955 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
30956 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
30957 (*float<SWI48x><X87MODEF>2_i387): Remove.
30958 (all float _with_temp splitters): Remove.
30959 (*float<SWI48x><MODEF>2_i387): New pattern.
30960 (*float<SWI48><MODEF>2_sse): New pattern.
30961 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
30962 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
30964 2014-03-14 Jakub Jelinek <jakub@redhat.com>
30965 Marek Polacek <polacek@redhat.com>
30967 PR middle-end/60484
30968 * common.opt (dump_base_name_prefixed): New Variable.
30969 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
30970 if x_dump_base_name_prefixed is already set, set it at the end.
30972 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
30974 PR rtl-optimization/60508
30975 * lra-constraints.c (get_reload_reg): Add new parameter
30977 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
30978 Pass the new parameter values.
30980 2014-03-14 Richard Biener <rguenther@suse.de>
30982 * common.opt: Revert unintented changes from r205065.
30983 * opts.c: Likewise.
30985 2014-03-14 Richard Biener <rguenther@suse.de>
30987 PR middle-end/60518
30988 * cfghooks.c (split_block): Properly adjust all loops the
30989 block was a latch of.
30991 2014-03-14 Martin Jambor <mjambor@suse.cz>
30994 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
30997 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
31000 * config/avr/avr.c (avr_set_current_function): Pass function name
31001 through default_strip_name_encoding before sanity checking instead
31002 of skipping the first char of the assembler name.
31004 2014-03-13 Richard Henderson <rth@redhat.com>
31007 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31008 (ix86_force_to_memory, ix86_free_from_memory): Remove.
31009 * config/i386/i386-protos.h: Likewise.
31010 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31011 in the expander instead of a splitter.
31012 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31013 any possibility of requiring a memory.
31014 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31015 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31016 (fp branch splitters): Update for ix86_split_fp_branch.
31017 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31018 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31019 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31020 (*fop_<MODEF>_2_i387): Remove f/r alternative.
31021 (*fop_<MODEF>_3_i387): Likewise.
31022 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31023 (splitters for the fop_* register patterns): Remove.
31024 (fscalexf4_i387): Rename from *fscalexf4_i387.
31025 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31027 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31029 PR tree-optimization/59779
31030 * tree-dfa.c (get_ref_base_and_extent): Use double_int
31031 type for bitsize and maxsize instead of HOST_WIDE_INT.
31033 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
31035 PR rtl-optimization/57320
31036 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31037 the CFG after thread_prologue_and_epilogue_insns.
31039 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
31041 PR rtl-optimization/57189
31042 * lra-constraints.c (process_alt_operands): Disfavor spilling
31045 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
31047 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31049 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31051 PR tree-optimization/59025
31052 PR middle-end/60418
31053 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31054 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31056 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
31059 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31060 calls of avr_out_plus_1.
31062 2014-03-13 Bin Cheng <bin.cheng@arm.com>
31064 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31065 BB's single pred and update the father loop's latch info later.
31067 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
31069 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31073 (VEC_base): Likewise.
31074 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31075 registers, we need to swap double words in little endian mode.
31077 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31078 to be a container mode for 128-bit integer operations added in ISA
31079 2.07. Unlike TImode and PTImode, the preferred register set is
31080 the Altivec/VMX registers for the 128-bit operations.
31082 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31084 (rs6000_split_128bit_ok_p): Likewise.
31086 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31087 macros for creating ISA 2.07 normal and overloaded builtin
31088 functions with 3 arguments.
31089 (BU_P8V_OVERLOAD_3): Likewise.
31090 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31091 for use as overloaded functions.
31092 (VPERM_1TI_UNS): Likewise.
31093 (VSEL_1TI): Likewise.
31094 (VSEL_1TI_UNS): Likewise.
31095 (ST_INTERNAL_1ti): Likewise.
31096 (LD_INTERNAL_1ti): Likewise.
31097 (XXSEL_1TI): Likewise.
31098 (XXSEL_1TI_UNS): Likewise.
31099 (VPERM_1TI): Likewise.
31100 (VPERM_1TI_UNS): Likewise.
31101 (XXPERMDI_1TI): Likewise.
31102 (SET_1TI): Likewise.
31103 (LXVD2X_V1TI): Likewise.
31104 (STXVD2X_V1TI): Likewise.
31105 (VEC_INIT_V1TI): Likewise.
31106 (VEC_SET_V1TI): Likewise.
31107 (VEC_EXT_V1TI): Likewise.
31108 (EQV_V1TI): Likewise.
31109 (NAND_V1TI): Likewise.
31110 (ORC_V1TI): Likewise.
31111 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31112 added in ISA 2.07. Add both normal 'altivec' builtins, and the
31113 overloaded builtin.
31114 (VADDUQM): Likewise.
31115 (VSUBCUQ): Likewise.
31116 (VADDEUQM): Likewise.
31117 (VADDECUQ): Likewise.
31118 (VSUBEUQM): Likewise.
31119 (VSUBECUQ): Likewise.
31121 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31122 __int128_t and __uint128_t types.
31123 (__uint128_type): Likewise.
31124 (altivec_categorize_keyword): Add support for vector __int128_t,
31125 vector __uint128_t, vector __int128, and vector unsigned __int128
31126 as a container type for TImode operations that need to be done in
31127 VSX/Altivec registers.
31128 (rs6000_macro_to_expand): Likewise.
31129 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31130 to support 128-bit integer instructions vaddcuq, vadduqm,
31131 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31132 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31134 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31135 for V1TImode, and set up preferences to use VSX/Altivec registers.
31136 Setup VSX reload handlers.
31137 (rs6000_debug_reg_global): Likewise.
31138 (rs6000_init_hard_regno_mode_ok): Likewise.
31139 (rs6000_preferred_simd_mode): Likewise.
31140 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31141 (easy_altivec_constant): Likewise.
31142 (output_vec_const_move): Likewise.
31143 (rs6000_expand_vector_set): Convert V1TImode set and extract to
31145 (rs6000_expand_vector_extract): Likewise.
31146 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31148 (rs6000_const_vec): Add support for V1TImode.
31149 (rs6000_emit_le_vsx_load): Swap double words when loading or
31150 storing TImode/V1TImode.
31151 (rs6000_emit_le_vsx_store): Likewise.
31152 (rs6000_emit_le_vsx_move): Likewise.
31153 (rs6000_emit_move): Add support for V1TImode.
31154 (altivec_expand_ld_builtin): Likewise.
31155 (altivec_expand_st_builtin): Likewise.
31156 (altivec_expand_vec_init_builtin): Likewise.
31157 (altivec_expand_builtin): Likewise.
31158 (rs6000_init_builtins): Add support for V1TImode type. Add
31159 support for ISA 2.07 128-bit integer builtins. Define type names
31160 for the VSX/Altivec vector types.
31161 (altivec_init_builtins): Add support for overloaded vector
31162 functions with V1TImode type.
31163 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31164 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31166 (rs6000_split_128bit_ok_p): Likewise.
31167 (rs6000_handle_altivec_attribute): Create V1TImode from vector
31168 __int128_t and vector __uint128_t.
31170 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31171 and mode attributes.
31173 (VSX_M2): Likewise.
31178 (VS_scalar): Likewise.
31179 (VS_double): Likewise.
31180 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31182 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31183 we support the ISA 2.07 128-bit integer arithmetic instructions.
31184 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31185 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31186 and TImode types for use with the builtin functions.
31187 (V1TI_type_node): Likewise.
31188 (unsigned_V1TI_type_node): Likewise.
31189 (intTI_type_internal_node): Likewise.
31190 (uintTI_type_internal_node): Likewise.
31192 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31193 128-bit builtin functions.
31194 (UNSPEC_VADDEUQM): Likewise.
31195 (UNSPEC_VADDECUQ): Likewise.
31196 (UNSPEC_VSUBCUQ): Likewise.
31197 (UNSPEC_VSUBEUQM): Likewise.
31198 (UNSPEC_VSUBECUQ): Likewise.
31199 (VM): Add V1TImode to vector mode iterators.
31201 (VI_unit): Likewise.
31202 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31203 (altivec_vaddcuq): Likewise.
31204 (altivec_vsubuqm): Likewise.
31205 (altivec_vsubcuq): Likewise.
31206 (altivec_vaddeuqm): Likewise.
31207 (altivec_vaddecuq): Likewise.
31208 (altivec_vsubeuqm): Likewise.
31209 (altivec_vsubecuq): Likewise.
31211 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31213 (BOOL_128): Likewise.
31214 (BOOL_REGS_OUTPUT): Likewise.
31215 (BOOL_REGS_OP1): Likewise.
31216 (BOOL_REGS_OP2): Likewise.
31217 (BOOL_REGS_UNARY): Likewise.
31218 (BOOL_REGS_AND_CR0): Likewise.
31220 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31221 128-bit integer builtin support.
31222 (vec_vadduqm): Likewise.
31223 (vec_vaddecuq): Likewise.
31224 (vec_vaddeuqm): Likewise.
31225 (vec_vsubecuq): Likewise.
31226 (vec_vsubeuqm): Likewise.
31227 (vec_vsubcuq): Likewise.
31228 (vec_vsubuqm): Likewise.
31230 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31231 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31232 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31233 128-bit integer add/subtract to ISA 2.07.
31235 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
31237 * config/arc/arc.c (arc_predicate_delay_insns):
31238 Fix third argument passed to conditionalize_nonjump.
31240 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
31242 * config/aarch64/aarch64-builtins.c
31243 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31244 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31245 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31246 instead of __builtin_lfloor.
31247 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31249 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31251 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31252 (tree_ssa_ifcombine_bb_1): New function.
31253 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
31254 is an empty forwarder block to then_bb or vice versa and then_bb
31255 and else_bb are effectively swapped.
31257 2014-03-12 Christian Bruel <christian.bruel@st.com>
31260 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31261 REG_CFA_DEF_CFA note.
31262 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31263 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31265 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
31267 PR tree-optimization/60454
31268 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31270 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31272 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31273 Do not define target_cpu_default2 to generic.
31274 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31275 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31276 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31278 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31279 Marc Glisse <marc.glisse@inria.fr>
31281 PR tree-optimization/60502
31282 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31283 instead of build_low_bits_mask.
31285 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31287 PR middle-end/60482
31288 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31289 if there are multiple uses, but op doesn't live on E edge.
31290 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31291 clobber stmts before __builtin_unreachable.
31293 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
31295 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31296 hard_frame_pointer_rtx.
31297 * cse.c (cse_insn): Remove volatile check.
31298 * cselib.c (cselib_process_insn): Likewise.
31299 * dse.c (scan_insn): Likewise.
31301 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31303 * config/arc/arc.c (conditionalize_nonjump): New function,
31305 (arc_ifcvt): ... this.
31306 (arc_predicate_delay_insns): Use it.
31308 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31310 * config/arc/predicates.md (extend_operand): During/after reload,
31311 allow const_int_operand.
31312 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31313 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
31314 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31316 (umulsi3_highpart_i): Likewise.
31318 2014-03-11 Richard Biener <rguenther@suse.de>
31320 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31321 Add asserts to guard possible wrong-code bugs.
31323 2014-03-11 Richard Biener <rguenther@suse.de>
31325 PR tree-optimization/60429
31326 PR tree-optimization/60485
31327 * tree-ssa-structalias.c (set_union_with_increment): Properly
31328 take into account all fields that overlap the shifted vars.
31329 (do_sd_constraint): Likewise.
31330 (do_ds_constraint): Likewise.
31331 (get_constraint_for_ptr_offset): Likewise.
31333 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
31335 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31336 (nios2_compute_frame_layout):
31337 Add calculation of cfun->machine->fp_save_offset.
31338 (nios2_expand_prologue): Correct setting of frame pointer register
31340 (nios2_expand_epilogue): Update recovery of stack pointer from
31341 frame pointer accordingly.
31342 (nios2_initial_elimination_offset): Update calculation of offset
31343 for eliminating to HARD_FRAME_POINTER_REGNUM.
31345 2014-03-10 Jakub Jelinek <jakub@redhat.com>
31348 * ipa.c (symtab_remove_unreachable_nodes): Don't call
31349 cgraph_get_create_node on VAR_DECLs.
31351 2014-03-10 Richard Biener <rguenther@suse.de>
31353 PR middle-end/60474
31354 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31356 2014-03-08 Douglas B Rupp <rupp@gnat.com>
31358 * config/vms/vms.opt (vms_float_format): New variable.
31360 2014-03-08 Tobias Burnus <burnus@net-b.de>
31362 * doc/invoke.texi (-fcilkplus): Update implementation status.
31364 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
31365 Richard Biener <rguenther@suse.de>
31367 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31368 consistently accross all TUs.
31369 (run_gcc): Enable -fshort-double automatically at link at link-time
31370 and disallow override.
31372 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
31375 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31376 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31377 if they can't be used.
31379 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31381 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31382 for Solaris 11/x86 ld.
31383 * configure: Regenerate.
31385 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31387 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31388 (LIB_TLS_SPEC): Save as ld_tls_libs.
31389 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31390 (HAVE_AS_IX86_TLSLDM): New test.
31391 * configure, config.in: Regenerate.
31392 * config/i386/i386.c (legitimize_tls_address): Fall back to
31393 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
31394 cannot support TLS_MODEL_LOCAL_DYNAMIC.
31395 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
31396 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
31398 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
31400 * common.opt (fira-loop-pressure): Mark as optimization.
31402 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
31404 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
31405 an OpenMP mappable type.
31407 2014-03-06 Matthias Klose <doko@ubuntu.com>
31409 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
31410 MULTILIB_OSDIRNAMES is not defined.
31412 2014-03-06 Jakub Jelinek <jakub@redhat.com>
31413 Meador Inge <meadori@codesourcery.com>
31416 * config/arm/arm.c (arm_tls_symbol_p): Remove.
31417 (arm_legitimize_address): Call legitimize_tls_address for any
31418 arm_tls_referenced_p expression, handle constant addend. Call it
31419 before testing for !TARGET_ARM.
31420 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
31422 2014-03-06 Richard Biener <rguenther@suse.de>
31424 PR middle-end/60445
31428 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
31430 * tree-streamer.c (record_common_node): Assert we don't record
31431 nodes with type double.
31432 (preload_common_node): Skip type double, complex double and double
31433 pointer since it is now frontend dependent due to fshort-double option.
31435 2014-03-06 Richard Biener <rguenther@suse.de>
31437 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
31438 or -fno-lto is specified and the linker has full plugin support.
31439 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
31440 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
31441 * lto-wrapper.c (merge_and_complain): Merge compile-time
31442 optimization levels.
31443 (run_gcc): And pass it through to the link options.
31445 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
31449 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
31451 * cselib.c (remove_useless_values): Skip to avoid quadratic
31452 behavior if the condition moved from...
31453 (cselib_process_insn): ... here holds.
31455 2014-03-05 Jakub Jelinek <jakub@redhat.com>
31458 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
31459 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
31462 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31463 (TM_H): Add x86-tune.def.
31465 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31467 * config/aarch64/aarch64.c (generic_tunings):
31468 Use cortexa57_extra_costs.
31470 2014-03-05 Jakub Jelinek <jakub@redhat.com>
31473 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
31474 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
31475 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
31478 2014-03-04 Heiher <r@hev.cc>
31480 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
31481 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
31483 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
31485 * config/i386/predicates.md (const2356_operand): Change to ...
31486 (const2367_operand): ... this.
31487 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
31489 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31490 (*avx512pf_scatterpf<mode>sf): Ditto.
31491 (avx512pf_scatterpf<mode>df): Ditto.
31492 (*avx512pf_scatterpf<mode>df_mask): Ditto.
31493 (*avx512pf_scatterpf<mode>df): Ditto.
31494 * config/i386/i386.c (ix86_expand_builtin): Update
31495 incorrect hint operand error message.
31497 2014-03-04 Richard Biener <rguenther@suse.de>
31499 * lto-section-in.c (lto_get_section_data): Fix const cast.
31501 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
31503 * tree-streamer.c (record_common_node): Assert we don't record
31504 nodes with type double.
31505 (preload_common_node): Skip type double, complex double and double
31506 pointer since it is now frontend dependent due to fshort-double option.
31508 2014-03-04 Richard Biener <rguenther@suse.de>
31511 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
31512 (lto_input_toplevel_asms): Likewise.
31513 * lto-section-in.c (lto_get_section_data): Instead do it here
31516 2014-03-04 Richard Biener <rguenther@suse.de>
31518 PR tree-optimization/60382
31519 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
31520 dead PHIs a reduction.
31522 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
31524 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
31526 (_mm_prefetch): Move out of GCC target("sse") pragma.
31527 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
31528 GCC target("prfchw") pragma.
31529 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
31531 * config/i386/i386.c (ix86_option_override_internal): Enable
31532 -mprfchw with -mprefetchwt1.
31534 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
31536 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
31539 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
31541 * opts.h (CL_PCH_IGNORE): Define.
31542 * targhooks.c (option_affects_pch_p):
31543 Return false for options that have CL_PCH_IGNORE set.
31544 * opt-functions.awk: Process PchIgnore.
31545 * doc/options.texi: Document PchIgnore.
31547 * config/arc/arc.opt (misize): Add PchIgnore property.
31549 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31551 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
31552 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
31553 constraint on constants to permit them being loaded into
31554 GENERAL_REGS or BASE_REGS.
31556 2014-03-03 Nick Clifton <nickc@redhat.com>
31558 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
31559 anti-cacnonical alternatives.
31560 (negandhi3_real): New pattern.
31561 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
31563 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
31565 * config/avr/avr-mcus.def: Remove atxmega16x1.
31566 * config/avr/avr-tables.opt: Regenerate.
31567 * config/avr/t-multilib: Regenerate.
31568 * doc/avr-mmcu.texi: Regenerate.
31570 2014-03-03 Tobias Grosser <tobias@grosser.es>
31571 Mircea Namolaru <mircea.namolaru@inria.fr>
31573 PR tree-optimization/58028
31574 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
31577 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31579 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
31580 not handled by recognizers.
31582 2014-03-03 Jakub Jelinek <jakub@redhat.com>
31584 PR middle-end/60175
31585 * function.c (expand_function_end): Don't emit
31586 clobber_return_register sequence if clobber_after is a BARRIER.
31587 * cfgexpand.c (construct_exit_block): Append instructions before
31588 return_label to prev_bb.
31590 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31592 * config/rs6000/constraints.md: Document reserved use of "wc".
31594 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
31597 * ipa.c (function_and_variable_visibility): When dissolving comdat
31598 group, also set all symbols to local.
31600 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
31605 2013-12-14 Jan Hubicka <jh@suse.cz>
31606 PR middle-end/58477
31607 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
31609 2014-03-02 Jon Beniston <jon@beniston.com>
31615 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
31616 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
31617 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
31618 (simple_return, *simple_return): New patterns
31619 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
31620 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
31622 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
31624 * dwarf2out.c (gen_subprogram_die): Tidy.
31626 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
31629 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
31630 (*mov_t_msb_neg_negc): ... this new insn.
31632 2014-02-28 Jason Merrill <jason@redhat.com>
31635 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
31638 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
31641 * dwarf2out.c (decltype_auto_die): New static.
31642 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
31643 (gen_type_die_with_usage): Handle 'decltype(auto)'.
31644 (is_cxx_auto): Likewise.
31646 2014-02-28 Ian Bolton <ian.bolton@arm.com>
31648 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
31649 we are not using general regs only.
31651 2014-02-28 Richard Biener <rguenther@suse.de>
31654 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
31655 previous fix and only allow to remove trivial pre-headers
31656 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
31657 (remove_forwarder_block): Properly update the latch of a loop.
31659 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
31662 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
31663 (cselib_preserved_hash_table): New.
31664 (preserve_constants_and_equivs): Move preserved vals to it.
31665 (cselib_find_slot): Look it up first.
31666 (cselib_init): Initialize it.
31667 (cselib_finish): Release it.
31668 (dump_cselib_table): Dump it.
31670 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
31673 * cselib.c (remove_useless_values): Skip to avoid quadratic
31674 behavior if the condition moved from...
31675 (cselib_process_insn): ... here holds.
31677 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
31680 * var-tracking.c (vt_initialize): Apply the same condition to
31681 preserve the CFA base value.
31683 2014-02-28 Joey Ye <joey.ye@arm.com>
31686 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
31687 if reload in progress or completed.
31689 2014-02-28 Tobias Burnus <burnus@net-b.de>
31691 PR middle-end/60147
31692 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
31695 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
31697 * doc/tm.texi.in (Condition Code Status): Update documention for
31698 relative locations of cc0-setter and cc0-user.
31700 2014-02-27 Jeff Law <law@redhat.com>
31702 PR rtl-optimization/52714
31703 * combine.c (try_combine): When splitting an unrecognized PARALLEL
31704 into two independent simple sets, if I3 is a jump, ensure the
31705 pattern we place into I3 is a (set (pc) ...).
31707 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
31708 Jeff Law <law@redhat.com>
31710 PR rtl-optimization/49847
31711 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
31712 are in different blocks.
31713 * doc/tm.texi (Condition Code Status): Update documention for
31714 relative locations of cc0-setter and cc0-user.
31716 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
31719 * lra.c (lra_emit_add): Check SUBREG too.
31721 2014-02-27 Andreas Schwab <schwab@suse.de>
31723 * config/m68k/m68k.c (m68k_option_override): Disable
31724 -flive-range-shrinkage for classic m68k.
31725 (m68k_override_options_after_change): Likewise.
31727 2014-02-27 Marek Polacek <polacek@redhat.com>
31729 PR middle-end/59223
31730 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
31731 -Wmaybe-uninitialized.
31733 2014-02-27 Alan Modra <amodra@gmail.com>
31736 * reload1.c (emit_input_reload_insns): When reload_override_in,
31737 set old to rl->in_reg when rl->in_reg is a subreg.
31739 2014-02-26 Richard Biener <rguenther@suse.de>
31742 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
31744 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
31746 * common/config/i386/predicates.md (const1256_operand): Remove.
31747 (const2356_operand): New.
31748 (const_1_to_2_operand): Remove.
31749 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
31750 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
31751 (*avx512pf_gatherpf<mode>sf): Ditto.
31752 (avx512pf_gatherpf<mode>df): Ditto.
31753 (*avx512pf_gatherpf<mode>df_mask): Ditto.
31754 (*avx512pf_gatherpf<mode>df): Ditto.
31755 (avx512pf_scatterpf<mode>sf): Ditto.
31756 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31757 (*avx512pf_scatterpf<mode>sf): Ditto.
31758 (avx512pf_scatterpf<mode>df): Ditto.
31759 (*avx512pf_scatterpf<mode>df_mask): Ditto.
31760 (*avx512pf_scatterpf<mode>df): Ditto.
31761 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
31763 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
31765 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
31766 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
31767 (_mm512_mask_testn_epi64_mask): Move to ...
31768 * config/i386/avx512cdintrin.h: Here.
31769 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
31770 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
31771 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
31772 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
31773 TARGET_AVX512F from TARGET_AVX512CD.
31775 2014-02-26 Richard Biener <rguenther@suse.de>
31778 * ipa.c (walk_polymorphic_call_targets): Properly guard
31779 call to inline_update_overall_summary.
31781 2014-02-26 Bin Cheng <bin.cheng@arm.com>
31784 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
31785 and latches only if requested. Fix latch if it is removed.
31786 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
31787 LOOPS_HAVE_PREHEADERS.
31789 2014-02-25 Andrew Pinski <apinski@cavium.com>
31791 * builtins.c (expand_builtin_thread_pointer): Create a new target
31792 when the target is NULL.
31794 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
31796 PR rtl-optimization/60317
31797 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31798 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31799 * lra-assigns.c: Include params.h.
31800 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
31801 other reload pseudos considerations.
31803 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31805 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
31806 to use canonical form for nor<mode>3.
31808 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31811 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
31814 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
31816 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
31817 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
31818 (ix86_handle_option): Handle OPT_mprefetchwt1.
31819 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
31820 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
31822 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31823 OPTION_MASK_ISA_PREFETCHWT1.
31824 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
31825 (PTA_PREFETCHWT1): New.
31826 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
31827 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
31828 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
31829 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
31830 (*prefetch_avx512pf_<mode>_: Change into ...
31831 (*prefetch_prefetchwt1_<mode>: This.
31832 * config/i386/i386.opt (mprefetchwt1): New.
31833 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
31834 (_mm_prefetch): Handle intent to write.
31835 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
31837 2014-02-25 Richard Biener <rguenther@suse.de>
31839 PR middle-end/60291
31840 * emit-rtl.c (mem_attrs_htab): Remove.
31841 (mem_attrs_htab_hash): Likewise.
31842 (mem_attrs_htab_eq): Likewise.
31843 (set_mem_attrs): Always allocate new mem-attrs when something changed.
31844 (init_emit_once): Do not allocate mem_attrs_htab.
31846 2014-02-25 Richard Biener <rguenther@suse.de>
31849 * lto-opts.c (lto_write_options): Output non-explicit conservative
31850 -fwrapv, -fno-trapv and -fno-strict-overflow.
31851 * lto-wrapper.c (merge_and_complain): Handle merging those options.
31852 (run_gcc): And pass them through.
31854 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
31856 * sel-sched.c (calculate_new_fences): New parameter ptime.
31857 Calculate it as a maximum over all fence cycles.
31858 (sel_sched_region_2): Adjust the call to calculate_new_fences.
31859 Print the final schedule timing when sched_verbose.
31861 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
31863 PR rtl-optimization/60292
31864 * sel-sched.c (fill_vec_av_set): Do not reset target availability
31865 bit fot the fence instruction.
31867 2014-02-24 Alangi Derick <alangiderick@gmail.com>
31869 * calls.h: Fix typo in comment.
31871 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
31873 * config/pa/pa.c (pa_output_move_double): Don't valididate when
31874 adjusting offsetable addresses.
31876 2014-02-24 Guozhi Wei <carrot@google.com>
31878 * sparseset.h (sparseset_pop): Fix the wrong index.
31880 2014-02-24 Walter Lee <walt@tilera.com>
31882 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
31883 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
31885 * common/config/tilegx/tilegx-common.c
31886 (TARGET_DEFAULT_TARGET_FLAGS): Define.
31887 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
31888 (LINK_SPEC): Ditto.
31889 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
31890 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
31891 (tilegx_gimplify_va_arg_expr): Handle big endian.
31892 (tilegx_expand_unaligned_load): Ditto.
31893 (tilegx_expand_unaligned_store): Ditto.
31894 (TARGET_RETURN_IN_MSB): New.
31895 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
31896 (TARGET_ENDIAN_DEFAULT): New.
31897 (TARGET_BIG_ENDIAN): Handle big endian.
31898 (BYTES_BIG_ENDIAN): Ditto.
31899 (WORDS_BIG_ENDIAN): Ditto.
31900 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
31901 (ENDIAN_SPEC): New.
31902 (EXTRA_SPECS): New.
31903 * config/tilegx/tilegx.md (extv): Handle big endian.
31905 (insn_st<n>): Ditto.
31906 (insn_st<n>_add<bitsuffix>): Ditto.
31907 (insn_stnt<n>): Ditto.
31908 (insn_stnt<n>_add<bitsuffix>):Ditto.
31909 (vec_interleave_highv8qi): Handle big endian.
31910 (vec_interleave_highv8qi_be): New.
31911 (vec_interleave_highv8qi_le): New.
31912 (insn_v1int_h): Handle big endian.
31913 (vec_interleave_lowv8qi): Handle big endian.
31914 (vec_interleave_lowv8qi_be): New.
31915 (vec_interleave_lowv8qi_le): New.
31916 (insn_v1int_l): Handle big endian.
31917 (vec_interleave_highv4hi): Handle big endian.
31918 (vec_interleave_highv4hi_be): New.
31919 (vec_interleave_highv4hi_le): New.
31920 (insn_v2int_h): Handle big endian.
31921 (vec_interleave_lowv4hi): Handle big endian.
31922 (vec_interleave_lowv4hi_be): New.
31923 (vec_interleave_lowv4hi_le): New.
31924 (insn_v2int_l): Handle big endian.
31925 (vec_interleave_highv2si): Handle big endian.
31926 (vec_interleave_highv2si_be): New.
31927 (vec_interleave_highv2si_le): New.
31928 (insn_v4int_h): Handle big endian.
31929 (vec_interleave_lowv2si): Handle big endian.
31930 (vec_interleave_lowv2si_be): New.
31931 (vec_interleave_lowv2si_le): New.
31932 (insn_v4int_l): Handle big endian.
31933 * config/tilegx/tilegx.opt (mbig-endian): New option.
31934 (mlittle-endian): New option.
31935 * doc/install.texi: Document tilegxbe-linux.
31936 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
31938 2014-02-24 Martin Jambor <mjambor@suse.cz>
31941 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
31942 there are no parameter descriptors.
31944 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
31946 PR rtl-optimization/60268
31947 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
31948 initialization to ...
31949 (sched_rgn_init): ... here.
31950 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
31952 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
31954 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
31957 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
31959 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
31962 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
31964 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
31965 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
31967 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
31969 * config/microblaze/predicates.md: Add cmp_op predicate.
31970 * config/microblaze/microblaze.md: Add branch_compare instruction
31971 which uses cmp_op predicate and emits cmp insn before branch.
31972 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
31973 to microblaze_expand_conditional_branch and consolidate logic.
31974 (microblaze_expand_conditional_branch): emit branch_compare
31975 insn instead of handling cmp op separate from branch insn.
31977 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31979 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
31982 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31984 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
31985 define_insn with define_expand and new define_insn
31986 *altivec_lve<VI_char>x_internal.
31987 (altivec_stve<VI_char>x): Replace define_insn with define_expand
31988 and new define_insn *altivec_stve<VI_char>x_internal.
31989 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
31991 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
31993 (altivec_expand_stvex_be): New function.
31995 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
31997 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
31998 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
31999 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32000 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32002 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
32005 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32006 instead of emit_move_insn.
32008 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32010 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32011 vspltw with vsldoi.
32012 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32013 gen_altivec_vsumsws.
32015 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32017 * config/rs6000/altivec.md (altivec_lvxl): Rename as
32018 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32019 (altivec_lvxl_<mode>): New define_expand incorporating
32020 -maltivec=be semantics where needed.
32021 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32022 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32023 semantics where needed.
32024 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32025 (altivec_stvx_<mode>): New define_expand incorporating
32026 -maltivec=be semantics where needed.
32027 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32028 VM2 iterator instead of V4SI.
32029 (altivec_stvxl_<mode>): New define_expand incorporating
32030 -maltivec=be semantics where needed.
32031 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32032 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32033 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32034 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32035 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32036 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32037 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32038 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32039 ALTIVEC_BUILTIN_STVXL.
32040 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32041 (altivec_expand_stvx_be): Likewise.
32042 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32043 (altivec_expand_lvx_be): Likewise.
32044 (altivec_expand_stvx_be): Likewise.
32045 (altivec_expand_builtin): Add cases for
32046 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32047 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32048 (altivec_init_builtins): Add definitions for
32049 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32050 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32052 2014-02-21 Catherine Moore <clm@codesourcery.com>
32054 * doc/invoke.texi (mvirt, mno-virt): Document.
32055 * config/mips/mips.opt (mvirt): New option.
32056 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32058 2014-02-21 Richard Biener <rguenther@suse.de>
32060 PR tree-optimization/60276
32061 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32062 (STMT_VINFO_MIN_NEG_DIST): New macro.
32063 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32064 STMT_VINFO_MIN_NEG_DIST.
32065 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32066 made for negative dependence distances still hold.
32068 2014-02-21 Richard Biener <rguenther@suse.de>
32070 PR middle-end/60291
32071 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32072 DECL_INITIAL for globals not in the current function context.
32074 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32076 PR tree-optimization/56490
32077 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32078 * tree-ssa-uninit.c: Include params.h.
32079 (compute_control_dep_chain): Add num_calls argument, return false
32080 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32081 num_calls to recursive call.
32082 (find_predicates): Change dep_chain into normal array,
32083 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32084 variable and adjust compute_control_dep_chain caller.
32085 (find_def_preds): Likewise.
32087 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
32089 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32090 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32092 2014-02-21 Nick Clifton <nickc@redhat.com>
32094 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32095 (pushhi1): Likewise.
32096 (popqi1): Add mode to pre_dec.
32097 (pophi1): Likewise.
32099 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32101 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32102 mode for mask of V8SFmode permutation.
32104 2014-02-20 Richard Henderson <rth@redhat.com>
32107 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32108 a new pseudo for OLDVAL.
32110 2014-02-20 Jakub Jelinek <jakub@redhat.com>
32113 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32114 gen_reg_rtx if d->testing_p.
32115 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32116 if d->testing_p and we will certainly return true.
32117 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
32120 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
32122 * emit-rtl.c (gen_reg_rtx): Assert that
32123 crtl->emit.regno_pointer_align_length is non-zero.
32125 2014-02-20 Richard Henderson <rth@redhat.com>
32128 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32129 on failure the store back into EXPECT.
32131 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
32132 Sandra Loosemore <sandra@codesourcery.com>
32134 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32135 * config/nios2/nios2.c (nios2_function_profiler): Add
32136 -fPIC (flag_pic == 2) support.
32137 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32138 (nios2_large_offset_p): New function.
32139 (nios2_unspec_reloc_p): Move up position, update to use
32140 nios2_large_offset_p.
32141 (nios2_unspec_address): Remove function.
32142 (nios2_unspec_offset): New function.
32143 (nios2_large_got_address): New function.
32144 (nios2_got_address): Add large offset support.
32145 (nios2_legitimize_tls_address): Update usage of removed and new
32147 (nios2_symbol_binds_local_p): New function.
32148 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32149 (nios2_legitimize_address): Update to use nios2_large_offset_p.
32150 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32151 (nios2_print_operand): Merge H/L processing, add hiadj/lo
32152 processing for (const (unspec ...)).
32153 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32155 2014-02-20 Richard Biener <rguenther@suse.de>
32157 * tree-cfg.c (replace_uses_by): Mark altered BBs before
32158 doing the substitution.
32159 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32161 2014-02-20 Martin Jambor <mjambor@suse.cz>
32164 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32165 info when checking whether lattices are bottom.
32167 2014-02-20 Richard Biener <rguenther@suse.de>
32169 PR middle-end/60221
32170 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32173 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
32176 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32177 parameter specifying the scaling.
32178 (inline_call): Update.
32179 (want_inline_recursively): Guard division by zero.
32180 (recursive_inlining): Update.
32181 * ipa-inline.h (clone_inlined_nodes): Update.
32183 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32186 * config/i386/i386.c (classify_argument): Pass structures of size
32187 64 bytes or less in register.
32189 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32190 Kirill Yukhin <kirill.yukhin@intel.com>
32192 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32193 (_mm_rcp28_round_ss): Ditto.
32194 (_mm_rsqrt28_round_sd): Ditto.
32195 (_mm_rsqrt28_round_ss): Ditto.
32196 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32197 (_mm_rcp14_round_ss): Ditto.
32198 (_mm_rsqrt14_round_sd): Ditto.
32199 (_mm_rsqrt14_round_ss): Ditto.
32200 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32201 the first input operand, get rid of match_dup.
32202 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32204 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32206 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32207 operand as the first input operand, set type attribute.
32208 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32209 Set type attribute.
32210 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32211 operand as the first input operand, set type attribute.
32213 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32215 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32218 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
32221 * config/i386/i386.c (construct_container): Remove TFmode check
32222 for X86_64_INTEGER_CLASS.
32224 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
32227 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32228 only when -Wpsabi is enabled.
32230 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
32233 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32234 passing arrays in registers are the same as for structs, so remove the
32235 special case for them.
32237 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
32239 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32240 destination type, extract only the valid bits if the source type is not
32241 integral and has a different mode.
32243 2014-02-19 Richard Biener <rguenther@suse.de>
32246 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32249 2014-02-19 Richard Biener <rguenther@suse.de>
32252 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32253 (ipa_modify_call_arguments): Emit an argument load explicitely and
32254 preserve virtual SSA form there and for the replacement call.
32255 Do not update SSA form nor free dominance info.
32257 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32259 * ipa.c (function_and_variable_visibility): Also clear WEAK
32260 flag when disolving COMDAT_GROUP.
32262 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32264 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32265 * ipa-prop.c (ipa_set_jf_known_type): Return early when
32266 not devirtualizing.
32267 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32268 do more sanity checks.
32269 (detect_type_change): Return true when giving up early.
32270 (compute_complex_assign_jump_func): Fix type parameter of
32271 ipa_set_ancestor_jf.
32272 (compute_complex_ancestor_jump_func): Likewise.
32273 (update_jump_functions_after_inlining): Fix updating of
32275 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32277 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32279 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32280 inline clones when edge disappears.
32282 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
32285 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32286 Split 64-bit moves into 2 patterns. Do not allow the use of
32287 direct move for TDmode in little endian, since the decimal value
32288 has little endian bytes within a word, but the 64-bit pieces are
32289 ordered in a big endian fashion, and normal subreg's of TDmode are
32291 (mov<mode>_64bit_dm): Likewise.
32292 (movtd_64bit_nodm): Likewise.
32294 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32296 PR tree-optimization/60174
32297 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32298 statement of an SSA_NAME that occurs in an abnormal PHI node.
32300 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32303 * final.c (SEEN_BB): Remove.
32304 (SEEN_NOTE, SEEN_EMITTED): Renumber.
32305 (final_scan_insn): Don't force_source_line on second
32306 NOTE_INSN_BASIC_BLOCK.
32308 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
32311 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32312 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32313 (type_natural_mode): Warn ABI change when %zmm register is not
32314 available for AVX512F vector value passing.
32316 2014-02-18 Kai Tietz <ktietz@redhat.com>
32319 * config/i386/i386.c (ix86_expand_prologue): Use value in
32320 rax register as displacement when restoring %r10 or %rax.
32321 Fix wrong offset when restoring both registers.
32323 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32325 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32326 assertion with conditional return.
32328 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32329 Uros Bizjak <ubizjak@gmail.com>
32332 * config/i386/driver-i386.c (host_detect_local_cpu): If
32333 YMM state is not saved by the OS, also clear has_f16c. Move
32334 CPUID 0x80000001 handling before YMM state saving checking.
32336 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
32338 PR rtl-optimization/58960
32339 * haifa-sched.c (alloc_global_sched_pressure_data): New,
32340 factored out from ...
32341 (sched_init): ... here.
32342 (free_global_sched_pressure_data): New, factored out from ...
32343 (sched_finish): ... here.
32344 * sched-int.h (free_global_sched_pressure_data): Declare.
32345 * sched-rgn.c (nr_regions_initial): New static global.
32346 (haifa_find_rgns): Initialize it.
32347 (schedule_region): Disable sched-pressure for the newly
32350 2014-02-17 Richard Biener <rguenther@suse.de>
32352 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32353 release SSA defs of pattern stmts.
32355 2014-02-17 Richard Biener <rguenther@suse.de>
32357 * tree-inline.c (expand_call_inline): Release the virtual
32358 operand defined by the call we are about to inline.
32360 2014-02-17 Richard Biener <rguenther@suse.de>
32362 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32364 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
32365 Ilya Tocar <ilya.tocar@intel.com>
32367 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32368 arguments order in builtin.
32369 (_mm512_permutexvar_epi64): Ditto.
32370 (_mm512_mask_permutexvar_epi64): Ditto
32371 (_mm512_maskz_permutexvar_epi32): Ditto
32372 (_mm512_permutexvar_epi32): Ditto
32373 (_mm512_mask_permutexvar_epi32): Ditto
32375 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32377 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32378 (p8_vmrgow): Likewise.
32380 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32382 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32385 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
32388 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32389 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32390 into 64-bit and 32-bit moves. On 64-bit moves, add support for
32391 using direct move instructions on ISA 2.07. Also adjust
32392 instruction length for 64-bit.
32393 (mov<mode>_64bit, TFmode/TDmode): Likewise.
32394 (mov<mode>_32bit, TFmode/TDmode): Likewise.
32396 2014-02-15 Alan Modra <amodra@gmail.com>
32400 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
32401 find_replacement on parts of insn rtl that might be reloaded.
32403 2014-02-15 Richard Biener <rguenther@suse.de>
32405 PR tree-optimization/60183
32406 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
32407 (tree_ssa_phiprop): Calculate and free post-dominators.
32409 2014-02-14 Jeff Law <law@redhat.com>
32411 PR rtl-optimization/60131
32412 * ree.c (get_extended_src_reg): New function.
32413 (combine_reaching_defs): Use it rather than assuming location of REG.
32414 (find_and_remove_re): Verify first operand of extension is
32415 a REG before adding the insns to the copy list.
32417 2014-02-14 Roland McGrath <mcgrathr@google.com>
32419 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
32420 * configure: Regenerated.
32421 * config.in: Regenerated.
32422 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
32423 instead of ASM_SHORT.
32425 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
32426 Richard Earnshaw <rearnsha@arm.com>
32428 PR rtl-optimization/59535
32429 * lra-constraints.c (process_alt_operands): Encourage alternative
32430 when unassigned pseudo class is superset of the alternative class.
32431 (inherit_reload_reg): Don't inherit when optimizing for code size.
32432 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
32433 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
32434 modes not less than 4 for Thumb1.
32436 2014-02-14 Kyle McMartin <kyle@redhat.com>
32439 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
32441 2014-02-14 Richard Biener <rguenther@suse.de>
32443 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
32444 (get_frame_arg): Drop the assert with langhook types_compatible_p.
32445 Do not strip INDIRECT_REFs.
32447 2014-02-14 Richard Biener <rguenther@suse.de>
32450 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
32451 DECL_FUNCTION_SPECIFIC_TARGET.
32452 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
32453 * tree-streamer-out.c (pack_ts_target_option): Remove.
32454 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
32455 (write_ts_function_decl_tree_pointers): Do not stream
32456 DECL_FUNCTION_SPECIFIC_TARGET.
32457 * tree-streamer-in.c (unpack_ts_target_option): Remove.
32458 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
32459 (lto_input_ts_function_decl_tree_pointers): Do not stream
32460 DECL_FUNCTION_SPECIFIC_TARGET.
32462 2014-02-14 Jakub Jelinek <jakub@redhat.com>
32464 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
32465 (get_initial_def_for_induction, vectorizable_induction): Ignore
32466 debug stmts when looking for exit_phi.
32467 (vectorizable_live_operation): Fix up condition.
32469 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
32471 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
32472 nreverse() because it changes the content of original tree list.
32474 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
32476 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
32477 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
32479 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
32481 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
32482 GNU coding standards.
32484 2014-02-13 Jakub Jelinek <jakub@redhat.com>
32487 * dwarf2out.c (gen_subprogram_die): Don't call
32488 add_calling_convention_attribute if subr_die is old_die.
32490 2014-02-13 Sharad Singhai <singhai@google.com>
32492 * doc/optinfo.texi: Fix order of nodes.
32494 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
32496 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
32497 operands[2], not operands[3].
32499 2014-02-13 Richard Biener <rguenther@suse.de>
32502 * doc/install.texi (ISL): Update recommended version to 0.12.2,
32503 mention the possibility of an in-tree build.
32504 (CLooG): Update recommended version to 0.18.1, mention the
32505 possibility of an in-tree build and clarify that the ISL
32506 bundled with CLooG does not work.
32508 2014-02-13 Jakub Jelinek <jakub@redhat.com>
32511 * expr.c (compress_float_constant): If x is a hard register,
32512 extend into a pseudo and then move to x.
32514 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
32516 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
32517 caused by bad second argument to warning_at() with -mhotpatch and
32518 nested functions (e.g. with gfortran).
32520 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
32522 * opts.c (option_name): Remove "enabled by default" rider.
32524 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
32526 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
32528 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
32529 Uros Bizjak <ubizjak@gmail.com>
32532 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
32533 * configure: Regenerated.
32535 2014-02-12 Richard Biener <rguenther@suse.de>
32537 * vec.c (vec_prefix::calculate_allocation): Move as
32538 inline variant to vec.h.
32539 (vec_prefix::calculate_allocation_1): New out-of-line version.
32540 * vec.h (vec_prefix::calculate_allocation_1): Declare.
32541 (vec_prefix::m_has_auto_buf): Rename to ...
32542 (vec_prefix::m_using_auto_storage): ... this.
32543 (vec_prefix::calculate_allocation): Inline the easy cases
32544 and dispatch to calculate_allocation_1 which doesn't need the
32546 (va_heap::reserve): Use gcc_checking_assert.
32547 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
32548 m_using_auto_storage.
32549 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
32551 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
32552 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
32553 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
32555 2014-02-12 Richard Biener <rguenther@suse.de>
32557 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
32558 when we found a dependence.
32560 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
32562 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
32564 (maybe_fold_stmt): ... into this new function.
32565 * omp-low.c (lower_omp): Update comment.
32567 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
32570 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
32573 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
32575 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
32576 identifiers in comments.
32577 (cortexa53_extra_costs): Likewise.
32578 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
32579 (cortexa7_extra_costs): Likewise.
32580 (cortexa12_extra_costs): Likewise.
32581 (cortexa15_extra_costs): Likewise.
32582 (v7m_extra_costs): Likewise.
32584 2014-02-12 Richard Biener <rguenther@suse.de>
32586 PR middle-end/60092
32587 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
32588 of posix_memalign being successful.
32589 (lower_stmt): Restrict lowering of posix_memalign to when
32590 -ftree-bit-ccp is enabled.
32592 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32594 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
32596 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
32598 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
32600 PR rtl-optimization/60116
32601 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
32602 other_insn once the combination has been validated.
32604 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
32607 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
32609 * ipa-devirt.c: Include demangle.h
32610 (odr_violation_reported): New static variable.
32611 (add_type_duplicate): Update odr_violations.
32612 (maybe_record_node): Add completep parameter; update it.
32613 (record_target_from_binfo): Add COMPLETEP parameter;
32614 update it as needed.
32615 (possible_polymorphic_call_targets_1): Likewise.
32616 (struct polymorphic_call_target_d): Add nonconstruction_targets;
32617 rename FINAL to COMPLETE.
32618 (record_targets_from_bases): Sanity check we found the binfo;
32619 fix COMPLETEP updating.
32620 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
32621 parameter, fix computing of COMPLETEP.
32622 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
32623 at LTO time do demangling.
32624 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
32625 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
32627 (gimple_get_virt_method_for_binfo): Likewise.
32628 * gimple-fold.h (gimple_get_virt_method_for_binfo,
32629 gimple_get_virt_method_for_vtable): Update prototypes.
32631 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
32634 * genautomata.c (add_presence_absence): Fix typo with
32635 {final_}presence_list.
32637 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
32640 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
32641 for VSX/Altivec vectors that land in GPR registers.
32643 2014-02-11 Richard Henderson <rth@redhat.com>
32644 Jakub Jelinek <jakub@redhat.com>
32647 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
32648 around drhs if type conversion to lacc->type is not useless.
32650 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32652 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
32654 (cortex-a57.cortex-a53): Likewise.
32655 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
32657 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32659 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
32662 2014-02-11 Renlin Li <Renlin.Li@arm.com>
32664 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
32665 add_options_for_arm_vfp3.
32667 2014-02-11 Jeff Law <law@redhat.com>
32669 PR middle-end/54041
32670 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
32671 object with an undesirable mode.
32673 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32676 * config/i386/sol2-9.h: New file.
32677 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
32678 *-*-solaris2.9*): Use it.
32680 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
32682 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
32683 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
32685 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
32687 * config/microblaze/microblaze.c: Extend mcpu version format
32689 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
32691 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
32693 2014-02-10 Richard Henderson <rth@redhat.com>
32696 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
32697 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
32698 ms-abi vs -mno-accumulate-outgoing-args.
32699 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
32700 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
32703 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
32705 PR middle-end/60080
32706 * cfgexpand.c (expand_asm_operands): Attach source location to
32707 ASM_INPUT rtx objects.
32708 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
32710 2014-02-10 Nick Clifton <nickc@redhat.com>
32712 * config/mn10300/mn10300.c (popcount): New function.
32713 (mn10300_expand_prologue): Include saved registers in stack usage
32716 2014-02-10 Jeff Law <law@redhat.com>
32718 PR middle-end/52306
32719 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
32720 when changing the SET_DEST of a prior insn to avoid an input reload.
32722 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32724 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
32725 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
32726 -mcall-openbsd, or -mcall-linux.
32727 (CC1_ENDIAN_BIG_SPEC): Remove.
32728 (CC1_ENDIAN_LITTLE_SPEC): Remove.
32729 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32730 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
32731 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
32732 and %cc1_endian_default.
32733 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32735 2014-02-10 Richard Biener <rguenther@suse.de>
32737 PR tree-optimization/60115
32738 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
32739 MEM_REF handling. Properly verify that the accesses are not
32740 out of the objects bound.
32742 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32744 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
32747 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
32749 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
32750 proper constants and fix formatting.
32751 (possible_polymorphic_call_targets): Fix formatting.
32753 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
32754 Ilya Tocar <ilya.tocar@intel.com>
32756 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
32757 (_mm512_loadu_epi32): Renamed into...
32758 (_mm512_loadu_si512): This.
32759 (_mm512_storeu_epi32): Renamed into...
32760 (_mm512_storeu_si512): This.
32761 (_mm512_maskz_ceil_ps): Removed.
32762 (_mm512_maskz_ceil_pd): Ditto.
32763 (_mm512_maskz_floor_ps): Ditto.
32764 (_mm512_maskz_floor_pd): Ditto.
32765 (_mm512_floor_round_ps): Ditto.
32766 (_mm512_floor_round_pd): Ditto.
32767 (_mm512_ceil_round_ps): Ditto.
32768 (_mm512_ceil_round_pd): Ditto.
32769 (_mm512_mask_floor_round_ps): Ditto.
32770 (_mm512_mask_floor_round_pd): Ditto.
32771 (_mm512_mask_ceil_round_ps): Ditto.
32772 (_mm512_mask_ceil_round_pd): Ditto.
32773 (_mm512_maskz_floor_round_ps): Ditto.
32774 (_mm512_maskz_floor_round_pd): Ditto.
32775 (_mm512_maskz_ceil_round_ps): Ditto.
32776 (_mm512_maskz_ceil_round_pd): Ditto.
32777 (_mm512_expand_pd): Ditto.
32778 (_mm512_expand_ps): Ditto.
32779 * config/i386/i386.c (ix86_builtins): Remove
32780 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
32781 (bdesc_args): Ditto.
32782 * config/i386/predicates.md (const1256_operand): New.
32783 (const_1_to_2_operand): Ditto.
32784 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32785 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32786 (*avx512pf_gatherpf<mode>sf): Ditto.
32787 (avx512pf_gatherpf<mode>df): Ditto.
32788 (*avx512pf_gatherpf<mode>df_mask): Ditto.
32789 (*avx512pf_gatherpf<mode>df): Ditto.
32790 (avx512pf_scatterpf<mode>sf): Ditto.
32791 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32792 (*avx512pf_scatterpf<mode>sf): Ditto.
32793 (avx512pf_scatterpf<mode>df): Ditto.
32794 (*avx512pf_scatterpf<mode>df_mask): Ditto.
32795 (*avx512pf_scatterpf<mode>df): Ditto.
32796 (avx512f_expand<mode>): Removed.
32797 (<shift_insn><mode>3<mask_name>): Change predicate type.
32799 2014-02-08 Jakub Jelinek <jakub@redhat.com>
32801 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
32802 not at the end of datarefs vector use ordered_remove to avoid
32803 reordering datarefs vector.
32806 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
32807 mark local addressable non-static vars as GOVD_PRIVATE
32808 instead of GOVD_LOCAL.
32809 * omp-low.c (lower_omp_for): Move gimple_bind_vars
32810 and BLOCK_VARS of gimple_bind_block to new_stmt rather
32813 PR middle-end/60092
32814 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
32815 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
32816 assume_aligned or alloc_align attributes.
32817 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
32818 arguments. Handle also assume_aligned and alloc_align attributes.
32819 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
32820 calls to functions with assume_aligned or alloc_align attributes.
32821 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
32823 2014-02-08 Terry Guo <terry.guo@arm.com>
32825 * doc/invoke.texi: Document ARM -march=armv7e-m.
32827 2014-02-08 Jakub Jelinek <jakub@redhat.com>
32829 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
32830 flag on __cilkrts_rethrow builtin.
32833 * ipa-cp.c (determine_versionability): Fail at -O0
32834 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
32835 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
32838 2014-02-04 Jakub Jelinek <jakub@redhat.com>
32841 * tree-inline.c (copy_forbidden): Fail for
32842 __attribute__((optimize (0))) functions.
32844 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
32846 * varpool.c: Include pointer-set.h.
32847 (varpool_remove_unreferenced_decls): Variables in other partitions
32848 will not be output; be however careful to not lose information
32849 about partitioning.
32851 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
32853 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
32854 lookup in the vtable constructor.
32856 2014-02-07 Jeff Law <law@redhat.com>
32859 * config/m68k/m68k.md (ashldi_extsi): Turn into a
32860 define_insn_and_split.
32862 * ipa-inline.c (inline_small_functions): Fix typos.
32864 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32866 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
32867 (s390_can_use_return_insn): Declare.
32868 * config/s390/s390.h (EPILOGUE_USES): Define.
32869 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
32871 (s390_chunkify_start): Handle return JUMP_LABELs.
32872 (s390_early_mach): Emit a main_pool instruction on the entry edge.
32873 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
32874 (s390_can_use_return_insn): New functions.
32875 (s390_fix_long_loop_prediction): Handle conditional returns.
32876 (TARGET_SET_UP_BY_PROLOGUE): Define.
32877 * config/s390/s390.md (ANY_RETURN): New code iterator.
32878 (*creturn, *csimple_return, return, simple_return): New patterns.
32880 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32882 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
32883 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
32884 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
32885 REG_CFA_RESTORE list when deciding not to restore a register.
32887 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32889 * config/s390/s390.c: Include tree-pass.h and context.h.
32890 (s390_early_mach): New function, split out from...
32891 (s390_emit_prologue): ...here.
32892 (pass_data_s390_early_mach): New pass structure.
32893 (pass_s390_early_mach): New class.
32894 (s390_option_override): Create and register early_mach pass.
32895 Move to end of file.
32897 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32899 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
32900 to match for the exit block.
32902 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32904 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
32905 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
32906 Reject misaligned operands.
32908 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32910 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
32912 2014-02-07 Richard Biener <rguenther@suse.de>
32914 PR middle-end/60092
32915 * gimple-low.c (lower_builtin_posix_memalign): New function.
32916 (lower_stmt): Call it to lower posix_memalign in a way
32917 to make alignment info accessible.
32919 2014-02-07 Jakub Jelinek <jakub@redhat.com>
32922 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
32923 __builtin_setjmp_receiver.
32925 2014-02-07 Richard Biener <rguenther@suse.de>
32927 PR middle-end/60092
32928 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
32929 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
32930 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32931 Handle BUILT_IN_POSIX_MEMALIGN.
32932 (find_func_clobbers): Likewise.
32933 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
32934 (call_may_clobber_ref_p_1): Likewise.
32936 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
32939 * ipa-devirt.c (record_target_from_binfo): Remove overactive
32942 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
32945 * lto-cgraph.c (lto_output_node): Use
32946 symtab_get_symbol_partitioning_class.
32947 (lto_output_varpool_node): likewise.
32948 (symtab_get_symbol_partitioning_class): Move here from
32949 lto/lto-partition.c
32950 * cgraph.h (symbol_partitioning_class): Likewise.
32951 (symtab_get_symbol_partitioning_class): Declare.
32953 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
32955 * ggc.h (ggc_internal_cleared_alloc): New macro.
32956 * vec.h (vec_safe_copy): Handle memory stats.
32957 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
32958 * target-globals.c (save_target_globals): Likewise.
32960 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
32963 * expr.c (emit_move_resolve_push): Export; be bit more selective
32964 on when to clear alias set.
32965 * expr.h (emit_move_resolve_push): Declare.
32966 * function.h (struct function): Add tail_call_marked.
32967 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
32968 * config/i386/i386-protos.h (ix86_expand_push): Remove.
32969 * config/i386/i386.md (TImode move expander): De not call
32971 (FP push expanders): Preserve memory attributes.
32972 * config/i386/sse.md (push<mode>1): Remove.
32973 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
32974 (ix86_expand_push): Remove.
32975 * config/i386/mmx.md (push<mode>1): Remove.
32977 2014-02-06 Jakub Jelinek <jakub@redhat.com>
32979 PR rtl-optimization/60030
32980 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
32981 lopart with paradoxical subreg before shifting it up by hprec.
32983 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32985 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
32986 Remove extra newline at end of file.
32987 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
32988 (arm_issue_rate): Handle cortexa57.
32989 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
32990 (cortex-a57.cortex-a53): Likewise.
32992 2014-02-06 Jakub Jelinek <jakub@redhat.com>
32995 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
32996 don't record in REG_FRAME_RELATED_EXPR registers not set in that
32998 (arm_expand_prologue): Adjust all callers.
32999 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33000 info, registers also at the lowest numbered registers side. Use
33001 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33005 * var-tracking.c (adjust_mems): Before adding a SET to
33006 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33008 2014-02-06 Alan Modra <amodra@gmail.com>
33011 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33012 change SDmode to DDmode when lra_in_progress.
33014 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33016 PR middle-end/59150
33017 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33018 free_data_ref on the dr first, and before goto again also set dr
33019 to the next dr. For simd_lane_access, free old datarefs[i] before
33020 overwriting it. For get_vectype_for_scalar_type failure, don't
33021 free_data_ref if simd_lane_access.
33023 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33026 * tree.h (opts_for_fn): New inline function.
33027 (opt_for_fn): Define.
33028 * config/i386/i386.c (ix86_function_regparm): Use
33029 opt_for_fn (decl, optimize) instead of optimize.
33031 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
33033 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33034 for SYMBOL_REF in large memory model.
33036 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33038 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33039 and crypto support.
33040 (cortex-a57): Likewise.
33041 (cortex-a57.cortex-a53): Likewise.
33043 2014-02-06 Yury Gribov <y.gribov@samsung.com>
33044 Kugan Vivekanandarajah <kuganv@linaro.org>
33046 * config/arm/arm.c (arm_vector_alignment_reachable): Check
33048 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33050 2014-02-06 Richard Biener <rguenther@suse.de>
33052 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33053 set_loop_copy and initialize_original_copy_tables.
33055 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
33057 * config/aarch64/aarch64-simd.md
33058 (aarch64_ashr_simddi): Change QI to SI.
33060 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33061 Jakub Jelinek <jakub@redhat.com>
33063 PR middle-end/60013
33064 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33067 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33069 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33070 CODE_FOR_altivec_vpku[hw]um to
33071 CODE_FOR_altivec_vpku[hw]um_direct.
33072 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33073 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33074 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33075 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33077 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33079 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33080 generation for -maltivec=be.
33081 (altivec_vsumsws): Simplify redundant test.
33083 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33085 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33086 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33087 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33088 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33089 gen_altivec_vpkuwum.
33090 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33092 (altivec_vpks<VI_char>ss): Likewise.
33093 (altivec_vpks<VI_char>us): Likewise.
33094 (altivec_vpku<VI_char>us): Likewise.
33095 (altivec_vpku<VI_char>um): Likewise.
33096 (altivec_vpku<VI_char>um_direct): New (copy of
33097 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33099 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33100 target is little endian and -maltivec=be is not specified.
33101 (*altivec_vupkhs<VU_char>_direct): New (copy of
33102 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33103 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33104 target is little endian and -maltivec=be is not specified.
33105 (*altivec_vupkls<VU_char>_direct): New (copy of
33106 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33107 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33108 little endian and -maltivec=be is not specified.
33109 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33110 little endian and -maltivec=be is not specified.
33112 2014-02-05 Richard Henderson <rth@redhat.com>
33115 * combine-stack-adj.c: Revert r206943.
33116 * sched-int.h (struct deps_desc): Add last_args_size.
33117 * sched-deps.c (init_deps): Initialize it.
33118 (sched_analyze_insn): Add OUTPUT dependencies between insns that
33119 contain REG_ARGS_SIZE notes.
33121 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33123 * lto-cgraph.c (asm_nodes_output): Make global.
33124 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33125 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33126 (driver_handle_option): Handle OPT_fwpa.
33128 2014-02-05 Jakub Jelinek <jakub@redhat.com>
33131 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33132 a comment typo and formatting issue. If odr_hash hasn't been
33133 created, return vNULL and set *completep to false.
33135 PR middle-end/57499
33136 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33137 bb with no successors.
33139 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
33142 * doc/invoke.texi (-march): Clarify documentation for ARM.
33143 (-mtune): Likewise.
33146 2014-02-05 Richard Biener <rguenther@suse.de>
33148 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33149 when not vectorizing because of too many alias checks.
33150 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33151 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33153 2014-02-05 Nick Clifton <nickc@redhat.com>
33155 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33156 accept extended registers in any mode when compiling for the MN10300.
33158 2014-02-05 Yury Gribov <y.gribov@samsung.com>
33160 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33161 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33162 sanitization attributes.
33163 (can_inline_edge_p): Likewise.
33164 (sanitize_attrs_match_for_inline_p): New function.
33166 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33168 * ipa-prop.c (detect_type_change): Shor circuit testing of
33169 type changes on THIS pointer.
33171 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
33174 * config/pa/pa.c (legitimize_tls_address): Return original address
33175 if not passed a SYMBOL_REF rtx.
33176 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33178 (pa_emit_move_sequence): Simplify TLS source operands.
33179 (pa_legitimate_constant_p): Reject all TLS constants.
33180 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33181 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33183 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33185 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33186 groups when we know they are controlled by LTO.
33187 * varasm.c (default_binds_local_p_1): If object is in other partition,
33188 it will be resolved locally.
33190 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33192 * config/host-linux.c (linux_gt_pch_use_address): Don't
33193 use SSIZE_MAX because it is not always defined.
33195 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
33198 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33199 threshold for pseudo splitting.
33200 (update_ebb_live_info): Process call argument hard registers and
33201 hard registers from insn definition too.
33202 (max_small_class_regs_num): New constant.
33203 (inherit_in_ebb): Update live hard regs through EBBs. Update
33204 reloads_num only for small register classes. Don't split for
33207 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
33210 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33213 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33215 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33216 visibility is safe.
33218 2014-02-04 Marek Polacek <polacek@redhat.com>
33220 * gdbinit.in (pel): Define.
33222 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33224 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33227 2014-02-04 Richard Biener <rguenther@suse.de>
33230 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33231 in function context local.
33232 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33233 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33234 similar to LTO_imported_decl_ref.
33236 2014-02-04 Jakub Jelinek <jakub@redhat.com>
33238 PR tree-optimization/60002
33239 * cgraphclones.c (build_function_decl_skip_args): Clear
33240 DECL_LANG_SPECIFIC.
33242 PR tree-optimization/60023
33243 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33244 false to gsi_replace.
33245 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33246 has been in some EH region and vec_stmt could throw, add
33247 vec_stmt into the same EH region.
33248 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33249 has no lhs, ignore it.
33250 * internal-fn.c (expand_MASK_LOAD): Likewise.
33253 * tree-inline.c (copy_forbidden): Fail for
33254 __attribute__((optimize (0))) functions.
33257 * omp-low.c (simd_clone_struct_copy): If from->inbranch
33258 is set, copy one less argument.
33259 (expand_simd_clones): Don't subtract clone_info->inbranch
33260 from simd_clone_struct_alloc argument.
33262 PR rtl-optimization/57915
33263 * recog.c (simplify_while_replacing): If all unary/binary/relational
33264 operation arguments are constant, attempt to simplify those.
33266 PR middle-end/59261
33267 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33268 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33270 2014-02-04 Richard Biener <rguenther@suse.de>
33272 PR tree-optimization/60012
33273 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33274 TBAA disambiguation to all DDRs.
33276 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33279 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33280 (LINK_SPEC): Use it for -shared, -shared-libgcc.
33282 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33285 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33287 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33289 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33290 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33292 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33295 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33296 to figure out targets of polymorphic calls with known decl.
33297 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33298 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33299 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33300 (get_polymorphic_call_info): ... here.
33301 (get_polymorphic_call_info_from_invariant): New function.
33303 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33305 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33306 lookup via vtable pointer; check for type consistency
33307 and turn inconsitent facts into UNREACHABLE.
33308 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33309 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33310 type inconsistent querries; return UNREACHABLE instead.
33312 2014-02-03 Richard Henderson <rth@twiddle.net>
33315 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33316 already processed this node.
33317 (normalize_one_pred_1): Pass along mark_set.
33318 (normalize_one_pred): Create and destroy a pointer_set_t.
33319 (normalize_one_pred_chain): Likewise.
33321 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
33323 PR gcov-profile/58602
33324 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33326 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33329 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33330 -fno-devirtualize; try to devirtualize by the knowledge of
33331 virtual table pointer given by aggregate propagation.
33332 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33333 (ipa_print_node_jump_functions): Dump also offset that
33334 is relevant for polymorphic calls.
33335 (determine_known_aggregate_parts): Add arg_type parameter; use it
33336 instead of determining the type from pointer type.
33337 (ipa_compute_jump_functions_for_edge): Update call of
33338 determine_known_aggregate_parts.
33339 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33340 (gimple_get_virt_method_for_binfo): ... here; simplify using
33341 vtable_pointer_value_to_vtable.
33342 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33343 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33344 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33345 (vtable_pointer_value_to_vtable): Break out from ...; handle also
33347 (vtable_pointer_value_to_binfo): ... here.
33348 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33350 2014-02-03 Teresa Johnson <tejohnson@google.com>
33352 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33353 redef of outer loop index variable.
33355 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
33359 * doc/extend.texi (Function Attributes): Typo.
33361 2014-02-03 Cong Hou <congh@google.com>
33363 PR tree-optimization/60000
33364 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33365 if the vectorized statement is a store. A store statement can only
33366 appear at the end of pattern statements.
33368 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
33370 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33371 (ix86_option_override_internal): Default long double to 64-bit for
33372 32-bit Bionic and to 128-bit for 64-bit Bionic.
33374 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33375 TARGET_LONG_DOUBLE_128 is true.
33376 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33378 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33379 (mlong-double-64): Negate -mlong-double-128.
33380 (mlong-double-128): New option.
33382 * config/i386/i386-c.c (ix86_target_macros): Define
33383 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33385 * doc/invoke.texi: Document -mlong-double-128.
33387 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
33389 PR rtl-optimization/60024
33390 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33392 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
33394 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
33396 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
33398 PR rtl-optimization/57662
33399 * sel-sched.c (code_motion_path_driver): Do not mark already not
33400 existing blocks in the visiting bitmap.
33402 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
33404 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
33405 on the insn being emitted.
33407 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
33408 Will Deacon <will.deacon@arm.com>
33410 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
33412 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33414 * config/arm/arm-tables.opt: Regenerate.
33416 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33418 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
33419 for vector types other than V16QImode.
33420 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
33421 define_expand, and call altivec_expand_vec_perm_le when producing
33422 code with little endian element order.
33423 (*altivec_vperm_<mode>_internal): New insn having previous
33424 behavior of altivec_vperm_<mode>.
33425 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
33426 altivec_expand_vec_perm_le when producing code with little endian
33428 (*altivec_vperm_<mode>_uns_internal): New insn having previous
33429 behavior of altivec_vperm_<mode>_uns.
33431 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33433 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
33434 (altivec_vsumsws): Add handling for -maltivec=be with a little
33436 (altivec_vsumsws_direct): New.
33437 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
33438 gen_altivec_vsumsws.
33440 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
33442 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
33443 vtable_pointer_value_to_binfo): New functions.
33444 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
33445 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
33447 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
33449 * config/nios2/nios2.md (load_got_register): Initialize GOT
33450 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
33451 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
33453 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
33455 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
33456 preserverd by passthrough, do not propagate the type.
33458 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
33460 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
33461 (mips_atomic_assign_expand_fenv): New function.
33462 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33464 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
33466 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
33467 (__builtin_mips_set_fcsr): Likewise.
33468 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
33469 MIPS_USI_FTYPE_VOID.
33470 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
33471 (mips16_expand_set_fcsr): Likewise.
33472 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
33473 (mips16_set_fcsr_stub): Likewise.
33474 (mips16_get_fcsr_one_only_stub): New class.
33475 (mips16_set_fcsr_one_only_stub): Likewise.
33476 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
33477 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
33478 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
33479 (hard_float): New availability predicate.
33480 (mips_builtins): Add get_fcsr and set_fcsr.
33481 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
33482 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
33483 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
33484 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
33485 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
33488 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
33490 * config/mips/mips.c (mips_one_only_stub): New class.
33491 (mips_need_mips16_rdhwr_p): Replace with...
33492 (mips16_rdhwr_stub): ...this new variable.
33493 (mips16_stub_call_address): New function.
33494 (mips16_rdhwr_one_only_stub): New class.
33495 (mips_expand_thread_pointer): Use mips16_stub_call_address.
33496 (mips_output_mips16_rdhwr): Delete.
33497 (mips_finish_stub): New function.
33498 (mips_code_end): Use it to handle rdhwr stubs.
33500 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
33503 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
33504 when calculating size of integer atomic types.
33506 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
33508 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
33510 2014-02-01 Jakub Jelinek <jakub@redhat.com>
33512 PR tree-optimization/60003
33513 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
33514 * profile.c (branch_prob): Use gimple_call_builtin_p
33515 to check for BUILT_IN_SETJMP_RECEIVER.
33516 * tree-inline.c (copy_bb): Call notice_special_calls.
33518 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
33521 * lra-constraints.c (process_alt_operands): Update reload_sum only
33524 2014-01-31 Richard Henderson <rth@redhat.com>
33526 PR middle-end/60004
33527 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
33528 until after else_eh is processed.
33530 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
33532 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
33533 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
33534 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
33535 in smmintrin.h, remove them.
33536 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
33537 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
33538 * config/i386/i386.md (ROUND_SAE): Fix value.
33539 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
33540 (const48_operand): New.
33541 * config/i386/subst.md (round), (round_expand): Use
33542 const_4_or_8_to_11_operand.
33543 (round_saeonly), (round_saeonly_expand): Use const48_operand.
33545 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
33547 * config/i386/constraints.md (Yk): Swap meaning with k.
33548 * config/i386/i386.md (movhi_internal): Change Yk to k.
33549 (movqi_internal): Ditto.
33550 (*k<logic><mode>): Ditto.
33553 (kandn<mode>): Ditto.
33554 (*<code>hi_1): Ditto.
33555 (*<code>qi_1): Ditto.
33556 (kxnor<mode>): Ditto.
33557 (kortestzhi): Ditto.
33558 (kortestchi): Ditto.
33560 (*one_cmplhi2_1): Ditto.
33561 (*one_cmplqi2_1): Ditto.
33562 * config/i386/sse.md (): Change k to Yk.
33563 (avx512f_load<mode>_mask): Ditto.
33564 (avx512f_blendm<mode>): Ditto.
33565 (avx512f_store<mode>_mask): Ditto.
33566 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
33567 (avx512f_storedqu<mode>_mask): Ditto.
33568 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
33570 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
33571 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
33572 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
33573 (avx512f_maskcmp<mode>3): Ditto.
33574 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
33575 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
33576 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
33577 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
33578 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
33579 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
33580 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
33581 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
33582 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
33583 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
33584 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
33585 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
33586 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
33587 (vec_extract_lo_<mode>_maskm): Ditto.
33588 (vec_extract_hi_<mode>_maskm): Ditto.
33589 (avx512f_vternlog<mode>_mask): Ditto.
33590 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
33591 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
33592 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
33593 (avx512f_<code>v8div16qi2_mask): Ditto.
33594 (avx512f_<code>v8div16qi2_mask_store): Ditto.
33595 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
33596 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
33597 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
33598 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
33599 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33600 (*avx512pf_gatherpf<mode>df_mask): Ditto.
33601 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33602 (*avx512pf_scatterpf<mode>df_mask): Ditto.
33603 (avx512cd_maskb_vec_dupv8di): Ditto.
33604 (avx512cd_maskw_vec_dupv16si): Ditto.
33605 (avx512f_vpermi2var<mode>3_maskz): Ditto.
33606 (avx512f_vpermi2var<mode>3_mask): Ditto.
33607 (avx512f_vpermi2var<mode>3_mask): Ditto.
33608 (avx512f_vpermt2var<mode>3_maskz): Ditto.
33609 (*avx512f_gathersi<mode>): Ditto.
33610 (*avx512f_gathersi<mode>_2): Ditto.
33611 (*avx512f_gatherdi<mode>): Ditto.
33612 (*avx512f_gatherdi<mode>_2): Ditto.
33613 (*avx512f_scattersi<mode>): Ditto.
33614 (*avx512f_scatterdi<mode>): Ditto.
33615 (avx512f_compress<mode>_mask): Ditto.
33616 (avx512f_compressstore<mode>_mask): Ditto.
33617 (avx512f_expand<mode>_mask): Ditto.
33618 * config/i386/subst.md (mask): Change k to Yk.
33619 (mask_scalar_merge): Ditto.
33622 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
33624 * doc/extend.texi (Vector Extensions): Document ?: in C++.
33626 2014-01-31 Richard Biener <rguenther@suse.de>
33628 PR middle-end/59990
33629 * builtins.c (fold_builtin_memory_op): Make sure to not
33630 use a floating-point mode or a boolean or enumeral type for
33631 the copy operation.
33633 2014-01-30 DJ Delorie <dj@redhat.com>
33635 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
33636 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
33637 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
33638 whenever main() has an epilogue.
33640 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33642 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
33643 unused variable "field".
33644 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
33645 (vsx_mergeh_<mode>): Likewise.
33646 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
33647 (altivec_vmrghh): Likewise.
33648 (altivec_vmrghw): Likewise.
33649 (altivec_vmrglb): Likewise.
33650 (altivec_vmrglh): Likewise.
33651 (altivec_vmrglw): Likewise.
33652 (altivec_vspltb): Add missing uses.
33653 (altivec_vsplth): Likewise.
33654 (altivec_vspltw): Likewise.
33655 (altivec_vspltsf): Likewise.
33657 2014-01-30 Jakub Jelinek <jakub@redhat.com>
33660 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
33661 frame related instructions.
33663 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
33665 PR rtl-optimization/59959
33666 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
33667 any reload of register whose subreg is invalid.
33669 2014-01-30 Jakub Jelinek <jakub@redhat.com>
33671 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
33672 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
33673 Add missing return type - void.
33675 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33677 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
33678 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
33679 remove element index adjustment for endian (now handled in vsx.md
33681 (altivec_expand_vec_perm_const): Use
33682 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
33683 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
33684 (vsx_xxspltw_<mode>): Adjust element index for little endian.
33685 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
33686 define_expand and a new define_insn *altivec_vspltb_internal;
33687 adjust for -maltivec=be on a little endian target.
33688 (altivec_vspltb_direct): New.
33689 (altivec_vsplth): Divide into a define_expand and a new
33690 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
33691 little endian target.
33692 (altivec_vsplth_direct): New.
33693 (altivec_vspltw): Divide into a define_expand and a new
33694 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
33695 little endian target.
33696 (altivec_vspltw_direct): New.
33697 (altivec_vspltsf): Divide into a define_expand and a new
33698 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
33699 a little endian target.
33701 2014-01-30 Richard Biener <rguenther@suse.de>
33703 PR tree-optimization/59993
33704 * tree-ssa-forwprop.c (associate_pointerplus): Check we
33705 can propagate form the earlier stmt and avoid the transform
33706 when the intermediate result is needed.
33708 2014-01-30 Alangi Derick <alangiderick@gmail.com>
33710 * README.Portability: Fix typo.
33712 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
33714 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
33715 comparison_operator with ordered_comparison_operator.
33717 2014-01-30 Nick Clifton <nickc@redhat.com>
33719 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
33720 Rename to mn10300_store_multiple_regs.
33721 * config/mn10300/mn10300.c: Likewise.
33722 * config/mn10300/mn10300.md (store_movm): Fix typo: call
33723 store_multiple_regs.
33724 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
33725 Call mn10300_store_multiple_regs.
33727 2014-01-30 Nick Clifton <nickc@redhat.com>
33728 DJ Delorie <dj@redhat.com>
33730 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
33731 %fp 2 to keep registers after it properly word-aligned.
33732 (rl78_alloc_physical_registers_umul): Handle the case where both
33733 input operands are the same.
33735 2014-01-30 Richard Biener <rguenther@suse.de>
33737 PR tree-optimization/59903
33738 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
33741 2014-01-30 Jason Merrill <jason@redhat.com>
33744 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
33747 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
33749 2014-01-30 Richard Biener <rguenther@suse.de>
33751 PR tree-optimization/59951
33752 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
33754 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
33757 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
33758 SFmode to DFmode case.
33760 2014-01-29 DJ Delorie <dj@redhat.com>
33762 * config/msp430/msp430.opt (-minrt): New.
33763 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
33765 (ENDFILE_SPEC): Likewise.
33767 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
33769 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
33770 (estimate_function_body_sizes): Use it.
33772 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
33775 * dwarf2out.c (is_cxx_auto): New.
33776 (is_base_type): Use it.
33777 (gen_type_die_with_usage): Likewise.
33779 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33781 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
33782 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
33783 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
33784 -maltivec=be with LE targets.
33785 (vsx_mergeh_<mode>): Likewise.
33786 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
33787 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
33788 (altivec_vmrghb): Replace with define_expand and new
33789 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
33790 (altivec_vmrghb_direct): New define_insn.
33791 (altivec_vmrghh): Replace with define_expand and new
33792 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
33793 (altivec_vmrghh_direct): New define_insn.
33794 (altivec_vmrghw): Replace with define_expand and new
33795 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
33796 (altivec_vmrghw_direct): New define_insn.
33797 (*altivec_vmrghsf): Adjust for endianness.
33798 (altivec_vmrglb): Replace with define_expand and new
33799 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
33800 (altivec_vmrglb_direct): New define_insn.
33801 (altivec_vmrglh): Replace with define_expand and new
33802 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
33803 (altivec_vmrglh_direct): New define_insn.
33804 (altivec_vmrglw): Replace with define_expand and new
33805 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
33806 (altivec_vmrglw_direct): New define_insn.
33807 (*altivec_vmrglsf): Adjust for endianness.
33808 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33809 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33810 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33811 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33812 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33813 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33814 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33815 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33817 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
33819 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
33820 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
33823 2014-01-29 Richard Biener <rguenther@suse.de>
33825 PR tree-optimization/58742
33826 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
33827 associate_pointerplus_align.
33828 (associate_pointerplus_diff): New function.
33829 (associate_pointerplus): Likewise. Call associate_pointerplus_align
33830 and associate_pointerplus_diff.
33832 2014-01-29 Richard Biener <rguenther@suse.de>
33834 * lto-streamer.h (LTO_major_version): Bump to 3.
33835 (LTO_minor_version): Reset to 0.
33837 2014-01-29 Renlin Li <Renlin.Li@arm.com>
33839 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
33840 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
33841 (arm_file_start): Generate correct asm header for armv7ve.
33842 * config/arm/bpabi.h: Add multilib support for armv7ve.
33843 * config/arm/driver-arm.c: Change the architectures of cortex-a7
33844 and cortex-a15 to armv7ve.
33845 * config/arm/t-aprofile: Add multilib support for armv7ve.
33846 * doc/invoke.texi: Document -march=armv7ve.
33848 2014-01-29 Richard Biener <rguenther@suse.de>
33850 PR tree-optimization/58742
33851 * tree-ssa-forwprop.c (associate_plusminus): Return true
33852 if we changed sth, defer EH cleanup to ...
33853 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
33854 (simplify_mult): New function.
33856 2014-01-29 Jakub Jelinek <jakub@redhat.com>
33858 PR middle-end/59917
33859 PR tree-optimization/59920
33860 * tree.c (build_common_builtin_nodes): Remove
33861 __builtin_setjmp_dispatcher initialization.
33862 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
33863 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
33864 instead of gsi_after_labels + manually skipping debug stmts.
33865 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
33866 ignore bbs with IFN_ABNORMAL_DISPATCHER.
33867 * tree-inline.c (copy_edges_for_bb): Remove
33868 can_make_abnormal_goto argument, instead add abnormal_goto_dest
33869 argument. Ignore computed_goto_p stmts. Don't call
33870 make_abnormal_goto_edges. If a call might need abnormal edges
33871 for non-local gotos, see if it already has an edge to
33872 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
33873 with true argument, don't do anything then, otherwise add
33874 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
33875 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
33877 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
33878 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
33879 (lower_stmt): Don't set data->calls_builtin_setjmp.
33880 (lower_builtin_setjmp): Adjust comment.
33881 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
33882 * tree-cfg.c (found_computed_goto): Remove.
33883 (factor_computed_gotos): Remove.
33884 (make_goto_expr_edges): Return bool, true for computed gotos.
33885 Don't call make_abnormal_goto_edges.
33886 (build_gimple_cfg): Don't set found_computed_goto, don't call
33887 factor_computed_gotos.
33888 (computed_goto_p): No longer static.
33889 (make_blocks): Don't set found_computed_goto.
33890 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
33891 (make_edges): If make_goto_expr_edges returns true, push bb
33892 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
33893 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
33894 vector. Record mapping between bbs and OpenMP regions if there
33895 are any, adjust make_gimple_omp_edges caller. Call
33896 handle_abnormal_edges.
33897 (make_abnormal_goto_edges): Remove.
33898 * tree-cfg.h (make_abnormal_goto_edges): Remove.
33899 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
33900 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
33901 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
33902 * internal-fn.def (ABNORMAL_DISPATCHER): New.
33903 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
33904 filling *region also set *region_idx to (*region)->entry->index.
33907 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
33908 For REGs set ORIGINAL_REGNO.
33910 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
33912 * doc/md.texi: Mention that a target shouldn't implement
33913 vec_widen_(s|u)mul_even/odd pair if it is less efficient
33916 2014-01-29 Jakub Jelinek <jakub@redhat.com>
33918 PR tree-optimization/59594
33919 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
33920 a copy of the datarefs vector rather than the vector itself.
33922 2014-01-28 Jason Merrill <jason@redhat.com>
33925 * dwarf2out.c (auto_die): New static.
33926 (gen_type_die_with_usage): Handle C++1y 'auto'.
33927 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
33930 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
33933 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
33934 (SPEC_X32): Likewise.
33935 (SPEC_64): Likewise.
33936 * config/i386/i386.c (ix86_option_override_internal): Turn off
33937 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
33939 (x86_file_start): Output .code16gcc for TARGET_16BIT.
33940 * config/i386/i386.h (TARGET_16BIT): New macro.
33941 (TARGET_16BIT_P): Likewise.
33942 * config/i386/i386.opt: Add m16.
33943 * doc/invoke.texi: Document -m16.
33945 2014-01-28 Jakub Jelinek <jakub@redhat.com>
33947 PR preprocessor/59935
33948 * input.c (location_get_source_line): Bail out on when line number
33949 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
33951 2014-01-28 Richard Biener <rguenther@suse.de>
33953 PR tree-optimization/58742
33954 * tree-ssa-forwprop.c (associate_plusminus): Handle
33955 pointer subtraction of the form (T)(P + A) - (T)P.
33957 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33959 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
33962 2014-01-28 Richard Biener <rguenther@suse.de>
33965 2014-01-28 Richard Biener <rguenther@suse.de>
33967 PR rtl-optimization/45364
33968 PR rtl-optimization/59890
33969 * var-tracking.c (local_get_addr_clear_given_value): Handle
33970 already cleared slot.
33971 (val_reset): Handle not allocated local_get_addr_cache.
33972 (vt_find_locations): Use post-order on the inverted CFG.
33974 2014-01-28 Richard Biener <rguenther@suse.de>
33976 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
33978 2014-01-28 Richard Biener <rguenther@suse.de>
33980 PR rtl-optimization/45364
33981 PR rtl-optimization/59890
33982 * var-tracking.c (local_get_addr_clear_given_value): Handle
33983 already cleared slot.
33984 (val_reset): Handle not allocated local_get_addr_cache.
33985 (vt_find_locations): Use post-order on the inverted CFG.
33987 2014-01-28 Alan Modra <amodra@gmail.com>
33989 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
33990 * configure.ac <recursive call for build != host>: Define
33991 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
33992 and LD_FOR_BUILD too.
33993 * configure: Regenerate.
33995 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
33997 * config/i386/i386.c (get_builtin_code_for_version): Separate
33998 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
33999 Broadwell from Haswell.
34001 2014-01-27 Steve Ellcey <sellcey@mips.com>
34003 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34004 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34005 * config/mips/mips.c (mips_option_override): Change setting
34007 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34008 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34009 Change from Mask to Var.
34011 2014-01-27 Jeff Law <law@redhat.com>
34013 * ipa-inline.c (inline_small_functions): Fix typo.
34015 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
34017 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34018 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34019 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34020 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34021 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34022 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34023 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34024 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34025 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34026 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34027 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34028 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34029 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34030 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34031 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34032 (_mm512_storeu_epi64): Ditto.
34033 (_mm512_cmpge_epi32_mask): Ditto.
34034 (_mm512_cmpge_epu32_mask): Ditto.
34035 (_mm512_cmpge_epi64_mask): Ditto.
34036 (_mm512_cmpge_epu64_mask): Ditto.
34037 (_mm512_cmple_epi32_mask): Ditto.
34038 (_mm512_cmple_epu32_mask): Ditto.
34039 (_mm512_cmple_epi64_mask): Ditto.
34040 (_mm512_cmple_epu64_mask): Ditto.
34041 (_mm512_cmplt_epi32_mask): Ditto.
34042 (_mm512_cmplt_epu32_mask): Ditto.
34043 (_mm512_cmplt_epi64_mask): Ditto.
34044 (_mm512_cmplt_epu64_mask): Ditto.
34045 (_mm512_cmpneq_epi32_mask): Ditto.
34046 (_mm512_cmpneq_epu32_mask): Ditto.
34047 (_mm512_cmpneq_epi64_mask): Ditto.
34048 (_mm512_cmpneq_epu64_mask): Ditto.
34049 (_mm512_expand_pd): Ditto.
34050 (_mm512_expand_ps): Ditto.
34051 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34052 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34053 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34054 * config/i386/i386.c (ix86_builtins): Add
34055 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34056 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34057 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34058 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34059 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34060 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34061 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34062 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34063 IX86_BUILTIN_PMOVUSQW512_MEM.
34064 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34065 __builtin_ia32_pmovsqd512mem_mask,
34066 __builtin_ia32_pmovqd512mem_mask,
34067 __builtin_ia32_pmovusqw512mem_mask,
34068 __builtin_ia32_pmovsqw512mem_mask,
34069 __builtin_ia32_pmovqw512mem_mask,
34070 __builtin_ia32_pmovusdw512mem_mask,
34071 __builtin_ia32_pmovsdw512mem_mask,
34072 __builtin_ia32_pmovdw512mem_mask,
34073 __builtin_ia32_pmovqb512mem_mask,
34074 __builtin_ia32_pmovusqb512mem_mask,
34075 __builtin_ia32_pmovsqb512mem_mask,
34076 __builtin_ia32_pmovusdb512mem_mask,
34077 __builtin_ia32_pmovsdb512mem_mask,
34078 __builtin_ia32_pmovdb512mem_mask.
34079 (bdesc_args): Add __builtin_ia32_expanddf512,
34080 __builtin_ia32_expandsf512.
34081 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34082 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34083 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34084 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34085 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34086 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34087 (avx512f_<code>v8div16qi2_mask_store): This.
34088 (avx512f_expand<mode>): New.
34090 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
34092 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34094 (_mm512_mask_prefetch_i64gather_pd): Ditto.
34095 (_mm512_prefetch_i32scatter_pd): Ditto.
34096 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34097 (_mm512_prefetch_i64scatter_pd): Ditto.
34098 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34099 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34100 (_mm512_mask_prefetch_i64gather_ps): Ditto.
34101 (_mm512_prefetch_i32scatter_ps): Ditto.
34102 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34103 (_mm512_prefetch_i64scatter_ps): Ditto.
34104 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34105 * config/i386/i386-builtin-types.def: Define
34106 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34107 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34108 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34109 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34110 IX86_BUILTIN_SCATTERPFQPD.
34111 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34112 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34113 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34114 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34115 __builtin_ia32_scatterpfqps.
34116 (ix86_expand_builtin): Expand new built-ins.
34117 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34118 fix memory access data type.
34119 (*avx512pf_gatherpf<mode>_mask): Ditto.
34120 (*avx512pf_gatherpf<mode>): Ditto.
34121 (avx512pf_scatterpf<mode>): Ditto.
34122 (*avx512pf_scatterpf<mode>_mask): Ditto.
34123 (*avx512pf_scatterpf<mode>): Ditto.
34124 (GATHER_SCATTER_SF_MEM_MODE): New.
34125 (avx512pf_gatherpf<mode>df): Ditto.
34126 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34127 (*avx512pf_scatterpf<mode>df): Ditto.
34129 2014-01-27 Jakub Jelinek <jakub@redhat.com>
34132 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34133 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34136 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34138 * common/config/arm/arm-common.c
34139 (arm_rewrite_mcpu): Handle multiple names.
34141 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34143 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34145 * gimple-builder.h (create_gimple_tmp): Delete.
34147 2014-01-27 Christian Bruel <christian.bruel@st.com>
34149 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34152 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
34154 * config/pa/pa.md (call): Generate indirect long calls to non-local
34155 functions when outputing 32-bit code.
34156 (call_value): Likewise except for special call to buggy powf function.
34158 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34159 portable runtime and PIC indirect calls.
34160 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34161 and PIC call sequences. Use ldo instead of blr to set return register
34162 in PIC call sequence.
34164 2014-01-25 Walter Lee <walt@tilera.com>
34166 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34167 avoid clobbering a live register.
34169 2014-01-25 Walter Lee <walt@tilera.com>
34171 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34172 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34173 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34174 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34176 2014-01-25 Walter Lee <walt@tilera.com>
34178 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34179 arguments on even registers.
34180 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34182 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34183 (BIGGEST_ALIGNMENT): Ditto.
34184 (BIGGEST_FIELD_ALIGNMENT): Ditto.
34186 2014-01-25 Walter Lee <walt@tilera.com>
34188 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34189 insns before bundling.
34190 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34192 2014-01-25 Walter Lee <walt@tilera.com>
34194 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34195 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34196 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34198 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34200 * config/mips/constraints.md (kl): Delete.
34201 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34202 define expands, using...
34203 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34204 instructions for MIPS16.
34205 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34206 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34208 2014-01-25 Walter Lee <walt@tilera.com>
34210 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34214 2014-01-25 Walter Lee <walt@tilera.com>
34216 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34217 (TARGET_EXPAND_TO_RTL_HOOK): Define.
34219 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34221 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34224 2014-01-25 Jakub Jelinek <jakub@redhat.com>
34226 * print-rtl.c (in_call_function_usage): New var.
34227 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34228 EXPR_LIST mode as mode and not as reg note name.
34230 PR middle-end/59561
34231 * cfgloopmanip.c (copy_loop_info): If
34232 loop->warned_aggressive_loop_optimizations, make sure
34233 the flag is set in target loop too.
34235 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
34237 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34239 * builtins.def: Likewise.
34240 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34241 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34242 * ira.c (ira_setup_eliminable_regset): Likewise.
34243 * omp-low.c (gate_expand_omp): Likewise.
34244 (execute_lower_omp): Likewise.
34245 (diagnose_sb_0): Likewise.
34246 (gate_diagnose_omp_blocks): Likewise.
34247 (simd_clone_clauses_extract): Likewise.
34250 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34252 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34253 correction for little endian...
34254 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34257 2014-01-24 Jeff Law <law@redhat.com>
34259 PR tree-optimization/59919
34260 * tree-vrp.c (find_assert_locations_1): Do not register asserts
34261 for non-returning calls.
34263 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
34265 * common/config/aarch64/aarch64-common.c
34266 (aarch64_rewrite_mcpu): Handle multiple names.
34267 * config/aarch64/aarch64.h
34268 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34270 2014-01-24 Dodji Seketeli <dodji@redhat.com>
34272 * input.c (add_file_to_cache_tab): Handle the case where fopen
34275 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
34278 * config/i386/i386.md (pushsf splitter): Get stack adjustment
34279 from push operand if code of push isn't PRE_DEC.
34281 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
34284 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34285 -mquad-memory-atomic. Update -mquad-memory documentation to say
34286 it is only used for non-atomic loads/stores.
34288 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34289 -mquad-memory or -mquad-memory-atomic switches.
34291 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34292 -mquad-memory-atomic to ISA 2.07 support.
34294 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34295 to separate support of normal quad word memory operations (ldq, stq)
34296 from the atomic quad word memory operations.
34298 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34299 support to separate non-atomic quad word operations from atomic
34300 quad word operations. Disable non-atomic quad word operations in
34301 little endian mode so that we don't have to swap words after the
34302 load and before the store.
34303 (quad_load_store_p): Add comment about atomic quad word support.
34304 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34305 options printed with -mdebug=reg.
34307 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34308 -mquad-memory-atomic as the test for whether we have quad word
34309 atomic instructions.
34310 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34311 or -mp8-vector are used, allow byte/half-word atomic operations.
34313 * config/rs6000/sync.md (load_lockedti): Insure that the address
34314 is a proper indexed or indirect address for the lqarx instruction.
34315 On little endian systems, swap the hi/lo registers after the lqarx
34317 (load_lockedpti): Use indexed_or_indirect_operand predicate to
34318 insure the address is valid for the lqarx instruction.
34319 (store_conditionalti): Insure that the address is a proper indexed
34320 or indirect address for the stqcrx. instruction. On little endian
34321 systems, swap the hi/lo registers before doing the stqcrx.
34323 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34324 insure the address is valid for the stqcrx. instruction.
34326 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34327 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34328 type of quad memory support is available.
34330 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
34332 PR regression/59915
34333 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34334 there is a danger of looping.
34336 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
34338 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34339 force flag_ira_loop_pressure if set via command line.
34341 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
34343 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34344 (ashr_simd): New builtin handling DI mode.
34345 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34346 (aarch64_sshr_simddi): New match pattern.
34347 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34348 (vshrd_n_s64): Likewise.
34349 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34351 2014-01-23 Nick Clifton <nickc@redhat.com>
34353 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34354 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34355 favour of mcu specific scripts.
34356 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34359 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
34360 Alex Velenko <Alex.Velenko@arm.com>
34362 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34363 (vaddv_s16): Likewise.
34364 (vaddv_s32): Likewise.
34365 (vaddv_u8): Likewise.
34366 (vaddv_u16): Likewise.
34367 (vaddv_u32): Likewise.
34368 (vaddvq_s8): Likewise.
34369 (vaddvq_s16): Likewise.
34370 (vaddvq_s32): Likewise.
34371 (vaddvq_s64): Likewise.
34372 (vaddvq_u8): Likewise.
34373 (vaddvq_u16): Likewise.
34374 (vaddvq_u32): Likewise.
34375 (vaddvq_u64): Likewise.
34376 (vaddv_f32): Likewise.
34377 (vaddvq_f32): Likewise.
34378 (vaddvq_f64): Likewise.
34379 (vmaxv_f32): Likewise.
34380 (vmaxv_s8): Likewise.
34381 (vmaxv_s16): Likewise.
34382 (vmaxv_s32): Likewise.
34383 (vmaxv_u8): Likewise.
34384 (vmaxv_u16): Likewise.
34385 (vmaxv_u32): Likewise.
34386 (vmaxvq_f32): Likewise.
34387 (vmaxvq_f64): Likewise.
34388 (vmaxvq_s8): Likewise.
34389 (vmaxvq_s16): Likewise.
34390 (vmaxvq_s32): Likewise.
34391 (vmaxvq_u8): Likewise.
34392 (vmaxvq_u16): Likewise.
34393 (vmaxvq_u32): Likewise.
34394 (vmaxnmv_f32): Likewise.
34395 (vmaxnmvq_f32): Likewise.
34396 (vmaxnmvq_f64): Likewise.
34397 (vminv_f32): Likewise.
34398 (vminv_s8): Likewise.
34399 (vminv_s16): Likewise.
34400 (vminv_s32): Likewise.
34401 (vminv_u8): Likewise.
34402 (vminv_u16): Likewise.
34403 (vminv_u32): Likewise.
34404 (vminvq_f32): Likewise.
34405 (vminvq_f64): Likewise.
34406 (vminvq_s8): Likewise.
34407 (vminvq_s16): Likewise.
34408 (vminvq_s32): Likewise.
34409 (vminvq_u8): Likewise.
34410 (vminvq_u16): Likewise.
34411 (vminvq_u32): Likewise.
34412 (vminnmv_f32): Likewise.
34413 (vminnmvq_f32): Likewise.
34414 (vminnmvq_f64): Likewise.
34416 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
34418 * config/aarch64/aarch64-simd.md
34419 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
34420 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
34421 (*aarch64_mul3_elt<mode>): Likewise.
34422 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
34423 (*aarch64_mul3_elt_to_64v2df): Likewise.
34424 (*aarch64_mla_elt<mode>): Likewise.
34425 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34426 (*aarch64_mls_elt<mode>): Likewise.
34427 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34428 (*aarch64_fma4_elt<mode>): Likewise.
34429 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34430 (*aarch64_fma4_elt_to_64v2df): Likewise.
34431 (*aarch64_fnma4_elt<mode>): Likewise.
34432 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34433 (*aarch64_fnma4_elt_to_64v2df): Likewise.
34434 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
34435 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
34436 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34437 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34438 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
34439 (aarch64_sqdmull_lane<mode>_internal): Likewise.
34440 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
34442 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
34444 * config/aarch64/aarch64-simd.md
34445 (aarch64_be_checked_get_lane<mode>): New define_expand.
34446 * config/aarch64/aarch64-simd-builtins.def
34447 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
34448 New builtin definition.
34449 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
34450 Use new safe be builtin.
34452 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
34454 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
34456 (aarch64_be_st1<mode>): Likewise.
34457 (aarch_ld1<VALL:mode>): Define_expand modified.
34458 (aarch_st1<VALL:mode>): Likewise.
34459 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
34460 (UNSPEC_ST1): Likewise.
34462 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
34464 * config/microblaze/microblaze.md: Add trap insn and attribute
34466 2014-01-23 Dodji Seketeli <dodji@redhat.com>
34468 PR preprocessor/58580
34469 * input.h (location_get_source_line): Take an additional line_size
34471 (void diagnostics_file_cache_fini): Declare new function.
34472 * input.c (struct fcache): New type.
34473 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
34474 New static constants.
34475 (diagnostic_file_cache_init, total_lines_num)
34476 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
34477 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
34478 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
34479 (get_next_line, read_next_line, goto_next_line, read_line_num):
34480 New static function definitions.
34481 (diagnostic_file_cache_fini): New function.
34482 (location_get_source_line): Take an additional output line_len
34483 parameter. Re-write using lookup_or_add_file_to_cache_tab and
34485 * diagnostic.c (diagnostic_finish): Call
34486 diagnostic_file_cache_fini.
34487 (adjust_line): Take an additional input parameter for the length
34488 of the line, rather than calculating it with strlen.
34489 (diagnostic_show_locus): Adjust the use of
34490 location_get_source_line and adjust_line with respect to their new
34491 signature. While displaying a line now, do not stop at the first
34492 null byte. Rather, display the zero byte as a space and keep
34493 going until we reach the size of the line.
34494 * Makefile.in: Add vec.o to OBJS-libcommon
34496 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
34497 Ilya Tocar <ilya.tocar@intel.com>
34499 * config/i386/avx512fintrin.h (_mm512_kmov): New.
34500 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
34501 (__builtin_ia32_kmov16): Ditto.
34502 * config/i386/i386.md (UNSPEC_KMOV): New.
34505 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
34507 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
34508 (_mm512_storeu_si512): Ditto.
34510 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
34513 * rtl.h (get_referenced_operands): Declare.
34514 * recog.c (get_referenced_operands): New function.
34515 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
34516 operands have been referenced when recording LO_SUM references.
34518 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
34520 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
34522 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
34524 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
34525 Enable for generic and recent AMD targets.
34527 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
34529 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
34530 ARG_SIZE note when adjustment was eliminated.
34532 2014-01-22 Jeff Law <law@redhat.com>
34534 PR tree-optimization/59597
34535 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
34536 in file. Accept new argument REGISTERING and use it to modify
34537 dump output appropriately.
34538 (register_jump_thread): Corresponding changes.
34539 (mark_threaded_blocks): Reinstate code to cancel unprofitable
34540 thread paths involving joiner blocks. Add code to dump cancelled
34541 jump threading paths.
34543 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
34545 PR rtl-optimization/59477
34546 * lra-constraints.c (inherit_in_ebb): Process call for living hard
34547 regs. Update reloads_num and potential_reload_hard_regs for all insns.
34549 2014-01-22 Tom Tromey <tromey@redhat.com>
34551 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
34553 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
34555 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
34557 PR rtl-optimization/59896
34558 * lra-constraints.c (process_alt_operands): Check unused note for
34559 matched operands of insn with no output reloads.
34561 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
34563 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
34564 (mips_move_from_gpr_cost): Likewise.
34566 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
34568 PR rtl-optimization/59858
34569 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
34570 ira_class_hard_regs_num.
34571 (process_alt_operands): Increase reject for dying matched operand.
34573 2014-01-21 Jakub Jelinek <jakub@redhat.com>
34576 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
34577 smaller than size, perform several stores or loads and stores
34578 at dst + count - size to store or copy all of size bytes, rather
34579 than just last modesize bytes.
34581 2014-01-20 DJ Delorie <dj@redhat.com>
34583 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
34584 that CLOBBERs are REGs before propogating their values.
34586 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
34588 PR middle-end/59789
34589 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
34590 (cgraph_inline_failed_type): New function.
34591 * cgraph.h (DEFCIFCODE): Add type.
34592 (cgraph_inline_failed_type_t): New enum.
34593 (cgraph_inline_failed_type): New prototype.
34594 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
34595 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34596 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
34597 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
34598 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
34599 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
34600 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
34601 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
34602 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
34603 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
34604 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
34605 OPTIMIZATION_MISMATCH.
34606 * tree-inline.c (expand_call_inline): Emit errors during
34607 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
34609 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
34612 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
34613 mode attribute in insn output.
34615 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
34617 * output.h (output_constant): Delete.
34618 * varasm.c (output_constant): Make private.
34620 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
34622 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
34624 2014-01-20 Jakub Jelinek <jakub@redhat.com>
34626 PR middle-end/59860
34627 * tree.h (fold_builtin_strcat): New prototype.
34628 * builtins.c (fold_builtin_strcat): No longer static. Add len
34629 argument, if non-NULL, don't call c_strlen. Optimize
34630 directly into __builtin_memcpy instead of __builtin_strcpy.
34631 (fold_builtin_2): Adjust fold_builtin_strcat caller.
34632 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
34634 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
34636 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34637 for SImode_address_operand operands, having only a REG argument.
34639 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
34641 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
34642 loader name using mbig-endian.
34643 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
34645 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
34647 * doc/invoke.texi (-march): Clarify documentation for AArch64.
34648 (-mtune): Likewise.
34651 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
34653 * config/aarch64/aarch64-protos.h
34654 (aarch64_cannot_change_mode_class_ptr): Declare.
34655 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
34656 aarch64_cannot_change_mode_class_ptr): New.
34657 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
34658 backend hook aarch64_cannot_change_mode_class.
34660 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
34662 * common/config/aarch64/aarch64-common.c
34663 (aarch64_handle_option): Don't handle any option order logic here.
34664 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
34665 selected_cpu, warn on architecture version mismatch.
34666 (aarch64_override_options): Fix parsing order for option strings.
34668 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
34669 Iain Sandoe <iain@codesourcery.com>
34672 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
34673 warning. Amend comment to reflect current functionality.
34675 2014-01-20 Richard Biener <rguenther@suse.de>
34677 PR middle-end/59860
34678 * builtins.c (fold_builtin_strcat): Remove case better handled
34679 by tree-ssa-strlen.c.
34681 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
34683 * config/aarch64/aarch64.opt
34684 (mcpu, march, mtune): Make case-insensitive.
34686 2014-01-20 Jakub Jelinek <jakub@redhat.com>
34689 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34690 if operands[1] is a REG or ZERO_EXTEND of a REG.
34692 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
34694 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
34696 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
34698 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
34699 long non-pic millicode calls.
34701 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
34703 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
34705 2014-01-19 Kito Cheng <kito@0xlab.org>
34707 * builtins.c (expand_movstr): Check movstr expand done or fail.
34709 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
34710 H.J. Lu <hongjiu.lu@intel.com>
34713 * config/i386/i386.md (*lea<mode>): Zero-extend return register
34714 to DImode for zero-extended addresses.
34716 2014-01-19 Jakub Jelinek <jakub@redhat.com>
34718 PR rtl-optimization/57763
34719 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
34720 on the new indirect jump_insn and increment LABEL_NUSES (label).
34722 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
34726 * config.gcc (x86_archs): New variable.
34727 (x86_64_archs): Likewise.
34728 (x86_cpus): Likewise.
34729 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
34730 --with-arch/--with-cpu= options.
34731 Support --with-arch=/--with-cpu={nehalem,westmere,
34732 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
34734 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
34736 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
34737 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
34739 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
34741 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
34743 2014-01-18 Jakub Jelinek <jakub@redhat.com>
34746 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
34747 clear cpp_get_options (parse_in)->warn_unused_macros for
34748 ix86_target_macros_internal with cpp_define.
34750 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
34752 * jump.c (delete_related_insns): Keep (use (insn))s.
34753 * reorg.c (redundant_insn): Check for barriers too.
34755 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
34757 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
34759 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
34761 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
34762 call to $$dyncall when TARGET_LONG_CALLS is true.
34764 2014-01-17 Jeff Law <law@redhat.com>
34766 * ree.c (combine_set_extension): Temporarily disable test for
34767 changing number of hard registers.
34769 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
34771 PR middle-end/58125
34772 * ipa-inline-analysis.c (inline_free_summary):
34773 Do not free summary of aliases.
34775 2014-01-17 Jakub Jelinek <jakub@redhat.com>
34777 PR middle-end/59706
34778 * gimplify.c (gimplify_expr): Use create_tmp_var
34779 instead of create_tmp_var_raw. If cond doesn't have
34780 integral type, don't add the IFN_ANNOTATE builtin at all.
34782 2014-01-17 Martin Jambor <mjambor@suse.cz>
34785 * ipa-cp.c (prev_edge_clone): New variable.
34786 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
34787 Also resize prev_edge_clone vector.
34788 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
34789 (ipcp_edge_removal_hook): New function.
34790 (ipcp_driver): Register ipcp_edge_removal_hook.
34792 2014-01-17 Andrew Pinski <apinski@cavium.com>
34793 Steve Ellcey <sellcey@mips.com>
34796 * config/mips/mips.c (mips_print_operand): Check operand mode instead
34799 2014-01-17 Jeff Law <law@redhat.com>
34801 PR middle-end/57904
34802 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
34803 so that pass_ccp runs first.
34805 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
34807 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
34808 (ix86_adjust_cost): Use !TARGET_XXX.
34809 (do_reorder_for_imul): Likewise.
34810 (swap_top_of_ready_list): Likewise.
34811 (ix86_sched_reorder): Likewise.
34813 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
34815 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34816 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
34817 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
34818 (intel_memset): New. Duplicate slm_memset.
34819 (intel_cost): New. Duplicate slm_cost.
34820 (m_INTEL): New macro.
34821 (processor_target_table): Add "intel".
34822 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
34823 with PROCESSOR_INTEL for "intel".
34824 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
34825 PROCESSOR_SILVERMONT.
34826 (ix86_issue_rate): Likewise.
34827 (ix86_adjust_cost): Likewise.
34828 (ia32_multipass_dfa_lookahead): Likewise.
34829 (swap_top_of_ready_list): Likewise.
34830 (ix86_sched_reorder): Likewise.
34831 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
34832 instead of TARGET_OPT_AGU.
34833 * config/i386/i386.h (TARGET_INTEL): New.
34834 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
34835 (processor_type): Add PROCESSOR_INTEL.
34836 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
34837 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
34839 2014-01-17 Marek Polacek <polacek@redhat.com>
34842 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
34845 2014-01-17 Richard Biener <rguenther@suse.de>
34847 PR tree-optimization/46590
34848 * opts.c (default_options_table): Add entries for
34849 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
34850 all enabled at -O1 but not for -Og.
34851 * common.opt (fbranch-count-reg): Remove Init(1).
34852 (fmove-loop-invariants): Likewise.
34853 (ftree-pta): Likewise.
34855 2014-01-17 Jakub Jelinek <jakub@redhat.com>
34857 * config/i386/i386.c (ix86_data_alignment): For compatibility with
34858 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
34859 decls to at least the GCC 4.8 used alignments.
34862 * tree-nested.c (convert_nonlocal_reference_stmt,
34863 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
34864 of GIMPLE_BIND stmts, adjust associated decls.
34866 2014-01-17 Richard Biener <rguenther@suse.de>
34868 PR tree-optimization/46590
34869 * vec.h (vec<>::bseach): New member function implementing
34870 binary search according to C89 bsearch.
34871 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
34872 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
34873 bitmap pointer again. Make accesses_in_loop a flat array.
34874 (mem_ref_obstack): New global.
34875 (outermost_indep_loop): Adjust for mem_ref->stored changes.
34876 (mark_ref_stored): Likewise.
34877 (ref_indep_loop_p_2): Likewise.
34878 (set_ref_stored_in_loop): New helper function.
34879 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
34880 (memref_free): Adjust.
34881 (record_mem_ref_loc): Simplify.
34882 (gather_mem_refs_stmt): Adjust.
34883 (sort_locs_in_loop_postorder_cmp): New function.
34884 (analyze_memory_references): Sort accesses_in_loop after
34885 loop postorder number.
34886 (find_ref_loc_in_loop_cmp): New function.
34887 (for_all_locs_in_loop): Find relevant cluster of locs in
34888 accesses_in_loop and iterate without recursion.
34889 (execute_sm): Avoid uninit warning.
34890 (struct ref_always_accessed): Simplify.
34891 (ref_always_accessed::operator ()): Likewise.
34892 (ref_always_accessed_p): Likewise.
34893 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
34894 loop postorder numbers here.
34895 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
34898 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
34901 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
34902 on decls for which assemble_alias has been called.
34904 2014-01-17 Nick Clifton <nickc@redhat.com>
34906 * config/msp430/msp430.opt: (mcpu): New option.
34907 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
34908 (msp430_option_override): Parse target_cpu. If the MCU name
34909 matches a generic string, clear target_mcu.
34910 (msp430_attr): Allow numeric interrupt values up to 63.
34911 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
34912 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
34914 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
34916 * config/msp430/msp430.md (popm): Use %J rather than %I.
34917 (addsi3): Use msp430_nonimmediate_operand for operand 2.
34918 (addhi_cy_i): Use immediate_operand for operand 2.
34919 * doc/invoke.texi: Document -mcpu option.
34921 2014-01-17 Richard Biener <rguenther@suse.de>
34923 PR rtl-optimization/38518
34924 * df.h (df_analyze_loop): Declare.
34925 * df-core.c: Include cfgloop.h.
34926 (df_analyze_1): Split out main part of df_analyze.
34927 (df_analyze): Adjust.
34928 (loop_inverted_post_order_compute): New function.
34929 (loop_post_order_compute): Likewise.
34930 (df_analyze_loop): New function avoiding whole-function
34931 postorder computes.
34932 * loop-invariant.c (find_defs): Use df_analyze_loop.
34933 (find_invariants): Adjust.
34934 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
34936 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
34938 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
34939 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
34941 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
34943 * ipa-ref.c (ipa_remove_stmt_references): Fix references
34944 traversal when removing references.
34946 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
34949 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
34951 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
34953 PR middle-end/56791
34954 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
34955 pushing a reload for an autoinc when we had previously reloaded an
34956 inner part of the address.
34958 2014-01-16 Jakub Jelinek <jakub@redhat.com>
34960 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
34962 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
34963 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
34964 when not giving up or versioning for alias only because of
34966 (vect_analyze_data_ref_dependences): Set to true.
34967 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
34969 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
34970 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
34973 PR middle-end/58344
34974 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
34977 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
34978 operand 0 predicate for gathers, use a new pseudo as subtarget.
34980 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
34982 PR middle-end/59609
34983 * lra-constraints.c (process_alt_operands): Add printing debug info.
34984 Check absence of input/output reloads for matched operands too.
34986 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
34988 PR rtl-optimization/59835
34989 * ira.c (ira_init_register_move_cost): Increase cost for
34992 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
34994 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
34996 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
34999 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35000 non-register objects. Use gen_(high/low)part more consistently.
35003 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
35006 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35007 endian support, remove tests for WORDS_BIG_ENDIAN.
35008 (p8_mfvsrd_3_<mode>): Likewise.
35009 (reload_gpr_from_vsx<mode>): Likewise.
35010 (reload_gpr_from_vsxsf): Likewise.
35011 (p8_mfvsrd_4_disf): Likewise.
35013 2014-01-16 Richard Biener <rguenther@suse.de>
35015 PR rtl-optimization/46590
35016 * lcm.c (compute_antinout_edge): Use postorder iteration.
35017 (compute_laterin): Use inverted postorder iteration.
35019 2014-01-16 Nick Clifton <nickc@redhat.com>
35021 PR middle-end/28865
35022 * varasm.c (output_constant): Return the number of bytes actually
35024 (output_constructor_array_range): Update the field size with the
35025 number of bytes emitted by output_constant.
35026 (output_constructor_regular_field): Likewise. Also do not
35027 complain if the total number of bytes emitted is now greater
35028 than the expected fieldpos.
35029 * output.h (output_constant): Update prototype and descriptive comment.
35031 2014-01-16 Marek Polacek <polacek@redhat.com>
35033 PR middle-end/59827
35034 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35035 it is error_mark_node.
35037 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
35039 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35040 VALID_AVX256_REG_OR_OI_MODE.
35042 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
35044 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35045 current procedure should be profiled.
35047 2014-01-15 Andrew Pinski <apinski@cavium.com>
35049 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35050 of moving from/to the STACK_REG register class.
35052 2014-01-15 Richard Henderson <rth@redhat.com>
35055 * reginfo.c (global_regs_decl): Globalize.
35056 * rtl.h (global_regs_decl): Declare.
35057 * ira.c (do_reload): Diagnose frame_pointer_needed and it
35058 reserved via global_regs.
35060 2014-01-15 Teresa Johnson <tejohnson@google.com>
35062 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35064 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
35066 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35067 and vmulosh rather than call gen_vec_widen_smult_*.
35068 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35069 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35070 (vec_widen_smult_even_v16qi): Likewise.
35071 (vec_widen_umult_even_v8hi): Likewise.
35072 (vec_widen_smult_even_v8hi): Likewise.
35073 (vec_widen_umult_odd_v16qi): Likewise.
35074 (vec_widen_smult_odd_v16qi): Likewise.
35075 (vec_widen_umult_odd_v8hi): Likewise.
35076 (vec_widen_smult_odd_v8hi): Likewise.
35077 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35078 vmuloub rather than call gen_vec_widen_umult_*.
35079 (vec_widen_umult_lo_v16qi): Likewise.
35080 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35081 vmulosb rather than call gen_vec_widen_smult_*.
35082 (vec_widen_smult_lo_v16qi): Likewise.
35083 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35084 rather than call gen_vec_widen_umult_*.
35085 (vec_widen_umult_lo_v8hi): Likewise.
35086 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35087 rather than call gen_vec_widen_smult_*.
35088 (vec_widen_smult_lo_v8hi): Likewise.
35090 2014-01-15 Jeff Law <law@redhat.com>
35092 PR tree-optimization/59747
35093 * ree.c (find_and_remove_re): Properly handle case where a second
35094 eliminated extension requires widening a copy created for elimination
35095 of a prior extension.
35096 (combine_set_extension): Ensure that the number of hard regs needed
35097 for a destination register does not change when we widen it.
35099 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
35101 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35102 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35103 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35104 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35105 (avr-*-rtems*): Likewise.
35106 (bfin*-rtems*): Likewise.
35107 (moxie-*-rtems*): Likewise.
35108 (h8300-*-rtems*): Likewise.
35109 (i[34567]86-*-rtems*): Likewise.
35110 (lm32-*-rtems*): Likewise.
35111 (m32r-*-rtems*): Likewise.
35112 (m68k-*-rtems*): Likewise.
35113 (microblaze*-*-rtems*): Likewise.
35114 (mips*-*-rtems*): Likewise.
35115 (powerpc-*-rtems*): Likewise.
35116 (sh-*-rtems*): Likewise.
35117 (sparc-*-rtems*): Likewise.
35118 (sparc64-*-rtems*): Likewise.
35119 (v850-*-rtems*): Likewise.
35120 (m32c-*-rtems*): Likewise.
35122 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
35124 PR rtl-optimization/59511
35125 * ira.c (ira_init_register_move_cost): Use memory costs for some
35126 cases of register move cost calculations.
35127 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35128 instead of BB frequency.
35129 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35130 * lra-assigns.c (find_hard_regno_for): Ditto.
35132 2014-01-15 Richard Biener <rguenther@suse.de>
35134 PR tree-optimization/59822
35135 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35136 (vectorizable_load): Use it to hoist defs of uses of invariant
35137 loads out of the loop.
35139 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
35140 Kugan Vivekanandarajah <kuganv@linaro.org>
35143 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35146 2014-01-15 Richard Biener <rguenther@suse.de>
35148 PR rtl-optimization/59802
35149 * lcm.c (compute_available): Use inverted postorder to seed
35150 the initial worklist.
35152 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35155 * config/s390/s390.c (s390_preferred_reload_class): Don't return
35156 ADDR_REGS for invalid symrefs in non-PIC code.
35158 2014-01-15 Jakub Jelinek <jakub@redhat.com>
35161 * builtins.c (determine_block_size): Initialize *probable_max_size
35162 even if len_rtx is CONST_INT.
35164 2014-01-14 Andrew Pinski <apinski@cavium.com>
35166 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35167 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35168 (cortexa53_tunings): Likewise.
35169 (aarch64_sched_issue_rate): New function.
35170 (TARGET_SCHED_ISSUE_RATE): Define.
35172 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35174 * ira-costs.c (find_costs_and_classes): Add missed
35175 ira_init_register_move_cost_if_necessary.
35177 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35180 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35182 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
35185 * config/i386/i386.c (type_natural_mode): Add a bool parameter
35186 to indicate if type is used for function return value. Warn ABI
35187 change if the vector mode isn't available for function return value.
35188 (ix86_function_arg_advance): Pass false to type_natural_mode.
35189 (ix86_function_arg): Likewise.
35190 (ix86_gimplify_va_arg): Likewise.
35191 (function_arg_32): Don't warn ABI change.
35192 (ix86_function_value): Pass true to type_natural_mode.
35193 (ix86_return_in_memory): Likewise.
35194 (ix86_struct_value_rtx): Removed.
35195 (TARGET_STRUCT_VALUE_RTX): Likewise.
35197 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35199 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35200 converting a conditional jump into a conditional return.
35202 2014-01-14 Richard Biener <rguenther@suse.de>
35204 PR tree-optimization/58921
35205 PR tree-optimization/59006
35206 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35207 hoisting invariant stmts.
35208 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35209 invariant loads on the preheader edge if possible.
35211 2014-01-14 Joey Ye <joey.ye@arm.com>
35213 * doc/plugin.texi (Building GCC plugins): Update to C++.
35215 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
35217 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35218 (_mm_rcp28_round_ss): Ditto.
35219 (_mm_rsqrt28_round_sd): Ditto.
35220 (_mm_rsqrt28_round_ss): Ditto.
35221 (_mm_rcp28_sd): Ditto.
35222 (_mm_rcp28_ss): Ditto.
35223 (_mm_rsqrt28_sd): Ditto.
35224 (_mm_rsqrt28_ss): Ditto.
35225 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35226 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35227 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35228 (IX86_BUILTIN_RCP28SD): Ditto.
35229 (IX86_BUILTIN_RCP28SS): Ditto.
35230 (IX86_BUILTIN_RSQRT28SD): Ditto.
35231 (IX86_BUILTIN_RSQRT28SS): Ditto.
35232 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35233 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35234 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35235 (ix86_expand_special_args_builtin): Expand new FTYPE.
35236 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35237 (srcp14<mode>): Make insn unary.
35238 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35239 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35240 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35241 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35242 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35243 Fix rounding: make it SAE only.
35244 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35246 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35248 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35249 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35250 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35251 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35252 (round_saeonly_mask_scalar_operand4): Ditto.
35253 (round_saeonly_mask_scalar_op3): Ditto.
35254 (round_saeonly_mask_scalar_op4): Ditto.
35256 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35258 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35259 Implement -maltivec=be for vec_insert and vec_extract.
35261 2014-01-10 DJ Delorie <dj@redhat.com>
35263 * config/msp430/msp430.md (call_internal): Don't allow memory
35264 references with SP as the base register.
35265 (call_value_internal): Likewise.
35266 * config/msp430/constraints.md (Yc): New. For memory references
35267 that don't use SP as a base register.
35269 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35270 "an integer without a # prefix"
35271 * config/msp430/msp430.md (epilogue_helper): Use it.
35273 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35276 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35277 AVX512F gather builtins.
35278 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35279 on gather decls with INTEGER_TYPE masktype.
35280 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35281 directly into the builtin rather than hoisting it before loop.
35283 PR tree-optimization/59387
35284 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35285 (scev_const_prop): If folded_casts and type has undefined overflow,
35286 use force_gimple_operand instead of force_gimple_operand_gsi and
35287 for each added stmt if it is assign with
35288 arith_code_with_undefined_signed_overflow, call
35289 rewrite_to_defined_overflow.
35290 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35291 gimple-fold.h instead.
35292 (arith_code_with_undefined_signed_overflow,
35293 rewrite_to_defined_overflow): Moved to ...
35294 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35295 rewrite_to_defined_overflow): ... here. No longer static.
35296 Include gimplify-me.h.
35297 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35298 rewrite_to_defined_overflow): New prototypes.
35300 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35302 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35304 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
35306 * builtins.c (get_object_alignment_2): Minor tweak.
35307 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35309 2014-01-13 Christian Bruel <christian.bruel@st.com>
35311 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35312 optimized non constant lengths.
35314 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35317 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35318 load as __atomic_load_N if possible.
35320 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35322 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35324 (rs6000_expand_builtin): Adjust call.
35326 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35329 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35330 * config/rs6000/rs6000.c: Include target-globals.h.
35331 (rs6000_set_current_function): Instead of doing target_reinit
35332 unconditionally, use save_target_globals_default_opts and
35333 restore_target_globals.
35335 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35337 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35338 (rs6000_expand_builtin): Handle mffs and mtfsf.
35339 (rs6000_init_builtins): Define mffs and mtfsf.
35340 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35341 (rs6000_mffs): New pattern.
35342 (rs6000_mtfsf): New pattern.
35344 2014-01-11 Bin Cheng <bin.cheng@arm.com>
35346 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35347 Start narrowing with START. Apply candidate-use pair
35348 and check overall cost in narrowing.
35349 (iv_ca_prune): Pass new argument.
35351 2014-01-10 Jeff Law <law@redhat.com>
35353 PR middle-end/59743
35354 * ree.c (combine_reaching_defs): Ensure the defining statement
35355 occurs before the extension when optimizing extensions with
35356 different source and destination hard registers.
35358 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
35361 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35362 vtables into the type inheritance graph.
35364 2014-01-10 Jakub Jelinek <jakub@redhat.com>
35366 PR rtl-optimization/59754
35367 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35368 modes in the REGNO != REGNO case.
35370 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35372 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35374 2014-01-10 Jakub Jelinek <jakub@redhat.com>
35376 PR tree-optimization/59745
35377 * tree-predcom.c (tree_predictive_commoning_loop): Call
35378 free_affine_expand_cache if giving up because components is NULL.
35380 * target-globals.c (save_target_globals): Allocate < 4KB structs using
35381 GC in payload of target_globals struct instead of allocating them on
35382 the heap and the larger structs separately using GC.
35383 * target-globals.h (struct target_globals): Make regs, hard_regs,
35384 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35385 of GTY((skip)) and change type to void *.
35386 (reset_target_globals): Cast loads from those fields to corresponding
35389 2014-01-10 Steve Ellcey <sellcey@mips.com>
35392 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
35393 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
35394 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
35396 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
35399 * aarch64-modes.def (CC_Zmode): New flags mode.
35400 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
35401 represents an equality.
35402 (aarch64_get_condition_code): Handle CC_Zmode.
35403 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
35405 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35407 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
35408 extraction in good case.
35410 2014-01-10 Richard Biener <rguenther@suse.de>
35412 PR tree-optimization/59374
35413 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
35414 checking after SLP discovery. Mark stmts not participating
35415 in any SLP instance properly.
35417 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35419 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
35420 when handling a SET rtx.
35422 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35424 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
35425 (cortex-a57): Likewise.
35426 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
35428 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35430 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
35431 non-iwmmxt builtins.
35433 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
35437 * ipa-devirt.c record_target_from_binfo): Take as argument
35438 stack of binfos and lookup matching one for virtual inheritance.
35439 (possible_polymorphic_call_targets_1): Update.
35441 2014-01-10 Huacai Chen <chenhc@lemote.com>
35443 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
35444 kernel strings for Loongson-2E/2F/3A.
35446 2014-01-10 Jakub Jelinek <jakub@redhat.com>
35448 PR middle-end/59670
35449 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
35450 is_gimple_call before calling gimple_call_internal_p.
35452 2014-01-09 Steve Ellcey <sellcey@mips.com>
35454 * Makefile.in (TREE_FLOW_H): Remove.
35455 (TREE_SSA_H): Add file names from tree-flow.h.
35456 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
35457 * tree.h: Remove tree-flow.h reference.
35458 * hash-table.h: Remove tree-flow.h reference.
35459 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
35460 reference with tree-ssa-loop.h.
35462 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35464 * doc/invoke.texi: Add -maltivec={be,le} options, and document
35465 default element-order behavior for -maltivec.
35466 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
35467 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
35468 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
35469 when targeting big endian, at least for now.
35470 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
35472 2014-01-09 Jakub Jelinek <jakub@redhat.com>
35474 PR middle-end/47735
35475 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
35476 var satisfies use_register_for_decl, just take into account type
35477 alignment, rather than decl alignment.
35479 PR tree-optimization/59622
35480 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
35481 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
35482 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
35483 Don't devirtualize for inplace at all. For targets.length () == 1,
35484 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
35486 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
35488 * config/i386/i386.md (cpu): Remove the unused btver1.
35490 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
35492 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
35494 2014-01-09 Jakub Jelinek <jakub@redhat.com>
35497 * tree-core.h (struct target_globals): New forward declaration.
35498 (struct tree_target_option): Add globals field.
35499 * tree.h (TREE_TARGET_GLOBALS): Define.
35500 (prepare_target_option_nodes_for_pch): New prototype.
35501 * target-globals.h (struct target_globals): Define even if
35502 !SWITCHABLE_TARGET.
35503 * tree.c (prepare_target_option_node_for_pch,
35504 prepare_target_option_nodes_for_pch): New functions.
35505 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
35506 * config/i386/i386.c: Include target-globals.h.
35507 (ix86_set_current_function): Instead of doing target_reinit
35508 unconditionally, use save_target_globals_default_opts and
35509 restore_target_globals.
35511 2014-01-09 Richard Biener <rguenther@suse.de>
35513 PR tree-optimization/59715
35514 * tree-cfg.h (split_critical_edges): Declare.
35515 * tree-cfg.c (split_critical_edges): Export.
35516 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
35518 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
35520 * cfgexpand.c (expand_stack_vars): Optionally disable
35521 asan stack protection.
35522 (expand_used_vars): Likewise.
35523 (partition_stack_vars): Likewise.
35524 * asan.c (asan_emit_stack_protection): Optionally disable
35525 after return stack usage.
35526 (instrument_derefs): Optionally disable memory access instrumentation.
35527 (instrument_builtin_call): Likewise.
35528 (instrument_strlen_call): Likewise.
35529 (asan_protect_global): Optionally disable global variables protection.
35530 * doc/invoke.texi: Added doc for new options.
35531 * params.def: Added new options.
35532 * params.h: Likewise.
35534 2014-01-09 Jakub Jelinek <jakub@redhat.com>
35536 PR rtl-optimization/59724
35537 * ifcvt.c (cond_exec_process_if_block): Don't call
35538 flow_find_head_matching_sequence with 0 longest_match.
35539 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
35540 non-active insns if !stop_after.
35541 (try_head_merge_bb): Revert 2014-01-07 changes.
35543 2014-01-08 Jeff Law <law@redhat.com>
35545 * ree.c (get_sub_rtx): New function, extracted from...
35546 (merge_def_and_ext): Here.
35547 (combine_reaching_defs): Use get_sub_rtx.
35549 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
35551 * cgraph.h (varpool_variable_node): Do not choke on null node.
35553 2014-01-08 Catherine Moore <clm@codesourcery.com>
35555 * config/mips/mips.md (simple_return): Attempt to use JRC
35557 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
35559 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
35561 PR rtl-optimization/59137
35562 * reorg.c (steal_delay_list_from_target): Call update_block for
35564 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
35566 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35568 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
35569 two duplicate entries.
35571 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
35574 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
35576 * config/mips/mips.c (mips_truncated_op_cost): New function.
35577 (mips_rtx_costs): Adjust test for BADDU.
35578 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
35580 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
35582 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
35583 (*baddu_si): ...this new pattern.
35585 2014-01-08 Jakub Jelinek <jakub@redhat.com>
35588 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
35590 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
35592 PR middle-end/57748
35593 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
35595 (expand_expr, expand_normal): Adjust.
35596 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
35597 inner_reference_p. Use inner_reference_p to expand inner references.
35598 (store_expr): Adjust.
35599 * cfgexpand.c (expand_call_stmt): Adjust.
35601 2014-01-08 Rong Xu <xur@google.com>
35603 * gcov-io.c (gcov_var): Move from gcov-io.h.
35604 (gcov_position): Ditto.
35605 (gcov_is_error): Ditto.
35606 (gcov_rewrite): Ditto.
35607 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
35608 only part to libgcc/libgcov.h.
35610 2014-01-08 Marek Polacek <polacek@redhat.com>
35612 PR middle-end/59669
35613 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
35615 2014-01-08 Marek Polacek <polacek@redhat.com>
35618 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
35620 2014-01-08 Jakub Jelinek <jakub@redhat.com>
35622 PR rtl-optimization/59649
35623 * stor-layout.c (get_mode_bounds): For BImode return
35624 0 and STORE_FLAG_VALUE.
35626 2014-01-08 Richard Biener <rguenther@suse.de>
35628 PR middle-end/59630
35629 * gimple.h (is_gimple_builtin_call): Remove.
35630 (gimple_builtin_call_types_compatible_p): New.
35631 (gimple_call_builtin_p): New overload.
35632 * gimple.c (is_gimple_builtin_call): Remove.
35633 (validate_call): Rename to ...
35634 (gimple_builtin_call_types_compatible_p): ... this and export. Also
35635 check return types.
35636 (validate_type): New static function.
35637 (gimple_call_builtin_p): New overload and adjust.
35638 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
35639 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
35640 (gimple_fold_stmt_to_constant_1): Likewise.
35641 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
35643 2014-01-08 Richard Biener <rguenther@suse.de>
35645 PR middle-end/59471
35646 * gimplify.c (gimplify_expr): Gimplify register-register type
35647 VIEW_CONVERT_EXPRs to separate stmts.
35649 2014-01-07 Jeff Law <law@redhat.com>
35651 PR middle-end/53623
35652 * ree.c (combine_set_extension): Handle case where source
35653 and destination registers in an extension insn are different.
35654 (combine_reaching_defs): Allow source and destination registers
35655 in extension to be different under limited circumstances.
35656 (add_removable_extension): Remove restriction that the
35657 source and destination registers in the extension are the same.
35658 (find_and_remove_re): Emit a copy from the extension's
35659 destination to its source after the defining insn if
35660 the source and destination registers are different.
35662 PR middle-end/59285
35663 * ifcvt.c (merge_if_block): If we are merging a block with more than
35664 one successor with a block with no successors, remove any BARRIER
35665 after the second block.
35667 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
35669 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
35671 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
35674 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
35675 for 14-bit register offsets when INT14_OK_STRICT is false.
35677 2014-01-07 Roland Stigge <stigge@antcom.de>
35678 Michael Meissner <meissner@linux.vnet.ibm.com>
35681 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
35682 Only check TFmode for SPE constants. Don't check TImode or TDmode.
35684 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
35686 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
35689 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
35691 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
35692 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
35693 rtx is const0_rtx or not.
35695 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
35698 * target-globals.c (save_target_globals): Remove this_fn_optab
35700 * toplev.c: Include optabs.h.
35701 (target_reinit): Temporarily restore the global options if another
35702 set of options are in force.
35704 2014-01-07 Jakub Jelinek <jakub@redhat.com>
35706 PR rtl-optimization/58668
35707 * cfgcleanup.c (flow_find_cross_jump): Don't count
35708 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
35709 to determine what is counted.
35710 (flow_find_head_matching_sequence): Use active_insn_p to determine
35712 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
35714 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
35715 determine what is counted.
35717 PR tree-optimization/59643
35718 * tree-predcom.c (split_data_refs_to_components): If one dr is
35719 read and one write, determine_offset fails and the write isn't
35720 in the bad component, just put the read into the bad component.
35722 2014-01-07 Mike Stump <mikestump@comcast.net>
35723 Jakub Jelinek <jakub@redhat.com>
35726 * tree-core.h (struct tree_optimization_option): Change optabs
35727 type from unsigned char * to void *.
35728 * optabs.c (init_tree_optimization_optabs): Adjust
35729 TREE_OPTIMIZATION_OPTABS initialization.
35731 2014-01-06 Jakub Jelinek <jakub@redhat.com>
35734 * config/i386/i386.h (struct machine_function): Add
35735 no_drap_save_restore field.
35736 * config/i386/i386.c (ix86_save_reg): Use
35737 !cfun->machine->no_drap_save_restore instead of
35738 crtl->stack_realign_needed.
35739 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
35740 this function clears frame_pointer_needed. Set
35741 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
35742 and DRAP reg is needed.
35744 2014-01-06 Marek Polacek <polacek@redhat.com>
35747 * doc/implement-c.texi: Mention that other integer types are
35748 permitted as bit-field types in strictly conforming mode.
35750 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
35752 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
35753 is newly allocated.
35755 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
35757 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
35759 2014-01-06 Martin Jambor <mjambor@suse.cz>
35762 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
35764 * ipa-prop.c (ipa_print_node_params): Fix indentation.
35766 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
35770 * var-tracking.c (add_stores): Preserve the value of the source even if
35771 we don't record the store.
35773 2014-01-06 Terry Guo <terry.guo@arm.com>
35775 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
35777 2014-01-05 Iain Sandoe <iain@codesourcery.com>
35780 * config/darwin.c (darwin_function_section): Adjust return values to
35781 correspond to optimisation changes made in r206070.
35783 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
35785 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
35786 from prefetch_block tune setting.
35787 (nocona_cost): Correct size of prefetch block to 64.
35789 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
35791 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
35792 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
35793 used to save the static chain register in the computation of the offset
35794 from which the FP registers need to be restored.
35796 2014-01-04 Jakub Jelinek <jakub@redhat.com>
35798 PR tree-optimization/59519
35799 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
35800 ICE if get_current_def (current_new_name) is already non-NULL, as long
35801 as it is a phi result of some other phi in *new_exit_bb that has
35804 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
35805 or vmovdqu* for misaligned_operand.
35806 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
35807 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
35808 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
35809 aligned_mem for AVX512F masked aligned load and store builtins and for
35810 non-temporal moves.
35812 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
35814 PR tree-optimization/59651
35815 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
35816 Address range for negative step should be added by TYPE_SIZE_UNIT.
35818 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
35820 * config/m68k/m68k.c (handle_move_double): Handle pushes with
35821 overlapping registers also for registers other than the stack pointer.
35823 2014-01-03 Marek Polacek <polacek@redhat.com>
35826 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
35829 2014-01-03 Jakub Jelinek <jakub@redhat.com>
35832 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
35835 * config/i386/i386.md (MODE_SIZE): New mode attribute.
35836 (push splitter): Use <P:MODE_SIZE> instead of
35837 GET_MODE_SIZE (<P:MODE>mode).
35838 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
35839 (mov -1, reg peephole2): Likewise.
35840 * config/i386/sse.md (*mov<mode>_internal,
35841 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
35842 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
35843 *<code><mode>3, *andnot<mode>3<mask_name>,
35844 <mask_codefor><code><mode>3<mask_name>): Likewise.
35845 * config/i386/subst.md (mask_mode512bit_condition,
35846 sd_mask_mode512bit_condition): Likewise.
35848 2014-01-02 Xinliang David Li <davidxl@google.com>
35850 PR tree-optimization/59303
35851 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
35852 (dump_predicates): Better output format.
35853 (pred_equal_p): New function.
35854 (is_neq_relop_p): Ditto.
35855 (is_neq_zero_form_p): Ditto.
35856 (pred_expr_equal_p): Ditto.
35857 (pred_neg_p): Ditto.
35858 (simplify_pred): Ditto.
35859 (simplify_preds_2): Ditto.
35860 (simplify_preds_3): Ditto.
35861 (simplify_preds_4): Ditto.
35862 (simplify_preds): Ditto.
35863 (push_pred): Ditto.
35864 (push_to_worklist): Ditto.
35865 (get_pred_info_from_cmp): Ditto.
35866 (is_degenerated_phi): Ditto.
35867 (normalize_one_pred_1): Ditto.
35868 (normalize_one_pred): Ditto.
35869 (normalize_one_pred_chain): Ditto.
35870 (normalize_preds): Ditto.
35871 (normalize_cond_1): Remove function.
35872 (normalize_cond): Ditto.
35873 (is_gcond_subset_of): Ditto.
35874 (is_subset_of_any): Ditto.
35875 (is_or_set_subset_of): Ditto.
35876 (is_and_set_subset_of): Ditto.
35877 (is_norm_cond_subset_of): Ditto.
35878 (pred_chain_length_cmp): Ditto.
35879 (convert_control_dep_chain_into_preds): Type change.
35880 (find_predicates): Ditto.
35881 (find_def_preds): Ditto.
35882 (destroy_predicates_vecs): Ditto.
35883 (find_matching_predicates_in_rest_chains): Ditto.
35884 (use_pred_not_overlap_with_undef_path_pred): Ditto.
35885 (is_pred_expr_subset): Ditto.
35886 (is_pred_chain_subset_of): Ditto.
35887 (is_included_in): Ditto.
35888 (is_superset_of): Ditto.
35890 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
35892 Update copyright years.
35894 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
35896 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
35897 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
35898 config/arc/arc.md, config/arc/arc.opt,
35899 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
35900 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
35901 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
35902 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
35903 config/linux-protos.h, config/linux.c, config/winnt-c.c,
35904 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
35905 vtable-verify.c, vtable-verify.h: Use the standard form for the
35908 2014-01-02 Tobias Burnus <burnus@net-b.de>
35910 * gcc.c (process_command): Update copyright notice dates.
35911 * gcov-dump.c: Ditto.
35913 * doc/cpp.texi: Bump @copying's copyright year.
35914 * doc/cppinternals.texi: Ditto.
35915 * doc/gcc.texi: Ditto.
35916 * doc/gccint.texi: Ditto.
35917 * doc/gcov.texi: Ditto.
35918 * doc/install.texi: Ditto.
35919 * doc/invoke.texi: Ditto.
35921 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
35923 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
35925 2014-01-01 Jakub Jelinek <jakub@redhat.com>
35927 * config/i386/sse.md (*mov<mode>_internal): Guard
35928 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
35930 PR rtl-optimization/59647
35931 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
35932 new_rtx into UNSIGNED_FLOAT rtxes.
35934 Copyright (C) 2014 Free Software Foundation, Inc.
35936 Copying and distribution of this file, with or without modification,
35937 are permitted in any medium without royalty provided the copyright
35938 notice and this notice are preserved.