OSDN Git Service

* doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-08-06  Alan Modra  <amodra@gmail.com>
2
3         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
4         and -mrelocatable-lib description.
5
6 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
7
8         From Martin Thuresson  <martint@google.com>
9         * postreload.c (reload_cse_simplify_operands): Use
10         SET_REGNO_RAW instead of SET_REGNO.
11         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
12         SET_REGNO.
13         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
14         instead of SET_REGNO.
15         * rtl.h (SET_REGNO_RAW): New macro.
16
17 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18
19         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
20         computations.  Fix formatting issues.
21         (num_sign_bit_copies1): Likewise.
22         (canonicalize_condition): Likewise.
23
24 2010-08-05  Richard Henderson  <rth@redhat.com>
25
26         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
27         (floor_log2): Use clz_hwi.
28         (exact_log2): Use ctz_hwi.
29         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
30         * builtins.c (fold_builtin_bitop): Use them.
31         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
32         * combine.c (get_pos_from_mask): Use ctz_hwi.
33         * double-int.c (double_int_ctz): Likewise.
34         * explow.c (force_reg): Likewise.
35         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
36
37 2010-08-05  Richard Henderson  <rth@redhat.com>
38
39         PR target/45189
40         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
41         the alignment constant is properly sign-extended.
42
43 2010-08-05  Richard Guenther  <rguenther@suse.de>
44
45         * expr.c (store_expr): Use emit_block_move only if both
46         source and target are MEMs.  Use store_bit_field if only
47         the target is a MEM.
48
49 2010-08-05  Richard Henderson  <rth@redhat.com>
50
51         PR debug/45188
52         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
53         (INCOMING_RETURN_ADDR_RTX): Likewise.
54         (dwarf2out_do_frame): Remove conditional compilation.
55         (dwarf2out_frame_init): Likewise.
56
57 2010-08-05  Nicolas Setton  <setton@adacore.com>
58
59         * gcov.c (flag_display_progress): New static variable.
60         (main): Display progress info on standard output if requested.
61         (options): Add -d/--display-progress.
62         (print_usage): Print them.
63         (process_args): Handle them.
64         * doc/gcov.texi: Document them.
65
66 2010-08-05  Martin Jambor  <mjambor@suse.cz>
67
68         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
69         (ipcp_insert_stage): Redirect only edges not flagged with
70         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
71         discovered constants.
72
73 2010-08-05  Martin Jambor  <mjambor@suse.cz>
74
75         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
76         (struct ipa_param_descriptor): New fields types and
77         cannot_devirtualize.
78         (ipa_param_cannot_devirtualize_p): New function.
79         (ipa_param_types_vec_empty): Likewise.
80         (ipa_make_edge_direct_to_target): Declare.
81         * ipa-cp.c: Fixed first stage driver name in initial comment,
82         described devirtualization there too.
83         (ipcp_analyze_node): Call ipa_analyze_params_uses.
84         (ipcp_print_all_lattices): Print devirtualization info.
85         (ipa_set_param_cannot_devirtualize): New function.
86         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
87         lattice to BOTTOM.
88         (ipcp_init_stage): Merged into...
89         (ipcp_generate_summary): ...its caller.
90         (ipcp_change_tops_to_bottom): Also process type lists.
91         (ipcp_add_param_type): New function.
92         (ipcp_copy_types): Likewise.
93         (ipcp_propagate_types): Likewise.
94         (ipcp_propagate_stage): Also propagate types.
95         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
96         Also return true if propagated types require it.
97         (ipcp_update_callgraph): Dump redirection info.
98         (ipcp_process_devirtualization_opportunities): New function.
99         (ipcp_const_param_count): Include known type information.
100         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
101         on new node.  Fixed formatting.
102         * ipa-prop.c (make_edge_direct_to_target): Renamed to
103         ipa_make_edge_direct_to_target and changed all callers.  Made
104         externally visible.
105         (ipa_node_duplication_hook): Duplicate types vector.
106         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
107         redirect outgoing calls for which we can't get a decl from the
108         statement.  Check that we can get a decl from the call statement.
109         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
110         ipa_analyze_params_uses only when ipa-cp is disabled.
111         * tree-inline.c (get_indirect_callee_fndecl): Removed.
112         (expand_call_inline): Do not call get_indirect_callee_fndecl.
113         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
114         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
115
116 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
117
118         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
119         temporary. Emit move from temporary to accum, so REG_EQUAL note will
120         be attached to this insn in correct mode.
121
122 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
123
124         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
125         using REGNO of base_reg directly.
126
127 2010-08-05  Jie Zhang  <jie@codesourcery.com>
128
129         PR tree-optimization/45144
130         * tree-sra.c (type_consists_of_records_p): Return false
131         if the record contains bit-field.
132
133 2010-08-04  Richard Henderson  <rth@redhat.com>
134
135         * config/i386/i386.c (struct ix86_frame): Remove padding and
136         to_allocate members.
137         (ix86_compute_frame_layout): Don't store them.
138         (ix86_can_use_return_insn_p): Use a more direct and more obviously
139         correct condition for the position of the stack pointer.
140         (ix86_expand_prologue): Compute remaining stack allocation based
141         on the ultimate stack pointer offset.
142         (ix86_expand_epilogue): Use more obvious expressions testing for
143         the stack pointer already pointing to the saved registers.
144
145         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
146         duplication deconstructing the frame pointer.  Simplify
147         deallocation of the local stack frame.
148
149         * reg-notes.def (CFA_EXPRESSION): New.
150         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
151         (dwarf2out_frame_debug_cfa_expression): New.
152         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
153
154         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
155         * config/i386/i386.c (ix86_expand_prologue): Set it.
156         (ix86_expand_epilogue): Clear it.
157         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
158         context, add REG_CFA_EXPRESSION notes.
159
160         * config/i386/i386.h (struct machine_frame_state): Rename from
161         machine_cfa_state.  Add members tracking SP and FP regardless
162         of the current CFA register.
163         (ix86_cfa_state): Remove.
164         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
165         and sse_reg_save_offset members.
166         (ix86_compute_frame_layout): Set them.
167         (gen_push): Increment sp_offset too.
168         (choose_baseaddr_len, choose_baseaddr): New.
169         (ix86_emit_save_reg_using_mov): New.
170         (ix86_emit_save_regs_using_mov): Use it.
171         (ix86_emit_save_sse_regs_using_mov): Likewise.
172         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
173         compare vs the saved red_zone_offset.
174         (pro_epilogue_adjust_stack): Adjust sp_offset.
175         (ix86_adjust_stack_and_probe): Likewise.
176         (ix86_expand_prologue): Set up, use, and validate the new
177         frame_state_info members.  Use gen_frame_mem.
178         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
179         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
180         new frame_state_info members.
181         (ix86_emit_leave): Likewise.
182         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
183         out-of-range stack pointer offsets here.
184         (ix86_emit_restore_sse_regs_using_mov): Likewise.
185         (ix86_expand_epilogue): Use and validate the new frame_state_info
186         members.  Break up and simplify the logic selecting the
187         restore_regs_via_mov code path.  Ensure that there will be no
188         out-of-range stack pointer offsets.
189
190         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
191
192         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
193         argument name to reflect the expected tree; fix indentation.
194         (ix86_asm_output_function_label): Output the entire 32-bit
195         ms_hook here as bytes ...
196         (ix86_expand_prologue): ... not here as insns.  Attach the
197         unwind info for the ms_hook to a blockage insn.
198         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
199         (ix86_ms_bitfield_layout_p): Fix indentation.
200         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
201
202         * config/i386/i386.c (ix86_using_red_zone): New.
203         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
204         ix86_expand_prologue, ix86_force_to_memory): Use it.
205
206         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
207         saving the int registers.
208
209         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
210         and DWARF2_UNWIND_INFO conditional compilation.
211
212 2010-08-04  Richard Henderson  <rth@redhat.com>
213
214         PR debug/45171
215         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
216         an is_naming_typedef_decl.
217
218 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
219
220         PR rtl-optimization/45162
221         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
222         * dce.c (word_dce_process_block): Likewise.
223
224 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
225
226         PR target/44583
227         * config/ia64/constraints.md (Z): New.
228         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
229         (xfreg_or_signed_fp01_operand): New.
230         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
231         with fr_reg_or_signed_fp01_operand and constraint G with Z.
232         (subsf3): Ditto.
233         (*maddsf4): Ditto.
234         (*msubsf4): Ditto.
235         (adddf3): Ditto.
236         (adddf3_trunc): Ditto.
237         (subdf3): Ditto.
238         (*subdf3_trunc): Ditto.
239         (*madddf4): Ditto.
240         (*madddf4_trunc): Ditto.
241         (*msubdf4): Ditto.
242         (*msubdf4_trunc): Ditto.
243         (addxf3): Replace xfreg_or_fp01_operand with
244         xfreg_or_signed_fp01_operand and constraint G with Z.
245         (*addxf3_truncsf): Ditto.
246         (*addxf3_truncdf): Ditto.
247         (subxf3): Ditto.
248         (*subxf3_truncsf): Ditto.
249         (*subxf3_truncdf): Ditto.
250         (*maddxf4): Ditto.
251         (*maddxf4_truncsf): Ditto.
252         (*maddxf4_truncdf): Ditto.
253         (*msubxf4): Ditto.
254         (*msubxf4_truncsf): Ditto.
255         (*msubxf4_truncdf): Ditto.
256
257 2010-08-04  Richard Guenther  <rguenther@suse.de>
258
259         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
260         if either alias-set is zero.
261
262 2010-08-04  Richard Guenther  <rguenther@suse.de>
263
264         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
265         * tree-ssa-ccp.c: ... here.
266         * tree-ssa-copy.c: ... and here.
267         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
268         value_range_t): Move ...
269         * tree-vrp.c: ... here.
270         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
271         (substitute_and_fold): Adjust prototype.
272         * tree-ssa-propagate.c (replace_uses_in): Adjust.
273         (replace_phi_args_in): Likewise.
274         (substitute_and_fold): Take callback to query lattice instead
275         of pointer to lattice.  Replace SSA name defs with lattice
276         values first.
277         * tree-ssa-ccp.c (ccp_finalize): Adjust.
278         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
279         (get_value): New function.
280         (fini_copy_prop): Adjust.
281         * tree-vrp.c (vrp_finalize): Adjust.
282
283 2010-08-04  Richard Guenther  <rguenther@suse.de>
284
285         PR middle-end/45176
286         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
287         points-to set for original MEM_REF.
288
289 2010-08-04  Richard Guenther  <rguenther@suse.de>
290
291         * tree-ssa-ccp.c (get_constant_value): New function.
292         (get_rhs_assign_op_for_ccp): Remove.
293         (valueize_op): New function.
294         (ccp_fold): Use get_constant_value and valueize_op.
295         (fold_const_aggregate_ref): Likewise.
296         (ccp_fold_stmt): Likewise.
297         (visit_assignment): Simplify.
298
299 2010-08-04  Richard Guenther  <rguenther@suse.de>
300
301         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
302         * double-int.h (double_int_ctz): Declare.
303         * double-int.c (double_int_ctz): New function.
304
305 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
306
307         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
308         Define.
309         picochip_expand_movmemhi : Expand movmem pattern.
310         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
311         Declare.
312         * config/picochip/picochip.md (movmemhi) : New pattern.
313
314 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
315
316         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
317
318 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
319
320         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
321         NEG as operand of a MULT by merging it with the other operand.
322         * combine.c (make_compound_operation): Use trunc_int_for_mode when
323         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
324         MULT.
325         * config/arm/constraints.md (M): Examine only 32 bits of a
326         HOST_WIDE_INT.
327         * config/arm/predicates.md (power_of_two_operand): Likewise.
328
329 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
330
331         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
332         non-NOTE insns.
333
334 2010-08-03  Jan Hubicka  <jh@suse.cz>
335
336         * ipa-split.c (struct split_point): Add split_part_set_retval.
337         (find_retval): Forward declare.
338         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
339         (consider_split): Compute current->split_part_set_retval.
340         (visit_bb): Do not look into return value.
341         (split_function): Handle !split_part_set_retval
342
343 2010-08-03  Martin Jambor  <mjambor@suse.cz>
344
345         * tree-sra.c (completely_scalarize_record): New parameter REF, create
346         its own access->expr intead of using build_ref_for_offset.
347
348 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
349
350         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
351         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
352         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
353         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
354         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
355         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
356         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
357         DEFAULT_SWITCH_TAKES_ARG.
358         * config/rx/rx.opt (-patch=): Remove option.
359         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
360         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
361         * doc/invoke.texi (RX Options): Remove -patch=.
362         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
363         (option_map): Remove --profile-blocks, --quiet and --silent.
364
365 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
366
367         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
368         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
369         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
370         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
371         Update calls to ix86_expand_compare and ix86_expand_branch.
372         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
373         ix86_expand_compare.
374         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
375         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
376         Make static.
377         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
378         and ix86_compare_op1.  Update calls to ix86_expand_compare.
379         (ix86_expand_int_movcc): Ditto.
380         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
381         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
382         (ix86_expand_setcc): Ditto.
383         (ix86_expand_compare): Remove prototype.
384         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
385         ix86_compare_op0 and ix86_compare_op1.  Update calls
386         to ix86_expand_branch to directly pass operands[1] and operands[2].
387         (cbranchxf4): Ditto.
388         (cbranch<MODEF:mode>4): Ditto.
389         (cbranchcc4): Ditto.
390         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
391         Update calls to ix86_expand_setcc to directly pass operands[2] and
392         operands[3].
393         (cstorexf4): Ditto.
394         (cstore<MODEF:mode>4): Ditto.
395         (cstorecc4): Ditto.
396
397 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
398
399         PR target/45063
400         * caller-save.c (save_call_clobbered_regs): Remove regs from
401         hard_regs_saved when they are set.
402
403 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
404
405         PR target/41089
406         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
407         as volatile.
408
409 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
410
411         * common.opt (ftree-loop-distribute-patterns): New.
412         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
413         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
414         at -O3.
415         * tree-data-ref.c (stores_zero_from_loop): New.
416         * tree-data-ref.h (stores_zero_from_loop): Declared.
417         * tree-loop-distribution.c (tree_loop_distribution): Call
418         stores_zero_from_loop.
419         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
420
421 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
422
423         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
424         into account.
425
426         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
427         * config/arm/arm.c (thumb1_code): New variable.
428         (arm_override_options): Set it.
429         (thumb1_final_prescan_insn): Keep track of condition code status.
430         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
431         jumps that depend on them.
432         * config/arm/arm.h (thumb1_code): Declare variable.
433         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
434         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
435         thumb1_cc_mode.
436         (CC_STATUS_INIT): New macro.
437         * config/arm/constraints.md (Pd): New constraint.
438         * config/arm/predicates.md (noov_comparison_operator): New predicate.
439         * config/arm/arm.md (is_thumb1): New define_attr.
440         (conds): Set default to "clob" when generating Thumb1 code.
441         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
442         code are set.  Use two-operand assembly syntax.
443         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
444         pattern.
445         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
446         codes are set.  Use two-operand assembly syntax.
447         (zero_extendhisi splitter): Remove constraints.
448         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
449         thumb1_movsf_insn): Set conds attribute as appropriate.
450         (cbranchsi4_insn): Use condition code status from struct
451         machine_function to determine whether the comparison can be eliminated.
452         Discourage the alternative using high registers.
453         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
454         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
455         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
456         subsi3_cbranch): Delete.
457         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
458         one subtract and one cbranch insn.
459
460         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
461         thumb2_movdf_soft_insn): Delete patterns.
462         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
463         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
464         (pool_range, neg_pool_range): Use them to define defaults.
465         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
466         and allow for TARGET_32BIT.
467
468         PR target/40457
469         * config/arm/arm.h (arm_regs_in_sequence): Declare.
470         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
471         load_multiple_sequence, store_multiple_sequence): Delete
472         declarations.
473         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
474         declarations.
475         * config/arm/ldmstm.md: New file.
476         * config/arm/arm.c (arm_regs_in_sequence): New array.
477         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
478         CHECK_REGS.  All callers changed.
479         If SAVED_ORDER is nonnull, copy the computed order into it.
480         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
481         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
482         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
483         If SAVED_ORDER is nonnull, copy the computed order into it.
484         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
485         like REGS.  Handle Thumb mode.
486         (arm_gen_load_multiple_1): New function, broken out of
487         arm_gen_load_multiple.
488         (arm_gen_store_multiple_1): New function, broken out of
489         arm_gen_store_multiple.
490         (arm_gen_multiple_op): New function, with code from
491         arm_gen_load_multiple and arm_gen_store_multiple moved here.
492         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
493         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
494         changed.
495         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
496         * config/arm/predicates.md (commutative_binary_operator): New.
497         (load_multiple_operation, store_multiple_operation): Handle more
498         variants of these patterns with different starting offsets.  Handle
499         Thumb-1.
500         * config/arm/arm.md: Include "ldmstm.md".
501         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
502         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
503         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
504         peepholes): Delete.
505         * config/arm/ldmstm.md: New file.
506         * config/arm/arm-ldmstm.ml: New file.
507
508         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
509         if statement which adds extra costs to frame-related expressions.
510
511 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
512
513         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
514
515 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
516
517         PR target/45142
518         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
519         alternative 2.
520         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
521         split V4SI operands.
522
523 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
524
525         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
526         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
527         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
528         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
529
530 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
531
532         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
533         LOCAL_INCLUDE_DIR.
534
535 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
536
537         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
538         used in the call to optab_for_tree_code.  Fix the second
539         is_widening_mult_p call.  Check that both unwidened operands
540         have the same sign.
541
542 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
543
544         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
545
546 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
547
548         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
549
550 2010-07-30  DJ Delorie  <dj@redhat.com>
551
552         * config/rx/predicates.md (rx_constshift_operand): New.
553         * config/rx/rx.md (zs_cond): New.
554         (cbranchsi4): Remove mode.
555         (*cbranchsi4_<code>): Likewise.
556         (*tstbranchsi4_<code>): New.
557         (*tstbranchsi4r_<code>): New.
558         (*tstbranchsi4m_eq): New.
559         (*tstbranchsi4m_ne): New.
560         (cbranchsf4): Remove mode.
561         (*cbranchsf4_<code>): Likewise.
562
563 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
564
565         * rtlanal.c (simplify_subreg_regno): Don't treat
566         HARD_FRAME_POINTER_REGNUM specially.
567
568 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
569
570         * common.opt (-G): Don't define option here.
571         * config/g.opt: New.
572         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
573         rs6000/powerpc and score targets.
574         * opts.c (common_handle_option): Don't handle -G here.
575         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
576         * config/frv/frv.c (frv_handle_option): Handle -G.
577         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
578         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
579         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
580         * config/mips/mips.c (mips_handle_option): Handle -G.
581         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
582         * config/score/score.c (score_handle_option): Handle -G.
583
584 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
585
586         * config/mmix/mmix.c: Include basic-block.h.
587
588 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
589
590         PR debug/45055
591         PR rtl-optimization/45137
592         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
593         prototypes.
594         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
595         New functions.
596         * combine.c (next_nonnote_nondebug_insn): Removed.
597         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
598         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
599         * sched-deps.c (sched_analyze_insn): Likewise.
600         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
601         * rtlanal.c (canonicalize_condition): Likewise.
602         * postreload.c (reload_combine_recognize_pattern): Likewise.
603         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
604
605 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
606
607         * config/i386/i386.md (int_cond): Remove code iterator.
608         (fp_cond): Ditto.
609         (cbranch<mode>4): Use ordered_comparison_operator predicate
610         for operator0.
611         (cstore<mode>4): Ditto for operator1.
612         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
613         (add<mode>cc): ditto.
614
615 2010-07-30  Richard Guenther  <rguenther@suse.de>
616
617         PR middle-end/45141
618         * expr.c (expand_expr_real_1): Check for not handled base address.
619
620 2010-07-30  Richard Guenther  <rguenther@suse.de>
621
622         * ipa-prop.c (ipa_modify_formal_parameters): Use
623         build_distinct_type_copy.
624
625 2010-07-30  Anthony Green  <green@moxielogic.com>
626
627         * config/moxie/rtems.h: New file.
628         * config.gcc: Add moxie-rtems support.
629
630 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
631
632         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
633         df flags as in run_fast_df_dce.
634
635 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
636
637         Revert:
638         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
639
640         * rtl.def (NOTE): Swap operands 4 and 5.
641         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
642         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
643         Adjust accordingly.
644         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
645
646 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
647
648         PR debug/45110
649         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
650         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
651         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
652         formal parameters.
653         (gen_decl_die): Change return type to dw_die_ref, return what
654         gen_formal_parameter_die returned.
655
656 2010-07-29  Martin Jambor  <mjambor@suse.cz>
657
658         * dbgcnt.def (eipa_sra): New counter.
659         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
660
661 2010-07-29  Xinliang David Li  <davidxl@google.com>
662
663         PR bootstrap/45119
664         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
665         in revision 162652.
666
667 2010-07-29  Richard Guenther  <rguenther@suse.de>
668
669         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
670         (TV_TREE_STORE_CCP): Likewise.
671         (TV_TREE_REDPHI): Likewise.
672
673 2010-07-29  Richard Guenther  <rguenther@suse.de>
674
675         * double-int.h (double_int_and_not): New function.
676         * combine.c (try_combine): Use it.
677         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
678
679 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
680
681         PR rtl-optimization/42575
682         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
683         Argument AU removed.  All callers changed.  Ignore artificial refs.
684         Use return value of df_word_lr_simulate_defs to decide whether an insn
685         is necessary.
686         (fast_dce): Rename arg to WORD_LEVEL.
687         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
688         static.
689         (pass_fast_rtl_byte_dce): Delete.
690         * dce.h (run_word_dce): Declare.
691         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
692         All callers changed.  Simplify code to only deal with two-word regs.
693         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
694         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
695         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
696         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
697         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
698         (df_word_lr_mark_ref): Declare.
699         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
700         df_word_lr_simulate_uses): Declare or rename from byte variants.
701         (df_byte_lr_simulate_artificial_refs_at_top,
702         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
703         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
704         declarations.
705         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
706         (enum df_mm): Delete.
707         * df-byte-scan.c: Delete file.
708         * df-problems.c (df_word_lr_problem_data): Renamed from
709         df_byte_lr_problem_data, all members deleted except for
710         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
711         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
712         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
713         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
714         df_byte_lr_confluence_0): Delete functions.
715         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
716         callers changed.
717         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
718         Don't initialize members that were deleted, don't try to discover data
719         about registers.  Ignore hard regs.
720         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
721         (df_word_lr_mark_ref): New function.
722         (df_word_lr_bb_local_compute): Renamed from
723         df_byte_bb_lr_local_compute; all callers changed.  Use
724         df_word_lr_mark_ref.  Assert that artificial refs don't include
725         pseudos.  Ignore hard registers.
726         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
727         Assert that exit block uses don't contain pseudos.
728         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
729         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
730         callers changed.  Ignore hard regs.
731         (df_word_lr_transfer_function): Renamed from
732         df_byte_lr_transfer_function; all callers changed.
733         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
734         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
735         changed.
736         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
737         callers changed.
738         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
739         confluence operator 0 set to NULL.
740         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
741         callers changed.
742         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
743         Return bool, true if bitmap changed or insn otherwise necessary.
744         All callers changed.  Simplify using df_word_lr_mark_ref.
745         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
746         all callers changed.  Simplify using df_word_lr_mark_ref.
747         * lower-subreg.c: Include "dce.h"
748         (decompose_multiword_subregs): Call run_word_dce if df available.
749         * Makefile.in (lower-subreg.o): Adjust dependencies.
750         (df-byte-scan.o): Delete.
751         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
752
753 2010-07-29  Richard Guenther  <rguenther@suse.de>
754
755         * tree.c (build_vector): Assert that the vector constant
756         has enough elements.
757         (build_vector_from_ctor): Pad with trailing zeros.
758
759 2010-07-29  Richard Guenther  <rguenther@suse.de>
760
761         PR tree-optimization/45120
762         * tree-ssa-structalias.c (get_constraint_for_component_ref):
763         Handle offset in DEREFs properly.
764         (get_constraint_for_1): Handle MEM_REF offset properly.
765
766 2010-07-29  Richard Guenther  <rguenther@suse.de>
767
768         PR middle-end/45034
769         * convert.c (convert_to_integer): Always use an unsigned
770         type for narrowed negate and bitwise not.
771
772 2010-07-29  Ira Rosen  <irar@il.ibm.com>
773
774         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
775         to outer loop when creating reduction epilogue for double reduction,
776         and switch back to the inner loop when updating the phi nodes.
777         Update uses of outer loop exit phi nodes in double reduction (instead
778         of uses of reduction).
779
780 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
781
782         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
783         popcount on power7 and parity on power6 systems.
784         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
785         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
786         instructions.
787
788         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
789         (UNSPEC_PARITY): Ditto.
790         (SFDF): New iterator for SF/DF.
791         (rreg2): New mode attribute for floating register constraint.
792         (TARGET_FLOAT): New mode attribute for whether single/double float
793         is supported.
794         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
795         pattern.
796         (parity<mode>2_cmpb): New insn for parity on power6 and newer
797         machines.
798         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
799         pattern.  Add support for fcpsgn instruction added in power6.
800         (copysignsf3): Delete.
801         (copysigndf3): Delete.
802         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
803         instead of if_then_else in RTL to avoid problems with -0.
804
805         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
806         of if_then_else to mirror scalar code.
807         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
808         rs6000.md.
809
810         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
811         instead of if_then_else.
812
813 2010-07-28  Xinliang David Li  <davidxl@google.com>
814
815         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
816         (dump_cand): Dump var_before/after.
817         (htab_inv_expr_eq): New function.
818         (htab_inv_expr_hash): New function.
819         (tree_ssa_iv_optimize_init): Support pseudo invariants.
820         (add_candidate_1): consider base type precision.
821         (set_use_iv_cost): New parameter.
822         (adjust_setup_cost): Use profile information.
823         (get_address_cost): Do not hard code width in computing address
824         offset limits.
825         (compare_aff_trees): New function.
826         (get_loop_invariant_expr_id): New function.
827         (get_computation_cost_at): New parameter and use profile information.
828         (get_computation_cost): New parameter.
829         (determine_use_iv_cost_generic): Pass new parameter.
830         (determine_use_iv_cost_address): Ditto.
831         (determine_use_iv_cost_condition): Ditto.
832         (autoinc_possible_for_pair): Ditto.
833         (determine_use_iv_costs): More dumps.
834         (iv_ca_get_num_inv_exprs): New function.
835         (iv_ca_recount_cost): Consider loop invariants in register pressure
836         cost.
837         (iv_ca_add_use): New parameter.
838         (iv_ca_dump): Better dumping.
839         (iv_ca_extend): New parameter.
840         (try_add_cand_for): Attempt to get better partial solution.
841         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
842         (create_new-ivs): More dumps.
843         (rewrite_use_compare): Ditto.
844         (free_loop_data): More cleanup.
845         (treee_ssa_iv_optimize_finalize): Ditto.
846
847 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
848
849         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
850         * config/i386/i386.c (ix86_profile_before_prologue): New.
851         (override_options): Add special handling for -mfentry.
852         (ix86_function_regparm): Likewise.
853         (ix86_function_sseregparm): Likewise.
854         (ix86_frame_pointer_required): Likewise.
855         (ix86_expand_prologue): Check for ms_hook_prologue.
856         (x86_function_profiler): Adjust mcount output.
857         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
858         * config/i386/i386.opt (mfentry): New.
859         * doc/invoke.texi (mfentry): Add documentation.
860         * doc/tm.texi: Regenerated..
861         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
862         * final.c (final_start_function): Replace macro
863         PROFILE_BEFORE_PROLOGUE by target hook.
864         * function.c (thread_prologue_and_epilogue_insns): Likewise.
865         * target.def (profile_before_prologue): New hook.
866         * targhooks.c (default_profile_before_prologue): New.
867         * targhooks.h (default_profile_before_prologue): New.
868
869 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
870
871         PR debug/45105
872         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
873
874         PR debug/45103
875         * dwarf2out.c (dwarf2out_var_location): Always consider
876         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
877
878 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
879
880         PR rtl-optimization/45107
881         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
882
883 2010-07-28  Richard Guenther  <rguenther@suse.de>
884
885         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
886         (set_lattice_value): Do not query an old default value.
887         (get_value_for_expr): New function.  Properly canonicalize
888         float values.
889         (ccp_visit_phi_node): Use it.
890
891 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
892
893         * config/arm/arm.c (arm_pcs_default): Remove static.
894         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
895         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
896         (arm_pcs_default): Declare.
897
898 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
899
900         * config/rs6000/rs6000.c (rs6000_override_options):
901         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
902         ... to darwin_rs6000_override_options.
903         (rs6000_return_in_memory): Update preceding comment for darwin
904         64 bit ABI.  Use TARGET_MACHO inline.
905         (rs6000_darwin64_struct_check_p): New.
906         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
907         (function_arg): Likewise.
908         (rs6000_arg_partial_bytes): Likewise.
909         (rs6000_function_value): Likewise.
910
911 2010-07-28  Andi Kleen <ak@linux.intel.com>
912
913         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
914
915 2010-07-28  Richard Guenther  <rguenther@suse.de>
916
917         PR middle-end/44903
918         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
919         targets try harder to not generate unaligned accesses.
920
921 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
922
923         PR rtl-optimization/45101
924         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
925         for gcse-las.
926
927 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
928
929         PR tree-optimization/44885
930         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
931         with non-aliased component.
932
933 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
934
935         * config/darwin-driver.c (SWITCH_TAKES_ARG,
936         WORD_SWITCH_TAKES_ARG): Remove.
937         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
938         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
939         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
940         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
941         definitions from gcc.c.
942         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
943         defaults.h.
944         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
945         Move to defaults.h.
946         * opts-common.c: Include tm.h.
947         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
948         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
949         Handle more than one argument.  Set canonical_option_num_elements.
950         (decode_cmdline_options_to_array): Set
951         canonical_option_num_elements and trailing elements of
952         canonical_option.
953         * opts.h (struct cl_decoded_option): Allow four elements in
954         canonical_option.  Add field canonical_option_num_elements.
955         * Makefile.in (opts-common.o): Update dependencies.
956
957 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
958
959         PR middle-end/44790
960         PR middle-end/44993
961         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
962         sure the base has address_mode before adding the offset.
963
964 2010-07-27  Xinliang David Li <davidxl@google.com>
965
966         * tree-flow.h (create_mem_ref): Add one new parameter.
967         * tree-ssa-address.c (create_mem_ref): New parameter.
968         (addr_to_parts): Ditto.
969         (move_variant_to_index): New function.
970         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
971
972 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
973
974         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
975         4 and 5.
976         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
977         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
978         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
979         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
980         CODE_LABELs and NOTEs.
981         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
982         * combine.c (try_combine): Likewise.
983         * ira.c (setup_prohibited_mode_move_regs): Likewise.
984         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
985
986 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
987
988         * coretypes.h (struct cl_option_handlers): Declare.
989         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
990         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
991         * langhooks-def.h (lhd_handle_option): Declare.
992         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
993         * langhooks.c (lhd_handle_option): New.
994         * langhooks.h (struct lang_hooks): Update prototype and return
995         value type of handle_option hook.
996         * optc-gen.awk: Generate target_flags_explicit definition for the
997         driver.
998         * opts-common.c: Include diagnostic.h.
999         (handle_option): Move from opts.c.  Update prototype and return
1000         value type.  Use handlers structure.
1001         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
1002         handlers structure.
1003         (set_option): Move from opts.c.
1004         * opts.c (common_handle_option): Update prototype and return value
1005         type.  Update calls to handle_option and enable_warning_as_error.
1006         (unknown_option_callback, post_handling_callback,
1007         lang_handle_option, target_handle_option): New.
1008         (handle_option, read_cmdline_option): Move to opts-common.c.
1009         (read_cmdline_options): Update prototype.  Update call to
1010         read_cmdline_option.
1011         (decode_options): Initialize and use handlers structure.
1012         (set_option): Move to opts-common.c.
1013         (enable_warning_as_error): Update prototype.  Update call to
1014         handle_option.
1015         * opts.h (struct cl_option_handler_func, struct
1016         cl_option_handlers): New.
1017         (handle_option, enable_warning_as_error): Update prototypes.
1018         (read_cmdline_option): Declare.
1019         * Makefile.in (opts-common.o): Update dependencies.
1020
1021 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1022
1023         * config/arm/arm.c (params.h): Include.
1024         (arm_override_options): Tune gcse-unrestricted-cost.
1025         * config/arm/t-arm (arm.o): Define dependencies.
1026
1027 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1028
1029         PR target/42495
1030         PR middle-end/42574
1031         * basic-block.h (get_dominated_to_depth): Declare.
1032         * dominance.c (get_dominated_to_depth): New function, use
1033         get_all_dominated_blocks as a base.
1034         (get_all_dominated_blocks): Use get_dominated_to_depth.
1035
1036         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
1037         (hoist_exprs): Remove.
1038         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
1039         (compute_code_hoist_vbeinout): Add debug print outs.
1040         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
1041
1042         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
1043         quadratic behavior.
1044         * params.h (MAX_HOIST_DEPTH): New macro.
1045         * doc/invoke.texi (max-hoist-depth): Document.
1046
1047 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1048
1049         PR rtl-optimization/40956
1050         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
1051         constants.
1052
1053 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1054
1055         PR target/42495
1056         PR middle-end/42574
1057         * config/arm/arm.c (legitimize_pic_address): Use
1058         gen_calculate_pic_address pattern to emit calculation of PIC address.
1059         (will_be_in_index_register): New function.
1060         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
1061         (thumb1_legitimate_address_p): Use it provided !strict_p.
1062         * config/arm/arm.md (calculate_pic_address): New expand and split.
1063
1064 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1065
1066         PR target/42495
1067         PR middle-end/42574
1068         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
1069         * config/arm/arm.md (define_split "J", define_split "K"): Make
1070         IRA/reload friendly.
1071
1072 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1073
1074         * gcse.c (insert_insn_end_basic_block): Update signature, remove
1075         unused checks.
1076         (pre_edge_insert, hoist_code): Update.
1077
1078 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1079
1080         PR target/42495
1081         PR middle-end/42574
1082         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
1083
1084 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1085
1086         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
1087
1088 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1089
1090         PR rtl-optimization/40956
1091         PR target/42495
1092         PR middle-end/42574
1093         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
1094         for hoisting.
1095         (hoist_code): Count occurences in current block too.
1096
1097 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1098
1099         * gcse.c (struct expr:max_distance): New field.
1100         (doing_code_hoisting_p): New static variable.
1101         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
1102         simple expressions, don't change behavior for PRE.  Set max_distance.
1103         (insert_expr_in_table): Set new max_distance field.
1104         (hash_scan_set): Update.
1105         (hoist_expr_reaches_here_p): Stop search after max_distance
1106         instructions.
1107         (find_occr_in_bb): New static function.  Use it in ...
1108         (hoist_code): Calculate sizes of basic block before any changes are
1109         done.  Pass max_distance to hoist_expr_reaches_here_p.
1110         (one_code_hoisting_pass): Set doing_code_hoisting_p.
1111
1112         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
1113         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
1114         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
1115         macros.
1116         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
1117         Document.
1118
1119 2010-07-27  Jeff Law  <law@redhat.com>
1120             Maxim Kuvyrkov  <maxim@codesourcery.com>
1121
1122         * gcse.c (compute_transpout, transpout): Remove, move logic
1123         to prune_expressions.
1124         (compute_pre_data): Move pruning of trapping expressions ...
1125         (prune_expressions): ... here.  New static function.
1126         (compute_code_hoist_data): Use it.
1127         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
1128
1129 2010-07-27  Xinliang David Li  <davidxl@google.com>
1130
1131         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
1132         (rewrite_use_address): Adjust iv update position when needed.
1133
1134 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1135
1136         * dbgcnt.def (hoist_insn): New debug counter.
1137         * gcse.c (hoist_code): Use it.
1138
1139 2010-07-27  Xinliang David Li  <davidxl@google.com>
1140
1141         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
1142         (niter_for_single_dom_exit): Passes additional parameter.
1143         (iv_period): Fix comments.
1144         (may_eliminate_iv): Handles multiple exit loops properly.
1145         (free_tree_niter_desc): New function.
1146         (free_loop_data): Frees up loop iteration descriptors.
1147
1148 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1149
1150         PR target/44542
1151         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
1152         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
1153         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
1154         (expand_one_var): Don't consider DECL_ALIGN for variables for
1155         which expand_one_stack_var_at has been already called.
1156
1157         PR testsuite/44701
1158         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
1159         constraints on IA-64.
1160
1161 2010-07-27  Jie Zhang  <jie@codesourcery.com>
1162
1163         PR target/44290
1164         Revert:
1165         2010-07-23  Jie Zhang  <jie@codesourcery.com>
1166
1167         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
1168         false if ! tree_versionable_function_p.
1169
1170 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1171
1172         * dwarf2out.c (add_data_member_location_attribute): Use
1173         add_AT_unsigned instead of add_AT_int if offset is non-negative.
1174
1175 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1176
1177         * postreload.c (try_replace_in_use): New static function.
1178         (reload_combine_recognize_const_pattern): Use it here.  Allow
1179         substituting into a final add insn, and substituting into a memory
1180         reference in an insn that sets the reg.
1181
1182 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1183
1184         * common.opt (o): Add MissingArgError.
1185         * doc/options.texi (MissingArgError): Document.
1186         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
1187         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
1188         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
1189         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
1190         * langhooks.h (struct lang_hooks): Remove missing_argument.
1191         * optc-gen.awk: Handle MissingArgError and output new structure
1192         field initializers.
1193         * opts.c (read_cmdline_option): Use missing_argument_error field
1194         instead of missing_argument langhook.
1195         * opts.h (struct cl_option): Add missing_argument_error field.
1196         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
1197
1198 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
1199
1200         PR target/29090
1201         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
1202         Darwin64 ABI, for zero-sized objects.
1203
1204 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
1205
1206         PR target/35491
1207         PR target/29090
1208
1209         Merge from Apple local 4.2.1.
1210         2005-05-11  Stan Shebs  <shebs@apple.com>
1211         Fix 64-bit varargs for Darwin (Radar 4028089).
1212         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
1213         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1214         Add argument, add case for 8-byte register half-filled with a float.
1215         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
1216         single-precision floats specially.
1217
1218 2010-07-27  Ira Rosen  <irar@il.ibm.com>
1219
1220         PR tree-optimization/44152
1221         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
1222         complex numbers for further check.
1223         (vect_supported_load_permutation_p): Check nodes with
1224         complex numbers.
1225
1226 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1227
1228         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
1229         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
1230         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
1231         (LANG_HOOKS_INITIALIZER): Add new hooks.
1232         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
1233         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
1234         and complain_wrong_lang_p.  Update init_options prototype.
1235         * c-objc-common.c (c_initialize_diagnostics): First call
1236         c_common_initialize_diagnostics.
1237         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
1238         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
1239         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
1240         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
1241         (hook_uint_void_0): New.
1242         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
1243         (hook_uint_void_0): New.
1244         * opts-common.c (decode_cmdline_option,
1245         decode_cmdline_options_to_array): Also fill in canonical_option field.
1246         * opts.c (complain_wrong_lang): Use langhook to determine whether
1247         to complain instead of special-casing LTO.
1248         (decode_options): Separate lang_mask determination with
1249         option_lang_mask hook from call of init_options hook.
1250         * opts.h (struct cl_decoded_option): Add canonical_option.
1251
1252 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1253
1254         PR tree-optimization/45083
1255         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
1256
1257 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1258
1259         * postreload.c (reload_combine_recognize_const_pattern): Move test
1260         for limiting the insn movement to the right scope.
1261
1262         PR rtl-optimization/45051
1263         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
1264         than reg_mentioned_p.
1265
1266 2010-07-26  Richard Henderson  <rth@redhat.com>
1267
1268         PR target/44132
1269         * tree-emutls.c: New file.
1270         * Makefile.in (OBJS-common): Add it.
1271         * tree-pass.h (pass_ipa_lower_emutls): Declare.
1272         * passes.c (init_optimization_passes): Add it.
1273
1274         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
1275         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
1276         * expr.c (emutls_var_address): Delete.
1277         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
1278         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
1279         (emutls_finish): Delete.
1280         * toplev.c (compile_file): Don't call it.
1281         * tree.h (emutls_decl): Delete.
1282         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
1283         (emutls_finish, emutls_finalize_control_var): Delete.
1284         (emutls_object_type): Move to tree-emutls.c.
1285         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
1286         default_emutls_var_fields, get_emutls_object_type,
1287         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
1288         default_emutls_var_init): Likewise.
1289         (get_variable_section): Don't special case emutls.
1290         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
1291         default_elf_select_section, default_unique_section,
1292         default_encode_section_info): Likewise.
1293         * varpool.c (decide_is_variable_needed): Likewise.
1294         * gimple-iterator.c (update_call_edge_frequencies): New
1295         (gsi_insert_on_edge_immediate): Use it.
1296         (gsi_insert_seq_on_edge_immediate): Likewise.
1297         (gsi_commit_one_edge_insert): Likewise.
1298
1299         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
1300         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
1301         (x86_64_elf_unique_section): Likewise.
1302
1303 2010-07-26  Jan Hubicka  <jh@suse.cz>
1304
1305         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
1306         GTY((skip)).
1307
1308 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
1309
1310         * target.def (output_source_filename): New hook.
1311         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
1312         * doc/tm.texi: Regenerate.
1313         * toplev.c (output_file_directive) Remove function.
1314         * toplev.h (output_file_directive) Remove.
1315         * output.h (default_asm_output_source_filename,
1316         output_file_directive): Declare.
1317         * varasm.h (default_asm_output_source_filename,
1318         output_file_directive): New functions.
1319
1320         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1321         * config/mips/mips-protos.h (mips_output_filename): Remove.
1322         * config/mips/mips.c (mips_output_filename): Make Static.
1323         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
1324
1325 2010-07-26  Richard Guenther  <rguenther@suse.de>
1326
1327         PR tree-optimization/43784
1328         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
1329         if the destination is used by the call.
1330
1331 2010-07-26  Richard Guenther  <rguenther@suse.de>
1332
1333         PR middle-end/45073
1334         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
1335         SSA updating on being in SSA form.
1336
1337 2010-07-26  Richard Guenther  <rguenther@suse.de>
1338
1339         PR middle-end/45056
1340         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
1341
1342 2010-07-26  Richard Guenther  <rguenther@suse.de>
1343
1344         PR tree-optimization/45071
1345         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
1346         adjust op->opcode.
1347
1348 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
1349
1350         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
1351         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
1352         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
1353         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
1354         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
1355         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
1356         save_r31, return_r31, save_interrupt, return_interrupt,
1357         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
1358         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
1359         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
1360         new ABI requirements.
1361         (save_r6_r9, L_callt_save_r6_r9): Remove.
1362         * config/v850/predicates.md (even_reg_operand, disp23_operand,
1363         const_float_1_operand const_float_0_operand): New Predicates.
1364         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
1365         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
1366         * config/v850/t-v850: Update multilibs for new target variants.
1367         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
1368         * config/v850/t-v850e: Likewise.
1369         * config/v850/v850.c (v850_issue_rate): New.
1370         (v850_strict_argument_naming): New.
1371         (function_arg): Modify to generate a different ABI.
1372         (print_operand): Update case 'z' to support float modes.
1373         (output_move_single): Modify to generate appropriate and better
1374         assembly.
1375         (v850_float_z_comparison_operator, v850_select_cc_mode,
1376         v850_float_nz_comparison_operator,  v850_gen_float_compare,
1377         v850_gen_compare): New functions to support comparison of float values.
1378         (ep_memory_offset): Add support for V850E2 targets.
1379         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
1380         (INTERRUPT_REGPARM_NUM): Remove.
1381         (compute_register_save_size): Add extra case to save/restore long call.
1382         (use_prolog_function): New function to support prologue.
1383         (expand_prologue): Add support for V850E2 targets and modified
1384         as per the current ABI requirements.
1385         (expand_epilogue): Likewise.
1386         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
1387         (construct_save_jarl): Likewise.
1388         (construct_dispose_instruction): Update as per the current ABI
1389         requirements.
1390         (construct_prepare_instruction): Likewise.
1391         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
1392         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
1393         (CPP_SPEC): Updated to support v850e2 targets.
1394         (STRICT_ALIGNMENT): Modified.
1395         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
1396         (FIXED_REGISTERS): Likewise.
1397         (CALL_USED_REGISTERS): Likewise.
1398         (CONDITIONAL_REGISTER_USAGE): Updated.
1399         (HARD_REGNO_MODE_OK): Updated.
1400         (reg_class): Updated to add even registers.
1401         (REG_CLASS_NAMES): Likewise.
1402         (REG_CLASS_CONTENTS): Likewise.
1403         (REGNO_REG_CLASS): Updated for CC registers.
1404         (REG_CLASS_FROM_LETTER): Added support for even registers.
1405         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
1406         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
1407         ARG_POINTER_REGNUM): Updated.
1408         (FUNCTION_ARG_ADVANCE): Define.
1409         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
1410         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
1411         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
1412         (GO_IF_LEGITIMATE_ADDRESS): Updated.
1413         (SELECT_CC_MODE): Define.
1414         (REGISTER_NAMES): Updated to add psw and fcc registers.
1415         (ADDITIONAL_REGISTER_NAMES): Updated.
1416         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
1417         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
1418         * config/v850/v850.md (define_constants): Define new constants.
1419         (type): Update store,bit1,macc,div,fpu and single attributes.
1420         (cpu): New attribute.
1421         (cc): Add set_z attribute.
1422         (unsign23byte_load, sign23byte_load, unsign23hword_load,
1423         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
1424         23word_store): New instructions for 23-bit displacement load and store.
1425         (movqi_internal, movhi_internal): Update the attributes.
1426         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
1427         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
1428         the attributes.
1429         (v850_tst1): Modified using CC_REGNUM.
1430         (tstsi): Remove.
1431         (cmpsi): Modified as define_expand from define_insn.
1432         (cmpsi_insn, cmpsf, cmpdf): New instructions.
1433         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
1434         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
1435         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
1436         one_cmplsi2): Clobber the CC_REGNUM register.
1437         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
1438         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
1439         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
1440         (setf_insn, set_z_insn, set_nz_insn): New instructions for
1441         v850e2v3 target.
1442         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
1443         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
1444         targets.
1445         (sasf_1, sasf_2): Remove.
1446         (sasf): New instruction.
1447         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
1448         targets. CC_REGNUM register is clobbered and attributes are
1449         updated.
1450         (branch_z_normal, branch_z_invert, branch_nz_normal,
1451         branch_nz_invert): New branch related instructions.
1452         (jump): Updated the attributes.
1453         (switch): Update to support new targets. CC_REGNUM register is
1454         clobbered and attributes are updated.
1455         (call_internal_short, call_internal_long, call_value_internal_short,
1456         call_value_internal_long): Updated the attributes.
1457         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
1458         clobbered and attributes are updated.
1459         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
1460         Update to support new targets. CC_REGNUM register is clobbered.
1461         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
1462         instructions.
1463         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
1464         are updated.
1465         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
1466         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
1467         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
1468         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
1469         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
1470         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
1471         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
1472         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
1473         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
1474         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
1475         point instructions defined for V850e2v3 target.
1476         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
1477         Add support for V850E2 targets and CC_REGNUM register is clobbered.
1478         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
1479         support for new targets.
1480         * config/v850/v850-modes.def: New file.
1481         * config/v850/v850.opt(mstrict-align): Remove.
1482         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
1483         mv850e2v3): New command line options for V850.
1484         * config.gcc: Update the newly added files.
1485         * doc/invoke.texi: Update the newly added command line options for
1486         V850 target.
1487
1488 2010-07-26  Richard Guenther  <rguenther@suse.de>
1489
1490         PR tree-optimization/45052
1491         * ipa-pure-const.c (check_stmt): Check volatileness.
1492
1493 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1494
1495         PR target/44707
1496         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
1497         * config/sparc/sparc.c: Include reload.h.
1498         (legitimize_tls_address): Rename into...
1499         (sparc_legitimize_tls_address): ...this.
1500         (legitimize_pic_address): Rename into...
1501         (sparc_legitimize_pic_address): ...this.
1502         (sparc_expand_move): Adjust to above renaming.
1503         (sparc_tls_referenced_p): Likewise.
1504         (sparc_legitimize_tls_address): Likewise.
1505         (sparc_legitimize_pic_address): Likewise.
1506         (sparc_legitimize_address): Likewise.
1507         (sparc_output_mi_thunk): Likewise.
1508         (sparc_legitimize_reload_address): New global function.  Recognize
1509         (lo_sum (high ...) ...) patterns generated by earlier passes.
1510         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
1511
1512 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1513
1514         PR target/44484
1515         * config/sparc/predicates.md (memory_reg_operand): Delete.
1516         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
1517         (*sync_compare_and_swap): Encode the address form in the pattern.
1518         (*sync_compare_and_swapdi_v8plus): Likewise.
1519
1520 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
1521
1522         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
1523         Streamline paragraph on compatibility with the system compiler.
1524
1525 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
1526
1527         PR middle-end/45035
1528         * alias.c (true_dependence_1): Fix thinko in merge of old
1529         true_dependence and canon_true_dependence.
1530
1531 2010-07-23  Jan Hubicka  <jh@suse.cz>
1532
1533         * lto-streamer-out.c (write_symbol): Fix visibilities of external
1534         references.
1535
1536 2010-07-23  Le-Chun Wu  <lcwu@google.com>
1537
1538         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
1539         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
1540         and an unnecessary assignment.
1541         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
1542         self-assign warning.
1543         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
1544         unnecessary self-init.
1545
1546 2010-07-23  Richard Guenther  <rguenther@suse.de>
1547
1548         PR lto/43071
1549         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
1550         for -flto and -fwhopr.
1551
1552 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
1553
1554         PR target/41943
1555         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
1556         (stmp-int-hdrs): Prefix/postfix headers by include_next.
1557         * config.gcc (user_headers_inc_next_pre): New.
1558         (user_headers_inc_next_post): Likewise.
1559         (*-w64-mingw*): Use for float.h post-fixing, and for
1560         stddef.h/stdarg.h pre-fixing by include_next.
1561         * configure.ac (user_headers_inc_next_post): New.
1562         (user_headers_inc_next_pre): New.
1563         * configure: Regenerated.
1564
1565 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1566
1567         * configure.ac: Don't disable TLS on Solaris 8/9 by default
1568         Set tga_func for Solaris 2/x86 resp. SPARC.
1569         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
1570         (LIB_THREAD_LDFLAGS_SPEC): Define.
1571         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
1572         * configure: Regenerate.
1573         * config.in: Regenerate.
1574         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
1575         -pthread, -threads, LIB_TLS_SPEC with -pthread.
1576         * doc/install.texi (Specific, *-*-solaris2*): Document use of
1577         alternate thread libraries on Solaris 8.
1578         Document TLS patch requirements.
1579         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
1580         Document tls.
1581
1582         PR target/18788
1583         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
1584         -shared.
1585
1586 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
1587
1588         * tree.h (struct tree_base): Add nameless_flag bitfield.
1589         (TYPE_NAMELESS, DECL_NAMELESS): Define.
1590         * omp-low.c (create_omp_child_function, scan_omp_parallel,
1591         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
1592         DECL_ARTIFICIAL where needed.
1593         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
1594         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
1595         has DECL_NAMELESS set.
1596
1597 2010-07-23  Martin Jambor  <mjambor@suse.cz>
1598
1599         PR tree-optimization/44915
1600         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
1601         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
1602         (analyze_function): Likewise.
1603
1604 2010-07-23  Martin Jambor  <mjambor@suse.cz>
1605
1606         PR tree-optimization/44914
1607         * tree-sra.c (sra_modify_function_body): Return true if CFG was
1608         changed, add purging dead eh edges.
1609         (ipa_sra_modify_function_body): Return true if CFG was changed,
1610         simplify purging dead eh edges.
1611         (modify_function): Return true if CFG was changed.
1612         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
1613         was changed.
1614         (ipa_early_sra): Likewise.
1615
1616 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1617
1618         PR target/44290
1619         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
1620         if "naked".
1621         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
1622         false if ! tree_versionable_function_p.
1623
1624 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
1625
1626         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
1627         * ipa-pure-const.c (special_builtlin_state): Remove
1628         BUILT_IN_ARGS_INFO case.
1629         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1630         * builtins.c (expand_builtin): Likewise.
1631         (expand_builtin_args_info): Remove.
1632         * doc/tm.texi (__builtin_args_info): Remove.
1633         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
1634         * doc/tm.text.in: Likewise.
1635
1636 2010-07-23  Richard Guenther  <rguenther@suse.de>
1637
1638         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
1639         (lto_symtab_merge_decls_2): Likewise.
1640         * tree-ssa.c (useless_type_conversion_p): Likewise.
1641         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1642         * gimple.c (gtc_visited2, gtc_ob2): Remove.
1643         (struct type_pair_d): Make same_p an array indexed by mode.
1644         Update comment.
1645         (lookup_type_pair): Update initialization.
1646         (struct sccs): Adjust same_p type.
1647         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
1648         Adjust.
1649         (print_gimple_types_stats): Likewise.
1650         * gimple.h (enum gtc_mode): New.
1651         (gimple_types_compatible_p): Adjust prototype.
1652
1653 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1654
1655         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
1656         again after processing insn.
1657
1658 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1659
1660         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
1661         proper words when !tree_versionable_function_p.
1662
1663 2010-07-23  Richard Guenther  <rguenther@suse.de>
1664
1665         PR tree-optimization/45037
1666         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
1667
1668 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1669
1670         * doc/extend.texi: Remove IP2K from the description of naked attribute.
1671         Add MCORE instead.
1672
1673 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1674
1675         PR lto/44992
1676         * lto-opts.c (lto_write_options): Add NULL file_data argument to
1677         lto_get_section_name.
1678         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
1679         * lto-streamer-out.c (produce_asm): Likewise.
1680         (copy_function): Likewise.
1681         (produce_symtab): Likewise.
1682         (produce_asm_for_decls): Likewise.
1683         * lto-streamer.c (lto_get_section_name): Add file_data argument.
1684         Rewrite to add random postfix to LTO sections.
1685         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
1686         (lto_get_section_name): Add file_data argument to prototype.
1687
1688 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1689
1690         * lto-section-in.c (lto_section_name): Synchronize names
1691         with lto_get_section_name.
1692
1693 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1694
1695         * lto-opts.c (lto_read_file_options): Check for missing section.
1696
1697 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1698
1699         * ira.c (check_allocation): Correctly handle the case where an allocno
1700         with two objects was allocated to a single reg.
1701
1702 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
1703
1704         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
1705         (is_widening_mult_p): Likewise.
1706         (convert_to_widen): Use them.
1707         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
1708         well as integer ones.
1709
1710 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
1711
1712         * alias.c (true_dependence_1): New function, merged version of
1713         true_dependence and canon_true_dependence.
1714         (true_dependence): Simplify.
1715         (canon_true_dependence): Simplify.
1716
1717 2010-07-22  Richard Henderson  <rth@redhat.com>
1718
1719         PR target/45027
1720         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
1721         of V4SFmode for the SSE saves; increase stack alignment if needed.
1722         (ix86_gimplify_va_arg): Don't increase stack alignment here.
1723
1724 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
1725
1726         PR bootstrap/45028
1727         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
1728         call cprop_find_used_regs again via note_uses.
1729
1730 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1731
1732         * alias.c (get_alias_set): Fix formatting issues.
1733
1734 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
1735
1736         PR middle-end/44878
1737         * stmt.c (expand_value_return):  Call promote_function_mode with
1738         a for_return argument of 2 when returning by reference.
1739
1740 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
1741
1742         PR debug/45024
1743         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
1744         unit DIE if we can find the scope DIE.
1745
1746 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1747
1748         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
1749         changed.  Initialize OBJECT_SUBWORD.
1750         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
1751         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
1752         all callers changed.
1753         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
1754         (finish_allocno): Likewise.
1755         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
1756         (remove_low_level_allocnos): Likewise.
1757         (update_bad_spill_attribute): Likewise.
1758         (setup_min_max_allocno_live_range_point): Likewise.
1759         (sort_conflict_id_map): Likewise.
1760         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
1761         (ior_hard_reg_conflicts): New function.
1762         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
1763         (compress_conflict_vecs): Iterate over objects, not allocnos.
1764         (ira_add_live_range_to_object): New function.
1765         (object_range_compare_func): Renamed from allocno_range_compare_func.
1766         All callers changed.
1767         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
1768         subobjects, widen the min/max range of the lowest-order object to
1769         potentially include all other such low-order objects.
1770         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
1771         (check_allocation): Likewise.  Use more fine-grained tests for register
1772         conflicts.
1773         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
1774         allocno subobjects.
1775         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
1776         choices about which bits to set in each set.  Don't use
1777         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
1778         using the multiple sets we computed.
1779         (push_allocno_to_stack): Iterate over allocno subobjects.
1780         (all_conflicting_hard_regs_coalesced): New static function.
1781         (setup_allocno_available_regs_num): Use it.
1782         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
1783         subobjects.
1784         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
1785         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
1786         by ALLOCNO_NUM_OBJECTS.
1787         (calculate_spill_cost): Likewise.
1788         (color_pass): Express if statement in a more normal way.
1789         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
1790         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
1791         (setup_slot_coalesced_allocno_live_ranges): Likewise.
1792         (allocno_reload_assign): Likewise.
1793         (ira_reassign_pseudos): Likewise.
1794         (fast_allocation): Likewise.
1795         * ira-conflicts.c (build_conflict_bit_table): Likewise.
1796         (print_allocno_conflicts): Likewise.
1797         (ira_build_conflicts): Likewise.
1798         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
1799         callers changed.  Test subword 0 of each allocno for conflicts.
1800         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
1801         callers changed.  Iterate over allocno subobjects.
1802         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
1803         * ira-int.h (struct ira_allocno): New member: num_objects.
1804         Rename object to objects and change it into an array.
1805         (ALLOCNO_OBJECT): Add new argument N.
1806         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
1807         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
1808         (ior_hard_reg_conflicts): Declare.
1809         (ira_add_live_range_to_object): Declare.
1810         (ira_allocno_object_iterator): New.
1811         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
1812         (FOR_EACH_ALLOCNO_OBJECT): New macro.
1813         * ira-lives.c (objects_live): Renamed from allocnos_live; all
1814         uses changed.
1815         (allocnos_processed): New sparseset.
1816         (make_object_born): Renamed from make_allocno_born; take an
1817         ira_object_t argument.  All callers changed.
1818         (make_object_dead): Renamed from make_allocno_dead; take an
1819         ira_object_t argument.  All callers changed.
1820         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
1821         All callers changed.
1822         (mark_pseudo_regno_live): Iterate over allocno subobjects.
1823         (mark_pseudo_regno_dead): Likewise.
1824         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
1825         functions.
1826         (mark_ref_live): Detect subword accesses and call
1827         mark_pseudo_regno_subword_live as appropriate.
1828         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
1829         (process_bb_nodes_live): Deal with object-related updates first; set
1830         and test bits in allocnos_processed to avoid computing allocno
1831         statistics more than once.
1832         (create_start_finish_chains): Iterate over objects, not allocnos.
1833         (print_object_live_ranges): New function.
1834         (print_allocno_live_ranges): Use it.
1835         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
1836         and objects_live.
1837
1838 2010-07-22  Richard Guenther  <rguenther@suse.de>
1839
1840         PR lto/42451
1841         * gimple.c (gtc_next_dfs_num): New global.
1842         (struct sccs): Make value a union, add integer same_p member.
1843         (gtc_visit): New function.
1844         (gimple_types_compatible_p_1): New function, split out from ...
1845         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
1846         (iterative_hash_gimple_type): Adjust for sccs change.
1847
1848 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1849
1850         PR tree-optimization/44891
1851         * tree-sra.c: Include gimple-pretty-print.h.
1852         (replace_uses_with_default_def_ssa_name): Renamed to
1853         get_repl_default_def_ssa_name, return the new SSA name instead of
1854         replacing the old one.
1855         (sra_modify_assign): Dump a message when removing a load, if the LHS
1856         is an SSA_NAME, do not do any propagation, just set the RHS to a
1857         default definition SSA NAME, type convert if necessary.
1858         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
1859
1860 2010-07-22  Richard Guenther  <rguenther@suse.de>
1861
1862         PR tree-optimization/45017
1863         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
1864         TYPE_PRECISION of integral types in addition to size.
1865
1866 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1867
1868         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
1869         when no C library is specified.
1870
1871 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1872
1873         * ipa-prop.h (struct ipa_node_params): Updated comment.
1874         (struct ipa_edge_args): Likewise.
1875         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
1876
1877 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1878
1879         * cgraphunit.c (verify_edge_count_and_frequency): New function.
1880         (verify_cgraph_node): Verify frequencies of indirect edges.
1881         * tree-inline.c (tree_function_versioning): Update frequencies of
1882         indirect edges.
1883
1884 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1885
1886         PR target/43698
1887         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
1888         Set *arm_rev to be predicable.
1889
1890 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
1891
1892         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
1893         (LINK_COMMAND_SPEC_A): New.
1894         (DSYMUTIL): New.
1895         (DSYMUTIL_SPEC): New.
1896         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
1897         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
1898
1899 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
1900
1901         * calls.c (load_register_parameters): Move check for zero
1902         sized items so that only the call to
1903         mem_overlaps_already_clobbered_arg_p () is protected.
1904
1905 2010-07-22  Jan Hubicka  <jh@suse.cz>
1906
1907         * ipa-pure-const.c (varying_state): Break out from ...
1908         (get_function_state): ... here; always return varying_state
1909         when state would be NULL otherwise.
1910         (remove_node_data): Do not free varying state.
1911
1912 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1913
1914         PR bootstrap/44970
1915         PR middle-end/45009
1916         * postreload.c: Include "target.h".
1917         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
1918         into account.
1919         (fixup_debug_insns): Don't copy the rtx.
1920         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
1921         Don't copy when replacing.  Call fixup_debug_insns in the case where
1922         we merged one add with another.
1923         (reload_combine_recognize_pattern): Fail if there aren't any uses.
1924         Try harder to determine whether we're picking a valid index register.
1925         Don't set store_ruid for an insn we're going to scan in the
1926         next iteration.
1927         (reload_combine): Remove unused code.
1928         (reload_combine_note_use): When updating use information for
1929         an old insn, ignore a use that occurs after store_ruid.
1930         * Makefile.in (postreload.o): Update dependencies.
1931
1932         * function.c (record_hard_reg_sets): Restrict the previous change
1933         to cases where the incoming nominal mode is the same as the
1934         incoming promoted mode and everything happens in MODE_INT.
1935
1936 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
1937
1938         PR debug/45015
1939         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
1940         ASM_OPERANDS_OUTPUT_IDX.
1941         (adjust_insn): For inline asm with multiple sets ensure first
1942         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
1943         the insn.
1944
1945 2010-07-21  Richard Henderson  <rth@redhat.com>
1946
1947         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
1948         comparison for avoiding xmm register saves.  Emit the xmm register
1949         saves explicitly.
1950         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
1951         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
1952         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
1953         Remove patterns and the associated splitters.
1954
1955 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
1956
1957         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
1958         and imagine parts of a complex, so that they can have the same
1959         base and fall into the same group.
1960
1961 2010-07-21  Richard Guenther  <rguenther@suse.de>
1962
1963         PR lto/45018
1964         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
1965         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
1966         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
1967
1968 2010-07-21  Martin Jambor  <mjambor@suse.cz>
1969
1970         PR tree-optimization/44900
1971         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
1972         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
1973
1974 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
1975
1976         PR middle-end/44738
1977         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
1978
1979 2010-07-21  Richard Guenther  <rguenther@suse.de>
1980
1981         PR middle-end/45013
1982         * tree-ssa.c (useless_type_conversion_p): Dispatch to
1983         gimple_types_compatible_p only when in lto.
1984         * gimple.c (gimple_types_compatible_p): Use canonical types
1985         to speed up comparison.
1986
1987 2010-07-21  Richard Guenther  <rguenther@suse.de>
1988
1989         * tree-flow.h (referenced_var): Move define ...
1990         * tree-flow-inline.h (referenced_var): ... here as an inline
1991         function.  Assert here ...
1992         * tree-dfa.c (referenced_var_lookup): ... instead of here.
1993         * tree-ssa.c (maybe_optimize_var): Check if the variable
1994         is in referenced vars.
1995         (execute_update_addresses_taken): Remove old broken check.
1996         * gimple-pretty-print.c (pp_points_to_solution): Use
1997         referenced_var_lookup.
1998         * tree-into-ssa.c (dump_decl_set): Likewise.
1999
2000 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
2001
2002         PR debug/45003
2003         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
2004         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
2005         ZERO_EXTEND here.
2006
2007 2010-07-20  Richard Henderson  <rth@redhat.com>
2008
2009         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
2010
2011 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
2012
2013         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
2014         computing the sum of the stack pointer and a large constant.
2015         * config/arm/constraints.md (M): Remove superfluous parentheses.
2016         (Pc): New constraint.
2017
2018 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
2019
2020         PR debug/45006
2021         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
2022         operand's type if exp is tcc_unary class tree.
2023
2024 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
2025
2026         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
2027         Reverse sense of if_then_else condition.
2028
2029 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
2030
2031         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
2032         * config/rs6000/rs6000.c (rs6000_override_options): Set
2033         rs6000_block_move_inline_limit appropriately.
2034         (expand_block_move): Use rs6000_block_move_inline_limit.
2035         * doc/invoke.texi (mblock-move-inline-limit): Document.
2036
2037 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
2038
2039         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
2040         FROM and TO.  All callers changed.  Don't look for tracked uses,
2041         just scan the RTL for DEBUG_INSNs and substitute.
2042         (reload_combine_recognize_pattern): Call fixup_debug_insns.
2043         (reload_combine): Ignore DEBUG_INSNs.
2044
2045 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
2046
2047         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
2048         depth to 8 from 5.
2049
2050         PR debug/45003
2051         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
2052         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
2053         instead of the result's type.
2054
2055 2010-07-20  Richard Guenther  <rguenther@suse.de>
2056
2057         PR tree-optimization/44977
2058         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
2059         SSA form.
2060
2061 2010-07-20  Richard Guenther  <rguenther@suse.de>
2062
2063         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
2064         (lto_symtab_merge_decls_2): Likewise.
2065         * gimple.h (gimple_types_compatible_p): Declare.
2066         * gimple.c (gimple_queue_type_fixup): Remove.
2067         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
2068         (gimple_compatible_complete_and_incomplete_type_p): New function.
2069         (gimple_types_compatible_p): Adjust.
2070         (gimple_register_type): Remove type fixup code.
2071         (print_gimple_types_stats): Adjust.
2072         (free_gimple_type_tables): Likewise.
2073         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
2074         * tree-ssa.c (useless_type_conversion_p): Likewise.
2075
2076 2010-07-20  Richard Guenther  <rguenther@suse.de>
2077
2078         PR middle-end/44971
2079         PR middle-end/44988
2080         * tree-ssa.c (maybe_optimize_var): New function split out from ...
2081         (execute_update_addresses_taken): ... here.
2082         (non_rewritable_mem_ref_base): Likewise.
2083         (execute_update_addresses_taken): Do not iterate over all referenced
2084         vars but just all local decls and parms.
2085         Properly check call and asm arguments and rewrite call arguments.
2086
2087 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
2088
2089         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
2090         to top level.
2091         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
2092         definitions ...
2093         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
2094         New macro.
2095         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
2096
2097 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2098
2099         * gengtype.c (start_root_entry): New function, split out from
2100         write_root.  Check whether V is null and raise an error if so.
2101         (write_field_root): Check for V being null.  Don't raise an error here;
2102         set V to null instead.
2103         (write_root): Update comment above function.  Use start_root_entry.
2104
2105 2010-07-19  Xinliang David Li  <davidxl@google.com>
2106
2107         PR testsuite/44932
2108         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
2109         def edges.
2110         (find_uninit_use): Add dump.
2111         (is_use_properly_guarded): Ditto.
2112         (warn_uninitialized_phi): Ditto.
2113         (execute_late_warn_uninitialized): Ditto.
2114
2115 2010-07-19  Richard Guenther  <rguenther@suse.de>
2116
2117         PR middle-end/44941
2118         * expr.c (emit_block_move_hints): Move zero size check first.
2119         Move asserts to more useful places.
2120         * calls.c (load_register_parameters): Check for zero size.
2121
2122 2010-07-19  Richard Henderson  <rth@redhat.com>
2123
2124         * tree-optimize.c (execute_all_early_local_passes): New.  Change
2125         cgraph_state here ...
2126         (execute_early_local_optimizations): ... not here.  Remove.
2127         (pass_early_local_passes, pass_all_early_optimizations): Update.
2128
2129 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
2130
2131         * postreload.c (reload_combine_closest_single_use): Ignore the
2132         number of uses for DEBUG_INSNs.
2133         (fixup_debug_insns): New static function.
2134         (reload_combine_recognize_const_pattern): Use it.  Don't let the
2135         main loop be affected by DEBUG_INSNs.
2136         Really disallow moving adds past a jump insn.
2137         (reload_combine_recognize_pattern): Don't update use_ruid here.
2138         (reload_combine_note_use): Do it here.
2139         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
2140
2141 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
2142
2143         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
2144         of a loop.
2145         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
2146
2147 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
2148
2149         * config/i386/darwin.h: Define darwin_emit_branch_islands.
2150         (TARGET_MACHO_BRANCH_ISLANDS): New.
2151         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
2152         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
2153         default value.
2154         * config/i386/i386.c (output_pic_addr_const): Do not emit
2155         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
2156         (x86_output_mi_thunk): Adjust symbol creation.
2157         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
2158         Remove out of date comment.
2159         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
2160         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
2161         (DARWIN_GENERATE_ISLANDS): Ditto.
2162         (output_call):  Do not emit branch islands unless
2163         darwin_emit_branch_islands is set.
2164         * config/darwin.c: Declare darwin_emit_branch_islands.
2165         (machopic_indirect_data_reference): Do not emit unless
2166         darwin_emit_branch_islands is set.
2167         (darwin_override_options): Set darwin_emit_branch_islands
2168         where it is needed.
2169         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
2170
2171 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2172
2173         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2174         sse_runtime, sse2_runtime.
2175
2176 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
2177
2178         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
2179         low half of a single-register SCmode return value before ORing
2180         it with the high half.
2181         * config/mips/mips16.S (MERGE_GPRf): Likewise.
2182
2183 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2184
2185         PR target/44805
2186         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
2187         on all targets.
2188
2189 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
2190
2191         PR target/42235
2192         * postreload.c (reload_cse_move2add): Return bool, true if anything.
2193         changed.  All callers changed.
2194         (move2add_use_add2_insn): Likewise.
2195         (move2add_use_add3_insn): Likewise.
2196         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
2197         reload_combine.
2198         (RELOAD_COMBINE_MAX_USES): Bump to 16.
2199         (last_jump_ruid): New static variable.
2200         (struct reg_use): New members CONTAINING_MEM and RUID.
2201         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
2202         (reload_combine_split_one_ruid, reload_combine_split_ruids,
2203         reload_combine_purge_insn_uses, reload_combine_closest_single_use
2204         reload_combine_purge_reg_uses_after_ruid,
2205         reload_combine_recognize_const_pattern): New static functions.
2206         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
2207         is true for our reg and that we have available index regs.
2208         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
2209         callers changed.  Use them to initialize fields in struct reg_use.
2210         (reload_combine): Initialize last_jump_ruid.  Be careful when to
2211         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
2212         Call reload_combine_recognize_const_pattern.
2213         (reload_combine_note_store): Update REAL_STORE_RUID field.
2214
2215 2010-07-16  Jason Merrill  <jason@redhat.com>
2216
2217         * Makefile.in (opts-common.o): Depend on options.h.
2218
2219 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
2220
2221         * tree.c (build_common_builtin_nodes): Use build_function_type_list
2222         instead of build_function_type.
2223         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
2224         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2225
2226 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
2227
2228         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
2229         do all the work.
2230         (rs6000_emit_int_cmove): Use function pointers for insn generation.
2231         Don't force values into registers unnecessarily.
2232         (output_isel): Assert that we're not given conditions we can't handle.
2233         Delete corresponding code.
2234         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
2235         scc_comparison_operator constraint.  Permit 0 for the consequent
2236         operand.  Permit any GPR for the alternative operand.
2237         (isel_unsigned_<mode>): Likewise.
2238
2239 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
2240
2241         PR target/44942
2242         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
2243         argument to const_tree.
2244         * config/i386/i386.c (function_arg_advance): If padding needs to be
2245         inserted before argument, increment cum->words by number of padding
2246         words as well.
2247         (contains_aligned_value_p): Change argument to const_tree.
2248         (ix86_function_arg_boundary): Change second argument to const_tree.
2249
2250 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
2251
2252         PR target/42235
2253         * function.c (record_hard_reg_sets): New static function.
2254         (assign_parm_setup_reg): If an optab for extending exists and the
2255         generated code clobbbers no hard regs, emit the insn directly and
2256         create a REG_EQUIV note.
2257
2258 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2259
2260         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
2261         TREE_CHAIN.
2262         * c-typeck.c (push_init_level): Likewise.
2263         (process_init_element): Likewise.
2264
2265 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
2266
2267         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
2268         (integer_three_node): Add.
2269         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
2270         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
2271         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
2272         of call build_int_cst.
2273         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
2274         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
2275         (find_interesting_uses_address): Ditto.
2276         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
2277         * tree-eh.c (lower_eh_constructs_2): Ditto.
2278         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
2279         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
2280         * expmed.c (expand_divmod): Ditto.
2281         * tree-mudflap.c (mx_register_decls): Ditto.
2282         * varasm.c (array_size_for_constructor): Ditto.
2283         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2284         * c-parser.c (c_parser_postfix_expression): Ditto.
2285
2286 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2287
2288         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
2289         New static variables.
2290         (reload_combine_recognize_pattern): New static function, broken out
2291         of reload_combine.
2292         (reload_combine): Use it.  Only initialize first_index_reg and
2293         last_index_reg once.
2294
2295 2010-07-15  Richard Henderson  <rth@redhat.com>
2296
2297         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
2298         when done.
2299
2300 2010-07-15  Jan Hubicka  <jh@suse.cz>
2301
2302         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
2303         comdats for broken gold.
2304         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
2305
2306 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2307
2308         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
2309
2310 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2311
2312         * tree.h (DECL_CHAIN): Define.
2313         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2314         * c-decl.c: Likewise.
2315         * c-parser.c: Likewise.
2316         * c-typeck.c: Likewise.
2317         * cfgexpand.c: Likewise.
2318         * cgraph.c: Likewise.
2319         * cgraphunit.c: Likewise.
2320         * combine.c: Likewise.
2321         * config/alpha/alpha.c: Likewise.
2322         * config/arm/arm.c: Likewise.
2323         * config/frv/frv.c: Likewise.
2324         * config/i386/i386.c: Likewise.
2325         * config/i386/winnt-cxx.c: Likewise.
2326         * config/ia64/ia64.c: Likewise.
2327         * config/iq2000/iq2000.c: Likewise.
2328         * config/mep/mep.c: Likewise.
2329         * config/mips/mips.c: Likewise.
2330         * config/pa/som.h: Likewise.
2331         * config/rs6000/rs6000.c: Likewise.
2332         * config/s390/s390.c: Likewise.
2333         * config/sh/sh.c: Likewise.
2334         * config/sh/symbian-cxx.c: Likewise.
2335         * config/sparc/sparc.c: Likewise.
2336         * config/spu/spu.c: Likewise.
2337         * config/stormy16/stormy16.c: Likewise.
2338         * config/vxworks.c: Likewise.
2339         * config/xtensa/xtensa.c: Likewise.
2340         * coverage.c: Likewise.
2341         * dbxout.c: Likewise.
2342         * dwarf2out.c: Likewise.
2343         * emit-rtl.c: Likewise.
2344         * expr.c: Likewise.
2345         * function.c: Likewise.
2346         * gimple-low.c: Likewise.
2347         * gimple-pretty-print.c: Likewise.
2348         * gimplify.c: Likewise.
2349         * integrate.c: Likewise.
2350         * ipa-inline.c: Likewise.
2351         * ipa-prop.c: Likewise.
2352         * ipa-split.c: Likewise.
2353         * ipa-struct-reorg.c: Likewise.
2354         * ipa-type-escape.c: Likewise.
2355         * langhooks.c: Likewise.
2356         * lto-cgraph.c: Likewise.
2357         * omp-low.c: Likewise.
2358         * stor-layout.c: Likewise.
2359         * tree-cfg.c: Likewise.
2360         * tree-complex.c: Likewise.
2361         * tree-dfa.c: Likewise.
2362         * tree-dump.c: Likewise.
2363         * tree-inline.c: Likewise.
2364         * tree-mudflap.c: Likewise.
2365         * tree-nested.c: Likewise.
2366         * tree-object-size.c: Likewise.
2367         * tree-pretty-print.c: Likewise.
2368         * tree-sra.c: Likewise.
2369         * tree-ssa-live.c: Likewise.
2370         * tree-ssa-loop-niter.c: Likewise.
2371         * tree-ssa-math-opts.c: Likewise.
2372         * tree-ssa-reassoc.c: Likewise.
2373         * tree-ssa-sccvn.c: Likewise.
2374         * tree-ssa-structalias.c: Likewise.
2375         * tree-tailcall.c: Likewise.
2376         * tree-vrp.c: Likewise.
2377         * tree.c: Likewise.
2378         * var-tracking.c: Likewise.
2379         * varasm.c: Likewise.
2380
2381 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2382
2383         PR target/44877
2384         * config/spu/spu.c (spu_expand_builtin_1): Allow references
2385         (as well as pointers) as argument to mask_for_load builtins.
2386
2387 2010-07-15  Richard Guenther  <rguenther@suse.de>
2388
2389         PR tree-optimization/44946
2390         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
2391         with accessing only padding properly.
2392
2393 2010-07-15  Jan Hubicka  <jh@suse.cz>
2394
2395         * ipa.c (function_and_variable_visibility): Variables marked as used
2396         should not be localized.
2397
2398 2010-07-15  Jan Hubicka  <jh@suse.cz>
2399
2400         * cgraph.c: Include lto-streamer.h
2401         (change_decl_assembler_name): Work when assembler name hash is at place.
2402         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
2403         be sure to rename it to avoid name clash.
2404         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
2405         Localize hidden symbols only when locally defined.
2406
2407 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
2408
2409         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
2410
2411 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
2412             Kevin F. Quinn  <kevquinn@gentoo.org>
2413
2414         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
2415         * common.opt: Add -Wtrampolines.
2416         * doc/invoke.texi: Add -Wtrampolines.
2417
2418 2010-07-15  Jie Zhang  <jie@codesourcery.com>
2419
2420         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
2421         cortex_a8_issue_ls.
2422
2423 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
2424
2425         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
2426         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
2427
2428 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2429
2430         * config/spu/spu.c (reg_names): Remove prototype.
2431         (call_used_regs): Likewise.
2432
2433 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2434
2435         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
2436         "unused" with attribute "used".
2437         (__JCR_END__): Likewise.
2438         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
2439         "used" attribute.
2440         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
2441
2442 2010-07-14  Richard Guenther  <rguenther@suse.de>
2443
2444         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
2445         (maybe_fixup_decls): Likewise.
2446         (input_gimple_stmt): Do not fixup anything.
2447         * lto-streamer-out.c (output_gimple_stmt): Make sure all
2448         non-automatic variable uses are wrapped inside a MEM_REF.
2449
2450 2010-07-14  Richard Henderson  <rth@redhat.com>
2451
2452         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
2453         for functions.
2454         * varasm.c (assemble_variable): Remove early exit for functions;
2455         assert that we're given a variable.
2456
2457 2010-07-14  Jie Zhang  <jie@codesourcery.com>
2458
2459         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
2460         cortex_a8_default when neon_type is not none.
2461
2462 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2463
2464         * lower-subreg.c (subreg_context): New static bitmap.
2465         (decompose_multiword_subregs): Allocate and free it.
2466         (find_decomposable_subregs): Set a bit in it for a register that
2467         occurs in a subreg that changes mode but not size.
2468         (can_decompose_p): Test it instead of non_decomposable_context.
2469
2470 2010-07-14  Richard Guenther  <rguenther@suse.de>
2471
2472         PR tree-optimization/44824
2473         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
2474         is_gimple_mem_ref_addr.
2475         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
2476         non-decl_address_invariant_p addresses.
2477
2478 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2479
2480         * reload.c (find_reloads): Revert code to penalize small register
2481         classes that was brought in with the IRA merge.
2482
2483 2010-07-14  Richard Guenther  <rguenther@suse.de>
2484
2485         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
2486         as base of ARRAY_REFs.
2487
2488 2010-07-14  Richard Guenther  <rguenther@suse.de>
2489
2490         PR middle-end/44930
2491         * tree-pretty-print.c (do_niy): Do not print a newline.
2492
2493 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2494
2495         * ira-int.h (struct ira_object): New.
2496         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
2497         (struct ira_allocno): Remove members min, max,
2498         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
2499         conflict_allocnos_num and conflict_vec_p.  Add new member object.
2500         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
2501         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
2502         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
2503         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
2504         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
2505         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
2506         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
2507         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
2508         an ira_object_t rather than ira_allocno_t.  All uses changed.
2509         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
2510         contains a vector of ira_object_t; all uses changed.
2511         (ira_objects_num): Declare variable.
2512         (ira_create_allocno_object): Declare function.
2513         (ira_conflict_vector_profitable_p): Adjust prototype.
2514         (ira_allocate_conflict_vec): Renamed from
2515         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
2516         (ira_allocate_object_conflicts): Renamed from
2517         ira_allocate_allocno_conflicts; first arg now ira_object_t.
2518         (struct ira_object_iterator): New.
2519         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
2520         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
2521         to conflict_vec_p.  All uses changed.
2522         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
2523         Changed to take into account that conflicts are now tracked for
2524         objects.
2525         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
2526         Args changed to accept ira_object_t.  All uses changed.
2527         (allocnos_conflict_p): New static function.
2528         (collected_conflict_objects): Renamed from collected_allocno_objects;
2529         now a vector of ira_object_t.  All uses changed.
2530         (build_conflict_bit_table): Changed to take into account that
2531         conflicts are now tracked for objects.
2532         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
2533         (print_allocno_conflicts, ira_build_conflicts): Likewise.
2534         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
2535         setup_allocno_left_conflicts_size, allocno_reload_assign,
2536         fast_allocation): Likewise.
2537         * ira-lives.c (make_hard_regno_born, make_allocno_born)
2538         process_single_reg_class_operands, process_bb_node_lives): Likewise.
2539         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
2540         Likewise.
2541         * ira-build.c (ira_objects_num): New variable.
2542         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
2543         contains a vector of ira_object_t; all uses changed.
2544         (ira_object_id_map_vec): Corresponding change.
2545         (object_pool): New static variable.
2546         (initiate_allocnos): Initialize it.
2547         (finish_allocnos): Free it.
2548         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
2549         New functions.
2550         (ira_create_allocno): Don't set members that were removed.
2551         (ira_set_allocno_cover_class): Don't change conflict hard regs.
2552         (merge_hard_reg_conflicts): Changed to take into account that
2553         conflicts are now tracked for objects.
2554         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
2555         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
2556         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
2557         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
2558         setup_min_max_conflict_allocno_ids, ):  Likewise.
2559         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
2560         to ira_object_t; all callers changed.
2561         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
2562         to ira_object_t, all callers changed.
2563         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
2564         to ira_object_t, all callers changed.
2565         (conflict_check, curr_conflict_check_tick): Renamed from
2566         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
2567         changed.
2568         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
2569         arg changed to ira_object_t, all callers changed.
2570         (create_cap_allocno): Call ira_create_allocno_object.
2571         (finish_allocno): Free the corresponding object.
2572         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
2573         callers changed.  Adjusted for dealing with objects.
2574         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
2575         dealing with objects.
2576         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
2577
2578         * ira-int.h (struct live_range): Rename allocno member to object
2579         and change type to ira_object_t.
2580         (struct ira_object): New member live_ranges.
2581         (struct ira_allocno): Remove member live_ranges.
2582         (ALLOCNO_LIVE_RANGES): Remove.
2583         (OBJECT_LIVE_RANGES): New macro.
2584         (ira_create_live_range, ira_copy_live_range_list,
2585         ira_merge_live_range_list, ira_live_ranges_intersect_p,
2586         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
2587         * ira-build.c (ira_create_object): Initialize live ranges here.
2588         (ira_create_allocno): Not here.
2589         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
2590         changed to ira_object_t, all callers changed.
2591         (copy_live_range): Rename from copy_allocno_live_range, all callers
2592         changed.
2593         (ira_copy_live_range_list): Rename from
2594         ira_copy_allocno_live_range_list, all callers changed.
2595         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
2596         all callers changed.
2597         (ira_live_ranges_intersect_p): Rename from
2598         ira_allocno_live_ranges_intersect_p, all callers changed.
2599         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
2600         callers changed.
2601         (ira_finish_live_range_list): Rename from
2602         ira_finish_allocno_live_range_list, all callers changed.
2603         (change_object_in_range_list): Rename from change_allocno_in_range_list,
2604         last arg changed to ira_object_t, all callers changed.
2605         (finish_allocno): Changed to expect live ranges in the allocno's object.
2606         (move_allocno_live_ranges, copy_allocno_live_ranges,
2607         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
2608         ira_flattening, ira_build): Likewise.
2609         * ira-color.c (allocnos_have_intersected_live_ranges_p,
2610         slot_coalesced_allocno_live_ranges_intersect,
2611         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
2612         * ira-conflicts.c (build_conflict_bit_table): Likewise.
2613         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
2614         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
2615         make_allocno_dead, create_start_finish_chains,
2616         remove_some_program_points_and_update_live_ranges,
2617         ira_debug_live_range_list): Likewise.
2618
2619         * ira-int.h (ira_object_conflict_iterator): Rename from
2620         ira_allocno_conflict_iterator.
2621         (ira_object_conflict_iter_init): Rename from
2622         ira_allocno_conflict_iter_init, second arg changed to
2623         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
2624         FOR_EACH_ALLOCNO_CONFLICT.
2625         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
2626         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
2627         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
2628         * ira-conflicts.c (print_allocno_conflicts): Likewise.
2629
2630 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
2631
2632         PR other/44874
2633         * tree-dump.c (dump_options): Add enumerate_locals entry.
2634         Add TDF_NOID exclusion to all entry.
2635         * tree-dump.h (dump_enumerated_decls): Declare.
2636         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
2637         Don't display type uid.
2638         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
2639         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
2640         * tree-ssa-live.c: Include gimple.h.
2641         (numbered_tree_d): New struct.
2642         (numbered_tree): New typedef.
2643         (DEF_VEC_O (numbered_tree): New.
2644         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
2645         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
2646         (dump_enumerated_decls): Likewise.
2647         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
2648         debug info and flag_dump_final_insns, call dump_enumerated_decls.
2649         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
2650         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
2651
2652 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
2653
2654         * expmed.h (MAX_BITS_PER_WORD): Move to...
2655         * defaults.h (MAX_BITS_PER_WORD): ...here.
2656
2657 2010-07-13  DJ Delorie  <dj@redhat.com>
2658
2659         * config/h8300/h8300.c (h8300_init_once): Default to
2660         -fstrict_volatile_bitfields.
2661
2662         * config/sh/sh.c (sh_override_options): Default to
2663         -fstrict_volatile_bitfields.
2664
2665         * config/rx/rx.c (rx_option_override): New.
2666
2667         * config/m32c/m32c.c (m32c_override_options): Default to
2668         -fstrict_volatile_bitfields.
2669
2670 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2671
2672         * tree.h (build_function_call_expr): Delete.
2673         (build_call_expr_loc_array): New function.
2674         (build_call_expr_loc_vec): New function.
2675         * tree-flow.h (struct omp_region): Change type of ws_args field
2676         to a VEC.
2677         * builtins.c (build_function_call_expr): Delete.
2678         (build_call_expr_loc_array): New function.
2679         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
2680         (build_call_expr): Likewise.
2681         (build_call_expr_loc_vec): New function.
2682         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
2683         build_function_call_expr.
2684         * expr.c (emutls_var_address): Likewise.
2685         * varasm.c (emutls_common_1): Likewise.
2686         * omp-low.c (expand_omp_atomic_mutex): Likewise.
2687         (expand_omp_taskreg): Adjust for new type of region->ws_args.
2688         (get_ws_args_for): Return a VEC instead of a tree.
2689         (expand_parallel_call): Call build_call_expr_loc_vec instead of
2690         build_function_call_expr.
2691         * stor-layout.c (self_referential_size): Likewise.
2692
2693 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
2694
2695         PR testsuite/44701
2696         * recog.c (constrain_operands): Allow side-effects in memory
2697         operands if either < or > constraint is used, rather than if
2698         both < and > is used.
2699
2700 2010-07-13  Richard Guenther  <rguenther@suse.de>
2701
2702         PR middle-end/44911
2703         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
2704         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
2705         without name.
2706
2707 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2708
2709         PR target/44761
2710         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
2711         to variable emited.
2712         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
2713         * config/sh/sh.md (symGOT_load): Likewise.
2714         (symDTPOFF2reg): Likewise.
2715         (symTPOFF2reg): Likewise.
2716
2717 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2718
2719         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
2720         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
2721
2722 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2723
2724         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
2725         explanation.
2726         Find ucontext_t * on Solaris 11.
2727         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
2728         Handle new Solaris 11 __sighndlr patterns.
2729
2730 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
2731
2732         PR debug/44901
2733         * vec.h (VEC_block_remove): Fix comment.
2734         * tree-ssa-live.c (remove_unused_locals): Don't use
2735         VEC_unordered_remove on local_decls, instead replace a single
2736         vector element in each iteration if at least one element had
2737         to be removed and VEC_truncate at the end.
2738         * omp-low.c (expand_omp_taskreg): Likewise.
2739
2740 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2741
2742         * c-decl.c (finish_function): Fix typo in comment.
2743
2744 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
2745
2746         PR bootstrap/44921
2747         * postreload.c (move2add_use_add3_insn): Silence gcc warning
2748         on min_regno.
2749
2750 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
2751
2752         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
2753         (simplify_stmt_using_ranges): Use it.
2754
2755 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2756
2757         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
2758         member.  Do not mark as GTY(()).
2759         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
2760         (spu_builtin_decls): New static variable.
2761         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
2762         (spu_init_builtins): Likewise.
2763         (spu_builtin_mul_widen_even): Likewise.
2764         (spu_builtin_mul_widen_odd): Likewise.
2765         (spu_builtin_mask_for_load): Likewise.
2766         (spu_builtin_vec_perm): Likewise.
2767         * config/spu/spu-c.c: Include "target.h".
2768         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
2769         of using spu_builtins[].fndecl.
2770
2771 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2772
2773         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
2774         imply -minterlink-mips16.
2775
2776 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2777
2778         * config/mips/mips.h (mips16_globals): Declare.
2779         (SWITCHABLE_TARGET): Define.
2780         * config/mips/mips.c: Include target-globals.h.
2781         (mips16_globals): New variable.
2782         (mips_set_mips16_mode): Use save_target_globals and
2783         restore_target_globals instead of target_reinit.
2784
2785 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2786
2787         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
2788         to say that the function can be called more than once.
2789         * target-globals.c (save_target_globals): Call init_reg_sets.
2790
2791 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2792
2793         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
2794         * bb-reorder.h: New file.
2795         * bb-reorder.c (default_target_bb_reorder): New variable.
2796         (this_target_bb_reorder): New conditional variable.
2797         (uncond_jump_length): Redefine as a macro.
2798         * target-globals.h (this_target_bb_reorder): Declare.
2799         (target_globals): Add a bb_reorder field.
2800         (restore_target_globals): Copy the bb_reorder field to
2801         this_target_bb-reorder.
2802         * target-globals.c: Include bb-reorder.h.
2803         (default_target_globals): Initialize the bb_reorder field.
2804         (save_target_globals): Likewise.
2805
2806 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2807
2808         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
2809         * gcse.h: New file.
2810         * gcse.c: Include gcse.h.
2811         (default_target_gcse): New variable.
2812         (this_target_gcse): New conditional variable.
2813         (can_copy): Redefine as a macro.
2814         (can_copy_init_p): New macro.
2815         (can_copy_p): Remove can_copy_init_p.
2816         * target-globals.h (this_target_gcse): Declare.
2817         (target_globals): Add a gcse field.
2818         (restore_target_globals): Copy the gcse field to this_target_gcse.
2819         * target-globals.c: Include gcse.h.
2820         (default_target_globals): Initialize the gcse field.
2821         (save_target_globals): Likewise.
2822
2823 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2824
2825         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
2826         and x_ira_prohibited_mode_move_regs_initialized_p.
2827         (ira_prohibited_mode_move_regs): Redefine as a macro.
2828         * ira.c (ira_prohibited_mode_move_regs): Delete.
2829         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
2830
2831 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2832
2833         * reload.h (target_reload): Add x_cached_reg_save_code and
2834         x_cached_reg_restore_code.
2835         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
2836         Redefine as macros.
2837
2838 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2839
2840         * Makefile.in (target-globals.o): Depend on builtins.h.
2841         * builtins.h: New file.
2842         * builtins.c: Include builtins.h.
2843         (default_target_builtins): New variable.
2844         (this_target_builtins): New conditional variable.
2845         (apply_args_mode, apply_result_mode): Redefine as macros.
2846         * target-globals.h (this_target_builtins): Declare.
2847         (target_globals): Add a builtins field.
2848         (restore_target_globals): Copy the builtins field to
2849         this_target_builtins.
2850         * target-globals.c: Include builtins.h.
2851         (default_target_globals): Initialize the builtins field.
2852         (save_target_globals): Likewise.
2853
2854 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2855
2856         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
2857         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
2858         from expmed.c.
2859         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
2860         (alg_hash, alg_hash_used_p): New macros.
2861         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
2862         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
2863         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
2864
2865 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2866
2867         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
2868         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
2869         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
2870         (this_op_costs, costs_classes): Redefine as macros.
2871         (record_reg_classes): Don't take op_costs as a parameter.
2872         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
2873         (scan_one_insn): Update call to record_operand_costs.
2874
2875 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2876
2877         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
2878         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
2879         (target_ira_int): New structure.
2880         (default_target_ira_int): Declare.
2881         (this_target_ira_int): Declare as a variable or define as a macro.
2882         (ira_reg_mode_hard_regset, ira_register_move_cost)
2883         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
2884         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
2885         (prohibited_class_mode_regs, ira_important_classes_num)
2886         (ira_important_classes, ira_reg_class_intersect)
2887         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
2888         (ira_reg_class_union): Redefine as macros.
2889         * ira.h (target_ira): New structure.
2890         (default_target_ira): Declare.
2891         (this_target_ira): Declare as a variable or define as a macro.
2892         (ira_available_class_regs, ira_hard_regno_cover_class)
2893         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
2894         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
2895         (ira_class_hard_regs_num): Redefine as macros.
2896         * ira.c (default_target_ira, default_target_ira_int): New variables.
2897         (this_target_ira, this_target_ira_int): New conditional variables.
2898         (ira_reg_mode_hard_regset, ira_memory_move_cost)
2899         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
2900         (ira_class_subset_p): Delete.
2901         (no_unit_alloc_regs): Redefine as a macro.
2902         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
2903         (ira_class_hard_regs_num, ira_class_hard_reg_index)
2904         (ira_available_class_regs): Delete.
2905         (alloc_reg_class_subclasses): Redefine as a macro.
2906         (ira_reg_class_cover_size, ira_reg_class_cover)
2907         (ira_important_classes_num, ira_important_classes)
2908         (ira_important_class_nums, ira_class_translate): Delete.
2909         (cover_class_order): Document the variable's lifetime.
2910         (reorder_important_classes): Don't set ira_important_class_nums.
2911         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
2912         (ira_reg_class_super_classes, ira_reg_class_union)
2913         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
2914         Delete.
2915         (setup_reg_class_nregs): Don't set ira_max_regs.
2916         (prohibited_class_mode_regs): Delete.
2917         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
2918         (target_globals): Add ira and ira_int fields.
2919         (restore_target_globals): Copy the ira field to this_target_ira
2920         and the ira_int field to this_target_ira_int.
2921         * target-globals.c: Include ira-int.h.
2922         (default_target_globals): Initialize the ira and ira_int fields.
2923         (save_target_globals): Likewise.
2924
2925 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2926
2927         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
2928         * cfgloop.h (target_cfgloop): New structure.
2929         (default_target_cfgloop): Declare.
2930         (this_target_cfgloop): Declare as a variable or define as a macro.
2931         (target_avail_regs, target_clobbered_regs, target_res_regs)
2932         (target_reg_cost, target_spill_cost): Redefine as macros.
2933         * cfgloopanal.c (default_target_cfgloop): New variable.
2934         (this_target_cfgloop): New conditional variable.
2935         (target_avail_regs, target_clobbered_regs, target_res_regs)
2936         (target_reg_cost, target_spill_cost): Delete.
2937         * target-globals.h (this_target_cfgloop): Declare.
2938         (target_globals): Add a cfgloop field.
2939         (restore_target_globals): Copy the cfgloop field to
2940         this_target_cfgloop.
2941         * target-globals.c: Include cfgloop.h.
2942         (default_target_globals): Initialize the cfgloop field.
2943         (save_target_globals): Likewise.
2944
2945 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2946
2947         * regs.h (target_regs): Add x_direct_load, x_direct_store and
2948         x_float_extend_from_mem.
2949         (direct_load, direct_store, float_extend_from_mem): New macros.
2950         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
2951
2952 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2953
2954         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
2955         (target-globals.o): Depend on $(LIBFUNCS_H).
2956         * libfuncs.h: Include hashtab.h.
2957         (libfunc_entry): Moved from optabs.c.
2958         (target_libfuncs): New structure.
2959         (default_target_libfuncs): Declare.
2960         (this_target_libfuncs): Declare as a variable or define as a macro.
2961         (libfunc_table): Redefine as a macro.
2962         * optabs.c (default_target_libfuncs): New variable.
2963         (this_target_libfuncs): New conditional variable.
2964         (libfunc_table): Delete.
2965         (libfunc_entry): Moved to optabs.h.
2966         (libfunc_hash): Redefine as a macro.
2967         (hash_libfunc, eq_libfunc): Fix comments.
2968         (init_optabs): Use libfunc_hash to detect cases where the function
2969         has already been called.  Clear the hash table instead of
2970         recreating it.
2971         * target-globals.h (this_target_libfuncs): Declare.
2972         (target_globals): Add a libfuncs field.
2973         (restore_target_globals): Copy the libfuncs field to
2974         this_target_libfuncs.
2975         * target-globals.c: Include libfuncs.h.
2976         (default_target_globals): Initialize the libfuncs field.
2977         (save_target_globals): Likewise.
2978
2979 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2980
2981         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
2982         in all dependency lists.
2983
2984 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2985
2986         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
2987         * optabs.h (target_optabs): New structure.
2988         (default_target_optabs): Declare.
2989         (this_target_optabs): Declare as a variable or define as a macro.
2990         (optab_table, convert_optab_table, direct_optab_table): Redefine
2991         as macros.
2992         * optabs.c (default_target_optabs): New variable.
2993         (this_target_optabs): New conditional variable.
2994         (optab_table, convert_optab_table, direct_optab_table): Delete.
2995         * target-globals.h (this_target_optabs): Declare.
2996         (target_globals): Add a optabs field.
2997         (restore_target_globals): Copy the optabs field to
2998         this_target_optabs.
2999         * target-globals.c: Include expr.h and optabs.h.
3000         (default_target_globals): Initialize the optabs field.
3001         (save_target_globals): Likewise.
3002
3003 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3004
3005         * flags.h (target_flagstate): Add x_flag_excess_precision.
3006         (flag_excess_precision): Redefine as a macro.
3007         * toplev.c (flag_excess_precision): Delete.
3008
3009 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3010
3011         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
3012         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
3013         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
3014         (no_caller_save_reg_set): Redefine as a macro.
3015         * reload.h (target_reload): Add x_caller_save_initialized_p and
3016         x_regno_save_mode.
3017         (caller_save_initialized_p): Redefine as a macro.
3018         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
3019         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
3020         (regno_save_mode): Redefine as a macro.
3021
3022 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3023
3024         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
3025         * expmed.h: New file.
3026         * expmed.c (default_target_costs): New variable.
3027         (this_target_costs): New conditional variable.
3028         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
3029         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
3030         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
3031         * target-globals.h (this_target_expmed): Declare.
3032         (target_globals): Add a expmed field.
3033         (restore_target_globals): Copy the expmed field to
3034         this_target_expmed.
3035         * target-globals.c: Include expmed.h.
3036         (default_target_globals): Initialize the expmed field.
3037         (save_target_globals): Likewise.
3038
3039 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3040
3041         * Makefile.in (target-globals.o): Depend on reload.h.
3042         * reload.h (target_reload): New structure.
3043         (default_target_reload): Declare.
3044         (this_target_reload): Declare as a variable or define as a macro.
3045         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
3046         * reload1.c (default_target_reload): New variable
3047         (this_target_reload): New conditional variable.
3048         (indirect_symref_ok, double_reg_address_ok): Delete.
3049         (spill_indirect_levels): Redefine as a macro.
3050         * target-globals.h (this_target_reload): Declare.
3051         (target_globals): Add a reload field.
3052         (restore_target_globals): Copy the reload field to
3053         this_target_reload.
3054         * target-globals.c: Include hard-reg-set.h.
3055         (default_target_globals): Initialize the reload field.
3056         (save_target_globals): Likewise.
3057
3058 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3059
3060         * rtl.h (target_rtl): Add x_static_reg_base_value.
3061         * alias.c (static_reg_base_value): Redefine as a macro.
3062
3063 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3064
3065         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
3066         (GTFILES): Remove reginfo.c.
3067         * rtl.h (target_rtl): Add x_top_of_stack.
3068         (top_of_stack): New macro.
3069         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
3070         (top_of_stack): Delete.
3071
3072 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3073
3074         * regs.h (target_regs): Add x_hard_regs_of_mode,
3075         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
3076         x_may_move_out_cost and x_last_mode_for_init_move_cost.
3077         (have_regs_of_mode, contains_reg_of_mode, move_cost)
3078         (may_move_in_cost, may_move_out_cost): Redefine as macros.
3079         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
3080         (may_move_in_cost, may_move_out_cost): Delete.
3081         (last_mode_for_init_move_cost): Redefine as a macro.
3082
3083 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3084
3085         * hard-reg-set.h (target_hard_regs): New structure.
3086         (default_target_hard_regs): Declare.
3087         (this_target_hard_regs): Declare as a variable or define as a macro.
3088         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
3089         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
3090         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
3091         (reg_class_size, reg_class_subclasses, reg_class_subunion)
3092         (reg_class_superunion, reg_names): Redefine as macros.
3093         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
3094         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
3095         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
3096         (reg_class_contents, reg_class_size, reg_class_subclasses)
3097         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
3098         (default_target_hard_regs): New variable
3099         (this_target_hard_regs, initial_call_really_used_regs)
3100         (initial_reg_alloc_order): New conditional variables.
3101         (initial_reg_names): New variable.
3102         (init_reg_sets): Assert that initial_call_really_used_regs,
3103         initial_reg_alloc_order and initial_reg_names
3104         are all the same size as their variable counterparts.  Use them to
3105         initialize those counterparts.
3106         * target-globals.h (this_target_hard_regs): Declare.
3107         (target_globals): Add a hard_regs field.
3108         (restore_target_globals): Copy the hard_regs field to
3109         this_target_hard_regs.
3110         * target-globals.c: Include hard-reg-set.h.
3111         (default_target_globals): Initialize the hard_regs field.
3112         (save_target_globals): Likewise.
3113
3114 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3115
3116         * Makefile.in (target-globals.o): Depend on $(RTL_H).
3117         * rtl.h (target_rtl): New structure.
3118         (default_target_rtl): Declare.
3119         (this_target_rtl): Declare as a variable or define as a macro.
3120         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
3121         Redefine as macros.
3122         * emit-rtl.c (default_target_rtl): New variable.
3123         (this_target_rtl): New conditional variable.
3124         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
3125         (return_address_pointer_rtx): Delete.
3126         (initial_regno_reg_rtx): New macro.
3127         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
3128         (init_emit_regs): Likewise.
3129         * target-globals.h (this_target_rtl): Declare.
3130         (target_globals): Add a rtl field.
3131         (restore_target_globals): Copy the rtl field to this_target_rtl.
3132         * target-globals.c: Include rtl.h.
3133         (default_target_globals): Initialize the rtl field.
3134         (save_target_globals): Likewise.
3135
3136 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3137
3138         * Makefile.in (target-globals.o): Depend on $(REGS_H).
3139         * regs.h (target_reg_modes): New structure.
3140         (default_target_reg_modes): Declare.
3141         (this_target_reg_modes): Declare as a variable or define as a macro.
3142         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
3143         * reginfo.c (default_target_reg_modes): New variable.
3144         (this_target_reg_modes): New conditional variable.
3145         (hard_regno_nregs, reg_raw_mode): Delete.
3146         * target-globals.h (this_target_regs): Declare.
3147         (target_globals): Add a regs field.
3148         (restore_target_globals): Copy the regs field to this_target_regs.
3149         * target-globals.c: Include regs.h.
3150         (default_target_globals): Initialize the regs field.
3151         (save_target_globals): Likewise.
3152
3153 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3154
3155         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
3156         * doc/tm.texi: Regenerate.
3157         * Makefile.in (OBJS-common): Add target-globals.o.
3158         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
3159         and target-globals.h.
3160         (target-globals.o): New rule.
3161         (GTFILES): Include $(srcdir)/target-globals.h.
3162         * defaults.h (SWITCHABLE_TARGET): Define.
3163         * gengtype.c (open_base_files): Add target-globals.h to the
3164         list of includes.
3165         * target-globals.h: New file.
3166         * target-globals.c: Likewise.
3167
3168         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
3169         * flags.h (target_flag_state): New structure.
3170         (default_target_flag_state): Declare.
3171         (this_target_flag_state): Declare as a variable or define as a macro.
3172         (align_loops_log): Redefine as a macro.
3173         (align_loops_max_skip, align_jumps_log): Likewise.
3174         (align_jumps_max_skip, align_labels_log): Likewise.
3175         (align_labels_max_skip, align_functions_log): Likewise.
3176         * toplev.c (default_target_flag_state): New variable.
3177         (this_target_flag_state): New conditional variable.
3178         (align_loops_log): Delete.
3179         (align_loops_max_skip, align_jumps_log): Likewise.
3180         (align_jumps_max_skip, align_labels_log): Likewise.
3181         (align_labels_max_skip, align_functions_log): Likewise.
3182         * target-globals.h (this_target_flag_state): Declare.
3183         (target_globals): Add a flag_state field.
3184         (restore_target_globals): Copy the flag_state field to
3185         this_target_flag_state.
3186         * target-globals.c: Include flags.h.
3187         (default_target_globals): Initialize the flag_state field.
3188         (save_target_globals): Likewise.
3189
3190 2010-07-12  Jie Zhang  <jie@codesourcery.com>
3191
3192         * postreload.c (reg_symbol_ref[]): New.
3193         (move2add_use_add2_insn): New.
3194         (move2add_use_add3_insn): New.
3195         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
3196         (move2add_note_store): Likewise.
3197
3198 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
3199
3200         PR rtl-optimization/44752
3201         * genautomata.c (main): Don't emit an empty file even if there
3202         is no automaton.
3203
3204 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3205
3206         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
3207         ix86_solaris_return_in_memory.
3208         * config/i386-protos.h: Reflect this.
3209         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
3210         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
3211         Move ...
3212         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
3213
3214 2010-07-12  Jie Zhang  <jie@codesourcery.com>
3215
3216         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
3217         align the stack when it's going to be saved.
3218
3219 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3220
3221         PR pch/14940
3222         * config/host-solaris.c (mmap_fixed): New function.
3223         (sol_gt_pch_get_address): Use it.
3224         (sol_gt_pch_use_address): Likewise.
3225
3226 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3227
3228         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
3229         pentiumpro on Solaris 8 and 9/x86.
3230         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
3231         Document SSE/SSE2 support.
3232         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
3233
3234 2010-07-12  Andi Kleen  <ak@linux.intel.com>
3235
3236         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
3237         instead of gcc_assert to print better error message for multiple
3238         prevailing defs.
3239
3240 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
3241
3242         * config/i386/i386.c (ix86_asm_output_function_label): Change format
3243         string placeholder from 0x%x to %#x.
3244         (ix86_code_end): Use putc to output '\n'.
3245         (ix86_print_operand) <case ';'>: Use putc to output ';'.
3246
3247 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
3248
3249         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
3250         in directive -export.
3251
3252 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
3253
3254         * reginfo.h (reg_classes_intersect_p): Change arguments type to
3255         reg_class_t.
3256         * rtl.h (reg_classes_intersect_p): Adjust prototype.
3257
3258         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3259         Remove macros.
3260         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
3261         rs6000_memory_move_cost): Remove
3262         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
3263         TARGET_MEMORY_MOVE_COST): Define.
3264         (rs6000_register_move_cost): Make static. Change arguments type from
3265         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
3266         (rs6000_memory_move_cost): Make static. Change arguments type from
3267         'enum reg_class' to reg_class_t.
3268
3269 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
3270
3271         PR middle-end/42505
3272         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
3273         lookup code into....
3274         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
3275         new functions.
3276         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
3277         * cfgloopanal.c (target_clobbered_regs): Define.
3278         (init_set_costs): Initialize target_clobbered_regs.
3279         (estimate_reg_pressure_cost): Add call_p argument.  When true,
3280         adjust the number of available registers to exclude the
3281         call-clobbered registers.
3282         * cfgloop.h (target_clobbered_regs): Declare.
3283         (estimate_reg_pressure_cost): Adjust declaration.
3284         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
3285         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
3286         (determine_set_costs): Dump target_clobbered_regs.
3287         (loop_body_includes_call): New function.
3288         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
3289         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
3290         call_p flag through.
3291         (best_gain_for_invariant): Likewise.
3292         (find_invariants_to_move): Likewise.
3293         (move_single_loop_invariants): Likewise, using already-computed
3294         has_call field.
3295
3296 2010-07-10  Richard Guenther  <rguenther@suse.de>
3297             Joern Rennecke  <joern.rennecke@embecosm.com>
3298
3299         PR debug/44832
3300         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
3301         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
3302         unless they have DECL_IGNORED_P set.
3303
3304 2010-07-10  Richard Guenther  <rguenther@suse.de>
3305
3306         PR lto/44889
3307         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
3308         helper function.
3309         (gimple_types_compatible_p): Similar to pointed-to
3310         types allow and merge a mix of complete and incomplete aggregate.
3311         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
3312         (iterative_hash_gimple_type): Adjust for that.
3313
3314 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
3315
3316         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
3317
3318 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
3319
3320         PR objc/44140
3321         * config/darwin.c (output_objc_section_asm_op): Save and restore
3322         section when outputting ObjC section list.
3323
3324 2010-07-09  Jan Hubicka  <jh@suse.cz>
3325
3326         * lto-streamer-out.c (produce_symtab): Do not write alias
3327         cgraph/varpool nodes.
3328
3329 2010-07-09  Jan Hubicka  <jh@suse.cz>
3330
3331         * tree-inline.c (declare_return_variable): Fix ICE while
3332         inlining DECL_BY_VALUE function not in SSA form
3333
3334 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
3335
3336         PR tree-optimization/44576
3337         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
3338         New.  Pull out from is_loop_prefetching_profitable to implement
3339         the trip count to ahead ratio heuristic.
3340         (mem_ref_count_reasonable_p): New.  Pull out from
3341         is_loop_prefetching_profitable to implement the instruction to
3342         memory reference ratio heuristic.  Also consider not reasonable if
3343         the memory reference count is above a threshold (to avoid
3344         explosive compilation time.
3345         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
3346         is_loop_prefetching_profitable to implement the instruction to
3347         prefetch ratio heuristic.
3348         (is_loop_prefetching_profitable): Removed.
3349         (loop_prefetch_arrays): Distribute the cost analysis across the
3350         function to allow early exit of the prefetch analysis.
3351         is_loop_prefetching_profitable is splitted into three functions,
3352         with each one called as early as possible.
3353         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
3354         number of memory references in a loop is considered too many.
3355
3356 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
3357
3358         * reload.c (find_reloads): Don't clear badop if we have a winreg
3359         alternative, but not win, and the class only has fixed regs.
3360         * hard-reg-set.h (class_only_fixed_regs): Declare.
3361         * reginfo.c (class_only_fixed_regs): New array.
3362         (init_reg_sets_1): Initialize it.
3363         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
3364         discourage alternatives using the stack pointer.
3365
3366         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
3367
3368         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
3369
3370         * config/arm/arm.md (cbranchqi4): Fix array size.
3371         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
3372         calculating length.
3373
3374 2010-07-09  Richard Guenther  <rguenther@suse.de>
3375
3376         * gimple.c (struct type_fixup_s): New struct and VEC type.
3377         (gimple_register_type_fixups): New static global.
3378         (gimple_queue_type_fixup): New function.
3379         (gimple_types_compatible_p): Queue type fixups instead of
3380         applying them here.
3381         (gimple_register_type): Apply queued fixups for the
3382         canonical type.  Empty the type fixup queue.
3383
3384 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
3385
3386         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
3387         * configure: Regenerate.