1 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3 * doc/install.texi (Configuration, --enable-threads): Remove mach.
7 2011-04-19 Xinliang David Li <davidxl@google.com>
9 * ipa-cp.c (ipcp_update_profiling): asserting
10 scale_completement is not negative.
12 2011-04-19 Jakub Jelinek <jakub@redhat.com>
15 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
16 is a SUBREG with non-MODE_INT mode inside of it.
18 2011-04-19 Martin Jambor <mjambor@suse.cz>
20 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
21 also according to actual contants.
22 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
23 (gimple_fold_call): Use it.
24 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
26 2011-04-19 Martin Jambor <mjambor@suse.cz>
28 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
29 non-pointer assignments.
31 2011-04-19 Martin Jambor <mjambor@suse.cz>
33 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
34 account anc_offset and otr_type from the indirect edge info.
35 * ipa-prop.c (get_ancestor_addr_info): New function.
36 (compute_complex_ancestor_jump_func): Assignment analysis moved to
37 get_ancestor_addr_info, call it.
38 (ipa_note_param_call): Do not initialize information about polymorphic
39 calls, return the indirect call graph edge. Remove the last
40 parameter, adjust all callers.
41 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
42 parameters. Initialize polymorphic information in the indirect edge.
44 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
47 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
48 the types if they have different enumeration identifiers.
50 2011-04-19 Jan Hubicka <jh@suse.cz>
52 * cgraph.h (cgraph_optimize_for_size_p): Declare.
53 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
54 * predict.c (cgraph_optimize_for_size_p): Break out from ...
55 (optimize_function_for_size_p) ... here.
57 2011-04-19 Richard Guenther <rguenther@suse.de>
60 * tree.c (free_lang_data): Do not reset the decl-assembler-name
63 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
65 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
66 if DECL_NO_INLINE_WARNING_P is set on the function.
68 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
71 * reload1.c (inc_for_reload): Return void. All callers changed.
72 (emit_input_reload_insns): Don't try to delete previous output
73 reloads to a register, or record spill_reg_store for autoincs.
75 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
77 * gengtype.h: Updated copyright year.
78 (struct input_file_st): Add inpisplugin field.
79 (type_fileloc): New function.
81 (write_typed_struct_alloc_def): Add gcc_assert.
82 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
83 (write_typed_alloc_defns): Don't output for plugin files.
84 (input_file_by_name): Clear inpisplugin field.
85 (main): Set inpisplugin field for plugin files.
87 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
89 * gengtype-state.c (string_eq): New.
90 (read_state): Use string_eq instead of strcmp when creating the
93 2011-04-19 Wei Guozhi <carrot@google.com>
96 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
97 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
99 * config/arm/constraints.md (Uu): New constraint.
100 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
102 2011-04-19 Tristan Gingold <gingold@adacore.com>
104 * config.gcc (-*-*-*vms): Added.
105 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
107 * config/vms/vms-ld.c: New file.
108 * config/vms/vms-ar.c: New file.
109 * config/vms/t-vmsnative: New file.
111 2011-04-18 Xinliang David Li <davidxl@google.com>
113 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
115 2011-04-18 Jakub Jelinek <jakub@redhat.com>
118 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
119 if TREE_TYPE (v) is non-NULL.
121 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
122 gimple_get_virt_mehtod_for_binfo.
123 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
124 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
126 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
128 2011-04-18 Michael Matz <matz@suse.de>
129 Steve Ellcey <sje@cup.hp.com>
131 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
132 use its mode as source mode if it isn't VOIDmode.
134 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
136 * doc/passes.texi: Fill crossref nodes.
138 2011-04-18 Jim Meyering <meyering@redhat.com>
140 Fix doubled-word typos in comments and strings
141 * config/alpha/vms-unwind.h: s/for for/for/
142 * config/arm/unwind-arm.h: Likewise.
143 * config/microblaze/microblaze.c: Likewise.
144 * config/sh/constraints.md: s/in in/in/
145 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
147 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
149 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
150 (AVX_FLOAT_MODE_P): Ditto.
151 (AVX128_VEC_FLOAT_MODE_P): Ditto.
152 (AVX256_VEC_FLOAT_MODE_P): Ditto.
153 (AVX_VEC_FLOAT_MODE_P): Ditto.
154 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
155 (UNSPEC_MASKSTORE): Ditto.
156 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
157 Merge from <sse>_movmsk<ssemodesuffix> and
158 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
159 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
161 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
162 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
163 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
165 2011-04-18 Jan Hubicka <jh@suse.cz>
167 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
169 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
170 (want_inline_function_called_once_p): Break out the logic from
172 (edge_badness): Ensure that profile is not misupdated.
173 (lookup_recursive_calls): Prioritize by call frequencies.
174 (inline_small_functions): Move program size estimates here;
175 actually process whole queue even when unit growth has been
176 met. (to properly compute inline_failed reasons and for the
177 case unit size decrease.) Revisit comments on recursive inlining.
178 (ipa_inline): Remove unit summary code; first inline hot calls
179 of functions called once, cold calls next.
180 (order, nnodes): Remove unused variables.
181 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
182 (GTFILES): Remove ipa-inline.c
183 * sel-sched.c (fill_insns): Silence uninitialized var warning.
185 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
187 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
189 2011-04-18 Jie Zhang <jie@codesourcery.com>
190 Richard Earnshaw <rearnsha@arm.com>
192 * arm.c (neon_builtin_type_bits): Remove.
193 (typedef enum neon_builtin_mode): New.
194 (T_MAX): Don't define.
195 (typedef enum neon_builtin_datum): Remove bits, codes[],
196 num_vars and base_fcode. Add mode, code and fcode.
197 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
198 VAR10): Change accordingly.
199 (neon_builtin_data[]): Change accordingly
200 (arm_init_neon_builtins): Change accordingly.
201 (neon_builtin_compare): Remove.
202 (locate_neon_builtin_icode): Remove.
203 (arm_expand_neon_builtin): Change accordingly.
205 * arm.h (enum arm_builtins): Move to ...
206 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
208 * arm.c (arm_builtin_decl): Declare.
209 (TARGET_BUILTIN_DECL): Define.
210 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
211 (arm_builtin_decls[]): New.
212 (arm_init_neon_builtins): Store builtin declarations in
214 (arm_init_tls_builtins): Likewise.
215 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
216 (arm_builtin_decl): New.
218 2011-04-18 Richard Guenther <rguenther@suse.de>
220 * tree.c (upper_bound_in_type): Build properly canonicalized
222 (lower_bound_in_type): Likewise.
224 2011-04-18 Richard Guenther <rguenther@suse.de>
226 * gimple.h (gimple_call_addr_fndecl): New function.
227 (gimple_call_fndecl): Use it.
228 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
230 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
231 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
233 2011-04-18 Richard Guenther <rguenther@suse.de>
236 * tree.c (build_string): STRING_CST is now derived from tree_typed.
238 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
241 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
242 DECL_IN_CONSTANT_POOL without RTL.
244 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
245 Ira Rosen <ira.rosen@linaro.org>
248 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
249 to match neon_vzip/vuzp/vtrn_internal.
250 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
251 outputs explicitly dependent on both inputs.
252 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
254 2011-04-18 Jakub Jelinek <jakub@redhat.com>
256 PR tree-optimization/48616
257 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
258 whether the shift is by scalar or vector based on whether all SLP
259 scalar stmts have the same rhs.
261 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
263 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
266 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
268 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
271 2011-04-17 Jan Hubicka <jh@suse.cz>
273 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
274 * cgrpahunit.c (cgraph_finalize_function): Do not set
275 finalized_by_frontend.
276 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
277 finalized_by_frontend.
279 2011-04-17 Jan Hubicka <jh@suse.cz>
281 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
282 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
283 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
284 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
286 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
288 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
290 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
293 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
294 is non-null before accessing it.
295 (input_cgraph): Remove trailing spaces.
297 2011-04-17 Revital Eres <revital.eres@linaro.org>
299 * params.def (sms-min-sc): New param flag.
300 * modulo-sched.c (sms_schedule): Use it.
301 * doc/invoke.texi (sms-min-sc): Document it.
303 2011-04-17 Jan Hubicka <jh@suse.cz>
305 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
306 present, also set gimple_call_set_cannot_inline.
307 * ipa-inline.c: Update toplevel comment.
309 (cgraph_clone_inlined_nodes): Fix linebreaks.
310 (cgraph_check_inline_limits): Restructure to ...
311 (caller_growth_limits): ... this one; be more tolerant
312 on growth in nested inline chains; add explanatory comment;
313 fix stack accounting thinko introduced by previous patch.
314 (cgraph_default_inline_p): Remove.
315 (report_inline_failed_reason): New function.
316 (can_inline_edge_p): New function.
317 (can_early_inline_edge_p): New function.
318 (leaf_node_p): Move upwards in file.
319 (want_early_inline_function_p): New function.
320 (want_inline_small_function_p): New function.
321 (want_inline_self_recursive_call_p): New function.
322 (cgraph_edge_badness): Rename to ...
323 (edge_badness) ... this one; fix linebreaks.
324 (update_edge_key): Update call of edge_baddness; add
325 detailed dump about queue updates.
326 (update_caller_keys): Use can_inline_edge_p and
327 want_inline_small_function_p.
328 (cgraph_decide_recursive_inlining): Rename to...
329 (recursive_inlining): Use can_inline_edge_p and
330 want_inline_self_recursive_call_p; simplify and remove no longer
332 (cgraph_set_inline_failed): Remove.
333 (add_new_edges_to_heap): Use can_inline_edge_p and
334 want_inline_small_function_p.
335 (cgraph_decide_inlining_of_small_functions): Rename to ...
336 (inline_small_functions): ... this one; cleanup; use
337 can/want predicates; cleanup debug ouput; work edges till fibheap
338 is exhausted and do not stop once unit growth is reached; remove
339 later loop processing remaining edges.
340 (cgraph_flatten): Rename to ...
341 (flatten_function): ... this one; use can_inline_edge_p
342 and can_early_inline_edge_p predicates.
343 (cgraph_decide_inlining): Rename to ...
344 (ipa_inline): ... this one; remove unreachable nodes before
345 inlining functions called once; simplify the pass.
346 (cgraph_perform_always_inlining): Rename to ...
347 (inline_always_inline_functions): ... this one; use
348 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
349 (cgraph_decide_inlining_incrementally): Rename to ...
350 (early_inline_small_functions): ... this one; simplify
351 using new predicates; cleanup; make dumps prettier.
352 (cgraph_early_inlining): Rename to ...
353 (early_inliner): newer inline regular functions into always-inlines;
354 fix updating of call stmt summaries.
355 (pass_early_inline): Update for new names.
356 (inline_transform): Fix formating.
357 (gate_cgraph_decide_inlining): Rename to ...
358 (pass_ipa_inline): ... this one.
359 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
360 * ipa-inline-analysis.c (dump_inline_summary): Update.
361 (compute_inline_parameters): Do not compute disregard_inline_limits;
362 look for mismatching arguments.
363 (estimate_growth): Fix handlig of non-trivial self recursion.
364 (inline_read_summary): Do not read info->disregard_inline_limits.
365 (inline_write_summary): Do not write info->disregard_inline_limits.
366 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
367 and move all checks into can_inline_edge_p predicate; re-enable code
368 comparing optimization levels.
369 (expand_call_inline): Do not test inline_forbidden_into_p.
370 * Makefile.in (ipa-inline.o): Update arguments.
372 2011-04-17 Revital Eres <revital.eres@linaro.org>
374 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
376 2011-04-17 Revital Eres <revital.eres@linaro.org>
378 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
380 2011-04-17 Michael Matz <matz@suse.de>
382 PR tree-optimization/48622
384 * ipa-inline-analysis.c (inline_read_summary): Read size/time
385 in same order as they're written.
387 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
389 * config/pa/predicates.md: Reorganize and simplify predicates.
390 Eliminate duplicate code checks.
391 (arith_operand): Rename to arith14_operand
392 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
393 * config/pa/pa.md: Use renamed operands.
394 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
395 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
396 arith11_operand, adddi3_operand, indexed_memory_operand,
397 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
398 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
399 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
400 move_dest_operand, move_src_operand, prefetch_cc_operand,
401 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
402 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
403 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
404 div_operand, int5_operand, movb_comparison_operator,
405 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
406 arith_double_operand, ireg_operand, lhs_lshift_operand,
407 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
408 integer_store_memory_operand): Likewise.
409 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
410 (integer_store_memory_operand, read_only_operand,
411 function_label_operand, borx_reg_operand,
412 non_hard_reg_operand): Likewise.
413 (eq_neq_comparison_operator): Delete unused operator.
414 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
415 function_label_operand.
416 (emit_move_sequence): Likewise.
418 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
420 * config/i386/sse.md (sseunpackmode): New mode attribute.
421 (ssepackmode): Ditto.
422 (vec_pack_trunc_<mode>): Macroize expander from
423 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
424 (vec_unpacks_lo_<mode>): Macroize expander from
425 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
426 (vec_unpacks_hi_<mode>): Macroize expander from
427 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
428 (vec_unpacku_lo_<mode>): Macroize expander from
429 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
430 (vec_unpacku_hi_<mode>): Macroize expander from
431 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
432 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
433 ix86_expand_sse4_unpack.
434 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
436 2011-04-16 Jan Hubicka <jh@suse.cz>
438 * cgraphbuild.c: Include ipa-inline.h.
439 (reset_inline_failed): Use initialize_inline_failed.
440 * cgraph.c: Include ipa-inline.h.
441 (cgraph_create_node_1): Do not initialize estimated_growth.
442 (initialize_inline_failed): More to ipa-inline-analysis.c
443 (dump_cgraph_node): Do not dump inline flags.
444 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
445 and disregard_inline_limits flags.
446 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
447 time, size, estimated_growth.
448 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
450 * cgraphunit.c (cgraph_decide_is_function_needed): Use
451 DECL_DISREGARD_INLINE_LIMITS.
452 (cgraph_analyze_function): Do not initialize
453 node->local.disregard_inline_limits.
454 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
455 inlinable, versionable and disregard_inline_limits.
456 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
457 cgraph_check_inline_limits, cgraph_default_inline_p,
458 cgraph_edge_badness, update_caller_keys, update_callee_keys,
459 add_new_edges_to_heap): Update.
460 (cgraph_decide_inlining_of_small_function): Update; set
461 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
462 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
463 cgraph_decide_inlining_incrementally): Update.
464 * ipa-inline.h (inline_summary): Add inlinable, versionable,
465 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
466 time, size and estimated_growth parameters.
467 (estimate_edge_growth): Update.
468 (initialize_inline_failed): Declare.
469 * ipa-split.c: Include ipa-inline.h
470 (execute_split_functions): Update.
471 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
472 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
473 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
474 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
475 estimated_growth to INT_MIN.
476 (inline_node_duplication_hook): Likewise.
477 (dump_inline_summary): Dump new fields.
478 (compute_inline_parameters): Update.
479 (estimate_edge_time, estimate_time_after_inlining,
480 estimate_size_after_inlining, estimate_growth, inline_read_summary,
481 inline_write_summary):
482 (initialize_inline_failed): Move here from cgraph.c.
483 * tree-sra.c: Include ipa-inline.h.
484 (ipa_sra_preliminary_function_checks): Update.
485 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
488 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
490 * config/i386/sse.md (V16): New mode iterator.
492 (AVXMODEQI, AVXMODEDI): Remove.
493 (sse2, sse3): New mode attribute.
494 (mov<mode>): Use V16 mode iterator.
495 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
496 (push<mode>1): Use V16 mode iterator.
497 (movmisalign<mode>): Ditto.
498 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
499 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
500 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
501 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
502 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
503 avx_movdqu<avxmodesuffix>.
504 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
505 *avx_movdqu<avxmodesuffix>.
506 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
507 avx_lddqu<avxmodesuffix>.
508 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
509 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
510 avx_movnt<AVXMODEDI:mode>.
511 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
512 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
514 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
517 * haifa-sched.c (prune_ready_list, schedule_block): Use
518 sched_pressure_p rather than flag_sched_pressure.
520 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
522 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
523 cgraph_get_node instead of cgraph_get_create_node.
525 2011-04-15 Jakub Jelinek <jakub@redhat.com>
527 * cfgexpand.c (expand_debug_expr): Use
528 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
530 2011-04-15 Michael Matz <matz@suse.de>
532 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
533 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
534 * function.c (gimplify_parameters): Ditto.
535 * gimplify.c (gimplify_vla_decl): Ditto.
537 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
538 (gimple_call_set_alloca_for_var): New inline function.
539 (gimple_call_alloca_for_var_p): Ditto.
540 * gimple.c (gimple_build_call_from_tree): Remember
541 CALL_ALLOCA_FOR_VAR_P state.
542 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
544 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
545 calls if they were for VLA objects.
547 2011-04-15 Martin Jambor <mjambor@suse.cz>
549 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
552 2011-04-15 Martin Jambor <mjambor@suse.cz>
555 * tree-emutls.c (lower_emutls_function_body): Call
556 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
559 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
561 * c-decl.c (detect_field_duplicates): Call
562 objc_detect_field_duplicates instead of objc_get_interface_ivars.
564 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
566 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
567 * gimple.c (gimple_asm_clobbers_memory_p): Define.
568 * ipa-pure-const.c (check_stmt): Call it.
569 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
571 2011-04-15 Richard Guenther <rguenther@suse.de>
573 PR tree-optimization/48290
574 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
575 Properly decide inhibiting propagation based on the valueized
576 operand. Do loop-closed SSA form preserving here ...
577 (init_copy_prop): ... not here.
579 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
582 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
583 (*ieee_smax<mode>3): Likewise.
585 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
587 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
588 Replace match_operand with match_dup for the third operand in
591 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
593 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
594 to track processing of conditionals. Update all callers.
595 (try_combine, simplify_if_then_else): Update.
597 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
599 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
602 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
604 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
605 instead of match_operand for operand 3.
607 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
609 * recog.h (insn_operand_data): Add an "allows_mem" field.
610 * genoutput.c (output_operand_data): Initialize it.
611 * optabs.c (maybe_legitimize_operand_same_code): New function.
612 (maybe_legitimize_operand): Use it when matching the original
615 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
617 * gimplify.c: Fix issues in comments throughout.
618 (voidify_wrapper_expr): Fix long line.
619 (build_stack_save_restore): Likewise.
620 (gimplify_loop_expr): Likewise.
621 (gimplify_compound_lval): Likewise.
622 (gimplify_init_ctor_eval): Likewise.
623 (gimplify_modify_expr_rhs): Likewise.
624 (omp_notice_threadprivate_variable): Likewise.
626 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
628 * cfgexpand.c (expand_call_stmt): Convert the function type to the
629 original one if this is not a builtin function.
631 2011-04-14 Jakub Jelinek <jakub@redhat.com>
634 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
635 offset it as needed based on top 2 bits in operands[3], change
636 MEM mode to SFmode and mask those 2 bits away from operands[3].
638 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
640 * c-parser.c (c_parser_objc_protocol_definition): Updated for
641 change from objc_declare_protocols() to objc_declare_protocol().
643 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
645 * config/i386/sse.md (sse4_1): New mode attribute.
646 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
647 avx_blend<ssemodesuffix><avxmodesuffix> and
648 sse4_1_blend<ssemodesuffix> using VF mode iterator.
649 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
650 avx_blendv<ssemodesuffix><avxmodesuffix> and
651 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
652 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
653 avx_dp<ssemodesuffix><avxmodesuffix> and
654 sse4_1_dp<ssemodesuffix> using VF mode iterator.
655 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
656 (sse4_1_packusdw): Merge with *avx_packusdw.
657 (sse4_1_pblendvb): Merge with *avx_pblendvb.
658 (sse4_1_pblendw): Merge with *avx_pblendw.
659 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
660 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
661 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
663 (sse4_1_round<ssescalarmodesuffix>): Merge with
664 *avx_round<ssescalarmodesuffix>.
665 (aesenc): Merge with *avx_aesenc.
666 (aesenclast): Merge with *avx_aesenclast.
667 (aesdec): Merge with *avx_aesdec.
668 (aesdeclast): Merge with *avx_aesdeclast.
669 (pclmulqdq): Merge with *pclmulqdq.
670 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
672 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
674 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
677 * cfgexpand.c (get_decl_align_unit): Renamed to ...
678 (align_local_variable): This. Update DECL_ALIGN.
679 (add_stack_var): Updated.
680 (expand_one_stack_var): Likewise.
682 2011-04-14 Richard Guenther <rguenther@suse.de>
684 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
686 (dse_initialize_block_local_data, dse_leave_block,
687 record_voperand_set, get_stmt_uid): Likewise.
688 (dse_possible_dead_store_p): Allow any kind of killing stmt.
689 (dse_optimize_stmt): Remove voperand set handling code.
690 Simplify and improve to handle any kind of killing stmt.
691 (dse_record_phi): Remove.
692 (dse_enter_block): Simplify.
693 (tree_ssa_dse): Likewise.
694 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
696 2011-04-14 Jan Hubicka <jh@suse.cz>
698 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
699 * cgraph.h (struct inline_summary): Move to ipa-inline.h
700 (cgraph_local_info): Remove inline_summary.
701 * ipa-cp.c: Include ipa-inline.h.
702 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
703 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
705 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
706 (input_overwrite_node): Do not set inline summary.
707 (input_node): Do not stream inline summary.
708 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
709 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
710 growth; we do not have inline parameters computed for that anyway.
711 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
712 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
713 (inline_summary_t): New type and VECtor.
714 (debug_inline_summary, dump_inline_summaries): Declare.
715 (inline_summary): Use VOCtor.
716 (estimate_edge_growth): Kill hack computing call stmt size directly.
717 * lto-section-in.c (lto_section_name): Add inline section.
718 * ipa-inline-analysis.c: Include lto-streamer.h
719 (node_removal_hook_holder, node_duplication_hook_holder): New holders
720 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
721 (inline_summary_vec): Define.
722 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
723 dump_inline_summaries): New functions.
724 (estimate_function_body_sizes): Properly compute size/time of outgoing
726 (compute_inline_parameters): Alloc inline_summary; do not compute
727 size/time of incomming calls.
728 (estimate_edge_time): Avoid missing time summary hack.
729 (inline_read_summary): Read inline summary info.
730 (inline_write_summary): Write inline summary info.
731 (inline_free_summary): Free all hooks and inline summary vector.
732 * lto-streamer.h: Add LTO_section_inline_summary section.
733 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
734 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
736 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
738 * tree-vectorizer.h (vect_strided_store_supported): Add a
739 HOST_WIDE_INT argument.
740 (vect_strided_load_supported): Likewise.
741 (vect_permute_store_chain): Return void.
742 (vect_transform_strided_load): Likewise.
743 (vect_permute_load_chain): Delete.
744 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
745 count argument. Check that the count is a power of two.
746 (vect_strided_load_supported): Likewise.
747 (vect_permute_store_chain): Return void. Update after above changes.
748 Assert that the access is supported.
749 (vect_permute_load_chain): Likewise.
750 (vect_transform_strided_load): Return void.
751 * tree-vect-stmts.c (vectorizable_store): Update calls after
752 above interface changes.
753 (vectorizable_load): Likewise.
754 (vect_analyze_stmt): Don't check for strided powers of two here.
756 2011-04-14 Richard Guenther <rguenther@suse.de>
758 PR tree-optimization/48590
759 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
760 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
761 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
763 * tree-ssa-dce.c (propagate_necessity): Handle
764 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
766 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
768 * c-parser.c (c_parser_objc_class_declaration): Updated call to
771 2011-04-14 Richard Guenther <rguenther@suse.de>
773 * tree.h (get_object_alignment_1): Declare.
774 * builtins.c (get_object_alignment_1): Split out worker from ...
775 (get_object_alignment): ... here.
776 * fold-const.c (get_pointer_modulus_and_residue): Use
777 get_object_alignment_1.
779 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
781 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
783 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
784 parameter. Generalise code to handle arrays as well as vectors.
785 (vect_setup_realignment): Update accordingly.
786 * tree-vect-stmts.c (vectorizable_store): Likewise.
787 (vectorizable_load): Likewise.
789 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
791 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
792 within the per-copy loop.
794 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
796 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
799 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
801 * doc/options.texi (Negative): Explicitly mention that the
802 Negative chain must be circular.
804 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
806 * function.h (block_chainon): Declare.
807 * function.c (block_chainon): Define.
809 2011-04-14 Anatoly Sokolov <aesok@post.ru>
810 Eric Weddington <eric.weddington@atmel.com>
811 Georg-Johann Lay <avr@gjlay.de>
813 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
815 (avr_init_builtins, avr_expand_builtin,
816 avr_expand_delay_cycles, avr_expand_unop_builtin,
817 avr_expand_binop_builtin ): New functions.
818 (avr_builtin_id): New enum
819 (struct avr_builtin_description): New struct
820 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
821 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
823 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
824 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
825 UNSPECV_DELAY_CYCLES): new enumeration values
826 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
827 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
828 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
829 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
830 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
831 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
834 * config/avr/avr-c.c: fix line endings
835 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
836 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
837 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
838 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
839 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
841 * doc/extend.texi (AVR Built-in Functions): New node
842 (Target Builtins): Add documentation of AVR
845 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
848 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
849 alone. Error if non-const data has attribute progmem.
851 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
853 * tree.h (struct tree_constructor): Include tree_typed instead of
855 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
856 TS_TYPED instead of TS_COMMON.
858 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
860 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
861 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
862 (sse2_psadbw): Merge with *avx_psadbw.
863 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
864 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
865 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
866 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
867 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
868 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
869 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
870 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
871 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
872 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
873 (ssse3_palignrti): Merge with *avx_palignrti.
875 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
877 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
878 * tree-ssanames.c (fini_ssanames): VEC_free it.
879 (make_ssa_name_fn): Update for VECness of free_ssanames.
880 (release_ssa_name, release_dead_ssa_names): Likewise.
881 * tree.h (struct tree_ssa_name): Include tree_typed instead of
883 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
884 TS_TYPED instead of TS_COMMON.
886 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
888 * postreload-gcse.c (gcse_after_reload_main): Add calls to
889 statistics_counter_event.
890 * tree-ssa-copyrename.c (stats): Define.
891 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
892 statistics_counter_event.
893 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
894 (bswap_stats, widen_mul_stats): Define.
895 (insert_reciprocals): Increment rdivs_inserted.
896 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
897 rfuncs_inserted. Add calls to statistics_counter_event.
898 (execute_cse_sincos_1): Increment inserted.
899 (execute_cse_sincos): Zeroize sincos_stats. Add call to
900 statistics_counter_event.
901 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
902 of bswap_stats. Add calls to statistics_counter_event.
903 (convert_mult_to_widen): Increment widen_mults_inserted.
904 (convert_plusminus_to_widen): Increment maccs_inserted.
905 (convert_mult_to_fma): Increment fmas_inserted.
906 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
907 calls to statistics_counter_event.
909 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
911 PR rtl-optimization/48455
912 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
913 `temp_costs->mem_cost'.
915 2011-04-13 Jan Hubicka <jh@suse.cz>
917 * ipa-inline.h: New file.
918 * ipa-inline-analysis.c: New file. Broken out of ...
919 * ipa-inline.c: ... this file; update toplevel comment;
921 (inline_summary): Move to ipa-inline.h
922 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
923 ipa-inline-analysis.c.
924 (cgraph_estimate_time_after_inlining): Rename to
925 estiamte_time_after_inlining; move to ipa-inline-analysis.c
926 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
927 to estimate_edge_growth.
928 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
929 rename to estimate_size_after_inlining.
930 (cgraph_mark_inline_edge): Update for new naming convention.
931 (cgraph_check_inline_limits): Likewise.
932 (cgraph_edge_badness): Likewise.
933 (cgraph_decide_recursive_inlining): Likewise.
934 (cgraph_decide_inlining_of_small_functions): Likewise.
935 (cgraph_decide_inlining_incrementally): Likewise.
936 (cgraph_estimate_growth): Rename to estimate_growth; move to
937 ipa-inline-analysis.c.
938 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
939 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
940 (compute_inline_parameters): Likewise.
941 (compute_inline_parameters_for_current): Likewise.
942 (pass_inline_parameters): Likewise.
943 (inline_indirect_intraprocedural_analysis): Likewise.
944 (analyze_function): Rename to inline_analyze_function; likewise.
945 (add_new_function): Move to ipa-inline-analysis.c.
946 (inline_generate_summary): Likewise.
947 (inline_read_summary): Likewise.
948 (inline_write_summary): Likewise.
949 * Makefile.in (ipa-inline-analysis.c): New file.
951 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
953 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
954 * configure: Regenerate.
956 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
958 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
959 instead of tree_common.
960 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
962 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
963 TS_TYPED rather than TS_COMMON.
964 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
966 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
969 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
970 r20 around calls of __tablejump_elpm__
972 2011-04-13 Jakub Jelinek <jakub@redhat.com>
975 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
977 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
979 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
981 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
982 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
983 (cfi_vec): New typedef.
984 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
985 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
986 (cie_cfi_vec): New static variable.
987 (cie_cfi_head): Delete.
988 (add_cfi): Accept a cfi_vec * as first argument. All callers and
989 declaration changed. Use vector rather than list operations.
990 (new_cfi): Don't initialize the dw_cfi_next field.
991 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
992 rather than list operations.
993 (lookup_cfa): Use vector rather than list operations.
994 (output_cfis): New argument upto. Accept a cfi_vec rather than
995 a dw_cfi_ref list head as argument. All callers changed.
996 Iterate over the vector using upto as a maximum index.
997 (output_all_cfis): New static function.
998 (output_fde): Use vector rather than list operations. Use the
999 new upto argument for output_cfis rather than manipulating a
1001 (dwarf2out_begin_prologue): Change initializations to match
1003 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
1004 from the vector length rather than searching for the end of a list.
1005 Use output_all_cfis.
1006 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
1008 2011-04-13 Nick Clifton <nickc@redhat.com>
1010 * config/rx/rx.md (movmemsi): Do not use this pattern when
1011 volatile pointers are involved.
1013 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
1015 * config/i386/sse.md (pinsrbits): Remove.
1016 (sse2_packsswb): Merge with *avx_packsswb.
1017 (sse2_packssdw): Merge with *avx_packssdw.
1018 (sse2_packuswb): Merge with *avx_packuswb.
1019 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
1020 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
1021 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
1022 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
1023 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
1024 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
1025 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
1026 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
1027 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
1028 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
1029 (sse2_loadld): Merge with *avx_loadld.
1030 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
1031 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
1032 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
1033 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
1034 (vec_concatv2di): Merge with *vec_concatv2di_avx.
1036 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1038 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1040 * print-tree.c (print_node): Likewise.
1041 * tree-inline.c (copy_tree_r): Likewise.
1042 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
1043 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
1044 instead of TS_COMMON.
1045 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
1046 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
1047 (copy_node_stat): Zero TREE_CHAIN only if necessary.
1048 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
1049 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
1051 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1053 (TREE_CHAIN): Check for a TS_COMMON structure.
1054 (TREE_TYPE): Check for a TS_TYPED structure.
1056 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
1058 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1059 cgraph_get_create_node instead of cgraph_node.
1061 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1063 * c-parser.c (c_parser_initelt): Updated call to
1064 objc_build_message_expr.
1065 (c_parser_postfix_expression): Likewise.
1067 2011-04-12 Kai Tietz <ktietz@redhat.com>
1069 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1070 MASK_MS_BITFIELD_LAYOUT bit.
1072 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1074 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
1075 assert it is always true.
1076 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
1079 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1081 * c-parser.c (c_lex_one_token): Rewritten conditional used when
1082 compiling Objective-C to be more efficient.
1084 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
1086 * opts-common.c (decode_cmdline_options_to_array): Remove variable
1089 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1091 * recog.h, genoutput.c, optabs.c: Revert last patch.
1093 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1096 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1098 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1100 * recog.h (insn_operand_data): Add an "allows_mem" field.
1101 * genoutput.c (output_operand_data): Initialize it.
1102 * optabs.c (maybe_legitimize_operand_same_code): New function.
1103 (maybe_legitimize_operand): Use it when matching the original
1106 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1108 * genpreds.c (process_define_predicate): Move most processing
1109 to gensupport.c. Continue to validate the expression.
1110 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
1111 (process_define_predicate): Move processing to gensupport.c.
1112 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
1113 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
1114 (compute_predicate_codes): Moved from genrecog.c. Add lineno
1116 (valid_predicate_name_p): New function, split out from old
1117 genpreds.c:process_define_predicate.
1118 (process_define_predicate): New function, combining code from
1119 old genpreds.c and genrecog.c functions.
1120 (process_rtx): Call it for DEFINE_PREDICATE and
1121 DEFINE_SPECIAL_PREDICATE.
1123 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1125 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
1126 size of a '%A' memory reference.
1127 (T_DREG, T_QREG): New neon_builtin_type_bits.
1128 (arm_init_neon_builtins): Assert that the load and store operands
1129 are neon_struct_operands.
1130 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
1131 (NEON_ARG_MEMORY): New builtin_arg.
1132 (neon_dereference_pointer): New function.
1133 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
1134 Handle NEON_ARG_MEMORY.
1135 (arm_expand_neon_builtin): Update after above interface changes.
1136 Use NEON_ARG_MEMORY for loads and stores.
1137 * config/arm/predicates.md (neon_struct_operand): New predicate.
1138 * config/arm/iterators.md (V_two_elem): Tweak formatting.
1139 (V_three_elem): Use BLKmode for accesses that have no associated mode.
1140 (V_four_elem): Tweak formatting.
1141 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1142 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
1143 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
1144 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
1145 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
1146 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
1147 (neon_vst4<mode>): Replace pointer operand with a memory operand.
1148 Use %A in the output template.
1149 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
1150 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
1151 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
1152 the width of the memory access. Remove post-increment.
1153 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
1155 2011-04-12 Nick Clifton <nickc@redhat.com>
1157 * config/v850/v850.c (expand_prologue): Do not use the CALLT
1158 instruction for interrupt handlers if the target is the basic V850
1160 (expand_epilogue): Likewise.
1162 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1164 PR rtl-optimization/48549
1165 * combine.c (propagate_for_debug): Also stop after BB_END of
1166 this_basic_block. Process LAST and just stop processing after it.
1167 (combine_instructions): If last_combined_insn has been deleted,
1168 set last_combined_insn to its PREV_INSN.
1170 2011-04-12 Richard Guenther <rguenther@suse.de>
1172 PR tree-optimization/46076
1173 * gimple.h (struct gimple_statement_call): Add fntype field.
1174 (gimple_call_fntype): Adjust.
1175 (gimple_call_set_fntype): New function.
1176 * gimple.c (gimple_build_call_1): Set the call function type.
1177 * gimplify.c (gimplify_call_expr): Preserve the function
1178 type the frontend used for the call.
1179 (gimplify_modify_expr): Likewise.
1180 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
1182 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
1184 * tree-ssa.c (useless_type_conversion_p): Function pointer
1185 conversions are useless.
1187 2011-04-12 Martin Jambor <mjambor@suse.cz>
1189 * cgraph.h (cgraph_node): Remove function declaration.
1190 (cgraph_create_node): Declare.
1191 (cgraph_get_create_node): Likewise.
1192 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
1193 Updated all callers.
1194 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
1195 the decl does not already exist. Call cgraph_get_create_node instead
1197 (cgraph_get_create_node): New function.
1198 (cgraph_same_body_alias): Update comment.
1199 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
1200 assert it does not return NULL.
1201 (cgraph_update_edges_for_call_stmt): Likewise.
1202 (cgraph_clone_edge): Likewise.
1203 (cgraph_create_virtual_clone): Likewise.
1204 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
1205 instead of cgraph_node.
1206 (cgraph_add_new_function): Call cgraph_create_node or
1207 cgraph_get_create_node instead of cgraph_node.
1208 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
1209 instead of cgraph_node.
1210 (record_eh_tables): Likewise.
1211 (mark_address): Likewise.
1212 (mark_load): Likewise.
1213 (build_cgraph_edges): Call cgraph_get_create_node instead
1215 (rebuild_cgraph_edges): Likewise.
1216 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
1217 instead of cgraph_node.
1218 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
1220 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
1221 cgraph_create_node instead of cgraph_node.
1222 * c-decl.c (finish_function): Call cgraph_get_create_node instead
1224 * lto-cgraph.c (input_node): Likewise.
1225 * lto-streamer-in.c (input_function): Likewise.
1226 * varasm.c (mark_decl_referenced): Likewise.
1227 (assemble_alias): Likewise.
1229 2011-04-12 Martin Jambor <mjambor@suse.cz>
1231 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
1232 instead of cgraph_node and assert it does not return NULL.
1233 * lto-streamer-in.c (lto_read_body): Likewise.
1234 * omp-low.c (new_omp_context): Likewise.
1235 (create_task_copyfn): Likewise.
1236 * tree-emutls.c (lower_emutls_function_body): Likewise.
1237 * matrix-reorg.c (transform_allocation_sites): Likewise.
1239 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1242 * c-typeck.c (build_asm_expr): Error out on attempts to use
1243 void type outputs or inputs for constraints that allow reg or
1246 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
1247 Richard Earnshaw <rearnsha@arm.com>
1250 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
1251 to use sign-magnitude offsets. Reject unsupported unaligned
1252 cases. Add detailed description in comments.
1253 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
1254 condition from TARGET_32BIT to TARGET_ARM.
1256 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
1258 * tree.h (struct typed_tree): New.
1259 (struct tree_common): Include it instead of tree_base.
1260 (TREE_TYPE): Update for new location of type field.
1261 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
1262 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
1263 (union tree_node): Add typed field.
1264 * treestruct.def (TS_TYPED): New.
1265 * lto-streamer.c (check_handled_ts_structures): Handle it.
1266 * tree.c (MARK_TS_TYPED): New macro.
1267 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
1269 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
1271 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
1272 (force_nonfallthru): Do not alter the loop nest if no basic block
1275 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
1277 * config/i386/sse.md (VI): New mode iterator.
1279 (AVX256MODEI): Ditto.
1280 (AVXMODEF4P): Ditto.
1281 (avxvecpsmode): Ditto.
1282 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
1283 (sse2_andnot<mode>3): New expander.
1284 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
1285 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
1286 (<any_logic:code><mode>3): Use VI mode iterator.
1287 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
1288 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
1289 (*andnottf3): Handle AVX three-operand constraints.
1290 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
1292 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1293 Robert Millan <rmh@gnu.org>
1295 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
1296 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1297 GNU_USER_DYNAMIC_LINKER64): Define.
1298 (REG_NAME): Don't undefine.
1299 (MD_UNWIND_SUPPORT): Undefine.
1300 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1301 (REG_NAME): Don't undefine.
1302 (MD_UNWIND_SUPPORT): Undefine.
1303 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1305 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1307 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1308 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1310 2011-04-11 Xinliang David Li <davidxl@google.com>
1312 * value-profile.c (check_ic_target): New function.
1313 (gimple_ic_transform): Sanity check indirect call target.
1314 * gimple-low.c (gimple_check_call_args): Interface change.
1315 (gimple_check_call_matching_types): New function.
1316 * tree-inline.c (tree_can_inline_p): Call new function.
1318 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
1320 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1321 tree-pretty-print.h & realmpfr.h.
1323 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
1326 * ira.c (setup_pressure_classes): Fix typo in loop condition.
1327 (setup_allocno_and_important_classes): Ditto.
1329 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1331 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1332 GNU_USER_DYNAMIC_LINKER.
1333 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1334 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1335 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1336 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1337 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1338 GNU_USER_TARGET_OS_CPP_BUILTINS.
1339 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1340 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1341 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1342 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1343 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1344 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1345 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1346 GNU_USER_TARGET_OS_CPP_BUILTINS.
1347 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1348 GNU_USER_DYNAMIC_LINKER.
1349 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1350 GNU_USER_TARGET_OS_CPP_BUILTINS.
1351 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1352 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1353 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1354 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1355 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1356 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1357 GNU_USER_DYNAMIC_LINKER64): Remove.
1358 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1359 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1360 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1361 GNU_USER_DYNAMIC_LINKER.
1362 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1363 GNU_USER_TARGET_OS_CPP_BUILTINS.
1364 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1365 GNU_USER_TARGET_OS_CPP_BUILTINS.
1366 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1367 to GNU_USER_TARGET_OS_CPP_BUILTINS.
1368 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1369 GNU_USER_TARGET_OS_CPP_BUILTINS.
1370 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1371 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1372 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1373 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1374 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1375 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1376 GNU_USER_DYNAMIC_LINKER.
1377 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1378 GNU_USER_TARGET_OS_CPP_BUILTINS.
1379 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1380 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1381 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1382 GNU_USER_DYNAMIC_LINKER.
1383 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1384 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1385 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1386 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1387 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1388 GNU_USER_DYNAMIC_LINKER.
1389 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1390 GNU_USER_DYNAMIC_LINKERN32.
1391 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1392 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
1393 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
1394 GNU_USER_DYNAMIC_LINKER32.
1395 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1396 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1397 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1398 GNU_USER_DYNAMIC_LINKER.
1399 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1400 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1401 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1402 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1403 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1404 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1405 GNU_USER_DYNAMIC_LINKER32.
1406 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1407 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1408 GNU_USER_DYNAMIC_LINKER.
1409 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1410 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1411 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1412 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
1413 GNU_USER_DYNAMIC_LINKER64.
1414 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1415 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1416 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1417 GNU_USER_DYNAMIC_LINKER.
1418 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1419 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1420 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1421 GNU_USER_DYNAMIC_LINKER.
1422 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1423 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1424 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1425 GNU_USER_DYNAMIC_LINKER32.
1426 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1427 GNU_USER_DYNAMIC_LINKER64.
1428 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1429 GNU_USER_DYNAMIC_LINKER64.
1430 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1431 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1432 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1433 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1434 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1436 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1438 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
1439 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1440 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1441 GNU_USER_DYNAMIC_LINKER.
1442 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1443 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
1444 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1445 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1446 GNU_USER_DYNAMIC_LINKER64.
1447 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1448 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1449 GNU_USER_LINK_EMULATION.
1450 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1451 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1452 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1453 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1454 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1455 CPP_SPEC, CC1_SPEC): Remove.
1456 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1457 (GNU_USER_DYNAMIC_LINKER): Define.
1458 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1459 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1460 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1461 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1462 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1463 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1464 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1465 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1466 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1467 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1468 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1469 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1470 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1471 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1472 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1473 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1474 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1475 GNU_USER_DYNAMIC_LINKER.
1476 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1477 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1478 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1479 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1480 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1481 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
1482 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1483 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1484 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1485 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1487 2011-04-11 Kai Tietz <ktietz@redhat.com>
1491 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1492 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1494 (ix86_is_msabi_thiscall): Removed.
1495 (ix86_is_type_thiscall): Likewise.
1496 (ix86_get_callcvt): New function.
1497 (ix86_comp_type_attributes): Simplify check.
1498 (ix86_function_regparm): Use ix86_get_callcvt for calling
1499 convention attribute checks.
1500 (ix86_return_pops_args): Likewise.
1501 (ix86_static_chain): Likewise.
1502 (x86_this_parameter): Likewise.
1503 (x86_output_mi_thunk): Likewise.
1504 (ix86_function_type_abi): Optimize check for types without attributes.
1505 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1506 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1507 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1509 (IX86_BASE_CALLCVT): Helper macro.
1510 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1511 Use ix86_get_callcvt for calling convention attribute checks and avoid
1512 symbol-decoration for stdcall in TARGET_RTD case.
1513 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1515 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1518 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
1520 * config/i386/sse.md (VI_128): New mode iterator.
1521 (VI12_128): Rename from SSEMODE12.
1522 (VI14_128): Rename from SSEMODE14.
1523 (VI124_128): New mode iterator.
1524 (VI24_128): Rename from SSEMODE248.
1525 (VI248_128): Rename from SSEMODE248.
1526 (SSEMODE124C8): Remove.
1527 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1528 (*sse2_<plusminus_insn><mode>3): Merge with
1529 *avx_<plusminus_insn><mode>3.
1530 (*mulv8hi3): Merge with *avx_mulv8hi3.
1531 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1532 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1533 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1534 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1535 (ashr<mode>3): Merge with *avx_ashr<mode>3.
1536 (lshr<mode>3): Merge with *avx_lshr<mode>3.
1537 (ashl<mode>3): Merge with *avx_ashl<mode>3.
1538 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1539 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1540 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1541 (*<smaxmin:code>v8hi3): Ditto.
1542 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1543 (*<smaxmin:code>v16qi3): Ditto.
1544 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1545 (*sse2_eq<mode>3): Ditto.
1546 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1547 (*sse2_gt<mode>3): Ditto.
1548 (vcondv2di): Split out of vcond<mode>.
1549 (vconduv2di): Split out of vcondu<mode>.
1551 2011-04-11 Richard Guenther <rguenther@suse.de>
1553 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1554 before calling tree_low_cst.
1556 2011-04-11 Richard Guenther <rguenther@suse.de>
1558 * stor-layout.c (layout_type): Compute all array index size operations
1559 in the original type.
1560 (initialize_sizetypes): Add comment.
1561 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1563 2011-04-11 Joseph Myers <joseph@codesourcery.com>
1565 * common.opt (Tbss=, Tdata=, Ttext=): New options.
1567 2011-04-11 Martin Jambor <mjambor@suse.cz>
1569 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1570 of cgraph_node, handle NULL return value.
1571 (cgraph_global_info): Likewise.
1572 (cgraph_rtl_info): Likewise.
1573 * tree-inline.c (estimate_num_insns): Likewise.
1574 * gimplify.c (unshare_body): Likewise.
1575 (unvisit_body): Likewise.
1576 (gimplify_body): Likewise.
1577 * predict.c (optimize_function_for_size_p): Likewise.
1578 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1579 (call_may_clobber_ref_p_1): Likewise.
1580 * varasm.c (function_section_1): Likewise.
1581 (assemble_start_function): Likewise.
1583 2011-04-11 Martin Jambor <mjambor@suse.cz>
1585 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1587 * final.c (rest_of_clean_state): Likewise.
1588 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1589 * passes.c (pass_init_dump_file): Likewise.
1590 (execute_all_ipa_transforms): Likewise.
1591 (function_called_by_processed_nodes_p): Likewise.
1592 * predict.c (maybe_hot_frequency_p): Likewise.
1593 (probably_never_executed_bb_p): Likewise.
1594 (compute_function_frequency): Likewise.
1595 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1596 (unnest_nesting_tree_1): Likewise.
1597 (lower_nested_functions): Likewise.
1598 * tree-optimize.c (execute_fixup_cfg): Likewise.
1599 (tree_rest_of_compilation): Likewise.
1600 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1601 * tree-sra.c (ipa_early_sra): Likewise.
1602 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1603 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1604 * ipa.c (record_cdtor_fn): Likewise.
1605 * ipa-inline.c (cgraph_early_inlining): Likewise.
1606 (compute_inline_parameters_for_current): Likewise.
1607 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1608 * ipa-pure-const.c (local_pure_const): Likewise.
1609 * ipa-split.c (split_function): Likewise.
1610 (execute_split_functions): Likewise.
1611 * cgraphbuild.c (build_cgraph_edges): Likewise.
1612 (rebuild_cgraph_edges): Likewise.
1613 (cgraph_rebuild_references): Likewise.
1614 (remove_cgraph_callee_edges): Likewise.
1615 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1616 (verify_cgraph_node): Likewise.
1617 (cgraph_analyze_functions): Likewise.
1618 (cgraph_preserve_function_body_p): Likewise.
1619 (save_inline_function_body): Likewise.
1620 (save_inline_function_body): Likewise.
1621 * tree-inline.c (copy_bb): Likewise.
1622 (optimize_inline_calls): Likewise.
1624 2011-04-11 Martin Jambor <mjambor@suse.cz>
1626 PR tree-optimization/48195
1627 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1628 ipa_check_create_edge_args.
1629 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1630 ipa_check_create_edge_args.
1631 * ipa-inline.c (inline_generate_summary): Do not call
1632 ipa_check_create_node_params and ipa_check_create_edge_args.
1633 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1634 ipa_check_create_edge_args.
1636 2011-04-09 Anatoly Sokolov <aesok@post.ru>
1638 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1640 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1641 * function.c (record_hard_reg_sets): Likewise.
1642 * ira.c (compute_regs_asm_clobbered): Likewise.
1643 * sched-deps.c (sched_analyze_1): Likewise.
1644 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1646 2011-04-09 Xinliang David Li <davidxl@google.com>
1648 PR tree-optimization/PR48484
1649 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1650 has_valid_pred lazily
1652 2011-04-09 Duncan Sands <baldrick@free.fr>
1654 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1656 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
1658 * combine.c (combine_validate_cost): Adjust comments. Set registered
1659 cost of I0 to zero at the end, if any.
1661 2011-04-08 Xinliang David Li <davidxl@google.com>
1663 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1664 to insane profile data.
1666 2011-04-08 Xinliang David Li <davidxl@google.com>
1668 * ipa-cp.c (ipcp_update_profiling): Correct
1669 negative scale factor due to insane profile data.
1671 2011-04-08 Xinliang David Li <davidxl@google.com>
1673 * final.c (dump_basic_block_info): New function.
1674 (final): Dump basic block.
1675 (final_scan_insn): Remove old dump.
1677 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
1680 * config.gcc (i386-*-freebsd): Disable unwind table generation for
1683 2011-04-08 Michael Matz <matz@suse.de>
1686 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1688 (rebuild_jump_labels): Call rebuild_jump_labels_1.
1689 * rtl.h (rebuild_jump_labels_chain): Declare.
1690 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1691 insns inserted on edges.
1693 2011-04-08 Joseph Myers <joseph@codesourcery.com>
1695 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1696 * config/arm/arm-arches.def: New.
1697 * config/arm/arm-opts.h: New.
1698 * config/arm/genopt.sh: New.
1699 * config/arm/arm-tables.opt: New (generated).
1700 * config/arm/arm.c (arm_handle_option, arm_target_help,
1701 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1702 (all_architectures): Get most table contents from arm-arches.def.
1703 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1704 arm_selected_tune here.
1705 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1706 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1707 (march=, mcpu=, mtune=): Use Enum and Var.
1708 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1709 (arm.o): Update dependencies.
1711 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
1713 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1715 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1716 (write_typed_alloc_defns): Likewise.
1717 (main): Calls write_typed_alloc_defns with output_header.
1719 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
1722 * ira-color.c (setup_profitable_hard_regs): Add comments.
1723 Don't take prohibited hard regs into account.
1724 (setup_conflict_profitable_regs): Rename to
1725 get_conflict_profitable_regs.
1726 (check_hard_reg_p): Check prohibited hard regs.
1728 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
1730 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1731 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1732 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1734 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1737 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1738 move from floating point to shift amount register.
1739 (emit_move_sequence): Remove secondary reload support for floating
1740 point to shift amount amount register copies.
1741 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1742 amount register copies.
1743 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1744 register, return false if mode isn't a scalar integer mode.
1745 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1747 2011-04-08 Richard Guenther <rguenther@suse.de>
1749 * gimple.c (gimple_call_flags): Remove kludge.
1751 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1753 * sel-sched.c (sel_region_init): Move call to
1754 sel_setup_region_sched_flags after setup_current_loop_nest.
1756 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
1758 PR rtl-optimization/48272
1759 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1760 init_insn_reg_pressure_info. Adjust a caller.
1761 * sched-int.h (init_insn_reg_pressure_info): Declare.
1762 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1763 when sched-pressure is enabled.
1765 2011-04-08 Richard Guenther <rguenther@suse.de>
1767 * gimple.c (gimple_set_modified): Do not queue calls to
1768 MODIFIED_NORETURN_CALLS here ...
1769 * tree-ssa-operands.c (update_stmt_operands): ... but here.
1771 2011-04-08 Richard Guenther <rguenther@suse.de>
1774 * toplev.c (lang_dependent_init): Do not open asm_out_file
1775 in WPA mode, nor perform debug machinery initialization.
1776 (finalize): Do not unlink asm_out_file in WPA mode.
1778 2011-04-08 Richard Guenther <rguenther@suse.de>
1780 * gimple.h (gimple_call_fntype): New function.
1781 (gimple_call_return_type): Use it.
1782 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1783 * gimple-low.c (gimple_check_call_args): Likewise.
1784 * gimple.c (gimple_call_flags): Likewise.
1785 (gimple_call_arg_flags): Likewise.
1786 (gimple_call_return_flags): Likewise.
1787 * tree-cfg.c (verify_gimple_call): Likewise.
1788 (do_warn_unused_result): Likewise.
1789 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1790 * value-prof.c (gimple_ic_transform): Fix fndecl check.
1792 2011-04-08 Dmitry Melnik <dm@ispras.ru>
1794 PR rtl-optimization/48235
1795 * sel-sched.c (code_motion_process_successors): Recompute the last
1796 insn in basic block if control flow changed.
1797 (code_motion_path_driver): Ditto. Recompute the first insn as well.
1798 Update condition for ilist_remove.
1800 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1802 PR rtl-optimization/48302
1803 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1804 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
1805 it to record added preheader blocks.
1806 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
1807 on to sel_add_loop_preheaders.
1808 (sel_region_init): Move call to setup_current_loop_nest after
1811 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1814 * cfgloop.h (loop_has_exit_edges): New helper.
1815 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1817 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1818 that have no exit edges.
1820 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
1822 PR rtl-optimization/48442
1823 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
1824 all callers. Adjust assert.
1826 2011-04-08 Jakub Jelinek <jakub@redhat.com>
1828 PR tree-optimization/48377
1829 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1830 is_packed to true even for types with smaller TYPE_ALIGN than
1833 2011-04-08 Richard Guenther <rguenther@suse.de>
1836 * doc/tm.texi: Re-generate.
1838 2011-04-08 Wei Guozhi <carrot@google.com>
1841 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1842 * config/arm/arm.c (arm_attr_length_push_multi): New function.
1843 * config/arm/arm.md (*push_multi): Change the length computation to
1846 2011-04-08 Anatoly Sokolov <aesok@post.ru>
1848 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1849 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1850 * doc/tm.texi: Regenerate.
1851 * system.h (ASM_OUTPUT_BSS): Poison.
1852 * varasm.c (asm_output_bss): Remove function.
1853 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1855 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1856 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1857 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1858 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1860 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1862 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1864 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1866 2011-04-07 Joseph Myers <joseph@codesourcery.com>
1868 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1871 2011-04-07 Joseph Myers <joseph@codesourcery.com>
1873 * config/m68k/m68k.c (m68k_handle_option): Don't handle
1874 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1875 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1877 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1878 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1879 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1880 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1881 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1882 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1883 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1884 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1885 options. Don't map other m68k options manually. Don't handle
1886 old-style options as canonical.
1887 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1888 * doc/install.texi (m68k-*-*): Document binutils version requirement.
1890 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
1892 * basic-block.h (force_nonfallthru): Move to...
1893 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1894 (force_nonfallthru): ...here.
1895 * cfghooks.c (force_nonfallthru): New function.
1896 * cfgrtl.c (force_nonfallthru): Rename into...
1897 (rtl_force_nonfallthru): ...this.
1898 (commit_one_edge_insertion): Do not set AUX field.
1899 (commit_edge_insertions): Do not discover new basic blocks.
1900 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1901 (cfg_layout_rtl_cfg_hooks): Likewise.
1902 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1903 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
1904 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1906 2011-04-07 Anatoly Sokolov <aesok@post.ru>
1908 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1911 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
1913 * config/i386/sse.md: Update copyright year.
1914 (avxcvtvecmode): Remove.
1915 (sse_movhlps): Merge with *avx_movhlps.
1916 (sse_movlhps): Merge with *avx_movlhps.
1917 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1918 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1919 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1920 (sse_loadhps): Merge with *avx_loadhps.
1921 (sse_storelps): Merge with *avx_storelps.
1922 (sse_loadlps): Merge with *avx_loadlps.
1923 (sse_movss): Merge with *avx_movss.
1924 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1925 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1926 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1927 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1928 (vec_set<mode>_0): Ditto.
1929 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1930 (sse4_1_insertps): Merge with *avx_insertps.
1931 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1932 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1933 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1934 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1935 (sse2_storehpd): Merge with *avx_storehpd.
1936 (sse2_loadhpd): Merge with *avx_loadhpd.
1937 (sse2_loadlpd): Merge with *avx_loadlpd.
1938 (sse2_movsd): Merge with *avx_movsd.
1939 (*vec_concatv2df): Merge with *vec_concatv2df.
1941 2011-04-07 Jakub Jelinek <jakub@redhat.com>
1944 * combine.c (combine_instructions): Add last_combined_insn,
1945 update it if insn is after it, pass it to all try_combine calls.
1946 (try_combine): Add last_combined_insn parameter, pass it instead of
1947 i3 to propagate_for_debug.
1949 2011-04-07 Nick Clifton <nickc@redhat.com>
1951 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1952 to handle MDR <-> data register transfers.
1953 (movhi_internal): Likewise.
1955 2011-04-07 Alan Modra <amodra@gmail.com>
1957 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1958 previous stack info.
1960 2011-04-07 Tom de Vries <tom@codesourcery.com>
1963 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
1964 flow_find_cross_jump. Swap variables to implement backward replacement.
1965 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1967 2011-04-07 Tom de Vries <tom@codesourcery.com>
1970 * cfgcleanup.c (walk_to_nondebug_insn): New function.
1971 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
1973 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1974 src1 or src2. Redirect edges to the last basic block. Update
1975 frequency and count on multiple basic blocks in case of fallthru.
1977 2011-04-07 Tom de Vries <tom@codesourcery.com>
1980 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1982 (old_insns_match_p): Change return type. Replace return false/true
1983 with return dir_none/dir_both. Use can_replace_by.
1984 (flow_find_cross_jump): Add dir_p parameter. Init replacement
1985 direction from dir_p. Register replacement direction in dir, last_dir
1986 and afterlast_dir. Handle new return type of old_insns_match_p using
1987 merge_dir. Return replacement direction in dir_p.
1988 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1989 return type of old_insns_match_p.
1990 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1991 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1992 flow_find_cross_jump.
1993 * basic-block.h (enum replace_direction): New type.
1994 (flow_find_cross_jump): Add parameter to declaration.
1996 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
1998 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1999 (AVXMODEDCVTPS2DQ): Ditto.
2000 (VEC_FLOAT_MODE): Ditto.
2001 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
2002 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2003 (<any_logic:code><mode>3): Use VF mode iterator.
2004 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
2005 Use VF mode iterator.
2006 (copysign<mode>3): Use VF mode iterator.
2007 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
2008 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2009 (*<any_logic:code><MODEF:mode>3): Merge with
2010 *avx_<any_logic:code><MODEF:mode>3.
2011 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
2012 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
2013 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
2014 (avx_cvtdq2ps<avxmodesuffix>): Remove.
2015 (sse2_cvtdq2ps): Use %v modifier.
2016 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
2017 (avx_cvtps2dq<avxmodesuffix>): Remove.
2018 (sse2_cvtps2dq): Use %v modifier.
2019 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
2020 (avx_cvttps2dq<avxmodesuffix>): Remove.
2021 (sse2_cvttps2dq): Use %v modifier.
2022 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
2023 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
2024 (sse2_cvtsd2siq): Fix insn template.
2025 (sse2_cvtsd2siq_2): Ditto.
2026 (sse2_cvttsd2siq): Ditto.
2027 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
2028 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
2030 2011-04-06 Joseph Myers <joseph@codesourcery.com>
2032 * gcov-io.c: Use GCC Runtime Library Exception.
2034 2011-04-06 Jakub Jelinek <jakub@redhat.com>
2037 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
2038 as base_reg whatever register reg has been eliminated to, instead
2039 of hardcoding STACK_POINTER_REGNUM.
2041 2011-04-06 Joseph Myers <joseph@codesourcery.com>
2043 * doc/tm.texi.in: Document C target hooks as separate from general
2045 * doc/tm.texi: Regenerate.
2046 * genhooks.c (struct hook_desc): Add docname field.
2047 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
2049 (hook_array): Include c-target.def.
2050 (emit_documentation): Use docname field in output.
2051 (emit_init_macros): Take docname argument. Only emit definitions
2052 for hooks matching docname.
2053 (main): Expect additional arguments in all cases. Pass argument
2054 to emit_init_macros.
2055 * target.def: Move initial macro definitions and comments to
2056 target-hooks-macros.h.
2057 (gcc_targetcm): Move to c-family/c-target.def.
2058 * target.h (targetcm): Move declaration to c-family/c-target.h.
2059 * targhooks.c (default_handle_c_option): Move to
2061 * targhooks.h (default_handle_c_option): Move declaration to
2062 c-family/c-common.h.
2063 * target-hooks-macros.h: New file.
2064 * config.gcc (target_has_targetcm): Define and use to add to
2065 c_target_objs and cxx_target_objs.
2066 * config/default-c.c: New file.
2067 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
2068 of target.h and target-def.h.
2069 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
2070 (darwin_objc_construct_string, darwin_cfstring_ref_p,
2071 darwin_check_cfstring_format_arg): Make static.
2072 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2073 TARGET_STRING_OBJECT_REF_TYPE_P,
2074 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
2075 * config/darwin-protos.h (darwin_objc_construct_string,
2076 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
2078 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2079 TARGET_STRING_OBJECT_REF_TYPE_P,
2080 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
2081 * config/t-darwin (darwin-c.o): Update dependencies.
2082 * system.h (TARGET_HAS_TARGETCM): Poison.
2083 * Makefile.in (TARGET_H): Update.
2084 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
2085 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
2086 (default-c.o): New target.
2087 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
2088 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
2089 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
2091 (build/genhooks.o): Update dependencies.
2093 2011-04-06 Richard Guenther <rguenther@suse.de>
2095 * ipa-inline.c (enum inlining_mode): Remove.
2096 (cgraph_flatten): Use some other token.
2097 (cgraph_edge_early_inlinable_p): New function, split out from ...
2098 (cgraph_perform_always_inlining): New function, split out from ...
2099 (cgraph_decide_inlining_incrementally): ... here.
2100 (cgraph_mark_inline_edge): Adjust.
2101 (cgraph_early_inlining): Re-structure.
2102 (pass_early_inline): Require SSA form.
2104 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
2105 Julian Brown <julian@codesourcery.com>
2106 Mark Shinwell <shinwell@codesourcery.com>
2108 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
2109 LO_REGS only for Thumb-1.
2110 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
2111 be used in short instructions when optimising for size on Thumb-2.
2113 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
2115 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2116 associated with user returns to be preserved.
2118 2011-04-06 Tristan Gingold <gingold@adacore.com>
2120 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
2121 symbol_queue_size, DBXOUT_DECR_NESTING,
2122 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
2123 if XCOFF_DEBUGGING_INFO.
2125 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
2127 * config/i386/i386.md (attribute isa): New.
2128 (attribute enabled): New.
2129 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
2130 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
2131 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
2132 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
2133 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
2134 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2135 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
2136 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
2138 * config/i386/sse.md (VF): New mode iterator.
2142 (SSEMODEF4): Remove.
2143 (attribute sse): Handle V8SF and V4DF modes.
2144 (<absneg:code><mode>2): Use VF mode iterator.
2145 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
2147 (<plusminus_insn><mode>3): Use VF mode iterator.
2148 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2149 Use VF mode iterator.
2150 (<sse>_vm<plusminus_insn><mode>3): Merge with
2151 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
2152 (mul<mode>3): Use VF mode iterator.
2153 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
2154 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
2156 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
2157 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
2158 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
2159 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
2161 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
2162 Use VF1 mode iterator.
2163 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
2164 (sqrt<VF2:mode>2): New expander.
2165 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
2166 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
2167 and sqrtv2df2. Use VF mode iterator.
2168 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
2170 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
2171 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
2172 Use VF1 mode iterator.
2173 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
2174 (<smaxmin:code><mode>3): Use VF mode iterator.
2175 (*<smaxmin:code><mode>3_finite): Merge with
2176 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
2177 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2178 (<sse>_vm<smaxmin:code><mode>2): Merge with
2179 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
2180 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
2182 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
2184 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
2185 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
2186 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
2187 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
2188 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
2190 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
2191 Use VF_128 mode iterator.
2192 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
2194 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
2195 VF_128 mode iterator.
2196 (vcond<mode>): Use VF mode iterator.
2197 * config/i386/predicates.md (sse_comparison_operator): Merge with
2198 avx_comparison_float_operator. Do not declare as special_predicate.
2199 * config/i386/i386.c (struct builtin_description): Update for renamed
2201 (ix86_expand_args_builtin): Ditto.
2202 (ix86_expand_sse_compare_mask): Ditto.
2204 2011-04-06 Richard Guenther <rguenther@suse.de>
2206 * tree-inline.c (estimate_num_insns): For calls simply account
2207 for all passed arguments and a used return value.
2209 2011-04-06 Richard Guenther <rguenther@suse.de>
2211 PR tree-optimization/47663
2212 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
2213 call_stmt_time fields.
2214 (cgraph_edge_inlinable_p): Declare.
2215 (cgraph_edge_recursive_p): New inline function.
2216 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
2217 (cgraph_clone_edge): Copy it.
2218 * ipa-inline.c (cgraph_estimate_edge_time): New function.
2219 Account for call stmt time.
2220 (cgraph_estimate_time_after_inlining): Take edge argument.
2221 (cgraph_estimate_edge_growth): Account call stmt size.
2222 (cgraph_estimate_size_after_inlining): Take edge argument.
2223 (cgraph_mark_inline_edge): Adjust.
2224 (cgraph_check_inline_limits): Likewise.
2225 (cgraph_recursive_inlining_p): Remove.
2226 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
2227 (cgraph_decide_recursive_inlining): Take edge argument and
2229 (cgraph_decide_inlining_of_small_functions): Do not avoid
2230 diags for recursive inlining here.
2231 (cgraph_flatten): Adjust.
2232 (cgraph_decide_inlining_incrementally): Likewise.
2233 (estimate_function_body_sizes): Remove call cost handling.
2234 (compute_inline_parameters): Initialize caller edge call costs.
2235 (cgraph_estimate_edge_growth): New function.
2236 (cgraph_estimate_growth): Use it.
2237 (cgraph_edge_badness): Likewise.
2238 (cgraph_check_inline_limits): Take an edge argument.
2239 (cgraph_decide_inlining_of_small_functions): Adjust.
2240 (cgraph_decide_inlining): Likewise.
2241 * tree-inline.c (estimate_num_insns): Only account for call
2242 return value if it is used.
2243 (expand_call_inline): Avoid diagnostics on recursive inline
2245 * lto-cgraph.c (lto_output_edge): Output edge call costs.
2246 (input_edge): Input edge call costs.
2248 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2250 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
2252 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
2254 * doc/invoke.texi (Spec Files): Fix typo.
2256 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
2258 * profile.c (branch_prob): Move declaration of local variable. Remove
2259 obsolete ??? comment. Expand the location explicitly instead of using
2260 the LOCATION_FILE and LOCATION_LINE macros.
2262 2011-04-06 Wei Guozhi <carrot@google.com>
2265 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
2266 (arm_cond_branch): Likewise.
2267 (arm_cond_branch_reversed): Likewise.
2268 (arm_jump): Likewise.
2269 (push_multi): Likewise.
2270 * config/arm/constraints.md (Py): New constraint.
2272 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2275 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
2277 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
2278 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
2279 #ifdef DBX_DEBUGGING_INFO.
2281 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
2284 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2285 if old and new states differ.
2287 2011-04-05 Joseph Myers <joseph@codesourcery.com>
2289 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
2290 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
2291 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2292 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
2293 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
2295 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
2296 ColdFire options to -mcpu= options.
2298 2011-04-05 Jeff Law <law@redhat.com>
2300 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
2301 check if BB is a successor of LOOP->header and return
2302 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2304 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
2306 * cprop.c (struct reg_use): Remove.
2307 (reg_use_table): Make an array of RTX.
2308 (find_used_regs, constprop_register, local_cprop_pass,
2309 bypass_block): Simplify users of reg_use_table.
2310 (cprop_insn): Likewise. Iterate if copy propagation succeeded
2311 on one of the uses found by find_used_regs.
2313 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2316 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2319 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2321 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2323 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2325 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
2328 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2330 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2332 * combine.c: Include obstack.h.
2333 (struct insn_link): Define.
2334 (uid_log_links): Adjust type.
2335 (FOR_EACH_LOG_LINK): New macro.
2336 (insn_link_obstack): Declare.
2337 (alloc_insn_link): Define.
2338 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
2339 type of link variables.
2340 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2341 (try_combine, record_promoted_values, distribute_notes): Likewise.
2342 (distribute_links): Likewise. Tweak prototype.
2343 (clear_log_links): Delete.
2344 (adjust_for_new_dest): Call alloc_insn_link.
2345 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2347 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2349 * gcse.c (modify_mem_list): Convert to an array of VECs.
2350 (canon_modify_mem_list, compute_transp): Tweak formatting.
2351 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
2352 (load_killed_in_block_p): Likewise.
2353 (record_last_mem_set_info): Likewise.
2354 (clear_modify_mem_tables): Likewise.
2356 2011-04-05 Tom de Vries <tom@codesourcery.com>
2359 * function.c (emit_use_return_register_into_block): Only define if
2362 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
2364 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2366 2011-04-05 Joseph Myers <joseph@codesourcery.com>
2368 * config/rx/rx-opts.h: New.
2369 * config/rx/rx.c (rx_cpu_type): Remove.
2370 (rx_handle_option): Don't assert that global structures are in
2371 use. Access variables via opts pointer. Defer most handling of
2372 OPT_mint_register_. Use error_at.
2373 (rx_option_override): Handle deferred OPT_mint_register_ here.
2374 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2375 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2376 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2377 (rx_cpu_types): New Enum and EnumValue entries.
2378 (mint-register=): Use Defer and use Var accordingly.
2380 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2382 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2383 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2384 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2386 (debug_free_queue, debug_nesting, symbol_queue_index):
2388 * dbxout.c: ...to here. Make static.
2390 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
2392 * gcse.c (modify_pair): Define. Define a VEC of it.
2393 (canon_modify_mem_list): Convert to an array of VECs.
2394 (free_insn_expr_list_list): Delete.
2395 (clear_modify_mem_tables): Call VEC_free instead.
2396 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2397 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2398 (canon_list_insert, compute_transp): Likewise.
2400 2011-04-05 Tom de Vries <tom@codesourcery.com>
2403 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2406 2011-04-05 Tom de Vries <tom@codesourcery.com>
2409 * function.c (emit_use_return_register_into_block): New function.
2410 (thread_prologue_and_epilogue_insns): Use
2411 emit_use_return_register_into_block.
2413 2011-04-05 Tom de Vries <tom@codesourcery.com>
2416 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2419 2011-04-05 Tom de Vries <tom@codesourcery.com>
2421 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2423 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
2425 * config/arm/arm.md (define_constants for unspec): Replace with
2427 (define_constants for unspecv): Replace with define_c_enum.
2428 * config/arm/neon.md (define_constants for unspec): Replace with
2431 2011-04-04 Richard Henderson <rth@redhat.com>
2434 * dwarf2out.c (output_line_info): Always emit line info from
2435 at least one section.
2436 (dwarf2out_init): Create text_section_line_info here ...
2437 (set_cur_line_info_table): ... not here.
2439 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
2442 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2445 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2447 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
2449 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2450 (expr_equiv_p): Remove.
2451 (insert_set_in_table): Look at <dest, src> pair instead of expr.
2452 (hash_scan_set): Update call to insert_set_in_table.
2453 (dump_hash_table): Dump <dest, src> pair.
2454 (lookup_set): Simplify. Lookup <dest, src> pair.
2455 (compute_transp): Remove, fold heavily simplified code into...
2456 (compute_local_properties): ...here. Expect COMP and TRANSP
2458 (find_avail_set): Take set directly from struct expr.
2459 (find_bypass-set): Likewise.
2460 (bypass_block): Likewise.
2461 (cprop_insn): Likewise. Remove redundant INSN_P test.
2463 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2464 checks on form of COND from find_implicit_sets to here.
2465 (find_implicit_sets): Cleanup control flow. Split critical edges
2466 if it exposes implicit sets. Allocate/resize implicit_sets as
2468 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2469 changed something. Run df_analyze after find_implicit_sets if any
2470 edges were split. Do not allocate implicit_sets here.
2472 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2473 (gcse_obstack): Renamed to cprop_obstack.
2474 (GNEW, GNEWVEC, GNEWVAR): Remove.
2476 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2477 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2478 (gcse_alloc): Likewise, and rename to cprop_alloc.
2479 (alloc_gcse_men, free_gcse_mem): Remove.
2480 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2481 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2482 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2484 * cprop.c (oprs_not_set_p): Remove.
2485 (mark_set, mark_clobber): Remove.
2486 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2487 (reg_not_set_p): New function.
2488 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2489 (cprop_insn): Likewise.
2490 (cprop_jump): Use FOR_EACH_EDGE.
2492 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
2495 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2496 (rank_for_schedule): Use scheduled_insns vector instead of
2497 last_scheduled_insn.
2498 (ok_for_early_queue_removal): Likewise.
2499 (queue_to_ready): Search forward in nonscheduled_insns_begin if
2501 (choose_ready): Likewise.
2502 (commit_schedule): Use VEC_iterate.
2503 (schedule_block): Initialize nonscheduled_insns_begin. If we have
2504 a dbg_cnt, use it and ensure the first insn is in the ready list.
2505 (haifa_sched_init): Allocate scheduled_insns.
2506 (sched_extend_ready_list): Don't allocate it; reserve space.
2507 (haifa_sched_finish): Free it.
2509 2011-04-04 Joseph Myers <joseph@codesourcery.com>
2511 * optc-gen.awk: Always remove type from Variable entry before
2512 recording in var_seen.
2514 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
2516 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2517 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2518 call to tidy_fallthru_edges.
2520 2011-04-04 Joseph Myers <joseph@codesourcery.com>
2522 * doc/options.texi (ToLower): Document.
2523 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2524 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2525 * opts.h (cl_option): Add cl_tolower field.
2526 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2527 arguments with lowercase strings.
2528 * config/rx/rx.opt (mcpu=): Add ToLower.
2529 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2532 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
2534 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2536 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
2538 * config/vax/vax.c: Include reload.h.
2540 2011-04-04 Anatoly Sokolov <aesok@post.ru>
2542 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2543 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2544 (sparc_preferred_reload_class): New function.
2546 2011-04-04 Jakub Jelinek <jakub@redhat.com>
2549 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2550 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2552 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
2554 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2555 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2557 2011-04-03 Anatoly Sokolov <aesok@post.ru>
2559 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2560 (ASM_OUTPUT_ALIGNED_BSS): Define.
2562 2011-04-03 Michael Matz <matz@suse.de>
2564 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2565 and next_slot members.
2566 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2567 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2568 (lto_streamer_cache_append): Declare.
2569 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2570 unsigned index, remove offset parameter, ensure that we append
2571 or update existing entries.
2572 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2573 parameter, update next_slot for append.
2574 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2576 (lto_streamer_cache_insert_at): Likewise.
2577 (lto_streamer_cache_append): New function.
2578 (lto_streamer_cache_lookup): Use unsigned index.
2579 (lto_streamer_cache_get): Likewise.
2580 (lto_record_common_node): Don't test tree_node_can_be_shared.
2581 (preload_common_node): Adjust call to lto_streamer_cache_insert.
2582 (lto_streamer_cache_delete): Don't free offsets member.
2583 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2584 (lto_output_string_with_length): Use lto_output_data_stream.
2585 (lto_output_tree_header): Remove ix parameter, don't write it.
2586 (lto_output_builtin_tree): Likewise.
2587 (lto_write_tree): Adjust callers to above, don't track and write
2588 offset, write unsigned index.
2589 (output_unreferenced_globals): Don't emit all global vars.
2590 (write_global_references): Use unsigned indices.
2591 (lto_output_decl_state_refs): Likewise.
2592 (write_symbol): Likewise.
2593 * lto-streamer-in.c (lto_input_chain): Move earlier.
2594 (input_function): Use unsigned index.
2595 (input_alias_pairs): Don't read and then ignore all global vars.
2596 (lto_materialize_tree): Remove ix_p parameter, don't read index,
2597 don't pass it back, use lto_streamer_cache_append.
2598 (lto_register_var_decl_in_symtab): Use unsigned index.
2599 (lto_register_function_decl_in_symtab): Likewise.
2600 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2602 (lto_get_builtin_tree): Don't read index, use
2603 lto_streamer_cache_append.
2604 (lto_read_tree): Adjust call to lto_materialize_tree.
2606 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2607 don't use function calls in arguments to MIN.
2609 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2612 * gimple.c (gimple_type_leader_entry): Mark deletable.
2614 2011-04-03 Alan Modra <amodra@gmail.com>
2616 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2618 2011-04-03 Michael Matz <matz@suse.de>
2620 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2622 * tree.h (tree_decl_non_common.vindex): Adjust comment.
2624 2011-04-03 Michael Matz <matz@suse.de>
2626 * cgraphbuild.c (record_reference): Canonicalize constructor values.
2627 * gimple-fold.c (canonicalize_constructor_val): Accept being called
2628 without function context.
2629 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2630 current_function_decl and cfun.
2632 2011-04-03 Michael Matz <matz@suse.de>
2634 * tree.c (decl_init_priority_insert): Don't create entry for
2636 (decl_fini_priority_insert): Ditto.
2637 (fields_compatible_p, find_compatible_field): Remove.
2638 * tree.h (fields_compatible_p, find_compatible_field): Remove.
2639 * gimple.c (gimple_compare_field_offset): Adjust block comment.
2641 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
2643 * combine.c (try_combine): Remove useless local variable.
2645 2011-04-03 Richard Guenther <rguenther@suse.de>
2646 Ira Rosen <ira.rosen@linaro.org>
2648 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2649 non-variable offsets and compare the remaining bases of the two
2650 accesses instead of looking for exact same data-ref.
2652 2011-04-02 Kai Tietz <ktietz@redhat.com>
2655 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2657 * i386.c (ix86_is_msabi_thiscall): New helper function.
2658 (ix86_is_type_thiscall): New helper function.
2659 (ix86_comp_type_attributes): Handle thiscall for method-functions
2661 (init_cumulative_args): Likewise.
2662 (find_drap_reg): Likewise.
2663 (ix86_static_chain): Likewise.
2664 (x86_this_parameter): Likewise.
2665 (x86_output_mi_thunk): Likewise.
2667 2011-04-01 Olivier Hainque <hainque@adacore.com>
2668 Nicolas Setton <setton@adacore.com>
2669 Eric Botcazou <ebotcazou@adacore.com>
2671 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2672 (add_gnat_descriptive_type_attribute): New function.
2673 (gen_array_type_die): Call it.
2674 (gen_enumeration_type_die): Likewise.
2675 (gen_struct_or_union_type_die): Likewise.
2676 (modified_type_die): Likewise.
2677 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2678 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2679 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2681 2011-04-01 Jakub Jelinek <jakub@redhat.com>
2684 * dwarf2out.c (resolve_addr): Don't call force_decl_die
2685 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2688 2011-03-17 Richard Guenther <rguenther@suse.de>
2691 * lto-cgraph.c (input_overwrite_node): Clear the abstract
2692 origin for decls in other ltrans units.
2693 (input_varpool_node): Likewise.
2695 2011-04-01 Jakub Jelinek <jakub@redhat.com>
2698 * expr.c (expand_assignment): Handle all possibilities
2699 if TO_RTX is CONCAT.
2700 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2701 (store_split_bit_field): If SUBREG_REG (op0) or
2702 op0 itself has smaller mode than word, return it
2703 for offset 0 and const0_rtx for out-of-bounds stores.
2704 If word is const0_rtx, skip it.
2706 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
2708 * config/h8300/h8300.c (print_operand_address): Rename to...
2709 (h8300_print_operand_address): ...this. Make static. Adjust comments.
2710 Call h8300_print_operand and h8300_print_operand_address instead of
2711 print_operand and print_operand_address. Declare.
2712 (print_operand): Renake to...
2713 (h8300_print_operand): ...this. Make static. Adjust comments.
2714 Call h8300_print_operand instead of print_operand. Declare.
2715 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2716 (h8300_register_move_cost): Likewise.
2717 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2718 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2719 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2720 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2721 * config/h8300/h8300-protos.h (print_operand): Delete.
2722 (print_operand_address): Delete.
2724 2011-04-01 Richard Henderson <rth@redhat.com>
2727 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2728 in strict mode before dwarf4. Re-order tests to early out
2729 before switching sections.
2731 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
2733 * config/h8300/constraints.md: New file.
2734 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
2735 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2736 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2737 * config/h8300/predicates.md (bit_operand): Likewise.
2738 (incdec_operand): Use satisfies_constraint_M and
2739 satisfies_constraint_O. Don't use C code block.
2740 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2741 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2742 (compute_mov_length): Use satisfies_constraint_G.
2743 (fix_bit_operand): Use satisfies_constraint_U.
2744 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2745 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2746 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2747 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2748 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2749 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2750 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2751 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2752 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2753 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2754 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2755 (EXTRA_MEMORY_CONSTRAINT): Delete.
2757 2011-04-01 Andrew Pinski <pinskia@gmail.com>
2758 Michael Meissner <meissner@linux.vnet.ibm.com>
2761 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2762 operands, as per the specifications.
2764 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2765 (vec_extract_evenv4sf): Ditto.
2766 (vec_extract_evenv8hi): Ditto.
2767 (vec_extract_evenv16qi): Ditto.
2768 (vec_extract_oddv4si): Ditto.
2770 2011-03-31 Mark Wielaard <mjw@redhat.com>
2772 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2773 high_pc attribute if the CU has no associated code. Only output
2774 DW_AT_entry_pc for CU if not generating strict dwarf and
2777 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
2779 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2780 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2782 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2783 * final.c (final_start_function): Call the new function rather
2784 than using a NULL argument for dwarf2out_frame_debug.
2786 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2787 that contains the prologue.
2789 * haifa-sched.c (queue_insn): New arg REASON. All callers
2790 changed. Print it in debugging output.
2792 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2794 * sched-ebb.c (begin_schedule_ready): Remove second argument.
2795 Split most of the code into...
2796 (begin_move_insn): ... here. New function.
2797 (ebb_sched_info): Add a pointer to it.
2798 * haifa-sched.c (scheduled_insns): New static variable.
2799 (sched_extend_ready_list): Allocate it.
2800 (schedule_block): Use it to record the order of scheduled insns.
2801 Perform RTL changes to move insns only after all scheduling
2802 decisions have been made.
2803 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2804 begin_move_insn field.
2805 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2806 * sched-int.h (struct haifa_sched_info): Remove second argument
2807 from begin_schedule_ready hook. Add new member begin_move_insn.
2808 * sched-rgn.c (begin_schedule_ready): Remove second argument.
2809 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2811 * haifa-sched.c (prune_ready_list): New function, broken out of
2813 (schedule_block): Use it.
2815 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2817 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2819 2011-04-01 Kai Tietz <ktietz@redhat.com>
2821 * config.gcc (*-*-mingw*): Allow as option the
2822 posix threading model.
2823 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
2824 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2826 (CPP_SPEC): Add pthread/no-pthread handling.
2827 (LIB_SPEC): Likewise.
2828 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2829 (LIB_SPEC): Likewise.
2830 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2831 flag to pass -pthread option for shared libgcc build.
2832 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2833 for shared libgcc build.
2834 * config/i386/t-mingw-pthread: New file.
2835 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2836 New define to enable use of library pthread by default.
2837 * config/i386/mingw.opt (pthread): New driver option.
2838 (no-pthread): New driver option.
2839 * config/i386/cygming.opt: Make sure trailing empty line is retained.
2840 * config/i386/mingw-w64.opt: Likewise.
2842 2011-04-01 Gary Funck <gary@intrepid.com>
2844 * c-decl.c (grokdeclarator): Fix formatting.
2846 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2848 * expr.c (emit_block_move_via_movmem): Use n_generator_args
2849 instead of n_operands.
2850 (set_storage_via_setmem): Likewise.
2851 * optabs.c (maybe_gen_insn): Likewise.
2852 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2853 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2854 (mips_expand_builtin_direct): Likewise.
2855 * config/spu/spu.c (expand_builtin_args): Likewise.
2857 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2859 * recog.h (insn_data_d): Add n_generator_args.
2860 * genoutput.c (data): Likewise.
2861 (output_insn_data): Print it.
2862 (max_opno, num_dups): Delete.
2863 (scan_operands): Just fill in "d->operand[...]".
2864 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2866 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
2868 * gensupport.h (pattern_stats): New structure.
2869 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2870 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2871 (max_operand_1, max_operand_vec): Delete.
2872 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2874 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
2876 * emit-rtl.c (emit_pattern_after_setloc): New function.
2877 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2878 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2879 (emit_pattern_after): New function.
2880 (emit_insn_after, emit_jump_insn_after): Call it.
2881 (emit_call_insn_after, emit_debug_insn_after): Likewise.
2882 (emit_pattern_before_setloc): New function.
2883 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2884 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2886 (emit_pattern_before): New function.
2887 (emit_insn_before, emit_jump_insn_before): Call it.
2888 (emit_call_insn_before, emit_debug_insn_before): Likewise.
2890 2011-03-31 Richard Henderson <rth@redhat.com>
2892 * dwarf2out.c (dw_separate_line_info_ref): Remove.
2893 (dw_separate_line_info_entry): Remove.
2894 (enum dw_line_info_opcode): New.
2895 (dw_line_info_entry): Use it.
2896 (dw_line_info_table, dw_line_info_table_p): New.
2897 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2898 (line_info_table, line_info_label_num): Remove.
2899 (line_info_table_in_use): Remove.
2900 (separate_line_info_table): Remove.
2901 (separate_line_info_table_allocated): Remove.
2902 (separate_line_info_table_in_use): Remove.
2903 (LINE_INFO_TABLE_INCREMENT): Remove.
2904 (line_info_label_num): New.
2905 (cur_line_info_table): New.
2906 (text_section_line_info, cold_text_section_line_info): New.
2907 (separate_line_info): New.
2908 (SEPARATE_LINE_CODE_LABEL): Remove.
2909 (print_dwarf_line_table): Remove.
2910 (debug_dwarf): Don't dump it.
2911 (output_one_line_info_table): New.
2912 (output_line_info): Use it.
2913 (new_line_info_table): New.
2914 (set_cur_line_info_table): New.
2915 (dwarf2out_switch_text_section): Use it.
2916 (dwarf2out_begin_function): Likewise.
2917 (push_dw_line_info_entry): New.
2918 (dwarf2out_source_line): Rewrite for new line info tables.
2919 (dwarf2out_init): Remove dead initailizations.
2921 2011-03-31 Joseph Myers <joseph@codesourcery.com>
2923 * opts.h (cl_option): Add comments to fields. Add bit-fields for
2925 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2926 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2927 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2928 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2929 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2930 * opt-functions.awk (flag_init, switch_bit_fields): New.
2931 (switch_flags): Don't handle flags moved to bit-fields. Don't
2932 generate CL_MISSING_OK or CL_SAVE.
2933 * optc-gen.awk: Update to generate bit-field output as well as
2935 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2936 bit-field instead of CL_REJECT_DRIVER flag.
2937 * opts-common.c (generate_canonical_option,
2938 decode_cmdline_option): Use bit-fields instead of CL_* flags.
2939 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2940 instead of CL_REJECT_NEGATIVE flag.
2941 * toplev.c (print_switch_values): Use cl_report bit-field instead
2944 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
2946 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2947 a zero minimum index only if it is redundant.
2949 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
2951 PR rtl-optimization/48381
2952 * ira-color.c (assign_hard_reg): Use hard reg set intersection
2953 instead of ira_class_hard_reg_index for calculating conflicting
2956 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
2958 * cprop.c: Clean up hash table building.
2959 (reg_avail_info): Remove.
2960 (oprs_available_p): Remove.
2961 (record_last_reg_set_info): Remove.
2962 (record_last_set_info): Remove.
2963 (reg_available_p): New function.
2964 (gcse_constant_p): Do not treat unfolded conditions as constants.
2965 (make_set_regs_unavailable): New function.
2966 (hash_scan_set): Simplify with new reg_available_p.
2967 (compute_hash_table_work): Traverse insns stream only once.
2968 Do not compute reg_avail_info. Traverse insns in reverse order.
2969 Record implicit sets after recording explicit sets from the block.
2971 2011-03-31 Michael Matz <matz@suse.de>
2973 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2975 2011-03-31 Anatoly Sokolov <aesok@post.ru>
2977 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2978 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2979 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2980 (h8300_mode_dependent_address_p): New function.
2981 (h8300_get_index): Make static.
2983 2011-03-31 Jeff Law <law@redhat.com>
2985 * reload1.c (elimination_effects): Fix typo in recent change.
2987 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2988 typo potentially leading to null pointer dereference.
2990 * caller-save.c (new_saved_hard_reg): Eliminate return value.
2991 (setup_save_areas): Corresponding changes to avoid useless
2994 * jump.c (reversed_comparison_code_parts): Avoid successive return
2995 statements when REVERSE_CONDITION is defined.
2997 * expr.c (expand_assignment): Avoid useless assignments.
2998 (expand_expr_real_1): Likewise.
2999 (expand_expr_real_2): Avoid useless statements.
3001 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
3003 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3005 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
3008 * stmt.c (expand_expr_stmt): Avoid useless assignment.
3010 2011-03-31 Joseph Myers <joseph@codesourcery.com>
3013 * doc/tm.texi.in (TARGET_VERSION): Remove.
3014 * doc/tm.texi: Regenerate.
3015 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
3016 * collect2.c (main): Don't use TARGET_VERSION.
3017 * mips-tdump.c (main): Don't use TARGET_VERSION.
3018 * mips-tfile.c (main): Don't use TARGET_VERSION.
3019 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
3020 * config/rs6000/vxworksae.h: Remove.
3021 * config/alpha/alpha.h (TARGET_VERSION): Remove.
3022 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
3023 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
3024 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
3025 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3026 * config/arm/arm.h (TARGET_VERSION): Remove.
3027 * config/arm/coff.h (TARGET_VERSION): Remove.
3028 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
3029 * config/arm/elf.h (TARGET_VERSION): Remove.
3030 * config/arm/freebsd.h (TARGET_VERSION): Remove.
3031 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
3032 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
3033 * config/arm/pe.h (TARGET_VERSION): Remove.
3034 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
3035 * config/arm/semi.h (TARGET_VERSION): Remove.
3036 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
3037 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
3038 * config/arm/vxworks.h (TARGET_VERSION): Remove.
3039 * config/avr/avr.h (TARGET_VERSION): Remove.
3040 * config/bfin/bfin.h (TARGET_VERSION): Remove.
3041 * config/fr30/fr30.h (TARGET_VERSION): Remove.
3042 * config/frv/frv.h (TARGET_VERSION): Remove.
3043 * config/h8300/h8300.h (TARGET_VERSION): Remove.
3044 * config/i386/cygwin.h (TARGET_VERSION): Remove.
3045 * config/i386/darwin.h (TARGET_VERSION): Remove.
3046 * config/i386/darwin64.h (TARGET_VERSION): Remove.
3047 * config/i386/djgpp.h (TARGET_VERSION): Remove.
3048 * config/i386/freebsd.h (TARGET_VERSION): Remove.
3049 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
3050 * config/i386/gnu.h (TARGET_VERSION): Remove.
3051 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
3052 * config/i386/i386elf.h (TARGET_VERSION): Remove.
3053 * config/i386/linux.h (TARGET_VERSION): Remove.
3054 * config/i386/linux64.h (TARGET_VERSION): Remove.
3055 * config/i386/lynx.h (TARGET_VERSION): Remove.
3056 * config/i386/mingw32.h (TARGET_VERSION): Remove.
3057 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
3058 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
3059 * config/i386/netware.h (TARGET_VERSION): Remove.
3060 * config/i386/nto.h (TARGET_VERSION): Remove.
3061 * config/i386/openbsd.h (TARGET_VERSION): Remove.
3062 * config/i386/vxworks.h (TARGET_VERSION): Remove.
3063 * config/ia64/elf.h (TARGET_VERSION): Remove.
3064 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
3065 * config/ia64/hpux.h (TARGET_VERSION): Remove.
3066 * config/ia64/linux.h (TARGET_VERSION): Remove.
3067 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3068 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
3069 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3070 * config/lm32/lm32.h (TARGET_VERSION): Remove.
3071 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
3072 * config/m32c/m32c.h (TARGET_VERSION): Remove.
3073 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
3074 * config/m32r/m32r.h (TARGET_VERSION): Remove.
3075 * config/m68k/linux.h (TARGET_VERSION): Remove.
3076 * config/m68k/m68k.h (TARGET_VERSION): Remove.
3077 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
3078 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
3079 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
3080 * config/mep/mep.h (TARGET_VERSION): Remove.
3081 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
3082 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3083 * config/mips/iris6.h (MACHINE_TYPE): Remove.
3084 * config/mips/linux.h (TARGET_VERSION): Remove.
3085 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
3086 * config/mips/vxworks.h (TARGET_VERSION): Remove.
3087 * config/mmix/mmix.h (TARGET_VERSION): Remove.
3088 * config/mn10300/linux.h (TARGET_VERSION): Remove.
3089 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
3090 * config/pa/pa.h (TARGET_VERSION): Remove.
3091 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
3092 * config/picochip/picochip.h (TARGET_VERSION): Remove.
3093 * config/rs6000/aix.h (TARGET_VERSION): Remove.
3094 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
3095 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
3096 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
3097 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
3098 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
3099 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
3100 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
3101 * config/rs6000/linux.h (TARGET_VERSION): Remove.
3102 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
3103 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
3104 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
3105 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
3106 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
3107 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
3108 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
3109 * config/s390/linux.h (TARGET_VERSION): Remove.
3110 * config/s390/s390.h (TARGET_VERSION): Remove.
3111 * config/s390/tpf.h (TARGET_VERSION): Remove.
3112 * config/score/score.h (TARGET_VERSION): Remove.
3113 * config/sh/linux.h (TARGET_VERSION): Remove.
3114 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
3115 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
3116 * config/sh/sh.h (TARGET_VERSION): Remove.
3117 * config/sh/sh64.h (TARGET_VERSION): Remove.
3118 * config/sh/superh.h (TARGET_VERSION): Remove.
3119 * config/sh/vxworks.h (TARGET_VERSION): Remove.
3120 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
3121 * config/sparc/linux.h (TARGET_VERSION): Remove.
3122 * config/sparc/linux64.h (TARGET_VERSION): Remove.
3123 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
3124 TARGET_NAME32, TARGET_NAME): Remove.
3125 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
3126 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
3127 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
3128 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
3129 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
3130 * config/spu/spu.h (TARGET_VERSION): Remove.
3131 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
3132 * config/v850/v850.h (TARGET_VERSION): Remove.
3133 * config/vax/linux.h (TARGET_VERSION): Remove.
3134 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
3135 * config/xtensa/elf.h (TARGET_VERSION): Remove.
3136 * config/xtensa/linux.h (TARGET_VERSION): Remove.
3138 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
3141 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
3142 frame-related from frame-unrelated adjustments to the stack pointer.
3144 2011-03-31 Jakub Jelinek <jakub@redhat.com>
3146 * common.opt (fdebug-types-section): Move earlier.
3147 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
3149 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
3151 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
3154 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
3156 * tree.h (CASE_CHAIN): Define.
3157 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
3158 (gimple_redirect_edge_and_branch): Likewise.
3160 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
3163 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
3166 2011-03-30 Jeff Law <law@redhat.com>
3168 * PR bootstrap/48371
3169 * reload1.c (reload): Fix botch in last change.
3171 * reload.h (struct reload): Fix typo introduced in last change.
3173 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3175 * config/arm/arm.opt (mhard-float, msoft-float): Mark
3176 Undocumented. Remove help text.
3177 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
3180 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3182 * doc/options.texi (NegativeAlias): Document.
3183 (Alias): Mention NegativeAlias.
3184 * opt-functions.awk: Handle NegativeAlias.
3185 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
3186 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
3187 * opts.h (CL_NEGATIVE_ALIAS): Define.
3188 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
3189 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
3191 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
3193 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3194 mno-spe and mno-isel instead of mspe=no and -misel=no.
3196 2011-03-29 Mark Wielaard <mjw@redhat.com>
3198 * common.opt (fdebug-types-section): New flag.
3199 * doc/invoke.texi: Document new -fno-debug-types-section flag.
3200 * dwarf2out.c (use_debug_types): New define.
3201 (struct die_struct): Mark die_id with GTY desc use_debug_types.
3202 (print_die): Guard output of type unit signatures using
3204 (build_abbrev_table): Replace assert of dwarf_version >= 4
3205 with assert on use_debug_types.
3206 (size_of_die): Likewise.
3207 (unmark_dies): Likewise.
3208 (value_format): Decide AT_ref_external form on use_debug_types.
3209 (output_die): Replace dwarf_version version check guard with
3210 use_debug_types where appropriate.
3211 (modified_type_die): Likewise.
3212 (gen_reference_type_die): Likewise.
3213 (dwarf2out_start_source_file): Likewise.
3214 (dwarf2out_end_source_file): Likewise.
3215 (prune_unused_types_walk_attribs): Likewise.
3216 (dwarf2out_finish): Likewise.
3218 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
3220 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
3222 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3224 PR rtl-optimization/48332
3225 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
3226 mode of input operand N and modeN to its actual mode.
3228 2011-03-30 Jeff Law <law@redhat.com>
3230 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
3231 define accessor macro.
3232 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
3233 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
3234 (reg_equiv_init): Likewise.
3235 (reg_equivs_size): New variable.
3236 (reg_equiv_init_size): Remove.
3237 (allocate_initial_values): Move prototype to here from....
3238 * integrate.h (allocate_initial_values): Remove prototype.
3239 * integrate.c: Include reload.h.
3240 (allocate_initial_values): Corresponding changes.
3241 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
3242 (fix_reg_equiv_init, no_equiv): Corresponding changes.
3243 (update_equiv_regs): Corresponding changes.
3244 (ira): Corresponding changes.
3245 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
3246 (push_secondary_reload): Corresponding changes.
3247 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
3248 (make_memloc, find_reloads_address): Corresponding changes.
3249 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
3250 (find_reloads_address_1): Corresponding changes.
3251 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
3252 (refers_to_regno_for_reload_p): Corresponding changes.
3253 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
3254 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
3255 * reload1.c: Include ggc.h.
3256 (grow_reg_equivs): New function.
3257 (replace_pseudos_in, reload): Corresponding changes.
3258 (calculate_needs_all_insns, alter_regs): Corresponding changes.
3259 (eliminate_regs_1, elimination_effects): Corresponding changes.
3260 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
3261 (delete_output_reload): Likewise.
3262 * caller-save.c (mark_referenced_regs): Corresponding changes.
3263 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
3264 * frv/predicates.md (frv_load_operand): Corresponding changes.
3265 * microblaze/microblaze.c (double_memory_operand): Corresponding
3267 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
3268 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
3269 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
3270 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
3271 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
3273 * pa/pa.c (emit_move_sequence): Corresponding changes.
3274 * vax/vax.c (nonindexed_address_p): Corresponding changes.
3276 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3279 * config/arm/arm.c (coproc_secondary_reload_class): Handle
3280 structure modes. Don't check neon_vector_mem_operand for
3281 vector or structure modes.
3283 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
3284 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3287 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
3288 operand 1 and reshuffle the operands to match.
3289 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
3291 2011-03-30 Christian Schüler <cschueler@gmx.de>
3294 * config/c.opt (F): Added 'Driver' to -F option.
3297 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
3299 * config/darwin.opt: Added '-arch' option.
3301 2011-03-30 Nick Clifton <nickc@redhat.com>
3303 * config/rx/rx.md: Add peepholes and patterns to combine
3304 extending loads and simple arithmetic instructions.
3305 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3306 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3307 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3308 modes to use pre-decrement and post-increment addressing.
3309 (rx_is_restricted_memory_address): Add range checking of REG+INT
3311 (rx_print_operand): Add support for %Q. Fix handling of %Q.
3312 (rx_memory_move_cost): Adjust cost of stores.
3313 (rx_adjust_insn_length): New function.
3315 2011-03-30 Jakub Jelinek <jakub@redhat.com>
3318 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3319 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3320 matching arg00/arg01 types.
3322 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
3324 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3325 last_location to UNKNOWN_LOCATION.
3327 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
3330 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3333 2011-03-30 Joseph Myers <joseph@codesourcery.com>
3334 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3337 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3339 (sparc_cpu): Likewise.
3340 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3343 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
3347 PR rtl-optimization/48345
3348 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3349 hard regs for given mode from profitable regs when doing secondary
3352 2011-03-29 Jeff Law <law@redhat.com>
3355 * tree-ssa-threadupdate.c (struct redirection_data): Remove
3356 do_not_duplicate field.
3357 (lookup_redirection_data): Corresponding changes.
3358 (create_duplicates): Always create a template block.
3359 (redirect_edges): Remove code which reused the original block
3360 when it was going to become unreachable code.
3361 (thread_block): Don't set do_not_duplicate field.
3363 2011-03-29 Joseph Myers <joseph@codesourcery.com>
3365 * lto-opts.c (register_user_option_p, lto_register_user_option):
3366 Make type argument unsigned.
3367 * lto-streamer.h (lto_register_user_option): Make type argument
3369 * opth-gen.awk: Make CL_* macros unsigned.
3370 * opts-common.c (find_opt): Make lang_mask argument unsigned.
3371 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3372 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3373 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3374 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3375 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3376 (find_opt): Make lang_mask argument unsigned.
3378 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>