re PR bootstrap/44713 (Revision 161530 failed bootstrap)
[official-gcc.git] / gcc / ChangeLog
blobda8f9680798003b389f877996237ded1518f710b
1 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3         PR bootstrap/44713
4         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
5         (function_arg_advance_32): Const-ify TYPE parameter.
6         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
7         (ix86_function_arg_advance): Change type of NAMED to bool.
8         (function_arg_32): Const-ify CUM and TYPE parameters.
9         (function_arg_64): Likewise.  Change type of NAMED to bool.
10         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
11         to bool.
12         (ix86_function_arg): Change type of NAMED to bool.
13         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
14         last argument as a bool.
16 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
18         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
19         (OVERRIDE_OPTIONS): Add note of obsolescence.
20         Replace references with references to TARGET_OPTION_OVERRIDE.
21         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22          the macro).
23         * targhooks.c (default_target_option_override): New function.
24         * targhooks.h (default_target_option_override): Declare.
25         * target.h (struct gcc_target): Add override member to
26         target_option member.
27         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
28         targetm.target_option.override call.
29         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
30         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
32 2010-06-29  Jan Hubicka  <jh@suse.cz>
34         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
36 2010-06-29  Jan Hubicka  <jh@suse.cz>
38         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
39         unreachable.
40         (rebuild_frequencies): New function.
41         * predict.h (rebuild_frequencies): Declare.
42         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
43         entry block and edge reaching new_entry.
44         (tree_function_versioning): When doing partial cloning, rebuild frequencies
45         when done.
46         * passes.c (execute_function_todo): Use rebild_frequencies.
48 2010-06-29  Richard Guenther  <rguenther@suse.de>
50         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
51         * tree-flow.h (enum noalias_state): Remove.
52         (struct var_ann_d): Remove noalias_state member.
54 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
56         PR target/43902
57         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
58         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
59         (maddhidi4): Likewise.
61         Revert parts of the change for PR25130.
62         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
63         MEM_ALIAS_SET.
65 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
67         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
68         targetm.calls.function_incoming_arg, and
69         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
70         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
71         * target.h (struct gcc_target): Add function_arg_advance,
72         function_arg, and function_incoming_arg fields.
73         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
74         (TARGET_FUNCTION_INCOMING_ARG): Define.
75         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
76         and TARGET_FUNCTION_INCOMING_ARG.
77         * targhooks.h (default_function_arg_advance): Declare.
78         (default_function_arg, default_function_incoming_arg): Declare.
79         * targhooks.c (default_function_arg_advance): New function.
80         (default_function_arg, default_function_incoming_arg): New function.
81         * config/i386/i386.c (function_arg_advance): Rename to...
82         (ix86_function_arg_advance): ...this.  Make static.
83         (function_arg): Rename to...
84         (ix86_function_arg): ...this.  Make static.
85         (TARGET_FUNCTION_ARG_ADVANCE): Define.
86         (TARGET_FUNCTION_ARG): Define.
87         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
88         (FUNCTION_ARG): Delete.
89         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
90         (function_arg): Delete prototype.
92 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
94         * reginfo.c (init_reg_sets_1): Adjust comments.
95         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
96         * calls.c (prepare_call_address): Likewise.
97         (emit_call_1): Use targetm.calls.return_pops_args.
98         (expand_call): Likewise.
99         * function.c (assign_parms): Likewise.
100         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
101         * target.h (struct gcc_target) [struct calls]: Add
102         return_pops_args field.
103         * targhooks.h (default_return_pops_args): Declare.
104         * targhooks.c (default_return_pops_args): Define.
105         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
106         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
107         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
108         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
109         documentation.
110         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
111         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
112         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
113         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
114         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
115         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
116         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
117         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
118         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
119         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
120         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
121         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
122         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
123         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
124         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
125         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
126         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
127         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
128         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
129         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
130         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
131         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
132         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
133         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
134         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
135         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
136         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
137         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
138         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
139         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
140         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
141         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
142         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
143         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
144         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
145         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
146         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
147         * config/i386/i386.c (ix86_return_pops_args): Make static.
148         Constify arguments.
149         (TARGET_RETURN_POPS_ARGS): Define.
150         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
151         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
152         (TARGET_RETURN_POPS_ARGS): Define.
153         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
154         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
155         (TARGET_RETURN_POPS_ARGS): Define.
157 2010-06-29  Richard Guenther  <rguenther@suse.de>
159         PR middle-end/44667
160         * tree-inline.c (initialize_inlined_parameters): Make sure
161         to remap the inlined parameter variable substitutions types.
163 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
165         PR rtl-optimization/44659
166         * combine.c (make_compound_operation) <SUBREG>: Do not return the
167         result of force_to_mode if it partially re-expanded the compound.
169 2010-06-28  Jan Hubicka  <jh@suse.cz>
171         PR middle-end/44671
172         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
173         RESULT_DECL.
175 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
177         * double-int.h (force_fit_type_double): Remove declaration.
178         * double-int.c (force_fit_type_double): Move to tree.c.
179         * tree.h (force_fit_type_double): Declare.
180         * tree.h (force_fit_type_double): Moved from double-int.c. Use
181         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
182         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
183         * convert.c (convert_to_pointer): Adjust call to
184         force_fit_type_double.
185         * tree-vrp.c (extract_range_from_assert,
186         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
187         * fold-const.c: Update comment.
188         (int_const_binop, fold_convert_const_int_from_int,
189         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
190         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
191         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
192         round_up_loc): Adjust call to force_fit_type_double.
194 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
196         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
198 2010-06-28  Martin Jambor  <mjambor@suse.cz>
200         * tree-sra.c (convert_callers): New parameter, change fndecls of
201         recursive calls.
202         (modify_function): Pass the old decl to convert_callers.
204 2010-06-28  Martin Jambor  <mjambor@suse.cz>
206         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
207         ipa_check_create_node_params and ipa_initialize_node_params with
208         checking asserts they are not necessary.
210 2010-06-28  Jan Hubicka  <jh@suse.cz>
212         PR tree-optimization/44687
213         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
215 2010-06-28  Martin Jambor  <mjambor@suse.cz>
217         PR c++/44535
218         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
219         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
220         instead of BINFO_BASE_BINFO.
222 2010-06-28  Michael Matz  <matz@suse.de>
224         PR middle-end/44592
225         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
226         proper VDEF chain for intermediate stores in the sequence.
228 2010-06-28  Jan Hubicka  <jh@suse.cz>
230         PR tree-optimization/44357
231         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
232         functions.
234 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
236         * config.gcc (powerpc*-*-*): Handle titan.
237         * config/rs6000/rs6000.c (titan_cost): New costs.
238         (rs6000_override_options): Add "titan" to processor_target_table.
239         Add Titan to branch alignment logic.
240         Correctly set rs6000_cost for titan.
241         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
242         * config/rs6000/titan.md: New file.
243         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
244         
245 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
247         * tree-browser.c (TB_history_stack): Convert to a VEC.
248         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
249         (TB_history_prev): Likewise.
251 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
253         * vec.h (vec_heap_free): Add parentheses around free.
255 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
257         * system.h: Poison GCC_EXCEPT_H for front-end files.
259         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
260         langhook.
261         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
262         Define to NULL by default.
263         * except.h: Define GCC_EXCEPT_H.
264         (doing_eh): Remove prototype.
265         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
266         (lang_protect_cleanup_actions): Remove.
267         * except.c (lang_protect_cleanup_actions): Remove.
268         (doing_eh): Remove.
269         (gen_eh_region): Don't check doing_eh here.
270         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
271         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
272         instead of lang_protect_cleanup_actions.
273         * omp-low.c (maybe_catch_exception): Likewise.
274         * Makefile.in: Update dependencies.
276 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
278         * cgraph.h (struct varpool_node): new used_from_object_file flag.
279         (struct cgraph_local_info): new used_from_object_file flag.
280         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
281         (cgraph_clone_node): initialize used_from_object_file.
282         (cgraph_create_virtual_clone): initialize used_from_object_file.
283         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
284         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
285         when compiling with -fwhole-program.
286         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
287         internal resolver.
288         * ipa.c (function_and_variable_visibility): Set externally_visible
289         flag of varpool_node if used_from_object_file flag is set.
290         (cgraph_externally_visible_p): check used_from_object_file flag.
291         * doc/invoke.texi (-fwhole-program option): Change description of
292         externally_visible attribute accordingly.
293         * doc/extend.texi (externally_visible): Ditto.
295 2010-06-27  Jan Hubicka  <jh@suse.cz>
297         * params.def (max-inline-insns-auto): Default to 40.
298         * doc/invoke.texi (max-inline-insns-auto): Document the change.
300 2010-06-27  Jan Hubicka  <jh@suse.cz>
302         PR middle-end/44671
303         PR middle-end/44686
304         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
305         signature change.
306         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
307         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
309 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
311         * target.h (struct gcc_target): Add register_move_cost field.
312         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
313         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
314         * targhooks.c (default_register_move_cost): New function.
315         * targhooks.h (default_register_move_cost): Declare function.
316         * defaults.h (REGISTER_MOVE_COST): Delete.
317         * ira-int.h (ira_register_move_cost): Update comment.
318         * ira.c: (ira_register_move_cost): Update comment.
319         * reload.h (register_move_cost): Declare.
320         * reginfo.c (register_move_cost): New function.
321         (move_cost): Update comment.
322         (init_move_cost, memory_move_secondary_cost): Replace
323         REGISTER_MOVE_COST with register_move_cost.
324         * postreload.c (reload_cse_simplify_set): (Ditto.).
325         * reload.c (find_valid_class, find_reloads): (Ditto.).
326         * reload1.c (choose_reload_regs): (Ditto.).
327         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
328         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
329         * doc/md.texi (can_create_pseudo_p): Update documentation.
331         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
332         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
333         * config/i386/i386.h (ix86_memory_move_cost): Make static.
334         (TARGET_MEMORY_MOVE_COST): Define.
336         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
337         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
338         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
339         (TARGET_MEMORY_MOVE_COST): Define.
341 2010-06-27  Richard Guenther  <rguenther@suse.de>
343         PR tree-optimization/44683
344         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
345         false edge from the inverted condition.
347 2010-06-27  Richard Guenther  <rguenther@suse.de>
349         PR middle-end/44684
350         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
351         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
352         for register LHS.  Or non-store assignments.
354 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
356         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
357         (sparc_emit_set_const64): Likewise.  Remove disabled code.
358         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
359         (sparc_emit_set_const64): Likewise.
361 2010-06-26  Catherine Moore  <clm@codesourcery.com>
363         * config/mips/mips.md (alu_type): New attribute.
364         (type): Infer type from alu_type.
365         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
366         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
367         *subsi3_extended, negsi2, negdi2, *low<mode>,
368         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
369         xor<mode>3, *nor<mode>3,
370         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
371         *zero_extendhi_truncqi):  Set alu_type instead of type.
373 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
375         * config/alpha/alpha.c (alpha_need_linkage): Adjust
376         splay_tree_new_ggc call.
377         (alpha_use_linkage): Likewise.
379 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
381         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
382         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
383         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
384         (static_specs): Remove switches_need_spaces.
385         (process_command, do_self_spec): Hardcode handling "-o" instead of
386         checking switches_need_spaces.
387         * system.h (SWITCHES_NEED_SPACES): Poison.
389 2010-06-26  Richard Guenther  <rguenther@suse.de>
391         PR tree-optimization/44393
392         * tree-loop-distribution.c (generate_loops_for_partition): Fix
393         stmt removal and VOP renaming.
394         (generate_memset_zero): Remove redundant stmt updating.
395         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
396         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
398 2010-06-26  Jan Hubicka  <jh@suse.cz>
400         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
401         edges comming from header are equivalent.
402         (visit_bb): Handle PHIs correctly.
403         * tree-inline.c (copy_phis_for_bb): Be able to copy
404         PHI from entry edge.
405         (copy_cfg_body): Produce edge from entry BB before copying
406         PHIs.
408 2010-06-26  Richard Guenther  <rguenther@suse.de>
410         PR middle-end/44674
411         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
412         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
414 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
416         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
417         add_infile, alloc_switch): New.
418         (process_command): Remove variable lang_n_infiles.  Process
419         options in a single pass.  Use new functions for allocating
420         infiles and switches arrays.  Properly skip operands of
421         -Xpreprocessor and -Xassembler.
423 2010-06-26  Jan Hubicka  <jh@suse.cz>
425         PR middle-end/44671
426         * cgraphunit.c (cgraph_function_versioning): Remove wrong
427         cgraph_make_decl_local call; fix typo copying RTL data.
429 2010-06-25  DJ Delorie  <dj@redhat.com>
431         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
432         (m32c_output_aligned_common): Likewise.
433         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
434         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
435         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
436         (m32c_register_pragmas): Register it.
437         * config/m32c/m32c.c (m32c_get_pragma_address): New.
438         (m32c_insert_attributes): Set #pragma address decls volatile.
439         (pragma_entry_eq): New.
440         (pragma_entry_hash): New.
441         (m32c_note_pragma_address): New.
442         (m32c_get_pragma_address): New.
443         (m32c_output_aligned_common): New.
444         * doc/extend.texi: Document the new pragma.
446         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
447         also.
448         * config/m32c/predicates.md (m32c_any_operand): Check the code
449         instead of memory_operand so as to allow matching volatile MEMs.
450         (m32c_nonimmediate_operand): Likewise.
451         (mra_operand): Allow volatiles.
453 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
455         PR debug/44610
456         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
457         address if the offset is unknown.
459 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
461         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
462         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
463         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
464         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
465         to ia64_start_function. Invoke it.
466         * config/ia64/ia64.c (ia64_start_function): Call new function
467         dwarf2out_vms_debug_main_pointer.
469 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
471         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
472         statements computing the true predicate.
474 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
476         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
477         to boolean_true_node.
478         (reset_bb_predicate): New.
479         (predicate_bbs): Call reset_bb_predicate.
481 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
483         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
484         (tree_if_conversion): Returns true when something has been changed.
485         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
486         changed something.
488 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
490         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
491         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
492         * tree-if-conv.c: Include dbgcnt.h.
493         (tree_if_conversion): Use if_conversion_tree to count the number of
494         if-convertible loops.
496 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
498         * common.opt (fprefetch-loop-arrays): Re-define
499         -fprefetch-loop-arrays as a tri-state option with the initial
500         value of -1.
501         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
502         pass only when flag_prefetch_loop_arrays > 0.
503         * toplev.c (process_options): Note that, with tri-states,
504         flag_prefetch_loop_arrays>0 means prefetching is enabled.
505         * config/i386/i386.c (override_options): Enable prefetching at -O3
506         for a set of CPUs that sw prefetching is helpful.
507         (software_prefetching_beneficial_p): New.  Return TRUE if software
508         prefetching is beneficial for the given CPU.
510 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
512         PR rtl-optimization/44326
513         * implicit-zee.c (find_removable_zero_extends): Replace
514         INSN_P with NONDEBUG_INSN_P.
516 2010-06-25  Martin Jambor  <mjambor@suse.cz>
518         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
519         (struct ipa_node_params): Removed the modification_analysis_done flag.
520         (ipa_is_param_modified): Removed.
521         (ipa_analyze_node): Declare.
522         (ipa_compute_jump_functions): Remove declaration.
523         (ipa_count_arguments): Likewise.
524         (ipa_detect_param_modifications): Likewise.
525         (ipa_analyze_params_uses): Likewise.
526         * ipa-prop.c (struct param_analysis_info): New type.
527         (visit_store_addr_for_mod_analysis): Removed.
528         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
529         moved down in the file.
530         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
531         (ipa_count_arguments): Made static.
532         (mark_modified): New function.
533         (is_parm_modified_before_call): New function.
534         (compute_pass_through_member_ptrs): New parameter parms_info, call
535         is_parm_modified_before_call instead of ipa_is_param_modified.
536         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
537         it to compute_pass_through_member_ptrs.
538         (ipa_compute_jump_functions): New parameter parms_info, pass it to
539         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
540         on the callee if it is analyzed.  Made static.
541         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
542         is_parm_modified_before_call instead of ipa_is_param_modified.
543         (ipa_analyze_call_uses): New parameter parms_info, pass it to
544         ipa_analyze_indirect_call_uses.
545         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
546         ipa_analyze_call_uses.
547         (ipa_analyze_params_uses): New parameter parms_info, pass it to
548         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
549         (ipa_analyze_node): New function.
550         (ipa_print_node_params): Do not dump the modified flag.
551         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
552         it.  Do not stream the modified parameter flag.
553         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
554         it.  Do not stream the modified parameter flag.
555         * ipa-cp.c (ipcp_analyze_node): Removed.
556         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
557         with only a call to ipa_analyze_node.
558         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
559         node with only a call to ipa_analyze_node.
561 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
563         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
565 2010-06-25  Jan Hubicka  <jh@suse.cz>
567         * tree-pass.h (pass_split_functions): Declare.
568         * opts.c (decode_options): Enable function splitting at -O2
569         * timevar.def (TV_IPA_FNSPLIT): New macro.
570         * ipa-split.c: New file.
571         * common.opt (-fpartial-inlining): New flag.
572         * Makefile.in (ipa-split.o): New object file.
573         * passes.c (init_optimization_passes): Add ipa-split.
574         * params.def (partial-inlining-entry-probability): New parameters.
575         * doc/invoke.texi (-fpartial-inlining): New.
577 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
579         PR 44665
580         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
581         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
582         (gimplify_expr): Likewise.
584 2010-06-25  Martin Jambor  <mjambor@suse.cz>
586         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
587         statements instead of bailing out on them.
588         (ipa_analyze_indirect_call_uses): Do not require that loads from the
589         parameter are in the same BB as the condition.  Update comments.
591 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
593         PR middle-end/43866
594         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
595         true or always false, return NULL_TREE.
596         (tree_unswitch_single_loop): Optimize conditions even when reaching
597         max-unswitch-level parameter.  If num > 0, optimize first all conditions
598         using entry checks, then do still reachable block discovery and consider
599         only conditions in still reachable basic blocks in the loop.
601         PR tree-optimization/44539
602         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
603         the call doesn't have LHS, but has VDEF.
605 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
607         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
608         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
609         * gcc.c (enum add_del, struct modify_target, modify_target):
610         Remove.
611         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
612         * system.h (MODIFY_TARGET_NAME): Poison.
614 2010-06-25  Alan Modra  <amodra@gmail.com>
616         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
617         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
618         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
619         CMODEL_LARGE as default.
620         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
621         (offsettable_ok_by_alignment): Delete.
622         (rs6000_emit_move): Remove mcmodel=medium optimization.
624 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
626         With large parts from Jim Wilson:
627         PR target/43902
628         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
629         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
630         * optabs.c (optab_for_tree_code): Likewise.
631         (expand_widen_pattern_expr): Likewise.
632         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
633         out of execute_optimize_widening_mul.
634         (convert_plusminus_to_widen): New function.
635         (execute_optimize_widening_mul): Use the two new functions.
636         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
637         Remove code to generate widening multiply-accumulate.  Add support
638         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
639         * gimple-pretty-print.c (dump_ternary_rhs): New function.
640         (dump_gimple_assign): Call it when appropriate.
641         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
642         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
643         (expand_gimple_stmt_1): Likewise.
644         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
645         WIDEN_MULT_MINUS_EXPR.
646         * tree-ssa-operands.c (get_expr_operands): Likewise.
647         * tree-inline.c (estimate_operator_cost): Likewise.
648         * gimple.c (extract_ops_from_tree_1): Renamed from
649         extract_ops_from_tree.  Add new arg for a third operand; fill it.
650         (gimple_build_assign_stat): Support operations with three operands.
651         (gimple_build_assign_with_ops_stat): Likewise.
652         (gimple_assign_set_rhs_from_tree): Likewise.
653         (gimple_assign_set_rhs_with_ops_1): Renamed from
654         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
655         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
656         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
657         WIDEN_MULT_MINUS_EXPR.
658         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
659         (extract_ops_from_tree_1): Adjust declaration.
660         (gimple_assign_set_rhs_with_ops_1): Likewise.
661         (gimple_build_assign_with_ops): Pass NULL for last operand.
662         (gimple_build_assign_with_ops3): New macro.
663         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
664         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
665         functions.
666         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
667         (verify_gimple_assign): Call it.
668         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
669         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
670         functions for dealing with three-operand statements.
671         * tree.c (commutative_ternary_tree_code): New function.
672         * tree.h (commutative_ternary_tree_code): Declare it.
673         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
674         ternary statements.
675         (gimple_assign_nonzero_warnv_p): Likewise.
676         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
677         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
678         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
679         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
680         (struct hashtable_expr): New member ternary in the union.
681         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
682         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
683         (iterative_hash_hashable_expr): Likewise.
684         (print_expr_hash_elt): Handle EXPR_TERNARY.
685         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
686         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
687         statements.  Handle GIMPLE_TERNARY_RHS.
689 2010-06-25  Jan Hubicka  <jh@suse.cz>
691         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
693 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
695         PR c/44517
696         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
697         parameters are not good.
698         (c_parser_parameter_declaration): Error unknown type name if the type
699         name can't start declaration specifiers.
701 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
703         * gcc.c (translate_options): Don't mention +e in comment.
704         (process_command): Don't handle +e specially.
706 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
708         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
710         * ira-build.c (merge_hard_reg_conflicts): New function.
711         (create_cap_allocno, copy_info_to_removed_store_destinations,
712         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
713         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
714         (remove_unnecessary_allocnos, remove_low_level_allocnos)
715         copy_nifo_to_removed_store_destination): Use them.
716         * ira-lives.c (make_hard_regno_born): New function, split out of
717         make_regno_born.
718         (make_allocno_born): Likewise.
719         (make_hard_regno_dead): New function, split out of make_regno_dead.
720         (make_allocno_dead): Likewise.
721         (inc_register_pressure): New function, split out of set_allocno_live.
722         (dec_register_pressure): New function, split out of clear_allocno_live.
723         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
724         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
725         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
726         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
727         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
728         mark_pseudo_regno_live.
729         (process_bb_node_lives): Use mark_pseudo_regno_live,
730         make_hard_regno_born and make_allocno_dead.
731         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
732         set_allocno_live, clear_allocno_live): Delete functions.
734         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
735         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
736         functions.
737         (ira_flattening): Use ira_parent_allocno.
738         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
739         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
741         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
742         statement.
744         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
745         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
746         minmax_set_iter_cond, minmax_set_iter_next,
747         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
748         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
749         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
750         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
751         uses changed.
753         * ira-int.h (struct live_range, live_range_t): Renamed from struct
754         ira_allocno_live_range and allocno_live_range_t; all uses changed.
755         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
756         All uses changed.
758 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
760         * thumb2.md (thumb2_tlobits_cbranch): Delete.
761         (peephole2 to convert zero_extract/compare of single bit to
762          lshift/compare): New.
764 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
766         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
767         recursive call and call to 'int_const_binop'.
768         (build_range_check, fold_cond_expr_with_comparison, unextend,
769         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
770         multiple_of_p): Adjust call to const_binop.
772 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
774         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
775         determine size of XFmode operand.
776         (XFmode extended DFmode push splitter): Ditto.
777         (XFmode extended SFmode push splitter): Ditto.
779 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
781         PR target/44588
782         * config/i386/i386.md (extract_code): New.
783         (<u>divmodqi4): Likewise.
784         (divmodhiqi3): Likewise.
785         (udivmodhiqi3): Likewise.
786         (<u>divqi3): Remvoved.
788 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
790         PR middle-end/44492
791         * recog.h (struct recog_data): Add is_asm field.
792         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
793         present in constraints of inline-asm operand and memory operand
794         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
795         (extract_insn): Initialize recog_data.is_asm.
796         * doc/md.texi (Constraints): Document operand side-effect rules.
798 2010-06-24  Andi Kleen  <ak@linux.intel.com>
800         * c-parser.c (c_parser_conditional_expression): Call
801         warn_for_omitted_condop.
802         * doc/invoke.texi: Document omitted condop warning.
804 2010-06-24  Nick Clifton<nickc@redhat.com>
806         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
807         insn in the sequence is a jump insn before setting its label.
809 2010-06-24  Alan Modra  <amodra@gmail.com>
811         * collect2.c (main): Match exactly --version and --help.
813 2010-06-24  DJ Delorie  <dj@redhat.com>
815         * config/m32c/m32c-pragma.c: Don't include rtl.h.
817 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
819         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
820         using X87MODEF mode iterator.
821         (pushsf splitter): Macroize splitter using P mode iterator.
822         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
823         mode iterator.
825         (*movxf_internal): Rename from *movxf_integer.
826         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
827         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
828         (*movdf_internal): Rename from *movdf_integer.
829         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
830         (*movsf_internal): Rename from *movdf_1.
832 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
834         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
835         (const_gimple_seq_node): Removed typedefs.
837         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
838         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
840 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
842         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
843         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
844         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
845         and CODE_FOR_vec_extract_lo_v4df.
847         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
848         Changed to define_insn_and_split.
849         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
850         (vec_extract_lo_v16hi): Likewise.
851         (vec_extract_lo_v32qi): Likewise.
852         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
853         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
855 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
857         PR target/44640
858         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
859         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
860         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
861         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
862         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
864         PR target/44640
865         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
867         PR other/44644
868         * df-core.c (struct df): Rename to df_d.
869         * df.h (struct df): Likewise.
870         * dse.h (struct df): Remove forward declaration.
871         * recog.h (struct insn_data): Rename to:
872         (struct_insn_data_d).  Adjusted all users.
874 2010-06-23  Arnaud Charlet  <charlet@adacore.com
876         PR ada/22220
877         * doc/install.texi: Update requirements to build GNAT.
879 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
881         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
882         enum type.
883         (m68k_sched_attr_opx_type): Remove unreachable return.
884         (m68k_sched_attr_opy_type): Likewise.
885         (m68k_sched_attr_size): Likewise.
886         (sched_get_opxy_mem_type): Likewise.
887         (m68k_sched_attr_op_mem): Likewise.
889 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
891         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
892         new statement and adjust VDEF only if necessary.  Remove superfluous
893         call to maybe_clean_or_replace_eh_stmt.
894         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
895         copy the flags.
896         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
897         * tree-inline.c (copy_bb): ...and not there.
899 2010-06-22  Cary Coutant  <ccoutant@google.com>
901         * dwarf2out.c (is_nested_in_subprogram): New function.
902         (should_move_die_to_comdat): Use it.
903         (copy_ancestor_tree): Don't mark DIEs here.
904         (copy_decls_walk): Start walk from root of newly-added tree;
905         mark DIEs here instead.
907 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
909         * config/i386/i386.md (unit): Also check sseishft1.
911 2010-06-22  Jan Hubicka  <jh@suse.cz>
913         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
914         enabled.
916 2010-06-22  Jan Hubicka  <jh@suse.cz>
918         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
919         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
920         Return true if something changed.
921         * df.h (df_confluence_function_n): Return bool.
922         * df-core.c (df_worklist_propagate_forward,
923         df_worklist_propagate_backward): Track changes and ages.
924         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
925         track ages.
926         * dse.c (dse_confluence_n): Return always true.
928 2010-06-22  Jan Hubicka  <jh@suse.cz>
930         * bitmap.c (bitmap_clear_bit): Micro optimize.
932 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
934         * config/i386/i386.md (SWI1248x): New mode iterator.
935         (SWI48x): Ditto.
936         (SWI12): Ditto.
937         (SWI24): Ditto.
939         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
940         SWI1248x mode iterator.
941         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
942         using SWI124 mode iterator.
943         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
944         mode iterator.
945         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
946         *pushdi2_prologue_rex64 using P mode iterator.
947         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
948         using SWI48 mode iterator.
949         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
950         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
951         using SWI1248x mode iterator.
952         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
953         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
954         SWI48 mode iterator.
955         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
956         iterator.
957         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
958         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
959         SWI12 mode iterator.
960         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
961         SWI12 mode iterator.
962         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
963         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
964         SWI24 mode iterator.
965         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
966         SWI48 mode iterator.
967         (mov<mode>_insn_1): New expander.
968         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
969         using SWI48x mode iterator.
971         (*movoi_internal_avx): Rename from *movoi_internal.
972         (*movti_internal_rex64): Rename from *movti_rex64.
973         (*movti_internal_sse): Rename from *movti_sse.
974         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
975         (*movdi_internal): Rename from *movdi_2.
976         (*movsi_internal): Rename from *movsi_1.
977         (*movhi_internal): Rename from *movhi_1.
978         (*movqi_internal): Rename from *movqi_1.
980         (insv): Update the call to gen_movsi_insv_1 for rename.
981         * config/i386/i386.c (promote_duplicated_reg): Ditto.
983 2010-06-22  Jan Hubicka  <jh@suse.cz>
985         * passes.c (execute_function_todo): Move call of statistics_fini_pass
986         to ...
987         (execute_todo) ... this one.
989 2010-06-22  Alan Modra  <amodra@gmail.com>
991         PR target/44364
992         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
993         * caller-save.c (insert_restore, insert_save): Use non-validate
994         form of adjust_address.
996 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
998         PR target/39690
999         * config/pa/pa.c (override_options): Disable
1000         -freorder-blocks-and-partition.
1002 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1004         PR target/44615
1005         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
1007         * config/i386/i386.md (type): Add sseishft1
1009         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
1010         (ppro_insn_load): Likewise.
1011         (ppro_insn_store): Likewise.
1012         (ppro_insn_both): Likewise.
1014         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
1015         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
1016         for type.
1017         (*vec_extractv2di_1_avx): Likewise.
1018         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
1019         type.  Remove atom_unit.
1020         (*vec_extractv2di_1_sse2): Likewise.
1022 2010-06-21  DJ Delorie  <dj@redhat.com>
1024         * diagnostic.h (diagnostic_classification_change_t): New.
1025         (diagnostic_context): Add history and push/pop list.
1026         (diagnostic_push_diagnostics): Declare.
1027         (diagnostic_pop_diagnostics): Declare.
1028         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
1029         from pragmas in a history chain instead of the global table.
1030         (diagnostic_push_diagnostics): New.
1031         (diagnostic_pop_diagnostics): New.
1032         (diagnostic_report_diagnostic): Scan history chain to find state
1033         of diagnostics as of the diagnostic location.
1034         * opts.c (set_option): Pass UNKNOWN_LOCATION to
1035         diagnostic_classify_diagnostic.
1036         (enable_warning_as_error): Likewise.
1037         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
1038         use in the history chain.
1039         * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
1040         allow these pragmas anywhere.
1041         * doc/extend.texi: Document pragma GCC diagnostic changes.
1043 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
1045         * dwarf2out.c (add_linkage_name): New function.  Don't add
1046         anything to DW_TAG_member DIEs.
1047         (add_name_and_src_coords_attributes): Use it.
1048         (gen_variable_die): Call it for C++ static data members if
1049         specification is DW_TAG_member.
1051         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
1052         C++ char16_t and char32_t.
1054         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
1055         * genattrtab.c: Include vecprim.h.
1056         (cached_attrs, cached_attr_count, attrs_seen_once,
1057         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
1058         attrs_cached_after): New variables.
1059         (find_attrs_to_cache): New function.
1060         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
1061         (write_test_expr): Add attrs_cached argument, return it too,
1062         attempt to cache non-const attributes used more than once in
1063         a single case handling.
1064         (write_attr_get): Use find_attrs_to_cache, for caching candidates
1065         emit cached_* variables.  Adjust write_attr_set callers.
1066         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
1067         to find attributes that should be cached in this block.  Adjust
1068         write_test_expr callers.
1069         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
1070         callers.
1071         (make_automaton_attrs): Adjust write_test_expr caller.
1073         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
1074         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
1075         (make_automaton_attrs): If find_tune_attr returns non-NULL,
1076         write separate internal_dfa_insn_code_* and insn_default_latency_*
1077         functions for each attribute's value and emit init_sched_attrs
1078         function and function pointers.
1079         * genattr.c (const_attrs, reservations): New variables.
1080         (gen_attr): Add const attributes to const_attrs vector.
1081         (check_tune_attr, find_tune_attr): New functions.
1082         (main): Add reservations to reservations vector.  If find_tune_attr
1083         returns true, add prototype for init_sched_attrs and make
1084         internal_dfa_insn_code and insn_default_latency function pointers,
1085         otherwise define init_sched_attrs as dummy macro.
1086         * cfgexpand.c: Include insn-attr.h.
1087         (gimple_expand_cfg): Call init_sched_attrs.
1089         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
1091         PR target/44575
1092         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
1093         va_arg from a set of register save slots into a temporary,
1094         if the container is bigger than type size, do the copying
1095         using smaller mode or using memcpy.
1097         PR bootstrap/44426
1098         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
1099         prototype.
1100         (sel_print_to_dot): Remove macro.
1101         (sel_print): Likewise.  New prototype.
1102         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
1103         (sel_print): New function.
1105 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1107         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
1108         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
1110 2010-06-21  Nick Clifton  <nickc@redhat.com>
1112         * config/rx/rx.h (PTRDIFF_TYPE): Define.
1113         (SMALL_REGISTER_CLASS): Define (to zero).
1114         (PRINT_OPERAND): Delete.
1115         (PRINT_OPERAND_ADDRESS): Delete.
1116         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
1117         (rx_print_operand_address): Delete prototype.
1118         * config/rx/rx.c (rx_print_operand): Make static.
1119         Allow %H and %L to handle CONST_DOUBLEs.
1120         (rx_print_operand_address): Make static.
1121         (rx_gen_move_template): Rename local variable 'template' to
1122         out_template.
1123         (rx_function_arg): Do not pass unknown sized objects in registers.
1124         (TARGET_PRINT_OPERAND): Define.
1125         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1127 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
1129         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
1131 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
1133         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
1134         stack-alignment for simple leaf-functions.
1136 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
1138         * doc/install.texi: Document bootstrap-lto.
1140 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
1142         PR debug/44248
1143         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
1144         (input_function): Drop them here, if VTA is disabled.
1146 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
1148         PR target/44546
1149         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
1150         New predicate.
1151         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
1152         ix86_swapped_fp_comparsion_operator instead of
1153         ix86_fp_comparison_operator.
1155         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
1156         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
1157         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
1158         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
1159         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
1160         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
1162 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
1164         PR other/32998
1165         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
1166         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
1167         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
1168         (decode_cmdline_option): Update for this return value.  Set
1169         orig_option_with_args_text field.  Set arg field for unknown
1170         options.  Make static.
1171         (decode_cmdline_options_to_array): New.
1172         (prune_options): Update handling of find_opt return value.
1173         * opts.c (read_cmdline_option): Take decoded option.  Return void.
1174         (read_cmdline_options): Take decoded options.
1175         (decode_options): Add parameters for decoded options.  Use
1176         decode_cmdline_options_to_array.  Use decoded options for -O
1177         scan.  Use integral_argument for -O parameters.  Update call to
1178         read_cmdline_options.
1179         (enable_warning_as_error): Update handling of find_opt return value.
1180         * opts.h: Update comment on unknown options.
1181         (struct cl_decoded_option): Update comments on opt_index and arg.
1182         Add orig_option_with_args_text.
1183         (decode_cmdline_option): Remove.
1184         (decode_cmdline_options_to_array): Declare.
1185         (decode_options): Update prototype.
1186         * toplev.c (save_argv): Remove.
1187         (save_decoded_options, save_decoded_options_count): New.
1188         (read_integral_parameter): Remove.
1189         (print_switch_values): Use decoded options.
1190         (toplev_main): Don't set save_argv.  Update call to decode_options.
1191         * toplev.h (read_integral_parameter): Remove.
1192         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
1194 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
1196         PR target/44072
1197         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
1198         immediate.
1199         * constraints.md (Pw, Px): New constraints.
1200         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
1202 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
1204         * config/i386/sse.md (fma4modesuffixf4): Removed.
1205         (ssemodesuffixf2s): Likewise.
1206         (ssemodesuffixf4): Likewise.
1207         (ssemodesuffixf2c): Likewise.
1208         (ssescalarmodesuffix2s): Likewise.
1209         (avxmodesuffixf2c): Likewise.
1210         (ssemodesuffix): New.
1211         (ssescalarmodesuffix): Likewise.
1212         Update patterns with ssemodesuffix and ssescalarmodesuffix.
1214 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
1216         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
1218 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1220         * stor-layout.c (debug_rli): Remove unused local variables.
1222 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1224         PR rtl-optimization/40900
1225         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
1226         original expression for later reuse.
1227         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
1228         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
1230 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
1232         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
1233         double_int_fits_in_uhwi_p): Implement as static inline.
1234         (double_int_xor): New inline function.
1235         (double_int_lrotate, double_int_rrotate, double_int_max,
1236         double_int_umax, double_int_smax, double_int_min, double_int_umin,
1237         double_int_smin): Declare.
1238         (lrotate_double, rrotate_double): Remove declaration.
1239         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
1240         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
1241         (double_int_lrotate, double_int_rrotate, double_int_max,
1242         double_int_umax, double_int_smax, double_int_min, double_int_umin,
1243         double_int_smin): New function.
1244         * fold-const.c (int_const_binop): Clean up, use double_int_*
1245         functions.
1246         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
1247         double_int_* and immed_double_int_const functions.
1249 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
1251         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
1252         * function.c (types_used_by_cur_var_decl): Likewise.
1253         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
1255 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
1257         * tree.h (record_layout_info): Change type of pending_statics field
1258         to a VEC.
1259         * stor-layout.c (start_record_layout): Store NULL into
1260         pending_statics.
1261         (debug_rli): Call debug_vec_tree instead of debug_tree.
1262         (place_field): Likewise.
1263         (finish_record_layout): Likewise.
1265 2010-06-18  Alan Modra  <amodra@gmail.com>
1267         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
1269 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1271         PR target/43740
1272         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
1273         for SET source operand from SET destination operand.
1275 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
1277         PR rtl-optimization/39871
1278         * reload1.c (init_eliminable_invariants): For flag_pic, disable
1279         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
1280         (function_invariant_p): Rule out a plus of frame or arg pointer with
1281         a SYMBOL_REF.
1282         * ira.c (find_reg_equiv_invariant_const): Likewise.
1284 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
1286         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
1287         print_operand_address and puts to output the operand for CONST.
1289 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
1291         PR debug/44572
1292         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
1293         hook.
1295 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1297         * v850-protos.h (print_operand): Delete.
1298         (print_operand_address): Delete.
1299         * v850.h (PRINT_OPERAND): Delete.
1300         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1301         (PRINT_OPERAND_ADDRESS): Delete.
1302         * v850.c (print_operand_address): Rename to...
1303         (v850_print_operand_address): ...this.  Make static. Call
1304         v850_print_operand.
1305         (print_operand): Rename to...
1306         (v850_print_operand): ...this.  Make static.  Call
1307         v850_print_operand_address.
1308         (v850_print_operand_punct_valid_p): New function.
1309         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1310         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1312 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1314         * config/sh/sh-protos.h (print_operand): Delete.
1315         (print_operand_address): Delete.
1316         * config/sh/sh.h (PRINT_OPERAND): Delete.
1317         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1318         (PRINT_OPERAND_ADDRESS): Delete.
1319         * config/sh/sh.c (sh_print_operand_address): Make static.
1320         (sh_print_operand): Make static.  Call sh_print_operand_address
1321         and sh_print_operand.
1322         (sh_print_operand_punct_valid_p): New function.
1323         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1324         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1326 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1328         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
1329         (mcore_print_operand_address): Delete.
1330         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
1331         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1332         (PRINT_OPERAND_ADDRESS): Delete.
1333         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
1334         (mcore_print_operand): Make static.
1335         (mcore_print_operand_punct_valid_p): New function.
1336         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
1337         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1339 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1341         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
1342         (print_operand_address): Delete.
1343         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
1344         (PRINT_OPERAND_ADDRESS): Delete.
1345         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
1346         static.
1347         (m68hc11_print_operand): Make static.
1348         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1350 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1352         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
1353         (m32r_print_operand_address): Delete.
1354         * config/m32r/m32r.h (m32r_punct_chars): Delete.
1355         (PRINT_OPERAND): Delete.
1356         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1357         (PRINT_OPERAND_ADDRESS): Delete.
1358         * config/m32r/m32r.c (m32r_punct_chars): Make static.
1359         (m32r_print_operand_address): Make static.
1360         (m32r_print_operand): Make static.
1361         (m32r_print_operand_punct_valid_p): New function.
1362         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1363         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1365 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1367         * config/iq2000/iq2000-protos.h (print_operand): Delete.
1368         (print_operand_address): Delete.
1369         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
1370         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1371         (PRINT_OPERAND_ADDRESS): Delete.
1372         (iq2000_print_operand_punct): Delete.
1373         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
1374         (iq2000_print_operand_address): Make static.
1375         (iq2000_print_operand): Make static.
1376         (iq2000_print_operand_punct_valid_p): New function.
1377         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1378         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1380 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1382         * config/frv/frv-protos.h (frv_print_operand): Delete.
1383         (frv_print_operand_address): Delete.
1384         * config/frv/frv.h (PRINT_OPERAND): Delete.
1385         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1386         (PRINT_OPERAND_ADDRESS): Delete.
1387         * config/frv/frv.c (frv_print_operand_address): Make static.
1388         (frv_print_operand): Make static.
1389         (frv_print_operand_punct_valid_p): New function.
1390         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1391         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1393 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
1395         * tree.h (vec_member): Declare.
1396         * tree.c (vec_member): Define.
1398 2010-06-17  Richard Guenther  <rguenther@suse.de>
1400         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
1401         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
1403 2010-06-17  Richard Guenther  <rguenther@suse.de>
1405         * tree-inline.c (declare_return_variable): Remove bogus code.
1407 2010-06-17  Richard Guenther  <rguenther@suse.de>
1409         * gimplify.c (gimplify_bind_expr): Always promote complex
1410         and vector variables to registers if possible.
1412 2010-06-17  Richard Guenther  <rguenther@suse.de>
1414         * expr.c (get_inner_reference): Use double_int for bit_offset
1415         calculation.
1417 2010-06-16  DJ Delorie  <dj@redhat.com>
1419         * common.opt (-fstrict-volatile-bitfields): new.
1420         * doc/invoke.texi: Document it.
1421         * fold-const.c (optimize_bit_field_compare): For volatile
1422         bitfields, use the field's type to determine the mode, not the
1423         field's size.
1424         * expr.c (expand_assignment): Likewise.
1425         (get_inner_reference): Likewise.
1426         (expand_expr_real_1): Likewise.
1427         * expmed.c (store_fixed_bit_field): Likewise.
1428         (extract_bit_field_1): Likewise.
1429         (extract_fixed_bit_field): Likewise.
1431 2010-06-16  Richard Guenther  <rguenther@suse.de>
1433         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
1435 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
1437         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
1438         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
1439         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
1440         * debug.c: Likewise.
1441         * sdbout.c: Likewise.
1442         * vmsdbgout.c: Likewise.
1443         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
1444         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
1445         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
1446         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
1447         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
1448         * dwarf2out.c (dw_fde_struct): New fields
1449         dw_fde_vms_{end,begin}_prologue.
1450         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
1451         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
1452         (dwarf2out_vms_end_prologue): New function.
1453         (dwarf2out_vms_begin_epilogue): New function.
1454         (dw_val_struct): New value dw_val_class_vms_delta.
1455         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
1456         begin_epilogue for VMS.
1457         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
1458         new static functions.
1459         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
1460         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
1461         static functions.
1462         (print_die): New case dw_val_class_vms_delta.
1463         (attr_checksum): Likewise.
1464         (same_dw_val_p: Likewise.
1465         (size_of_die): Likewise.
1466         (value_format): Likewise.
1467         (output_die): Likewise.
1468         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
1469         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
1470         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
1471         dwarf2out_cfi_begin_epilogue
1472         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
1474 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1476         * config/cris/cris-protos.h (cris_print_operand): Delete.
1477         (cris_print_operand_address): Delete.
1478         * config/cris/cris.h (PRINT_OPERAND): Delete.
1479         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1480         (PRINT_OPERAND_ADDRESS): Delete.
1481         * config/cris/cris.c (cris_print_operand_address): Make static.
1482         (cris_print_operand): Make static.
1483         (cris_print_operand_punct_valid_p): New function.
1484         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1485         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1487 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1489         * config/arm/arm-protos.h (arm_print_operand): Delete.
1490         (arm_print_operand_address): Delete.
1491         * config/arm/arm.h (PRINT_OPERAND): Delete.
1492         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1493         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
1494         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
1495         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
1496         (arm_print_operand): Make static.
1497         (arm_print_operand_punct_valid_p): New function.
1498         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1499         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1501 2010-06-16  Nick Clifton  <nickc@redhat.com>
1503         * config/rx/constraints.md (NEGint4): New constraint.
1504         * config/rx/rx.md (attr cc): Add set_zsc.
1505         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
1506         initialised.
1507         (cmpsf): Likewise.
1508         (call_internal): Clobber the cc0 register.
1509         (call_value_internal): Likewise.
1510         (cstoresi4): Likewise.
1511         (movsieq): Likewise.
1512         (movsine): Likewise.
1513         (addsi3): Add alternative to handle small negative constants.
1514         (sunsi3): Likewise.
1515         (addsi3): Do not set the O bit in the cc0 register.
1516         (adddi3): Likewise.
1517         (subsi3): Likewise.
1518         (subdi3): Likewise.
1519         (andsi3): Reorder alternatives to prefer shorter forms.
1520         (mulsi3): Likewise.
1521         (iorsi3): Likewise.
1522         (negsi2): Note that the cc0 flags are set.
1523         (rotlsi3): Note that only the Z and S bits are set in cc0.
1524         (lshrsi3): Likewise.
1525         (ashlsi3): Likewise.
1526         (subsf3): Use %Q for the MEM operand.
1527         (fix_truncsfsi2): Likewise.
1528         (floatsisf2): Likewise.
1529         (bitset): Remove early clobber from destination.
1530         (bitset_in_memory): Likewise.
1531         (lrintsf2): Clobber the cc0 register.
1532         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
1533         (rx_print_operand): Handle %N.
1535 2010-06-16  Jan Hubicka  <jh@suse.cz>
1537         * df-core.c (df_compact_blocks): Free problem_temps vector.
1539 2010-06-16  Martin Jambor  <mjambor@suse.cz>
1541         PR tree-optimization/43905
1542         * tree-sra.c: Include tree-inline.h.
1543         (create_abstract_origin): Removed.
1544         (modify_function): Version the call graph node instead of creating
1545         abstract origins and dealing with same_body aliases.
1546         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
1547         function is versionable.
1548         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
1550 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
1552         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
1553         (CHOOSE_DYNAMIC_LINKER): Update.
1555 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
1557         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
1558         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
1559         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
1560         *prefetch_3dnow_rex.
1562 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
1564         * target.h (struct asm_out):Add declare_constant_name field.
1565         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1566         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
1567         * output.h (default_asm_declare_constant_name): Declare.
1568         (assemble_label): Update prototype.
1569         * varasm.c (assemble_constant_contents): Use
1570         targetm.asm_out.declare_constant_name target hook.
1571         (assemble_label): Add 'file' argument.
1572         (default_asm_declare_constant_name): New function.
1573         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
1574         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
1575         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
1577         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
1578         * config/darwin.c (darwin_asm_declare_constant_name): New function.
1579         (machopic_output_indirection): Update assemble_label argument list.
1580         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
1581         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1583 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
1585         PR middle-end/44391
1586         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
1587         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
1589 2010-06-15  Richard Guenther  <rguenther@suse.de>
1591         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
1593 2010-06-15  Paul Brook  <paul@codesourcery.com>
1595         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
1596         hard-float ABI.
1598 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
1600         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
1601         don't get a vector type for output.
1603 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1605         PR fortran/44536
1606         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
1607         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
1608         (LANG_HOOKS_DECLS): Add it.
1609         * gimplify.c (omp_notice_variable): Call
1610         lang_hooks.decls.omp_report_decl.
1612 2010-06-15  Martin Jambor  <mjambor@suse.cz>
1614         PR lto/44464
1615         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
1616         on the newly dead SSA name.
1618 2010-06-15  Alan Modra  <amodra@gmail.com>
1620         * doc/invoke.texi: Add mcmodel to powerpc options.
1621         * configure.ac: Add HAVE_LD_LARGE_TOC test.
1622         * configure: Regenerate.
1623         * config.in: Regenerate.
1624         * config/rs6000/linux64.opt (mcmodel): New.
1625         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
1626         (TARGET_CMODEL, SET_CMODEL): Define.
1627         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
1628         select CMODEL_MEDIUM default.
1629         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
1630         (TARGET_CMODEL): Define default.
1631         * config/rs6000/rs6000.c (cmodel): New variable.
1632         (rs6000_explicit_options): Add cmodel field.
1633         (rs6000_handle_option): Handle -mcmodel.
1634         (create_TOC_reference): Add largetoc_reg param.  Generate high,
1635         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
1636         (rs6000_delegitimize_address): Recognise new toc reference rtl
1637         and minimal-toc rtl.
1638         (rs6000_legitimize_reload_address): Handle new toc references.
1639         (print_operand_address): Handle legitimate_constant_pool_address_p
1640         match before lo_sum.
1641         (rs6000_eliminate_indexed_memrefs): Tidy.
1642         (rs6000_emit_move): Tweak threshold for inlining constants.
1643         Keep rs6000_emit_allocate_stack large stack frame offsets
1644         loaded into r0 inline.
1645         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
1646         (tocrel_base, tocrel_offset): New variables.
1647         (toc_relative_expr_p): Set them here.
1648         (print_operand_address): Skip over any offset on constant pool address.
1649         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
1650         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
1651         (offsettable_ok_by_alignment): New function.
1652         (rs6000_emit_move): Address suitably aligned local symbol_refs
1653         relative to the toc pointer for -mcmodel=medium.
1654         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
1655         strict param.  Allow lo_sum version of addressing.  Verify reg
1656         used for -mminimal-toc and -mcmodel != small.  Update all callers.
1657         * config/rs6000/constraints.md: Update for above change.
1658         * config/rs6000/predicates.md: Likewise.
1659         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
1660         code.
1661         (tls_gd): Split for -mcmodel=medium/large.
1662         (tls_gd_high, tls_gd_low): New.
1663         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
1664         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
1665         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
1666         (largetoc_high, largetoc_low): New.
1667         (cmptf_internal2): Add clobber.
1668         * config/rs6000/rs6000-protos.h: Update.
1670 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
1672         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
1673         true if no prefetch is going to be generated for a given group.
1674         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
1675         estimate the prefetch_count.
1676         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
1677         prefetch count by considering the unroll_factor and prefetch_mod
1678         for is_loop_prefetching_profitable.
1680 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
1682         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
1683         anything if the argument is not a MEM.
1685 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1687         PR debug/43650
1688         PR debug/44181
1689         PR debug/44247
1690         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
1691         debug stmts.
1692         (canonicalize_loop_ivs): Likewise.
1694 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1696         PR debug/43656
1697         * haifa-sched.c (setup_insn_reg_pressure_info,
1698         update_register_pressure): Reject debug insns.
1699         (ready_sort): Don't setup reg pressure for debug insns.
1700         (schedule_insn): Don't update reg pressure for debug insns.
1702 2010-06-14  Richard Guenther  <rguenther@suse.de>
1704         * lto-streamer.c (cached_bp): Remove.
1705         (bitpack_delete): Likewise.
1706         (bitpack_create): Likewise.
1707         (bp_get_next_word): Likewise.
1708         (bp_pack_value, bp_unpack_value): Move ...
1709         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
1710         Re-implement.
1711         (struct bitpack_d): Likewise.
1712         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
1713         New inline functions.
1714         * lto-streamer-out.c (lto_output_bitpack): Remove.
1715         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1716         (pack_value_fields): Adjust.
1717         (lto_write_tree): Likewise.
1718         (output_gimple_stmt): Likewise.
1719         (output_function): Likewise.
1720         * lto-streamer-in.c (input_gimple_stmt): Adjust.
1721         (input_function): Likewise.
1722         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1723         (lto_input_bitpack): Remove.
1724         (lto_materialize_tree): Adjust.
1725         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
1726         * lto-cgraph.c (lto_output_edge): Adjust.
1727         (lto_output_node): Likewise.
1728         (lto_output_varpool_node): Likewise.
1729         (lto_output_ref): Likewise.
1730         (input_node): Likewise.
1731         (input_varpool_node): Likewise.
1732         (input_ref): Likewise.
1733         (input_edge): Likewise.
1734         (output_node_opt_summary): Likewise.
1735         (input_node_opt_summary): Likewise.
1736         * ipa-pure-const.c (pure_const_write_summary): Likewise.
1737         (pure_const_read_summary): Likewise.
1738         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
1739         (ipa_read_indirect_edge_info): Likewise.
1740         (ipa_write_node_info): Likewise.
1741         (ipa_read_node_info): Likewise.
1743 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1745         PR target/44534
1746         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
1747         (vec_extract_lo_v16hi): Likewise.
1748         (vec_extract_lo_v32qi): Likewise.
1750 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1752         PR bootstrap/44426
1753         * tree.h (build_call_expr): Don't define as vararg macro, instead
1754         add a prototype.
1755         * builtins.c (build_call_nofold): Remove.
1756         (expand_builtin_int_roundingfn, expand_builtin_pow,
1757         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
1758         expand_builtin_memset_args, expand_builtin_strcmp,
1759         expand_builtin_strncmp, expand_builtin_memory_chk): Use
1760         build_call_nofold_loc instead of build_call_nofold.
1761         (build_call_expr): New function.
1763         PR tree-optimization/44508
1764         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
1765         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
1766         don't eliminate trivially dead stmts.
1767         * tree-vrp.c (vrp_finalize): Pass false as last argument
1768         to substitute_and_fold.
1769         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
1770         to substitute_and_fold.
1771         * tree-ssa-ccp.c (ccp_finalize): Likewise.
1773         PR bootstrap/44509
1774         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
1775         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
1776         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
1777         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
1778         ggc_strdup instead of xstrdup.
1780 2010-06-14  Ira Rosen  <irar@il.ibm.com>
1782         PR tree-optimization/44507
1783         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
1784         to build initial vector for BIT_AND_EXPR.
1785         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1787 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1789         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
1790         adjust z10prop set_attr.
1792 2010-06-13  Jan Hubicka  <jh@suse.cz>
1794         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
1795         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
1796         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
1797         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
1798         datastructure checks into checking asserts.
1799         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
1800         * tree-ssa-sccvn.c (VN_INFO): Likewise.
1801         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
1802         df_ref_create_structure): Likewise.
1803         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
1804         pool_free): Use gcc_checking_assert.
1805         * alias.c (get_alias_set): Likewise.
1806         * var-tracking.c (variable_htab_free, shared_hash_copy,
1807         canonicalize_values_mark, variable_merge_over_cur): Likewise.
1808         * lto-streamer.c (bp_unpack_value): Likewise.
1810 2010-06-13  Richard Guenther  <rguenther@suse.de>
1812         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
1813         Do not stream but initialize TYPE_CANONICAL to NULL.
1814         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
1815         * gimple.c (gimple_types_compatible_p): Disregard
1816         TYPE_STRUCTURAL_EQUALITY_P.
1817         (gimple_register_type): Use TYPE_CANONICAL as cache.
1818         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
1819         before registering common types.
1820         * config/i386/i386.c (ix86_function_arg_boundary): Do not
1821         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
1822         * tree.h (TYPE_CANONICAL): Clarify documentation.
1824 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
1826         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1827         LIBCALL_VALUE): Remove macros.
1828         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
1829         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1830         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1831         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
1832         (ia64_function_value): Make static. Handle receiving the function
1833         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
1835 2010-06-12  Jan Hubicka  <jh@suse.cz>
1837         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
1838         at correct place.
1840 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
1842         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
1844 2010-06-12  Jan Hubicka  <jh@suse.cz>
1846         * df-core.c (df_clear_bb_info): New function.
1847         (df_set_blocks): bb_info is always allocated.
1848         (df_get_bb_info): Use block_info_elt_size.
1849         (df_set_bb_info): Likewise.
1850         (df_compact_blocks): Update for new block_info.
1851         (grow_bb_info): New function.
1852         * df-problems.c (df_grow_bb_info): Move to df-core.c
1853         (df_rd_set_bb_info): Remove.
1854         (df_rd_free_bb_info): Do not free block pool.
1855         (df_rd_alloc): Do not create pool, use check for
1856         obstack presence instead of NULL pointer for new blocks.
1857         (df_rd_free): DO not free alloc pool; clear block_info.
1858         (problem_RD): Add size of block info structure.
1859         (df_lr_set_bb_info): Remove.
1860         (df_lr_free_bb_info): Do not free block pool.
1861         (df_lr_alloc): Do not create pool, use check for
1862         obstack presence instead of NULL pointer for new blocks.
1863         (df_lr_free): DO not free alloc pool; clear block_info.
1864         (problem_LR): Add size of block info structure.
1865         (df_live_set_bb_info): Remove.
1866         (df_live_free_bb_info): Do not free block pool.
1867         (df_live_alloc): Do not create pool, use check for
1868         obstack presence instead of NULL pointer for new blocks.
1869         (df_live_free): DO not free alloc pool; clear block_info.
1870         (problem_LIVE): Add size of block info structure.
1871         (problem_CHAIN): Add size of block info structure.
1872         (df_byte_lr_set_bb_info): Remove.
1873         (df_byte_lr_free_bb_info): Do not free block pool.
1874         (df_byte_lr_alloc): Do not create pool, use check for
1875         obstack presence instead of NULL pointer for new blocks.
1876         (df_byte_lr_free): DO not free alloc pool; clear block_info.
1877         (problem_BYTE_LR): Add size of block info structure.
1878         (problem_NOTE): Add size of block info structure.
1879         (df_byte_MD_set_bb_info): Remove.
1880         (df_byte_MD_free_bb_info): Do not free block pool.
1881         (df_byte_MD_alloc): Do not create pool, use check for
1882         obstack presence instead of NULL pointer for new blocks.
1883         (df_byte_MD_free): DO not free alloc pool; clear block_info.
1884         (problem_BD): Add size of block info structure.
1885         * df-scan.c (df_scan_free_internal): Free block pool.
1886         (df_scan_set_bb_info): Remove.
1887         (df_scan_free_bb_info): Check for artificial_defs instead
1888         of bb_info being non-NULL.
1889         (df_scan_alloc): DO not create df_scan_block pool.
1890         (problem_SCAN): Set size of block info.
1891         (df_bb_refs_record): Do not allocate bb_info.
1892         * df.h (df_problem): Add block_info_elt_size.
1893         (struct dataflow): Change block_info to void *.
1894         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
1895         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
1896         in-line structures.
1898 2010-06-12  Jan Hubicka  <jh@suse.cz>
1900         PR tree-optimize/44485
1901         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
1902         containing use of return value of noreturn function.
1904 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
1906         * targhooks.c (default_function_value): Don't use
1907         FUNCTION_OUTGOING_VALUE.
1908         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
1909         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
1911 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
1913         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
1914         Add crtfastmath.o to extra_parts.
1915         * config/mips/crtfastmath.c: New.
1916         * config/mips/linux.h (ENDFILE_SPEC): New.
1918 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
1920         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
1921         old_type in parameter.
1922         (gcc_type_for_value): Update call to gcc_type_for_interval.
1923         (compute_type_for_level_1): Renamed compute_type_for_level.
1924         Update call to gcc_type_for_interval.
1926 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1928         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
1929         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
1931 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1933         * opts-common.c: Include options.h.
1934         (integral_argument): Move from opts.c.
1935         (decode_cmdline_option): New.  Based on read_cmdline_option.
1936         * opts.c (integral_argument): Move to opts-common.c.
1937         (read_cmdline_option): Move most contents to
1938         decode_cmdline_option.  Use %qs in diagnostics.
1939         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
1940         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
1941         decode_cmdline_option): New.
1943 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1945         PR target/44481
1946         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
1947         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
1948         (partiysi2_cmp): Ditto.
1949         (*partiyhi2_cmp): Ditto.
1950         (*parityqi2_cmp): Remove.
1952 2010-06-11  Jan Hubicka  <jh@suse.cz>
1954         * bitmap.h (bmp_iter_next_bit): New.
1955         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
1957 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
1958             Eric Botcazou  <ebotcazou@adacore.com>
1960         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
1961         computed cost.
1963 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1965         * config/i386/i386.md (unspec): New define_c_enum.
1966         (unspecv): Ditto.
1968 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
1970         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
1971         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
1972         (lazy_hex_fp_value): New function.
1973         (builtin_define_with_hex_fp_value): Provide definitions lazily.
1974         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
1976 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
1978         PR middle-end/44483
1979         * tree-if-conv.c (bb_predicate_s): New struct.
1980         (bb_predicate_p): New.
1981         (bb_has_predicate): New.
1982         (bb_predicate): New.
1983         (set_bb_predicate): New.
1984         (bb_predicate_gimplified_stmts): New.
1985         (set_bb_predicate_gimplified_stmts): New.
1986         (add_bb_predicate_gimplified_stmts): New.
1987         (init_bb_predicate): New.
1988         (free_bb_predicate): New.
1989         (is_predicated): Use bb_predicate.
1990         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
1991         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
1992         before processing their successors.
1993         (clean_predicate_lists): Removed.
1994         (find_phi_replacement_condition): Use bb_predicate.
1995         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
1996         computations.
1997         (insert_gimplified_predicates): New.
1998         (combine_blocks): Call insert_gimplified_predicates.
1999         (tree_if_conversion): Call free_bb_predicate instead of
2000         clean_predicate_lists.
2002 2010-10-11  Paul Brook  <paul@codesourcery.com>
2004         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
2005         * config/arm/arm.c (all_architectures): Change v7e-m default to
2006         cortexm4.
2007         * config/arm/arm-cores.def: Add cortex-m4.
2008         * config/arm/arm-tune.md: Regenerate.
2010 2010-06-11  Jan Hubicka  <jh@suse.cz>
2012         * ipa-pure-const.c (special_builtlin_state): New function.
2013         (check_call): Use it instead of special casign BUILT_IN_RETURN.
2014         (propagate_pure_const): Use it.
2016 2010-06-11  Jan Hubicka  <jh@suse.cz>
2018         * df-problems.c (df_live_scratch): Convert to bitmap_head.
2019         (df_live_alloc): Initialize df_live_scratch when initializing
2020         problem_data.
2021         (df_live_transfer_function): Update uses of df_live_scratch.
2022         (df_live_free): Free problem_data; clear df_live_scratch before
2023         releasing the obstack.
2024         (df_md_free): Free problem data.
2026 2010-06-11  Jan Hubicka  <jh@suse.cz>
2028         * doc/invoke.texi (Wsuggest-attribute): Document.
2029         (Wmissing-noreturn): Remove.
2030         * ipa-pure-const.c (warn_function_noreturn): New function.
2031         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
2032         warn_missing_noreturn.
2033         * common.opt (Wsuggest-attribute=noreturn): New.
2034         * tree-flow.h (warn_function_noreturn): Declare.
2035         * tree-cfg.c (execute_warn_function_noreturn): Use
2036         warn_function_noreturn.
2037         (gate_warn_function_noreturn): New.
2038         (pass_warn_function_noreturn): Update.
2040 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2042         * c-typeck.c (handle_warn_cast_qual): Add loc
2043         parameter. Improve warning message.
2044         (build_c_cast): Pass location to handle_warn_cast_qual.
2046 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
2048         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
2049         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
2050         insn mnemonic.
2051         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
2053 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
2055         Fix bootstap on mips
2056         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
2057         be naming typedefs.
2059 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
2061         * system.h (helper_const_non_const_cast): New inline for
2062         gcc version <= 4.0.
2063         (CONST_CAST2): For gcc version <= 4.0 use
2064         new helper to do const/non-const casting.
2066 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2068         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
2069         * Makefile.in (OBJS-common): Include insn-enums.o.
2070         (insn-enums.o): New rule.
2071         (simple_generated_c): Add insn-enums.c.
2072         (build/genenums.o): New rule.
2073         (genprogmd): Add "enums".
2074         * genconstants.c (print_enum_type): Declare a C string array
2075         for each enum.
2076         * genenums.c: New file.
2077         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
2078         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
2079         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
2081 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2083         * doc/md.texi (define_enum_attr): Document.
2084         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
2085         * read-md.h (lookup_enum_type): Declare.
2086         * read-md.c (lookup_enum_type): New function.
2087         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
2088         * genattrtab.c (attr_desc): Add an enum_name field.
2089         (evaluate_eq_attr): Take the associated attribute as argument.
2090         Get the enum prefix from the enum_name field, if defined.
2091         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
2092         (simplify_test_exp): Pass attr to evaluate_eq_attr.
2093         (add_attr_value): New function, split out from...
2094         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
2095         (write_test_expr): Pass attr to evaluate_eq_attr.
2096         (write_attr_get): Use the enum_name as the enum tag, if defined.
2097         (write_attr_valueq): Use the enum_name as a prefix, if defined.
2098         (find_attr): Initialize enum_name.
2099         (main): Handle DEFINE_ENUM_ATTR.
2100         * gensupport.c (process_rtx): Likewise.
2101         * config/mips/mips.h (mips_tune_attr): Delete.
2102         * config/mips/mips.md (cpu): Use define_attr_enum.
2104 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2106         * doc/md.texi (define_c_enum, define_enum): Document.
2107         * read-md.h (md_constant): Add a parent_enum field.
2108         (enum_value, enum_type): New structures.
2109         (upcase_string, traverse_enum_types): Declare.
2110         * read-md.c (enum_types): New variable.
2111         (upcase_string, add_constant): New functions.
2112         (handle_constants): Don't create the hash table here.
2113         Use add_constant.
2114         (traverse_md_constants): Don't check for a null md_constants.
2115         (decimal_string, handle_enum, traverse_enum_types): New functions.
2116         (read_md_files): Initialize md_constants and md_enums.
2117         * genconstants.c (print_md_constant): Ignore info argument.
2118         Only print constants that belong to no enum.
2119         (print_enum_type): New function.
2120         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
2121         for each defined enum type.
2122         * config/mips/mips.md (processor): New define_enum.
2123         (unspec): New define_c_enum.
2124         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
2125         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
2126         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
2127         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
2128         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
2129         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
2130         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
2131         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
2132         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
2133         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
2134         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
2135         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
2136         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
2137         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
2138         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
2139         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
2140         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
2141         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
2142         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
2143         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
2144         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
2145         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
2146         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
2147         (UNSPEC_RDDSP): Move to mips-dsp.md.
2148         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
2149         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
2150         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
2151         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
2152         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
2153         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
2154         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
2155         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
2156         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
2157         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
2158         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
2159         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
2160         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
2161         Moved to mips-dspr2.md.
2162         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
2163         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
2164         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
2165         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
2166         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
2167         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
2168         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
2169         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
2170         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
2171         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
2172         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
2173         UNSPEC_LOONGSON_PSADBH)
2174         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
2175         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
2176         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
2177         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2178         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2179         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2180         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
2181         (cpu): Update comment.
2182         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
2183         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
2184         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
2185         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
2186         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
2187         UNSPEC_LOONGSON_PCMPEQ)
2188         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
2189         UNSPEC_LOONGSON_PINSR_0)
2190         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
2191         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
2192         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
2193         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
2194         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
2195         UNSPEC_LOONGSON_PSADBH)
2196         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
2197         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
2198         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
2199         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2200         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2201         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2202         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
2203         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
2204         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
2205         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
2206         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
2207         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
2208         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
2209         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
2210         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
2211         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
2212         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
2213         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
2214         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
2215         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
2216         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
2217         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
2218         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
2219         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
2220         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
2221         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
2222         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
2223         (UNSPEC_RDDSP): Moved from mips.md.
2224         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
2225         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
2226         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
2227         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
2228         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
2229         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
2230         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
2231         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
2232         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
2233         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
2234         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
2235         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
2236         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
2237         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
2238         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
2239         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
2240         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
2241         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
2242         (UNSPEC_SCC): Moved from mips.md.
2243         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
2244         "processor_type" to "processor".
2245         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
2246         * config/mips/mips.h (processor_type): Delete.
2247         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
2248         "processor_type" to "processor".
2250 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2252         * configure.ac (tm_include_list): Add insn-constants.h.
2253         * configure: Regenerate.
2254         * Makefile.in (GTM_H): Move insn-constants.h here from...
2255         (TM_H): ...here.
2256         * mkconfig.sh: Remove special handling for insn-constants.h.
2258 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2260         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
2261         (BUILD_MD): ...this new variable.
2262         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
2263         that include the old contents of simple_generated_h and
2264         simple_generated_c.
2265         (simple_generated_h, simple_generated_c): Include them.  Add
2266         insn-constants.h.
2267         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
2268         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
2269         Remove these dependencies from the main rule and include
2270         insn-conditions.md in the command line only if it appears
2271         in the dependency list.
2272         (insn-constants.h, s-constants): Delete.
2273         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
2274         or gensupport.h.
2275         (build/genmddeps.o): Likewise.
2276         (genprogrtl): New variable that contains everything from genprogmd
2277         except mddeps and constants.
2278         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
2279         depend on $(BUILD_MD)
2280         (genprog): New variable.  Make these programs depend on
2281         $(BUILD_ERRORS).
2282         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
2283         (main): Use read_md_files instead of init_rtx_reader_args.
2284         * genconstants.c: As for genmddeps.c.
2285         * read-md.h (read_skip_construct): Declare.
2286         * read-md.c (read_skip_construct): New function.
2287         (handle_file): Allow a null handle_directive, skipping the
2288         construct if so.
2289         (parse_include): Update the comment accordingly.
2291 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2293         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
2294         * genmddeps.c: Include read-md.h.
2295         (main): Call init_rtx_reader_args instead of init_md_reader_args.
2296         * genattr.c (main): Likewise.
2297         * genattrtab.c (main): Likewise.
2298         * genautomata.c (main): Likewise.
2299         * gencodes.c (main): Likewise.
2300         * genconditions.c (main): Likewise.
2301         * genconfig.c (main): Likewise.
2302         * genconstants.c (main): Likewise.
2303         * genemit.c (main): Likewise.
2304         * genextract.c (main): Likewise.
2305         * genflags.c (main): Likewise.
2306         * genopinit.c (main): Likewise.
2307         * genoutput.c (main): Likewise.
2308         * genpeep.c (main): Likewise.
2309         * genrecog.c (main): Likewise.
2310         * genpreds.c (main): Likewise.
2311         * gensupport.h (in_fname): Move to read-md.h.
2312         (init_md_reader_args_cb): Rename to...
2313         (init_rtx_reader_args_cb): ...this and return a bool.
2314         (init_md_reader_args): Rename to...
2315         (init_rtx_reader_args): ...this and return a bool.
2316         (include_callback): Move to read-md.h.
2317         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
2318         (file_name_list, first_dir_md_include): Move to read-md.c
2319         (first_bracket_include): Delete unused variable.
2320         (last_dir_md_include): Move to read-md.c.
2321         (process_include): Delete, moving code to read-md.c:handle_include.
2322         (process_rtx): Don't handle INCLUDE.
2323         (save_string): Delete.
2324         (rtx_handle_directive): New function.
2325         (init_md_reader_args_cb): Rename to...
2326         (init_rtx_reader_args_cb): ...this and return a boolean success value.
2327         Use read_md_args.
2328         (init_md_reader_args): Rename to...
2329         (init_rtx_reader_args): ...this and return a boolean success value.
2330         * rtl.def (INCLUDE): Delete.
2331         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
2332         argument.
2333         * read-rtl.c (read_conditions): Don't gobble ')' here.
2334         (read_mapping): Likewise.
2335         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
2336         Handle top-level non-rtx constructs here rather than in read_rtx_1.
2337         Store the whole queue in *X.  Remove call to init_md_reader.
2338         (read_rtx_1): Rename to...
2339         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
2340         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
2341         here.
2342         (read_nested_rtx): New function.  Handle (nil) here rather than
2343         in read_rtx_code.
2344         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
2345         gobble ')' here.
2346         * read-md.h (directive_handler_t): New type.
2347         (in_fname, include_callback): Moved from read-md.h.
2348         (read_constants, init_md_reader): Delete.
2349         (read_md_files): Declare.
2350         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
2351         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
2352         from gensupport.c.
2353         (read_constants): Rename to...
2354         (handle_constants): ...this.  Don't gobble ')' here.
2355         (handle_include, handle_file, handle_toplevel_file)
2356         (parse_include): New functions, mostly taken from gensupport.c.
2357         (init_md_reader): Subsume into...
2358         (read_md_files): ...this new function.
2360 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2362         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
2363         (unread_char): Decrement read_md_lineno after putting back '\n'.
2364         * read-md.c (fatal_with_file_and_line): Push back any characters
2365         that we decide not to add to the context.
2366         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
2367         fatal_expected_char in cases where '/' ends a line (for example).
2368         (read_name): Don't increment read_md_lineno here.
2369         (read_escape): Likewise.
2370         (read_quoted_string): Likewise.
2371         (read_braced_string): Likewise.
2373 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2375         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
2376         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
2377         * genconstants.c: Include read-md.h.
2378         * read-rtl.c (md_constants): Move to read-md.c.
2379         (md_name): Move to read-md.h.
2380         (initialize_iterators): Use leading_string_hash instead of def_hash
2381         and leading_string_eq_p instead of def_name_eq_p.
2382         (read_name): Move to read-md.c.
2383         (def_hash, def_name_eq_p): Delete.
2384         (read_constants, traverse_md_constants): Move to read-md.c.
2385         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
2386         * read-md.h: Include hashtab.h.
2387         (md_name): Moved from read-rtl.c.
2388         (md_constant): Moved from read-md.h.
2389         (leading_string_hash, leading_string_eq_p, read_name)
2390         (read_constants, traverse_md_constants): Declare.
2391         * read-md.c (md_constants): Moved from read-rtl.c.
2392         (leading_string_hash, leading_string_eq_p): New functions.
2393         (read_name, read_constants, traverse_md_constants): Moved from
2394         read-rtl.c.
2396 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2398         * read-rtl.c (md_name): New structure.
2399         (read_name): Take an md_name instead of a buffer pointer.
2400         Use the "string" field instead of strcpy when expanding constants.
2401         (read_constants): Remove the tmp_char argument.  Update the calls
2402         to read_name, using two local name buffers instead of the tmp_char
2403         argument.  Merge the constant-creation code.
2404         (read_conditions): Remove the tmp_char argument.  Update the calls
2405         to read_name, using a local name buffer instead of the tmp_char
2406         argument.
2407         (read_mapping): Replace tmp_char variable with a local name buffer.
2408         Update the calls to read_name.
2409         (read_rtx_1): Likewise.  Update the calls to read_constants and
2410         read_conditions.
2412 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2414         * Makefile.in (build/read-md.o): Depend on errors.h.
2415         * read-md.h (error_with_line): Declare.
2416         * read-md.c: Include errors.h.
2417         (message_with_line_1): New function, extracted from...
2418         (message_with_line): ...here.
2419         (error_with_line): New function.
2420         * genattrtab.c: If a call to message_with_line is followed by
2421         "have_error = 1;", replace both statements with a call to
2422         error_with_line.
2423         * genoutput.c: Likewise.
2424         * genpreds.c: Likewise.
2425         * genrecog.c: If a call to message_with_line is followed by
2426         "error_count++;", replace both statements with a call to
2427         error_with_line.
2428         (errorcount): Delete.
2429         (main): Don't check it.
2430         * gensupport.c: If a call to message_with_line is followed by
2431         "errors = 1;", replace both statements with a call to error_with_line.
2432         (errors): Delete.
2433         (process_define_cond_exec): Check have_error instead of errors.
2434         (init_md_reader_args_cb): Likewise.  Don't set errors.
2436 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2438         * read-md.h (read_md_file): Declare.
2439         (read_char, unread_char): New functions.
2440         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
2441         (read_quoted_string, read_string): Remove FILE * argument.
2442         * read-md.c (read_md_file): New variable.
2443         (read_md_filename, read_md_lineno): Update comments and remove
2444         unnecessary initialization.
2445         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
2446         (read_escape, read_quoted_string, read_braced_string, read_string):
2447         Remove FILE * argument.  Update calls accordingly, using read_char
2448         and unread_char instead of getc and ungetc.
2449         * rtl.h (read_rtx): Remove FILE * argument.
2450         * read-rtl.c (iterator_group): Remove FILE * argument from
2451         "find_builtin".
2452         (iterator_traverse_data): Remove "infile" field.
2453         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
2454         (add_mapping, read_name, read_constants, read_conditions)
2455         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
2456         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
2457         Remove file arguments from all calls, using read_char and unread_char
2458         instead of getc and ungetc.
2459         * gensupport.c (process_include): Preserve read_md_file around
2460         the include.  Set read_md_file to the handle of the included file.
2461         Update call to read_rtx.
2462         (init_md_reader_args_cb): Set read_md_file to the handle of the file
2463         and remove local FILE *.  Update calls to read_rtx.
2465 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2467         * read-md.h (read_rtx_lineno): Rename to...
2468         (read_md_lineno): ...this.
2469         (read_rtx_filename): Rename to...
2470         (read_md_filename): ...this.
2471         (copy_rtx_ptr_loc): Rename to...
2472         (copy_md_ptr_loc): ...this.
2473         (print_rtx_ptr_loc): Rename to...
2474         (print_md_ptr_loc): ...this.
2475         * read-md.c: Likewise.  Update references after renaming.
2476         (string_obstack): Replace RTL with MD in comment.
2477         (set_rtx_ptr_loc): Rename to...
2478         (set_md_ptr_loc): ...this.
2479         (get_rtx_ptr_loc): Rename to...
2480         (get_md_ptr_loc): ...this.
2481         * genconditions.c: Update references after renaming.
2482         * genemit.c: Likewise.
2483         * genoutput.c: Likewise.
2484         * genpreds.c: Likewise.
2485         * gensupport.c: Likewise.
2486         * read-rtl.c: Likewise.
2488 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2490         * Makefile.in (READ_MD_H): New variable.
2491         (BUILD_RTL): Add build/read-md.o.
2492         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
2493         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
2494         (build/genattrtab.o, build/genconditions.o build/genemit.o)
2495         (build/genextract.o, build/genflags.o, build/genoutput.o)
2496         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
2497         (build/read-md.o): New rule.
2498         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
2499         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
2500         * coretypes.h: ...here.
2501         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
2502         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
2503         * genattr.c: Include read-md.h.
2504         * genattrtab.c: Likewise.
2505         * genconditions.c: Likewise.
2506         * genemit.c: Likewise.
2507         * genextract.c: Likewise.
2508         * genflags.c: Likewise.
2509         * genoutput.c: Likewise.
2510         * genpreds.c: Likewise.
2511         * genrecog.c: Likewise.
2512         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2513         (join_c_conditions, print_c_condition, read_rtx_filename)
2514         (read_rtx_lineno): Move to read-md.h.
2515         * read-rtl.c: Include read-md.h.
2516         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
2517         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
2518         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
2519         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
2520         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2521         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
2522         (read_braced_string, read_string): Move to read-md.c.
2523         (read_rtx): Move some initialization to init_md_reader and call
2524         init_md_reader here.
2525         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
2526         Move to read-md.h.
2527         * gensupport.c: Include read-md.h.
2528         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
2529         * read-md.h, read-md.c: New files.
2531 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
2533         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2534         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2535         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
2536         * config/moxie/moxie.c (moxie_function_value): Make static.
2537         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
2538         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
2540 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2542         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
2543         * dbgcnt.def (tree_sra): New counter.
2544         * tree-sra.c: Include dbgcnt.h.
2545         (gate_intra_sra): Check tree_sra debug counter.
2547 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2549         PR tree-optimization/44258
2550         * tree-sra.c (build_access_subtree): Return false iff there is a
2551         partial overlap.
2552         (build_access_trees): Likewise.
2553         (analyze_all_variable_accesses): Disqualify candidates if
2554         build_access_trees returns true for them.
2556 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
2558         PR debug/41371
2559         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
2560         tail-recurse into canonical node.  Fast-forward over
2561         non-canonical VALUEs.
2563 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2565         PR boostrap/44470
2566         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
2567         (*addsi_1_zext) <TYPE_LEA>: Likewise.
2568         (add lea splitter): Likewise.
2569         (add_zext lea splitter): Likewise.
2571 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
2573         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
2575 2010-06-10  Jan Hubicka  <jh@suse.cz>
2577         * df-problems.c (df_live_problem_data): Add live_bitmaps.
2578         (df_live_alloc): Initialize problem data and live_osbtacks.
2579         (df_live_finalize): Remove obstack, problem data; do not
2580         clear all bitmaps.
2581         (df_live_top_dump, df_live_bottom_dump): Do not dump old
2582         data when not allocated.
2583         (df_live_verify_solution_start): Do not allocate problem data.
2584         (df_live_verify_solution_end): Check if out is allocated.
2585         (struct df_md_problem_data): New structure.
2586         (df_md_alloc): Allocate problem data.
2587         (df_md_free): Free problem data; do not clear bitmaps.
2589 2010-06-10  Jan Beulich  <jbeulich@novell.com>
2591         PR bootstrap/37304
2592         * configure.ac: Replace $() with ${} when intending to expand
2593         variables rather than invoking commands.
2594         * configure: Re-generate.
2596 2010-06-10  Jan Hubicka  <jh@suse.cz>
2598         PR rtl-optimization/44460
2599         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
2600         TYPE_NEEDS_CONSTRUCTING sanity check.
2602 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2604         * doc/include/fdl.texi: Move to GFDL version 1.3.
2606         * doc/cpp.texi: Move to GFDL version 1.3.
2607         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
2608         * doc/gccint.texi: Move to GFDL version 1.3.
2609         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
2610         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
2611         * doc/invoke.texi: Move to GFDL version 1.3.
2613 2010-06-09  Jan Hubicka  <jh@suse.cz>
2615         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
2616         Break out from ...
2617         (propagate) ... here; swap the order.
2619 2010-06-09  Jan Hubicka  <jh@suse.cz>
2621         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
2622         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
2623         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
2624         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
2626 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2628         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
2629         Do not the gather memory reference in the outer loop if the step
2630         is not a constant.
2632 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2634         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
2635         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
2636         8 to 4.  Minor change of the related comments.
2638 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2640         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
2641         the scev analysis when the variable is not used outside the loop
2642         in a close phi node: call compute_overall_effect_of_inner_loop.
2644 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2646         * graphite-sese-to-poly.c (single_pred_cond): Renamed
2647         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
2648         (build_sese_conditions_before): Renamed call to single_pred_cond.
2649         (build_sese_conditions_after): Same.
2651 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2653         * graphite-poly.h: Fix comments and indentation.
2654         * graphite-sese-to-poly.c: Same.
2655         (build_sese_conditions_before): Compute stmt and gbb only when needed.
2656         * tree-chrec.c: Fix comments and indentation.
2657         (tree-ssa-loop-niter.c): Same.
2659 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2661         PR rtl-optimization/42461
2662         * dce.c (deletable_insn_p): Return true for const or pure calls again.
2663         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
2665 2010-06-09  Jan Hubicka  <jh@suse.cz>
2667         * bitmap.c (bitmap_and): Walk array forward.
2668         (bitmap_and_compl_into): Likewise.
2669         (bitmap_xor): Likewise.
2670         (bitmap_xor_into):  Likewise.
2671         (bitmap_equal_p): Likewise.
2672         (bitmap_intersect_p): Likewise.
2673         (bitmap_intersect_compl_p): Likewise.
2674         (bitmap_ior_and_into): Likewise.
2675         (bitmap_elt_copy): Likewise.
2676         (bitmap_and_compl): Likewise.
2677         (bitmap_elt_ior): Likewise.
2679 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2681         * opts-common.c (prune_options): Ensure replacement argv array
2682         is correctly terminated by a NULL entry.
2684 2010-06-09  Jan Hubicka  <jh@suse.cz>
2686         * cgraph.h (varpool_first_static_initializer,
2687         varpool_next_static_initializer): Make checking only when
2688         checking enabled.
2689         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
2690         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
2691         gcc_assert to gcc_checking_assert.
2692         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
2693         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
2694         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
2695         op_iter_init_phiuse, op_iter_init_phidef,
2696         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
2697         gcc_checking_assert.
2698         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
2699         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
2700         partition_is_global, live_on_entry, live_on_exit,
2701         live_merge_and_clear): Likewise.
2702         * system.h (gcc_checking_assert): New macro.
2703         * gimple.h (set_bb_seq): Use gcc_checking_assert.
2705 2010-06-09  Jason Merrill  <jason@redhat.com>
2707         * Makefile.in (TAGS): Collect tags info from c-family.
2709 2010-06-09  Jan Hubicka  <jh@suse.cz>
2711         * gimple.h (gcc_gimple_checking_assert): New macro.
2712         (gimple_set_def_ops, gimple_set_use_ops,
2713         gimple_set_vuse, gimple_set_vdef,
2714         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
2715         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
2716         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
2717         gimple_asm_output_op, gimple_asm_output_op_ptr,
2718         gimple_asm_set_output_op, gimple_asm_clobber_op,
2719         gimple_asm_set_clobber_op, gimple_asm_label_op,
2720         gimple_asm_set_label_op, gimple_try_set_kind,
2721         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
2722         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
2723         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
2724         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
2725         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
2726         gimple_omp_for_set_initial, gimple_omp_for_final,
2727         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
2728         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
2729         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
2730         conditional with ENABLE_GIMPLE_CHECKING.
2731         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2733 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
2735         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
2736         (get_computation_cost_at): Use it.
2737         (determine_use_iv_cost_condition): Likewise.
2738         (determine_iv_cost): Likewise.
2740 2010-06-09  Richard Guenther  <rguenther@suse.de>
2742         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
2743         replace constants.
2745 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2747         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
2749 2010-06-09  Martin Jambor  <mjambor@suse.cz>
2751         PR tree-optimization/44423
2752         * tree-sra.c (dump_access): Dump also grp_assignment_read.
2753         (analyze_access_subtree): Pass negative allow_replacements to children
2754         if the current type is scalar.
2756 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2758         PR testsuite/42843
2759         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
2760         * doc/plugins.texi (Plugin license check): Update information
2761         on type of plugin_is_GPL_compatible.
2762         * Makefile.in (PLUGINCC): Define as $(COMPILER).
2763         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2765 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2767         * config/arm/arm.c (thumb2_reorg): New function.
2768         (arm_reorg): Call it.
2769         * config/arm/thumb2.md (define_peephole2 for flag clobbering
2770         arithmetic operations): Delete.
2772 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
2774         PR target/44067
2775         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
2776         e500v2 target.
2778 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2780         PR plugins/44459
2781         * gcc-plugin.h: Encapsulate all declarations in extern "C".
2783 2010-06-08  Jan Hubicka  <jh@suse.cz>
2785         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
2786         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
2788 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
2790         PR tree-optimization/39874
2791         PR middle-end/28685
2792         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
2793         Declare.
2794         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
2795         same_bool_result_p): New.
2796         (and_var_with_comparison, and_var_with_comparison_1,
2797         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
2798         (or_var_with_comparison, or_var_with_comparison_1,
2799         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
2800         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
2801         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
2802         of combine_comparisons.
2803         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
2805 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
2807         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2808         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2809         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
2810         pdp11_function_value_regno_p): New functions.
2811         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2812         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2814 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
2816         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
2817         Thumb-2 in the MINUS case.
2819 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2821         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
2823         * doc/gty.texi (GTY Options): Document typed GC allocation and
2824         variable_size GTY option.
2826         * ggc-internal.h: New.
2828         * ggc.h: Update copyright year.
2829         (digit_string): Move to stringpool.c.
2830         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
2831         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
2832         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
2833         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
2834         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
2835         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
2836         (ggc_force_collect, ggc_get_size, ggc_statistics)
2837         (ggc_print_common_statistics): Move to ggc-internal.h.
2838         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
2839         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
2840         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
2841         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
2842         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
2843         (ggc_alloc_zone_pass_stat): Remove.
2844         (ggc_internal_alloc_stat, ggc_internal_alloc)
2845         (ggc_internal_cleared_alloc_stat): New.
2846         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
2847         (ggc_internal_vec_alloc_stat)
2848         (ggc_internal_cleared_vec_alloc_stat)
2849         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
2850         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
2851         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
2852         (ggc_cleared_alloc_ptr_array_two_args): New.
2853         (htab_create_ggc, splay_tree_new_ggc): Redefine.
2854         (ggc_splay_alloc): Change the type of the first argument to
2855         enum gt_types_enum.
2856         (ggc_alloc_string): Make macro.
2857         (ggc_alloc_string_stat): New.
2858         (ggc_strdup): Redefine.
2859         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
2860         (ggc_alloc_rtvec_sized): New.
2861         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
2862         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
2863         (ggc_internal_cleared_alloc_zone_stat)
2864         (ggc_internal_zone_alloc_stat)
2865         (ggc_internal_zone_cleared_alloc_stat)
2866         (ggc_internal_zone_vec_alloc_stat)
2867         (ggc_alloc_zone_rtx_def_stat)
2868         (ggc_alloc_zone_tree_node_stat)
2869         (ggc_alloc_zone_cleared_tree_node_stat)
2870         (ggc_alloc_cleared_gimple_statement_d_stat): New.
2872         * ggc-common.c: Include ggc-internal.h.
2873         (ggc_internal_cleared_alloc_stat): Rename from
2874         ggc_alloc_cleared_stat.
2875         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
2876         (ggc_calloc): Remove.
2877         (ggc_cleared_alloc_htab_ignore_args): New.
2878         (ggc_cleared_alloc_ptr_array_two_args): New.
2879         (ggc_splay_alloc): Add obj_type parameter.
2880         (init_ggc_heuristics): Formatting fixes.
2882         * ggc-none.c: Update copyright year.
2883         (ggc_alloc_stat): Rename to ggc_alloc_stat.
2884         (ggc_alloc_cleared_stat): Rename to
2885         ggc_internal_cleared_alloc_stat.
2886         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2888         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
2889         Remove references to ggc_alloc in comments.
2890         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
2891         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
2892         (new_ggc_zone, destroy_ggc_zone): Remove.
2893         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2895         * ggc-zone.c: Include ggc-internal.h.  Remove references to
2896         ggc_alloc in comments.
2897         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
2898         (ggc_internal_alloc_zone_pass_stat): New.
2899         (ggc_internal_cleared_alloc_zone_stat): New.
2900         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
2901         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
2902         (new_ggc_zone, destroy_ggc_zone): Remove.
2904         * stringpool.c: Update copyright year.  Include ggc-internal.h
2905         (digit_vector): Make static.
2906         (digit_string): Moved from ggc.h.
2907         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
2908         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
2910         * Makefile.in (GGC_INTERNAL_H): New.
2911         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
2912         $(GGC_INTERNAL_H) to dependencies.
2914         * gentype.c: Update copyright year.
2915         (walk_type): Accept variable_size GTY option.
2916         (USED_BY_TYPED_GC_P): New macro.
2917         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
2918         whitespace at the end of strings.
2919         (get_type_specifier, variable_size_p): New functions.
2920         (alloc_quantity, alloc_zone): New enums.
2921         (write_typed_alloc_def): New function.
2922         (write_typed_struct_alloc_def): Likewise.
2923         (write_typed_typed_typedef_alloc_def): Likewise.
2924         (write_typed_alloc_defns): Likewise.
2925         (output_typename, write_splay_tree_allocator_def): Likewise.
2926         (write_splay_tree_allocators): Likewise.
2927         (main): Call write_typed_alloc_defns and
2928         write_splay_tree_allocators.
2930         * lto-streamer.h (lto_file_decl_data_ptr): New.
2932         * passes.c (order): Define using cgraph_node_ptr.
2934         * strinpool.c (struct string_pool_data): Declare nested_ptr using
2935         ht_identifier_ptr.
2937         * gimple.h (union gimple_statement_d): Likewise.
2939         * rtl.h (struct rtx_def): Likewise.
2940         (struct rtvec_def): Likewise.
2942         * tree.h (union tree_node): Likewise.
2944         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
2946         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
2948         * tree-scalar-evolution.c (scev_initialize): Likewise.
2950         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
2952         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2954         * omp-low.c (lower_omp_critical): Likewise.
2956         * bitmap.h (struct bitmap_head_def): Update comment to not
2957         reference ggc_alloc.
2959         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
2961         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
2963         * ipa-prop.c (duplicate_ggc_array): Rename to
2964         duplicate_ipa_jump_func_array.  Use typed GC allocation.
2965         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
2967         * gimple.c (gimple_alloc_stat): Use
2968         ggc_alloc_cleared_gimple_statement_d_stat.
2970         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
2972         * tree.c (make_node_stat): Use
2973         ggc_alloc_zone_cleared_tree_node_stat.
2974         (make_tree_vec_stat): Likewise.
2975         (build_vl_exp_stat): Likewise.
2976         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
2977         (make_tree_binfo_stat): Likewise.
2978         (tree_cons_stat): Likewise.
2980         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
2981         (shallow_copy_rtx_stat): Likewise.
2982         (make_node_stat): Likewise.
2984         * lto-symtab.c: Fix comment.
2986         * tree-cfg.c (create_bb): Update comment to not reference
2987         ggc_alloc_cleared.
2988         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
2990         * varpool.c (varpool_node): Use typed GC allocation.
2991         (varpool_extra_name_alias): Likewise.
2993         * varasm.c (emutls_decl): Likewise.
2994         (get_unnamed_section): Likewise.
2995         (get_noswitch_section): Likewise.
2996         (get_section): Likewise.
2997         (get_block_for_section): Likewise.
2998         (build_constant_desc): Likewise.
2999         (create_constant_pool): Likewise.
3000         (force_const_mem): Likewise.
3002         * tree.c (build_vl_exp_stat): Likewise.
3003         (build_real): Likewise.
3004         (build_string): Likewise.
3005         (decl_debug_expr_insert): Likewise.
3006         (decl_value_expr_insert): Likewise.
3007         (type_hash_add): Likewise.
3008         (build_omp_clause): Likewise.
3010         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
3012         * tree-ssa.c (init_tree_ssa): Likewise.
3014         * tree-ssa-structalias.c (heapvar_insert): Likewise.
3016         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
3018         * tree-ssa-loop-niter.c (record_estimate): Likewise.
3020         * tree-ssa-alias.c (get_ptr_info): Likewise.
3022         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
3024         * tree-phinodes.c (allocate_phi_node): Likewise.
3026         * tree-iterator.c (tsi_link_before): Likewise.
3027         (tsi_link_after): Likewise.
3029         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
3031         * tree-dfa.c (create_var_ann): Likewise.
3033         * tree-cfg.c (create_bb): Likewise.
3035         * toplev.c (alloc_for_identifier_to_locale): Likewise.
3036         (general_init): Likewise.
3038         * stringpool.c (stringpool_ggc_alloc): Likewise.
3039         (gt_pch_save_stringpool): Likewise.
3041         * sese.c (if_region_set_false_region): Likewise.
3043         * passes.c (do_per_function_toporder): Likewise.
3045         * optabs.c (set_optab_libfunc): Likewise.
3046         (set_conv_libfunc): Likewise.
3048         * lto-symtab.c (lto_symtab_register_decl): Likewise.
3050         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
3051         (input_eh_region): Likewise.
3052         (input_eh_lp): Likewise.
3053         (make_new_block): Likewise.
3054         (unpack_ts_real_cst_value_fields): Likewise.
3056         * lto-section-in.c (lto_new_in_decl_state): Likewise.
3058         * lto-cgraph.c (input_node_opt_summary): Likewise.
3060         * loop-init.c (loop_optimizer_init): Likewise.
3062         * lambda.h (lambda_vector_new): Likewise.
3064         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
3066         * ira.c (update_equiv_regs): Likewise.
3068         * ipa.c (cgraph_node_set_new): Likewise.
3069         (cgraph_node_set_add): Likewise.
3070         (varpool_node_set_new): Likewise.
3071         (varpool_node_set_add): Likewise.
3073         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
3074         (duplicate_ipa_jump_func_array): Likewise.
3075         (ipa_read_node_info): Likewise.
3077         * ipa-cp.c (ipcp_create_replace_map): Likewise.
3079         * integrate.c (get_hard_reg_initial_val): Likewise.
3081         * gimple.c (gimple_alloc_stat): Likewise.
3082         (gimple_build_omp_for): Likewise.
3083         (gimple_seq_alloc): Likewise.
3084         (gimple_copy): Likewise.
3086         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
3087         (gsi_insert_after_without_update): Likewise.
3089         * function.c (add_frame_space): Likewise.
3090         (insert_temp_slot_address): Likewise.
3091         (assign_stack_temp_for_type): Likewise.
3092         (allocate_struct_function): Likewise.
3093         (types_used_by_var_decl_insert): Likewise.
3095         * except.c (init_eh_for_function): Likewise.
3096         (gen_eh_region): Likewise.
3097         (gen_eh_region_catch): Likewise.
3098         (gen_eh_landing_pad): Likewise.
3099         (add_call_site): Likewise.
3101         * emit-rtl.c (get_mem_attrs): Likewise.
3102         (get_reg_attrs): Likewise.
3103         (start_sequence): Likewise.
3104         (init_emit): Likewise.
3106         * dwarf2out.c (new_cfi): Likewise.
3107         (queue_reg_save): Likewise.
3108         (dwarf2out_frame_init): Likewise.
3109         (new_loc_descr): Likewise.
3110         (find_AT_string): Likewise.
3111         (new_die): Likewise.
3112         (add_var_loc_to_decl): Likewise.
3113         (clone_die): Likewise.
3114         (clone_as_declaration): Likewise.
3115         (break_out_comdat_types): Likewise.
3116         (new_loc_list): Likewise.
3117         (loc_descriptor): Likewise.
3118         (add_loc_descr_to_each): Likewise.
3119         (add_const_value_attribute): Likewise.
3120         (tree_add_const_value_attribute): Likewise.
3121         (add_comp_dir_attribute): Likewise.
3122         (add_name_and_src_coords_attributes): Likewise.
3123         (lookup_filename): Likewise.
3124         (store_vcall_insn): Likewise.
3125         (dwarf2out_init): Likewise.
3127         * dbxout.c (dbxout_init): Likewise.
3129         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
3131         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
3133         * config/score/score7.c (score7_output_external): Likewise.
3135         * config/score/score3.c (score3_output_external): Likewise.
3137         * config/s390/s390.c (s390_init_machine_status): Likewise.
3139         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
3140         (rs6000_init_machine_status): Likewise.
3141         (output_toc): Likewise.
3143         * config/pa/pa.c (pa_init_machine_status): Likewise.
3144         (get_deferred_plabel): Likewise.
3146         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
3148         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
3150         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
3152         * config/mep/mep.c (mep_init_machine_status): Likewise.
3153         (mep_note_pragma_flag): Likewise.
3155         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
3157         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
3159         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
3161         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
3162         (i386_pe_maybe_record_exported_symbol): Likewise.
3164         * config/i386/i386.c (get_dllimport_decl): Likewise.
3165         (ix86_init_machine_status): Likewise.
3166         (assign_386_stack_local): Likewise.
3168         * config/frv/frv.c (frv_init_machine_status): Likewise.
3170         * config/darwin.c (machopic_indirection_name): Likewise.
3172         * config/cris/cris.c (cris_init_machine_status): Likewise.
3174         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
3176         * config/avr/avr.c (avr_init_machine_status): Likewise.
3178         * config/arm/arm.c (arm_init_machine_status): Likewise.
3180         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
3181         (alpha_need_linkage): Likewise.
3182         (alpha_use_linkage): Likewise.
3184         * cgraph.c (cgraph_allocate_node): Likewise.
3185         (cgraph_create_edge_1): Likewise.
3186         (cgraph_create_indirect_edge): Likewise.
3187         (cgraph_add_asm_node): Likewise.
3189         * cfgrtl.c (init_rtl_bb_info): Likewise.
3191         * cfgloop.c (alloc_loop): Likewise.
3192         (rescan_loop_exit): Likewise.
3194         * cfg.c (init_flow): Likewise.
3195         (alloc_block): Likewise.
3196         (unchecked_make_edge): Likewise.
3198         * c-parser.c (c_parse_init): Likewise.
3199         (c_parse_file): Likewise.
3201         * c-decl.c (bind): Likewise.
3202         (record_inline_static): Likewise.
3203         (push_scope): Likewise.
3204         (make_label): Likewise.
3205         (lookup_label_for_goto): Likewise.
3206         (finish_struct): Likewise.
3207         (finish_enum): Likewise.
3208         (c_push_function_context): Likewise.
3210         * bitmap.c (bitmap_element_allocate): Likewise.
3211         (bitmap_gc_alloc_stat): Likewise.
3213         * alias.c (record_alias_subset): Likewise.
3214         (init_alias_analysis): Likewise.
3216 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
3218         * fold-const.c (fold_comparison): Remove redundant parenthesis.
3219         * tree-inline.c (expand_call_inline): Pass translated return value of
3220         cgraph_inline_failed_string to diagnostic function.
3222 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
3223             Shujing Zhao  <pearly.zhao@oracle.com>
3225         PR c/37724
3226         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
3227         implicit bad conversions is initialization.
3228         (error_init): Use gmsgid instead of msgid for argument name and change
3229         the call for error.
3230         (pedwarn_init): Use gmsgid instead of msgid for argument name and
3231         change the call for pedwarn.
3232         (warning_init): Use gmsgid instead of msgid for argument name and
3233         change the call for warning.
3235 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
3237         * config/mips/mips-protos.h (mips_print_operand): Delete.
3238         (mips_print_operand_address): Delete.
3239         * config/mips/mips.h (mips_print_operand_punct): Delete.
3240         (PRINT_OPERAND): Delete.
3241         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3242         (PRINT_OPERAND_ADDRESS): Delete.
3243         * config/mips/mips.c (mips_print_operand_punct): Make static.
3244         (mips_print_operand_address): Make static.
3245         (mips_print_operand): Make static.  Call
3246         mips_print_operand_punct_valid_p.
3247         (mips_print_operand_punct_valid_p): New function.
3248         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3249         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3251 2010-06-07  Jan Hubicka  <jh@suse.cz>
3253         PR middle-end/44454
3254         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
3255         are allocated.
3257 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
3259         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
3260         name of RECORD.
3262 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3264         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3265         attributes): Document gas.
3267 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
3269         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
3270         <TYPE_LEA>: Split instruction.
3271         <default>: Remove alternative 2 handling.
3272         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
3273         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
3274         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
3276         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
3277         (ashift_zext lea splitter): Use DImode for multiplication.
3279         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
3280         to generate addition.
3282 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
3284         * common.opt (fira-verbose): Use Var.
3285         (fpcc-struct-return): Use Init instead of VarExists.
3286         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
3287         toplev.c.
3288         * flags.h (flag_signed_char, flag_short_enums,
3289         flag_pcc_struct_return, flag_ira_verbose,
3290         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
3291         * toplev.c (flag_detailed_statistics, flag_signed_char,
3292         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
3293         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
3294         * toplev.h (flag_crossjumping, flag_if_conversion,
3295         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
3296         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
3297         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
3298         flag_cprop_registers, time_report, flag_ira_loop_pressure,
3299         flag_ira_coalesce, flag_ira_move_spills,
3300         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
3302 2010-06-07  Jan Hubicka  <jh@suse.cz>
3304         * df-core.c (df_analyze_problem): Do verification after allocation.
3306         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
3307         (df_lr_alloc): Initialize problem data; move bitmaps to
3308         lr_bitmaps obstack.
3309         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
3310         (df_lr_verify_solution_start): Do not initialize problem data;
3311         allocate bitmaps in lr_bitmaps.
3312         (df_lr_verify_solution_end): Do not free problem data.
3314 2010-06-07  Jan Hubicka  <jh@suse.cz>
3316         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
3317         if caller is noreturn.
3318         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
3319         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
3320         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
3321         * ipa-pure-const.c (check_decl): Add IPA parameter.
3322         (state_from_flags): New function.
3323         (better_state, worse_state): New functions.
3324         (check_call): When in IPA mode, do not care about callees.
3325         (check_load, check_store): Update.
3326         (check_ipa_load, check_ipa_store): New.
3327         (check_stmt): When in IPA mode, use IPA checkers.
3328         (analyze_function): Use state_from_flags.
3329         (propagate): Check indirect edges and references.
3331 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
3333         PR rtl-optimization/44404
3334         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
3335         of count_occurrences to see if it's safe to modify mem_insn.
3337 2010-06-07  Richard Guenther  <rguenther@suse.de>
3339         * gimplify.c (gimplify_cleanup_point_expr): For empty body
3340         and EH-only cleanup drop the cleanup instead of inserting it
3341         unconditionally.
3343 2010-06-07  Ira Rosen  <irar@il.ibm.com>
3345         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
3346         documentation.
3347         * targhooks.c (default_builtin_vectorization_cost): New function.
3348         * targhooks.h (default_builtin_vectorization_cost): Declare.
3349         * target.h (enum vect_cost_for_stmt): Define.
3350         (builtin_vectorization_cost): Change argument and comment.
3351         * tree-vectorizer.h: Remove cost model macros.
3352         * tree-vect-loop.c: Include target.h.
3353         (vect_get_cost): New function.
3354         (vect_estimate_min_profitable_iters): Replace cost model macros with
3355         calls to vect_get_cost.
3356         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
3357         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
3358         default implementation.
3359         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
3360         calls to target hook builtin_vectorization_cost.
3361         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
3362         Likewise.
3363         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
3364         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
3365         implementation to return costs.
3366         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
3367         * config/spu/spu.h: Remove vectorizer cost model macros.
3368         * config/i386/i386.h: Likewise.
3369         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
3370         a call to target hook builtin_vectorization_cost.
3372 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
3374         PR target/44319
3375         * config/i386/i386.c (override_options): Turn zee pass on for level 2
3376         and above and defer till target is known.
3377         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
3378         turn off otherwise.
3380 2010-05-25  Jan Hubicka  <jh@suse.cz>
3382         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
3383         (df_compact_blocks): Likewise.
3384         * df.h (struct df): Turn hardware_regs_used,
3385         regular_block_artificial_uses, eh_block_artificial_uses,
3386         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
3387         bitmap_head.
3388         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
3389         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
3390         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
3391         df_scan_blocks, df_insn_delete, df_insn_rescan,
3392         df_insn_rescan_debug_internal, df_insn_rescan_all,
3393         df_process_deferred_rescans, df_process_deferred_rescans,
3394         df_notes_rescan, df_get_call_refs, df_get_call_refs,
3395         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
3396         df_record_entry_block_defs, df_record_exit_block_uses,
3397         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
3398         df_scan_verify): Update.
3400 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
3402         PR c++/44188
3403         * c-common.c (is_typedef_decl): Move this definition ...
3404         * tree.c (is_typedef_decl): ... here.
3405         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3406         * c-common.h (is_typedef_decl): Move this declaration ...
3407         * tree.h (is_typedef_decl): ... here.
3408         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3409         * dwarf2out.c (is_naming_typedef_decl): New function.
3410         (gen_tagged_type_die): Split out of ...
3411         (gen_type_die_with_usage): ... this function. When an anonymous
3412         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3413         is emitted for the typedef.
3414         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3415         anonymous tagged types.
3417 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3419         PR c/20000
3420         * c-decl.c (grokdeclarator): Delete warning.
3422 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3424         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
3425         newly built CALL_EXPR.
3426         * tree-profile.c (tree_profiling): Don't profile functions produced
3427         for built-in stuff.
3429 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
3431         PR bootstrap/44427
3432         PR bootstrap/44428
3433         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
3434         endianness-independent.
3436 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
3438         * c-common.c: Move to c-family/.
3439         * c-common.def: Likewise.
3440         * c-common.h: Likewise.
3441         * c-cppbuiltin.c: Likewise.
3442         * c-dump.c: Likewise.
3443         * c-format.c: Likewise.
3444         * c-format.h : Likewise.
3445         * c-gimplify.c: Likewise.
3446         * c-lex.c: Likewise.
3447         * c-omp.c: Likewise.
3448         * c.opt: Likewise.
3449         * c-opts.c: Likewise.
3450         * c-pch.c: Likewise.
3451         * c-ppoutput.c: Likewise.
3452         * c-pragma.c: Likewise.
3453         * c-pragma.h: Likewise.
3454         * c-pretty-print.c: Likewise.
3455         * c-pretty-print.h: Likewise.
3456         * c-semantics.c: Likewise.
3457         * stub-objc.c: Likewise.
3459         * gengtype.c (get_file_langdir): Special-case files in c-family/.
3460         (get_output_file_with_visibility): Fix name for c-common.h.
3461         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
3463         * c-tree.h: Update include path for moved files.
3464         * c-lang.c: Likewise.
3465         * c-lang.h: Likewise.
3466         * c-parser.c: Likewise.
3467         * c-convert.c: Likewise.
3468         * c-decl.c: Likewise.
3469         * c-objc-common.c: Likewise.
3470         * configure.ac: Make sure c-family/ exists in the build directory.
3471         * configure: Regenerate.
3472         * Makefile.in: Update paths for moved files.  Regroup files per
3473         location and update dependencies.  Move generated_files down after
3474         ALL_GTFILES_H.
3476         * config/spu/spu-c.c: Update paths for moved files.
3477         * config/mep/mep-pragma.c: Likewise.
3478         * config/darwin-c.c: Likewise.
3479         * config/i386/msformat-c.c: Likewise.
3480         * config/i386/i386-c.c: Likewise.
3481         * config/avr/avr-c.c: Likewise.
3482         * config/sol2-c.c: Likewise.
3483         * config/ia64/ia64-c.c: Likewise.
3484         * config/rs6000/rs6000-c.c: Likewise.
3485         * config/arm/arm.c: Likewise.
3486         * config/arm/arm-c.c: Likewise.
3487         * config/h8300/h8300.c: Likewise.
3488         * config/v850/v850-c.c: Likewise.
3490         * config/t-darwin: Fix dependencies for moved files.
3491         * config/t-sol2: Fix dependencies for moved files.
3492         * config/mep/t-mep: Fix dependencies for moved files.
3493         * config/ia64/t-ia64: Fix dependencies for moved files.
3494         * config/rs6000/t-rs6000: Fix dependencies for moved files.
3495         * config/v850/t-v850: Fix dependencies for moved files.
3496         * config/v850/t-v850e: Fix dependencies for moved files.
3498         * config/m32c/m32c-pragma.c
3500         * po/exgettext: Look in c-family/ also.
3502 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
3504         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
3505         (mark_control_dependent_edges_necessary): Call it instead of marking
3506         the last statement manually.
3507         (propagate_necessity): Likewise.
3509 2010-06-05  Jan Hubicka  <jh@suse.cz>
3511         * basic-block.h (compute_dominance_frontiers): Updated.
3512         (compute_idf): Likewise.
3514         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
3515         for dominance frontiers.
3516         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
3517         (insert_updated_phi_nodes_for): Likewise.
3518         (update_ssa): Likewise.
3519         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3520         (compute_dominance_frontiers): Likewise.
3521         (compute_idf): Likewise.
3522         * df-problems.c (df_md_local_compute): Likewise.
3524 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
3526         * target.h (struct gcc_target): Add memory_move_cost field.
3527         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
3528         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
3529         * targhooks.c (default_memory_move_cost): New function.
3530         * targhooks.h (default_memory_move_cost): Declare function.
3531         * reload.h (memory_move_cost): Declare.
3532         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3533         * reginfo.c (memory_move_cost): New function.
3534         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3535         * ira.h (ira_memory_move_cost): Update comment.
3536         * ira.c: (ira_memory_move_cost): Update comment.
3537         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
3538         with memory_move_cost.
3539         * postreload.c (reload_cse_simplify_set): (Ditto.).
3540         * reload1.c (choose_reload_regs): (Ditto.).
3541         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
3542         (MEMORY_MOVE_COST):  Revise documentation.
3544         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
3545         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
3546         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
3547         type of 'in' argument to bool.
3548         (TARGET_MEMORY_MOVE_COST): Define.
3550 2010-06-05  Jan Hubicka  <jh@suse.cz>
3552         * ipa-pure-const.c (propagate): Fix typo in handling of functions
3553         that cannot return.  Be more careful when merging the results with
3554         previously known ones.
3556 2010-06-05  Matthias Klose  <doko@ubuntu.com>
3558         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
3559         function to add the -iplugindir option.
3560         (find_plugindir_spec_function): Add new declaration and function.
3561         (static_spec_func): Use it for "find-plugindir".
3563 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
3565         PR c++/44361
3566         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
3567         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
3568         statement expression.
3570 2010-06-05  Jan Hubicka  <jh@suse.cz>
3572         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
3573         (df_rd_problem_data): Convert sparse_invalidated_by_call,
3574         dense_invalidated_by_call to bitmap head.
3575         (df_rd_alloc, df_rd_bb_local_compute_process_def,
3576         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
3577         df_rd_start_dump, df_lr_verify_transfer_functions,
3578         df_live_verify_transfer_functions, df_chain_create_bb,
3579         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
3580         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
3581         df_simulate_one_insn_forwards, df_md_alloc,
3582         df_md_bb_local_compute_process_def,
3583         df_md_bb_local_compute_process_def, df_md_local_compute,
3584         df_md_transfer_function df_md_free): Update.
3586 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
3588         PR c/44322
3589         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
3590         target type for ADDR_EXPR; require no changes to qualifiers except
3591         for function types.
3592         * c-tree.h (c_build_type_variant): Remove.
3594 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3596         * genautomata.c (get_excl_set): Do work per element, not per char.
3597         (check_presence_pattern_sets): Similar.
3598         (check_absence_pattern_sets): Similar.
3600 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3602         * genautomata.c (curr_state_pass_num): Delete.
3603         (min_issue_delay_pass_states): Delete.
3604         (min_issue_delay): Delete.
3605         (initiate_min_issue_delay_pass_states): Delete.
3606         (output_min_issue_delay_table): Compute min_issue_delay_vect
3607         using a breadth-first search variant.
3608         (output_tables): Don't call initiate_min_issue_delay_pass_states.
3610 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
3612         PR boostrap/44421
3613         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
3614         (df_byte_lr_bb_local_compute): Likewise.
3616 2010-06-03  Jason Merrill  <jason@redhat.com>
3618         Implement noexcept operator (5.3.7)
3619         * c-common.c (c_common_reswords): Add noexcept.
3620         * c-common.h (enum rid): Add RID_NOEXCEPT.
3622 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3624         * config/darwin-driver.c (darwin_default_min_version): Use
3625         GCC-specific formats in diagnostics.
3626         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
3627         diagnostics.
3628         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
3629         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
3630         eval_spec_function, handle_braces, process_brace_body, main,
3631         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
3632         getenv_spec_function, compare_version_strings,
3633         version_compare_spec_function): Use GCC-specific formats in
3634         diagnostics.
3636 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3638         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
3639         that operand 0 and operand 1 are equal.
3640         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
3641         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
3642         and operand 1 are equal.
3643         <default>: Ditto.  Remove ??? comment.
3644         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
3645         and operand 1 are equal.
3646         <default>: Ditto.  Remove ??? comment.
3647         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
3648         are equal.
3649         (*add<mode>_4) <default>: Ditto.
3650         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
3652 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
3654         * config/i386/i386-protos.h (ix86_print_operand): Declare.
3655         * config/i386/i386.c (ix86_print_operand): Make non-static.
3656         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
3657         * output.h (output_operand): Declare.
3658         * final.c (output_operand): Make non-static.
3660 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
3662         PR rtl-optimization/44013
3663         * sched-deps.c (add_dependence_list_and_free): Don't free lists
3664         when processing debug insns.
3666         PR debug/41371
3667         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
3668         recursing.  Check that recursion is bounded.  Rename inner var
3669         to avoid hiding incoming argument.
3671 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3673         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
3674         operands[2] == 255.
3675         (*addqi_3): Ditto.
3676         (*addqi_4): Ditto.
3677         (*addqi_5): Ditto.
3678         (*addqi_ext_1_rex64): Ditto.
3679         (*addqi_ext_1): Ditto.
3681         (*addqi_4): Check for incdec_operand in QImode.
3683         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
3684         using SWI mode iterator.
3685         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
3686         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
3687         mode iterator.
3688         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
3689         using SWI mode iterator.
3691 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3693         PR c/25880
3694         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
3695         * c-format.c (gcc_diag_flag_specs): Add hash.
3696         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
3697         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
3698         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
3699         pp_c_cv_qualifiers. Handle qualifiers spelling here.
3700         (pp_c_type_qualifier_list): Call the function above.
3701         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
3702         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
3703         (WARN_FOR_QUALIFIERS): New macro.
3704         (convert_for_assignment): Use it.
3706 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
3708         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
3710 2010-06-04  Jan Hubicka  <jh@suse.cz>
3712         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
3713         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
3714         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
3715         DF_BYTE_LR_OUT): Update for embedded bitmaps.
3716         * fwprop.c (single_def_use_enter_block): Likewise.
3717         * ddg.c (create_ddg_dep_from_intra_loop_link,
3718         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
3719         * loop-iv.c (latch_dominating_def): Likewise.
3720         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
3721         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
3722         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
3723         df_rd_transfer_function, df_rd_top_dump,
3724         df_rd_bottom_dump): Update.
3725         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
3726         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
3727         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
3728         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
3729         df_lr_verify_solution_start, df_lr_verify_solution_end,
3730         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
3731         df_live_free_bb_info, df_live_alloc, df_live_reset,
3732         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
3733         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
3734         df_live_verify_solution_start, df_live_verify_solution_end,
3735         df_live_verify_transfer_functions, df_chain_create_bb,
3736         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
3737         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3738         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3739         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
3740         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
3741         df_byte_lr_transfer_function, df_byte_lr_top_dump,
3742         df_byte_lr_bottom_dump, df_create_unused_note,
3743         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
3744         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
3745         df_md_transfer_function, df_md_init, df_md_confluence_0,
3746         df_md_confluence_n,
3747         df_md_top_dump, df_md_bottom_dump): Update.
3748         (struct df_lr_problem_data): Embedd bitmap headers.
3750 2010-06-04  Jan Hubicka  <jh@suse.cz>
3752         * dce.c (dce_process_block): Do not re-scan already marked
3753         instructions.
3755 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
3757         PR rtl-optimization/39871
3758         PR rtl-optimization/40615
3759         PR rtl-optimization/42500
3760         PR rtl-optimization/42502
3761         * ira.c (init_reg_equiv_memory_loc: New function.
3762         (ira): Call it twice.
3763         * reload.h (calculate_elim_costs_all_insns): Declare.
3764         * ira-costs.c: Include "reload.h".
3765         (regno_equiv_gains): New static variable.
3766         (init_costs): Allocate it.
3767         (finish_costs): Free it.
3768         (ira_costs): Call calculate_elim_costs_all_insns.
3769         (find_costs_and_classes): Take estimated elimination costs
3770         into account.
3771         (ira_adjust_equiv_reg_cost): New function.
3772         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
3773         * reload1.c (init_eliminable_invariants, free_reg_equiv,
3774         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
3775         (elim_bb): New static variable.
3776         (reload): Move code out of here into init_eliminable_invariants and
3777         free_reg_equiv.  Call them.
3778         (calculate_elim_costs_all_insns): New function.
3779         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
3780         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
3781         but call note_reg_elim_costly if we turned a valid memory address
3782         into an invalid one.
3783         * Makefile.in (ira-costs.o): Depend on reload.h.
3785 2010-06-04  Julian Brown  <julian@codesourcery.com>
3787         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
3788         for pool ranges.
3790 2010-06-04  Richard Guenther  <rguenther@suse.de>
3792         PR lto/41584
3793         * cgraph.h (struct varpool_node): Add lto_file_data field.
3794         * lto-cgraph.c (input_varpool_node): Initialize it.
3796 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3798         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
3799         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
3800         predicate in "type" attribute calculation.
3801         (*addsi_1_zext): Ditto.
3802         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
3803         (*addsi_2_zext): Ditto.
3804         (*add<mode>_3): Ditto.
3805         (*addsi_3_zext): Ditto.
3806         (*add<mode>_5): Ditto.
3808 2010-06-03  Jan Hubicka  <jh@suse.cz>
3810         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
3811         of bitmap_bit_p.
3812         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3814 2010-06-03  Jan Hubicka  <jh@suse.cz>
3816         * df-problems.c (df_create_unused_note, df_note_bb_compute):
3817         micro-optimize the checks when to add new note.
3819 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
3821         * final.c (output_asm_insn): Call
3822         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
3823         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
3824         (output_address): Call targetm.asm_out.print_operand_address.
3825         Update comments.
3826         * target.h (struct gcc_target): Add print_operand,
3827         print_operand_address, and print_operand_punct_valid_p fields.
3828         * targhooks.h (default_print_operand): Declare.
3829         (default_print_operand_address): Declare.
3830         (default_print_operand_punct_valid_p): Declare.
3831         * targhooks.c (default_print_operand): Define.
3832         (default_print_operand_address): Define.
3833         (default_print_operand_punct_valid_p): Define.
3834         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
3835         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
3836         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3837         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
3838         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
3839         * vmsdbgout.c (addr_const_to_string): Update comment.
3840         * config/i386/i386.c (print_operand): Rename to...
3841         (ix86_print_operand): ...this.  Make static.
3842         (print_operand_address): Rename to...
3843         (ix86_print_operand_address): ...this.  Make static.  Call
3844         ix86_print_operand instead of PRINT_OPERAND.
3845         (ix86_print_operand_punct_valid_p): New function.
3846         (TARGET_PRINT_OPERAND): Define.
3847         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3848         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3849         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
3850         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3851         (PRINT_OPERAND): Delete.
3852         (PRINT_OPERAND_ADDRESS): Delete.
3853         * config/i386/i386-protos.h (print_operand): Delete prototype.
3854         (print_operand_address): Delete prototype.
3856 2010-06-03  Richard Guenther  <rguenther@suse.de>
3858         PR tree-optimization/44403
3859         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3860         Preserve pointer qualifiers.
3861         (vect_create_data_ref_ptr): Likewise.
3863 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3865         PR c++/44294
3866         * defaults.h (MAX_FIXED_MODE_SIZE): New.
3868         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
3870 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
3872         PR debug/44375
3873         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
3874         return false if merging the bbs would lead to goto_locus
3875         location being lost from the IL.
3877 2010-06-03  Jan Hubicka  <jh@suse.cz>
3878             Jakub Jelinek  <jakub@redhat.com>
3880         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
3881         set->regs[i] is NULL or has just one entry.
3883 2010-06-03  Jan Hubicka  <jh@suse.cz>
3885         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
3886         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
3888 2010-06-03  Paul Brook  <paul@codesourcery.com>
3890         * config/arm/arm.c (FL_TUNE): Define.
3891         (arm_default_cpu, arm_cpu_select): Remove.
3892         (all_cores): Populate core field.
3893         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
3894         (arm_find_cpu): New function.
3895         (arm_handle_option): Lookup cpu/architecture names.
3896         (arm_override_options): Cleanup mcpu/march/mtune handling.
3897         (arm_file_start): Ditto.
3899 2010-06-03  Alan Modra  <amodra@gmail.com>
3901         PR target/44169
3902         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
3903         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
3904         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
3905         (rs6000_emit_load_toc_table): Likewise.
3907 2010-06-02  Jan Hubicka  <jh@suse.cz>
3909         * passes.c (init_optimization_passes): Put ipa reference
3910         after ipa pure-const.
3912 2010-06-02  Jan Hubicka  <jh@suse.cz>
3914         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
3915         calls_read_all and calls_write_all.
3916         (get_reference_optimization_summary): Fix formatting.
3917         (is_proper_for_analysis): Check that decl is not readonly.
3918         (propagate_bits): Check CONST/PURE/noreturn flags.
3919         (ipa_init): Move all_module_statics to optimization_summary_obstack.
3920         (analyze_function): Ignore indirect edges.
3921         (copy_global_bitmap): For all module statics, do nothing.
3922         (generate_summary): Do not print calls_read_all/calls_write_all.
3923         (read_write_all_from_decl): Take node as argument; check
3924         cgraph_node_cannot_return.
3925         (propagate): Reorganize read_all/write_all computation;
3926         check indirect edges; check ecf flags; use all_module_statics
3927         in the results; do not free all_module_statics.
3928         (stream_out_bitmap): Handle all_module_statics.
3929         (ipa_reference_write_optimization_summary): Likewise; use
3930         varpool/cgraph encoders to get boundaries.
3931         (ipa_reference_read_optimization_summary): Read in all_module_statics;
3932         use it when possible.
3934 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3936         PR target/44218
3937         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
3938         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
3940         * doc/extend.texi (powerpc builtins): Document vec_recip,
3941         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
3943         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
3944         (rs6000_emit_swrsqrt): Ditto.
3945         (rs6000_emit_swdivsf): Delete.
3946         (rs6000_emit_swdivdf): Ditto.
3947         (rs6000_emit_swrsqrtsf): Ditto.
3949         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
3950         describe the reciprocal estimate support for each type.
3951         (recip_options): Map -mrecip=<opt> into option bits.
3952         (gen_2arg_fn_t): New typedef for binary rtx gen function.
3953         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
3954         reciprocal estimate instructions.
3955         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
3956         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
3957         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
3958         cost information if -mdebug=cost or -mdebug=reg.
3959         (rs6000_override_options): Set -mrecip-precision for power6, and
3960         power7 machines.  If -mvsx or -mdfp, enable various options that
3961         came in previous instruction set ISAs, unless the option was
3962         explicitly disabled by the command line option.  Parse
3963         -mrecip=<opt> options.
3964         (rs6000_builtin_vectorized_function): Add support for vectorizing
3965         the reciprocal estimate builtins and expansions.
3966         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
3967         (bdesc_2arg): Add reciprocal estimate builtins.
3968         (bdesc_1arg): Add reciprocal square root estimate builtins.
3969         (rs6000_expand_builtin): Rewrite to use a switch statement,
3970         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
3971         (rs6000_init_builtins): Create declarations for reciprocal
3972         estimate builtins.
3973         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
3974         sized, prefer traditional floating point registers, if integer
3975         vector types, prefer altivec registers.  Don't actually look at
3976         the memory address any more.
3977         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
3978         builtins.
3979         (rs6000_load_constant_and_splat): New helper function to load up
3980         the constant for reciprocal estimate instructions.
3981         (rs6000_emit_madd): New helper function for generating
3982         multiply/add type instructions, based on the current switches.
3983         (rs6000_emit_msub): Ditto.
3984         (rs6000_emit_mnsub): Ditto.
3985         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
3986         replace a divide with a reciprocal estimate and fixup, adding
3987         support for machines with high precision and vectors.
3988         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
3989         low precision machines.
3990         (rs6000_emit_swdiv): New common function to be called to replace a
3991         division with reciprocal estimate and fixup.
3992         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
3993         for double and vector types.  Add support for high precision machines.
3995         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
3996         the reciprocal estimate instructions can be generated.
3997         (TARGET_FRE): Ditto.
3998         (TARGET_FRSQRTES): Ditto.
3999         (TARGET_FRSQRTE): Ditto.
4000         (RS6000_RECIP_*): New macros for reciprocal estimate support.
4002         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
4003         square root estimate on vectors.
4004         (re<mode>2): New insn for reciprocal division estimate on vectors.
4006         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
4007         New builtin.
4008         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
4009         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
4010         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
4011         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
4012         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
4013         (RS6000_BUILTIN_RSQRT): Ditto.
4014         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
4015         floating point builtin.
4017         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4018         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
4019         __RECIP_PRECISION__ based on the command line switches.
4020         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
4022         * config/rs6000/rs6000.opt (-mrecip): Document add support for
4023         replacing division instructions with reciprocal estimate and fixup.
4024         (-mrecip=<opt>): New option.
4025         (-mrecip-precision): Ditto.
4027         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
4028         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
4029         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
4030         precision scalar.
4032         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
4033         (UNSPEC_VREFP): Ditto.
4034         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
4035         conterparts with regard to support of -mno-fused-madd and -ffast-math.
4036         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
4037         reciprocal estimate instructions to be generated.
4038         (altivec_vrefp): Ditto.
4040         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
4041         estimate support.
4042         (rreg): New mode attribute for reciprocal estimate support.
4043         (recip<mode>3): New insn for division using reciprocal estimate
4044         and fixup builtins.
4045         (divide define_split): New define_split to convert floating point
4046         division to use reciprocal estimate if the user used the
4047         appropriate options and the split is run when we can add new
4048         pseudo registers for the fixup.
4049         (rsqrt<mode>2): New insn for reciprocal square root support.
4050         (recipsf3): Move into recip<mode>3.
4051         (recipdf3): Ditto.
4052         (fres): Use TARGET_FRES.
4053         (rsqrtsf2): Move into rsqrt<mode>2.
4054         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
4055         (copysignsf3): Add support for VSX.
4056         (fred): Use TARGET_FRE.
4057         (fred_fpr): Ditto.
4058         (rsqrtdf_internal1): New function for frsqrte instruciton.
4060         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
4061         (vec_rsqrt): Ditto.
4063 2010-06-03  Richard Guenther  <rguenther@suse.de>
4065         PR middle-end/44291
4066         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
4067         (set_user_assembler_libfunc): Likewise.
4069 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
4071         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
4072         defaults.h.
4073         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
4074         to defaults.h
4075         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
4076         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
4077         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
4078         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
4079         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
4080         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
4081         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
4082         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
4083         * defaults.h: Updated for above mentioned changes.
4085 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
4087         * c-common.c: Remove header include of tm_p.h.
4088         * Makefile.in (c-common.o): Remove TM_P_H dependency.
4090 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
4092         * tree.h (struct tree_decl_map): New type.
4093         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
4094         (tree_decl_map_hash): New prototype.
4095         (debug_expr_for_decl, value_expr_for_decl): Change into
4096         tree_decl_map hashtab from tree_map.
4097         (init_ttree): Adjust initialization.
4098         (tree_decl_map_hash): New function.
4099         (decl_debug_expr_lookup, decl_debug_expr_insert,
4100         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
4102 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4104         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
4105         linker emulations.
4106         * configure: Regenerate.
4107         * config.in: Regenerate.
4109         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
4110         (X86_64_EMULATION): Define.
4111         (TARGET_LD_EMULATION): Use them.
4113         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
4114         (SPARC64_EMULATION): Define.
4115         (LINK_ARCH_SPEC): Use them.
4117 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
4119         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
4120         smallest_mode_for_size for computing the precision types of new
4121         graphite IVs.  Do not call lang_hooks.types.type_for_size.
4123 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
4125         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
4126         information.
4127         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
4129 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
4131         PR middle-end/44363
4132         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
4133         return false instead.
4135 2010-06-02  Jan Hubicka  <jh@suse.cz>
4137         PR middle-end/44295
4138         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
4139         create new cgraph node to check callee.
4141 2010-06-02  Richard Guenther  <rguenther@suse.de>
4143         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
4145 2010-06-02  Richard Guenther  <rguenther@suse.de>
4147         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
4148         (lto_wrapper_cleanup): ... this.  Do not exit.
4149         (fatal): Adjust.  Exit here.
4150         (fatal_perror): Likewise.
4151         (fatal_signal): New function.
4152         (main): Set up signal handlers to cleanup temporary files.
4153         * Makefile.in (lto-wrapper.o): Adjust dependencies.
4155 2010-06-02  Richard Guenther  <rguenther@suse.de>
4157         PR tree-optimization/44377
4158         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
4160 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4162         * config/s390/2097.md (z10_fhex): Remove insn reservation.
4163         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
4164         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
4165         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
4166         instruction.
4167         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
4169 2010-06-02  Jan Hubicka  <jh@suse.cz>
4171         * bitmap.c (bitmap_descriptor): Add search_iter.
4172         (bitmap_find_bit): Increment it.
4173         (print_statistics): Print it.
4175 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
4177         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
4178         instead of gimple_build_call_vec.  Delete unnecessary local variable.
4180 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
4182         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
4183         change from yesterday.
4185 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
4187         * c-ada-spec.c: Clean up redundant includes.
4189 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
4191         * gimplify.c: Do not include except.h and optabs.h.
4192         (gimplify_body): Do not initialize RTL profiling.
4193         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
4194         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
4195         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
4196         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
4197         langhooks.h.
4199         * tree-pretty-print.h: Include pretty-print.h.
4200         * gimple-pretty-print.h: Include pretty-print.h.
4202         * tree-pretty-print.c: Do not include diagnostic.h.
4203         * tree-vrp.c: Likewise.
4204         * tree-tailcall.c: Likewise
4205         * tree-scalar-evolution.c: Likewise
4206         * tree-ssa-dse.c: Likewise
4207         * tree-chrec.c: Likewise
4208         * tree-ssa-sccvn.c: Likewise
4209         * tree-ssa-copyrename.c: Likewise
4210         * tree-nomudflap.c: Likewise
4211         * tree-call-cdce.c: Likewise
4212         * tree-stdarg.c: Likewise
4213         * tree-ssa-math-opts.c: Likewise
4214         * tree-nrv.c: Likewise
4215         * tree-ssa-sink.c: Likewise
4216         * tree-browser.c: Likewise
4217         * tree-ssa-loop-ivcanon.c: Likewise
4218         * tree-ssa-loop.c: Likewise
4219         * tree-parloops.c: Likewise
4220         * tree-ssa-address.c: Likewise
4221         * tree-ssa-ifcombine.c: Likewise
4222         * tree-if-conv.c: Likewise
4223         * tree-data-ref.c: Likewise
4224         * tree-affine.c: Likewise
4225         * tree-ssa-phiopt.c: Likewise
4226         * tree-ssa-coalesce.c: Likewise
4227         * tree-ssa-pre.c: Likewise
4228         * tree-ssa-live.c: Likewise
4229         * tree-predcom.c: Likewise
4230         * tree-ssa-forwprop.c: Likewise
4231         * tree-ssa-dce.c: Likewise
4232         * tree-ssa-ter.c: Likewise
4233         * tree-ssa-loop-prefetch.c: Likewise
4234         * tree-optimize.c: Likewise
4235         * tree-ssa-phiprop.c: Likewise
4236         * tree-object-size.c: Likewise
4237         * tree-outof-ssa.c: Likewise
4238         * tree-ssa-structalias.c: Likewise
4239         * tree-switch-conversion.c: Likewise
4240         * tree-ssa-reassoc.c: Likewise
4241         * tree-ssa-operands.c: Likewise
4242         * tree-vectorizer.c: Likewise
4243         * tree-vect-data-refs.c: Likewise
4244         * tree-vect-generic.c: Likewise
4245         * tree-vect-stmts.c: Likewise
4246         * tree-vect-patterns.c: Likewise
4247         * tree-vect-slp.c: Likewise
4248         * tree-vect-loop.c: Likewise
4249         * tree-ssa-loop-ivopts.c: Likewise
4250         * tree-ssa-loop-im.c: Likewise
4251         * tree-ssa-loop-niter.c: Likewise
4252         * tree-ssa-loop-unswitch.c: Likewise
4253         * tree-ssa-loop-manip.c: Likewise
4254         * tree-ssa-loop-ch.c: Likewise
4255         * tree-dump.c: Likewise
4256         * tree-complex.c: Likewise
4258         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
4259         * tree-ssa-uninit.c: Likewise
4260         * tree-ssa-threadupdate.c: Likewise
4261         * tree-ssa-uncprop.c: Likewise
4262         * tree-ssa-ccp.c: Likewise
4263         * tree-ssa-dom.c: Likewise
4264         * tree-ssa-propagate.c: Likewise
4265         * tree-ssa-alias.c: Likewise
4266         * tree-dfa.c: Likewise
4267         * tree-cfgcleanup.c: Likewise
4268         * tree-sra.c: Likewise
4269         * tree-ssa-copy.c: Likewise
4270         * tree-ssa.c: Likewise
4271         * tree-profile.c: Likewise
4272         * tree-cfg.c: Likewise
4273         * tree-ssa-threadedge.c: Likewise
4274         * tree-vect-loop-manip.c: Likewise
4276         * tree-inline.c: Do not include diagnostic.h and expr.h.
4277         Include rtl.h.
4278         (copy_decl_for_dup_finish): Do not use NULL_RTX.
4280         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
4281         * tree-loop-distribution.c: Likewise.
4283 2010-06-01  Jan Hubicka  <jh@suse.cz>
4285         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
4287 2010-06-01  Jan Hubicka  <jh@suse.cz>
4289         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
4290         remove return value.
4291         (split_bbs_on_noreturn_calls) .... here.
4292         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
4293         * tree-flow.h (fixup_noreturn_call): New.
4295 2010-06-01  Jan Hubicka  <jh@suse.cz>
4297         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
4299 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
4301         * tree.h (build_nt_call_list): Delete.
4302         * tree.c (build_nt_call_list): Delete.
4304 2010-06-01  Jan Hubicka  <jh@suse.cz>
4306         * fwprop.c: Make emit-rtl.h include last.
4307         * rtlanal.c: Include emit-rtl.h.
4308         * genautomata.c: Output emit-rtl include into insn-automata.c
4309         * df-scan.c: Include emit-rtl.h.
4310         * haifa-sched.c: Indlude emit-rtl.h.
4311         * mode-switching.c: Indlude emit-rtl.h.
4312         * graph.c: Indlude emit-rtl.h.
4313         * sel-sched.c: Include emit-rtl.h.
4314         * sel-sched-ir.c: Include emit-rtl.h.
4315         * ira-build.c: Include emit-rtl.h.
4316         * emit-rtl.c: (first_insn, last_insn): Remove defines.
4317         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
4318         Move to emit-rtl.h.
4319         (set_new_first_and_last_insn, get_last_insn_anywhere,
4320         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
4321         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
4322         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
4323         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
4324         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
4325         Use accessor functions.
4326         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
4327          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
4328         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
4329         mem_expr_equal_p): Move here from rtl.h.
4330         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
4331         Move here from emit-rtl.c; make inline.
4332         * cfglayout.h: Include emit-rtl.h.
4333         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
4334          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
4335         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
4336         mem_expr_equal_p, get_insns, set_first-insn,
4337         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
4338         * reg-stack.c: Include emit-rtl.h.
4339         * dce.c: Likewise.
4341 2010-06-01  Jan Hubicka  <jh@suse.cz>
4343         * cgraph.h (tree_function_versioning): Update prototype.
4344         (cgraph_function_versioning): Update prototype.
4345         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
4346         bitmap.
4347         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
4348         (cgraph_materialize_clone, save_inline_function_body): Update use of
4349         tree_function_versioning.
4350         * tree-inline.c (copy_bb): Look for previous copied block to link
4351         after; fix debug output.
4352         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
4353         (copy_body): Likewise.
4354         (expand_call_inline): Update use of copy_body.
4355         (tree_function_versioning): Update use of copy body; accept
4356         blocks_to_copy and new_entry.
4358 2010-06-01  Jan Hubicka  <jh@suse.cz>
4360         * gegenrtl.c: Remove unnecesary prototypes.
4361         (gendecl): Remove.
4362         (gendef): Produce static inline.
4363         (gencode): Remove.
4364         (main): Do not decode parameters; generate header only.
4365         * Makefile.in (genrtl.c): Remove.
4367 2010-06-01  Jan Hubicka  <jh@suse.cz>
4369         * tree-switch-conversion.c (build_one_array): Make it readonly.
4371 2010-06-01  Richard Guenther  <rguenther@suse.de>
4373         * optabs.c (init_optabs): Guard all accesses to reinit.
4374         * ipa-pure-const.c (propagate): Fix another typo.
4375         * opts.c (common_handle_option): Split assignment to bool.
4376         * c-opts.c (c_common_handle_option): Likewise.
4378 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
4379             Matthew Gingell  <gingell@adacore.com>
4381         * doc/invoke.texi: Mention -fdump-ada-spec.
4382         * tree-dump.c (dump_files): Add ada-spec.
4383         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
4384         * tree-pass.h (tree_dump_index): Add TDI_ada.
4385         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
4386         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
4387         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
4388         * c-decl.c: Include c-ada-spec.h.
4389         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
4390         functions.
4391         (c_write_global_declarations): Add handling of -fdump-ada-spec.
4392         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
4393         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
4394         * c-ada-spec.h, c-ada-spec.c: New files.
4396 2010-06-01  Richard Guenther  <rguenther@suse.de>
4398         PR lto/43853
4399         * ipa-pure-const.c (get_function_state): Hand back varying state
4400         if we do not have one.
4401         (has_function_state): New function.
4402         (duplicate_node_data): Adjust.
4403         (remove_node_data): Likewise.
4404         (pure_const_write_summary): Likewise.
4405         (propagate): Likewise.  Fix typo.
4407 2010-06-01  Jan Hubicka  <jh@suse.cz>
4409         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
4410         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
4411         (execute_all_ipa_transforms): Do not play with the states.
4413 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4415         * config/arm/t-linux-androideabi: New.
4416         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
4418 2010-06-01  Jan Hubicka  <jh@suse.cz>
4420         * tree-inline.c (estimate_num_insns): For stdarg functions look
4421         into call statement to count cost of argument passing.
4423 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
4425         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
4426         argument for fprintf.
4427         (ix86_output_addr_diff_elt): Likewise.
4428         (x86_function_profiler): Likewise.
4429         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
4430         (LPREFIX): Likewise.
4431         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4433 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
4435         PR target/44338
4436         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
4437         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
4438         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
4439         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
4440         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
4441         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
4442         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
4443         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
4444         TARGET_FUSED_MADD.
4446 2010-05-31  Jan Hubicka  <jh@suse.cz>
4448         * tree.h (tree_range_check_failed): Declare noreturn.
4450 2010-05-31  Jan Hubicka  <jh@suse.cz>
4452         * gimple.c (gimple_call_builtin_p): New function.
4453         * gimple.h (gimple_call_builtin_p): Declare.
4454         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
4455         to exit.
4456         (execute_warn_function_return): BUILT_IN_RETURN is return.
4457         (split_critical_edges): Return edges are not critical.
4458         (is_ctrl_altering_stmt): Builtin_in_return is altering.
4459         (gimple_verify_flow_info): Handle built_in_return.
4460         (execute_warn_function_return): Handle built_in_return.
4461         * ipa-pure-const.c (check_call): Ignore builtin_return.
4463 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
4465         PR middle-end/44337
4466         * expr.c (expand_assignment): Don't store anything for out-of-bounds
4467         array accesses with non-MEM.
4469         PR tree-optimization/44182
4470         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
4471         newly needs to end a bb is followed by debug stmts, instead return
4472         true from the function at the end.
4473         (maybe_move_debug_stmts_to_successors): New function.
4474         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
4476 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
4478         PR target/44161
4479         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
4481 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
4483         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
4484         for nested functions in non-optimized compilation.
4486 2010-05-31  Richard Guenther  <rguenther@suse.de>
4488         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
4490 2010-05-30  Jan Hubicka  <jh@suse.cz>
4492         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
4494 2010-05-30  Richard Guenther  <rguenther@suse.de>
4496         PR lto/42975
4497         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
4498         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
4499         no longer needed.
4501 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
4503         * config/darwin.c (output_objc_section_asm_op): Add comment.
4504         (name_needs_quotes): Add '_' to list of valid comment chars.
4505         (machopic_output_function_base_name): Remove unneeded quotes.
4506         (darwin_encode_section_info): Adjust asm whitespace.
4507         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
4508         (ASM_OUTPUT_LOCAL): Ditto.
4509         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
4510         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
4511         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
4513 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4515         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
4516         RS6000_OUTPUT_BASENAME unconditionally.
4517         (rs6000_output_function_epilogue): Likewise.
4519 2010-05-30  Jan Hubicka  <jh@suse.cz>
4521         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
4522         nodes.
4524 2010-05-30  Richard Guenther  <rguenther@suse.de>
4526         * tree-cfg.c (verify_gimple_assign_single): Implement
4527         verification for COND_EXPR rhs.
4529 2010-05-30  Jan Hubicka  <jh@suse.cz>
4531         * cgraph.h (cgraph_dump_file): Declare.
4532         * cgraphunit.c (cgraph_dump_file): Export.
4533         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
4535 2010-05-30  Jan Hubicka  <jh@suse.cz>
4537         * dwarf2out.c (reference_to_unused,
4538         premark_types_used_by_global_vars_helper): Avoid creation of new
4539         varpool nodes.
4541 2010-05-30  Jan Hubicka  <jh@suse.cz>
4543         * cgraph.h (cgraph_node_cannot_return,
4544         cgraph_edge_cannot_lead_to_return): New functions.
4545         * cgraph.c (cgraph_node_cannot_return,
4546         cgraph_edge_cannot_lead_to_return): Use them.
4547         * ipa-pure-const.c (pure_const_names): New static var.
4548         (check_call): Handle calls not leading to return.
4549         (pure_const_read_summary): Dump info read.
4550         (propagate): Dump info about propagation process; ignore side effects
4551         of functions not leading to exit; fix handling of pure functions.
4553 2010-05-30  Jan Hubicka  <jh@suse.cz>
4555         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
4556         for tail call epilogues.
4558 2010-05-30  Jan Hubicka  <jh@suse.cz>
4560         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
4561         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
4562         dump files.
4564 2010-05-29  Jan Hubicka  <jh@suse.cz>
4566         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
4567         node; remove references in node we no longer keep in cgrpah but need
4568         body of.
4570 2010-05-29  Jan Hubicka  <jh@suse.cz>
4572         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
4574 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4576         PR target/44165
4577         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
4579 2010-05-29  Jan Hubicka  <jh@suse.cz>
4581         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
4582         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
4583         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
4584         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
4585         debug_names_replaced_by, debug_update_ssa): Likewise.
4586         * sbitmap.c (debug_sbitmap): Likewise.
4587         * genrecog.c (debug_decision, debug_decision_list): Likewise.
4588         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
4589         debug_tree_chain): Likewise.
4590         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
4591         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
4592         * optabs.c  (debug_optab_libfuncs): Likewise.
4593         (verify_loop_closed_ssa): Likewise.
4594         * value-prof.c (verify_histograms): Likewise.
4595         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
4596         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
4597         * cfghooks.c (verify_flow_info): Likewise.
4598         * fold-const.c (debug_fold_checksum): Likewise.
4599         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
4600         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
4601         Likewise.
4602         * omega.c (debug_omega_problem): Likewise.
4603         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
4604         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
4605         * dominance.c (verify_dominators, debug_dominance_info,
4606         debug_dominance_tree): Likewise.
4607         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
4608         * df_regno_debug, df_ref_debug,
4609         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
4610         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
4611         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
4612         * sel-sched.c (debug_state): Likewise.
4613         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
4614         Likewise.
4615         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
4616         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
4617         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
4618         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
4619         Likewise.
4620         * c-pretty-print.c (debug_c_tree): Likewise.
4621         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
4622         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
4623         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
4624         * ebitmap.c (debug_ebitmap): Likewise.
4625         * function.c (debug_find_var_in_block_tree): Likewise.
4626         * print-rtl.c (debug_rtx): Likewise.
4627         (debug_rtx_count): Likewise.
4628         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
4629         * stor-layout.c (debug_rli): Likewise.
4630         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
4631         * tree-data-ref.c (debug_data_references,
4632         debug_data_dependence_relations, debug_data_reference,
4633         debug_data_dependence_relation, debug_rdg_vertex,
4634         debug_rdg_component, debug_rdg): Likewise.
4635         * tree-affine.c (debug_aff): Likewise.
4636         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
4637         Likewise.
4638         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
4639         * emit-rtl.c (verify_rtl_sharing): Likewise.
4640         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
4641         debug_value_expressions): Likewise.
4642         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
4643         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
4644         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
4645         * cfglayout.c (verify_insn_chain): Likewise.
4646         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
4647         debug_clast_stmt, debug_generated_program): Likewise.
4648         * ggc-page.c (debug_print_page_list): Likewise.
4649         * tree-ssa-ter.c (debug_ter): Likewise.
4650         * graphite-dependences.c (debug_pddr): Likewise.
4651         * sched-deps.c (debug_ds): Likewise.
4652         * tree-ssa.c (verify_ssa): Likewise.
4653         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
4654         debug_scattering_functions, debug_iteration_domains, debug_pdr,
4655         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
4656         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
4657         * tree-inline.c (debug_find_tree): Likewise.
4658         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
4659         debug_ppl_powerset_matrix): Likewise.
4660         * var-tracking.c (debug_dv): Likewise.
4661         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
4662         * cfgloop.c (verify_loop_structure): Likewise.
4663         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
4664         * c-common.c (verify_sequence_points): Likewise.
4665         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
4666         debug_candidates, debug_rgn_dependencies): Likewise.
4667         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
4668         * debug_constraint_graph, debug_solution_for_var,
4669         debug_sa_points_to_info): Likewise.
4670         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
4671         Likewie.
4672         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
4673         debug_loops, debug_loop, debug_loop_num): Likewise.
4674         * passes.c (debug_pass): Likewise.
4675         (dump_properties): Likewise; add cfglayout property.
4676         (debug_properties): Likewise.
4677         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
4678         * varpool.c (debug_varpool): Likewise.
4679         * regcprop.c (debug_value_data): Likewise.
4680         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
4681         debug_immediate_uses_for): Likewise.
4683 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4685         PR bootstrap/44315
4686         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
4687         Filter out insn-flags.h.
4689 2010-05-29  Jan Hubicka  <jh@suse.cz>
4691         * cgraph.h (struct varpool_node_set_def,
4692         struct cgraph_node_set_def): Remove unused AUX pointer.
4693         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
4694         VEC_empty macro.
4696 2010-05-29  Jan Hubicka  <jh@suse.cz>
4698         PR middle-end/44324
4699         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
4701 2010-05-29  Richard Guenther  <rguenther@suse.de>
4703         * lto-streamer.c (cached_bp): New global variable.
4704         (bitpack_create): Return the cached bitpack, if available.
4705         (bitpack_delete): Clear and cache the bitpack, if appropriate.
4706         (bp_pack_value): Remove redundant asserts.
4708 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4710         PR middle-end/44306
4711         * tree-if-conv.c (is_true_predicate): New.
4712         (is_predicated): Use is_true_predicate.
4713         (add_to_predicate_list): Same.  Do not use unshare_expr.
4714         (add_to_dst_predicate_list): Same.
4716 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4718         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
4719         field on edges.
4720         (predicate_bbs): Same.
4721         (clean_predicate_lists): Same.
4722         (find_phi_replacement_condition): Do not AND the predicate from
4723         edge->aux.
4725 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4727         PR bootstrap/44315
4728         * Makefile.in (build/gencondmd.o): Add a missing `\'.
4730 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4732         PR target/44261
4733         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
4734         (negdf2): Adjust expander pattern and use negdf2_slow.
4735         (negsf2): Likewise.
4737 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
4739         * basic-block.h (struct control_flow_graph): Move last_label_uid field
4740         up.
4741         * df.h (struct df_base_ref): Move regno field up.
4742         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
4743         * expr.h (struct separate_ops): Move location field up.
4744         * optabs.h (struct optab_d): Move libcall_basename field down.
4745         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
4746         * config/i386/i386.h (struct machine_function): Convert call_abi field
4747         into a bitfield.  Move cfa field to the end of the structure.
4749 2010-05-29  Jan Hubicka  <jh@suse.cz>
4751         * varpool.c (varpool_get_node): Fix lookup.
4753 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4755         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
4756         RTL specific prototypes with #ifdef RTX_CODE.
4757         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
4758         * config/spu/t-spu-elf: Fix dependencies.
4760         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
4762 2010-05-29  Mike Stump  <mikestump@comcast.net>
4764         PR bootstrap/44315
4765         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
4766         TM_H when building to avoid dependency loops.
4768 2010-05-29  Jan Hubicka  <jh@suse.cz>
4770         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
4771         refs and body; not the whole node for masters of materialized clones.
4773 2010-05-29  Mike Stump  <mikestump@comcast.net>
4775         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
4777 2010-05-29  Jan Hubicka  <jh@suse.cz>
4779         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
4780         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
4781         use of clone_function_name.
4782         * cgraph.h (cgraph_create_virtual_clone,
4783         cgraph_function_versioning): update prototypes.
4784         (clone_function_name): Declare.
4785         * ipa-cp.c (ipcp_insert_stage): Update call of
4786         cgraph_create_virtual_clone.
4787         * omp-low.c (create_omp_child_function_name): Use
4788         cgraph_create_virtual_clone.
4789         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
4790         (cgraph_function_versioning): Take SUFFIX argument; produce new name
4791         and make decl local.
4793 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4795         * vec.h: Include statistics.h
4796         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
4797         with VEC_H.
4799 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4801         * c-lex.c: Do not include c-tree.h.
4802         * c-pretty-print.c: Likewise.
4803         * c-opts.c: Likewise.
4804         * c-gimplify.c: Likewise.
4805         * c-common.c: Likewise.
4806         * c-dump.c: Likewise.  Include c-common.h.
4808 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4810         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
4811         before including diagnostic-core.h.
4812         (c_cpp_error): New prototype moved from c-tree.h.
4813         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
4814         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
4815         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
4816         (c_cpp_error): Prototype moved to c-common.h.
4817         * Makefile.in: Update dependency for C_COMMON_H.
4819 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4821         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
4822         * c-common.c (c_register_addr_space): Remove here.
4823         * c-decl.c (c_register_addr_space): Re-add here.
4825 2010-05-28  Mike Stump  <mikestump@comcast.net>
4827         * config/darwin-c.c: Remove c-tree.h include.
4829 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4831         * gcc.c: Include diagnostic.h.
4832         (error_count): Remove.  All users changed to use errorcount.
4833         (programname): Remove.  All users changed to use progname.
4834         (fancy_abort, internal_error, fatal_error, error, warning, inform,
4835         fnotice): Remove.
4836         (execute): Don't include "Internal error" and bug reporting
4837         information in argument of internal_error call.
4838         (process_command): Don't increment error_count after calling
4839         perror_with_name.
4840         (input_filename): Rename to gcc_input_filename.  All users
4841         changed.
4842         (main): Call diagnostic_initialize.  Register delete_temp_files
4843         with atexit.  Use seen_error to test for errors.
4844         * gcc.h: Include diagnostic-core.h.
4845         (fatal_error, error, warning): Remove.
4846         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
4847         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
4848         (gcc.o): Update dependencies.
4850 2010-05-28  Jeff Law  <law@redhat.com>
4852         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
4853         functions.
4854         * ira.h (ira_bad_reload_regno): Declare
4855         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
4857         * ira-color.c (update_curr_costs): Free updated hard reg costs.
4858         (ira_reassign_conflict_allocnos): Remove bogus asserts.
4859         (allocno_reload_assign): Likewise.
4861 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
4863         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
4864         build1_stat.
4866 2010-05-28  Richard Guenther  <rguenther@suse.de>
4868         PR lto/44312
4869         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
4870         Stream fixed-point constants mode.
4871         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
4872         and TYPE_PRECISION.
4873         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
4874         Stream fixed-point constants mode.
4875         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
4876         and TYPE_PRECISION.
4878 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4880         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
4881         only place it was called from.
4882         (number_of_latch_executions): Do not return chrec_dont_know when the
4883         may_be_zero is a runtime condition: instead, return a COND_EXPR
4884         including the may_be_zero condition.
4885         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
4886         of nb_iterations.
4887         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
4888         COND_EXPRs.
4890 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4892         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
4893         generate COND_EXPRs for degenerate_phi_result.
4895 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4897         PR middle-end/44293
4898         * tree-if-conv.c (if_convertible_loop_p): Check the
4899         if-convertibility of phi nodes in non predicated BBs.
4901 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4903         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
4905 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4907         PR driver/15303
4908         * gcc.c (inform, warning, inform): New functions.
4909         (fatal_ice): Rename to internal_error; change cmsgid parameter to
4910         gmsgid.  All callers changed.
4911         (notice): Rename to fnotice; add parameter fp.  All callers changed.
4912         (fatal_error): Rename to fatal_signal.  All users changed.
4913         (fatal): Rename to fatal_error; change cmsgid parameter to
4914         gmsgid.  All callers changed.
4915         (process_command): Use warning instead of error for warnings.
4916         (end_going_arg): Don't use _() around argument of error.
4917         (do_spec_1): Use inform for message from %n specs.  Use warning
4918         instead of error for warnings.
4919         (main): Use inform for comparison messages.  Use warning for
4920         message about unused linker input.
4921         (error): Increment error_count.  Print "error: ".
4922         * gcc.h (fatal): Change to fatal_error.
4923         (warning): Declare.
4924         * config/darwin-driver.c (darwin_default_min_version): Use warning
4925         instead of fprintf for warnings.
4926         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
4928 2010-05-28  Julian Brown  <julian@codesourcery.com>
4930         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
4931         (*thumb2_addsi3_compare0_scratch): New.
4932         * config/arm/constraints.md (Pv): New.
4933         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
4934         for ARM mode only.
4935         (*addsi3_compare0_scratch): Likewise.
4937 2010-05-28  Jan Hubicka  <jh@suse.cz>
4939         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
4940         check.
4941         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
4942         only on local statics.
4944 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
4946         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
4948 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4950         PR bootstrap/44314
4951         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
4952         (OPTION_GLIBC): Define.
4954 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
4956         PR debug/41048
4957         * dwarf2out.c (double_int_type_size_in_bits): New function.
4958         (round_up_to_align): Change first argument and return value to
4959         double_int.
4960         (field_byte_offset): Work internally on double_ints.
4962         PR target/43636
4963         * builtins.c (expand_movstr): Use a temporary pseudo instead
4964         of target even when target is not NULL and not const0_rtx, but
4965         fails movstr predicate.
4966         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
4968 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4970         * final.c (rest_of_clean_state): Use %m in errors instead of
4971         strerror (errno).
4972         * gengtype.c (read_input_list, close_output_files): Use xstrerror
4973         instead of strerror.
4974         * toplev.c (process_options): Use %m in errors instead of strerror
4975         (errno).
4976         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
4977         (errno).
4979 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
4981         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
4982         (ix86_canonical_va_list_type): Make static.  Add declaration.
4983         (ix86_enum_va_list): Make static.  Reindent.
4984         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
4985         (ix86_canonical_va_list_type): Ditto.
4986         (ix86_enum_va_list): Ditto.
4988 2010-05-28  Richard Guenther  <rguenther@suse.de>
4990         * lto-wrapper.c (run_gcc): With -save-temps generate a
4991         user-visible ltrans filename.  Fixup ltrans unit numbering.
4993 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
4995         * c-common.c (c_common_nodes_and_builtins): Replace use
4996         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
4997         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
4998         to ix86_enum_va_list.
4999         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
5000         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
5001         (TARGET_ENUM_VA_LIST_P): Add hook description.
5002         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
5003         * target.h (gcc_target): Add enum_va_list hook.
5005         PR bootstrap/44299
5006         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
5007         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
5008         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
5010 2010-05-28  Alan Modra  <amodra@gmail.com>
5012         PR target/44266
5013         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
5014         emit_library_call machinery to set up __tls_get_addr calls.
5016 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5018         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
5020 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
5022         Revert fix for PR c++/44188
5023         * c-common.c (is_typedef_decl): Revert the moving of  this
5024         definition ...
5025         * tree.c (is_typedef_decl): ... here.
5026         (typdef_variant_p): Revert the moving of this  definition
5027         here from gcc/cp/tree.c.
5028         * c-common.h (is_typedef_decl): Revert the moving of this
5029         declaration ...
5030         * tree.h (is_typedef_decl): ... here.
5031         (typedef_variant_p): Revert the moving of this  declaration here
5032         from gcc/cp/cp-tree.h
5033         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
5034         (gen_tagged_type_die): Revert the splitting out of ...
5035         (gen_type_die_with_usage): ... this function. Revert the anonymous
5036         tagged type handling.
5037         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
5038         typedefs naming anonymous tagged types.
5040 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
5042         * config/rs6000/rs6000-modes.def (PSImode): Delete.
5044 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
5046         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
5047         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
5048         throughout.
5049         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
5050         "xer" to "ca".
5051         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
5052         XER_REGS to CA_REGS throughout.
5053         * config/rs6000/rs6000.h: Same.
5054         (ADDITIONAL_REGISTER_NAMES): Add "xer".
5055         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
5056         that mode_iterator "P" is the size for arithmetic carries as well.
5057         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
5059 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
5061         PR bootstrap/44255
5062         * combine.c (struct rtx_subst_pair): Define unconditionally.
5063         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
5064         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
5065         Call make_compound_operation on pair->to.
5066         (propagate_for_debug): Don't call make_compound_operation here.
5067         Always use simplify_replace_fn_rtx.
5069 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
5071         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
5072         * config/xtensa/xtensa.c (override_options): Check
5073           TARGET_FORCE_NO_PIC and set flag_pic.
5074         * config/xtensa/xtensa.opt: Document -mforce-no-pic
5076 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
5078         PR bootstrap/44299
5079         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
5080         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
5082 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
5084         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
5085         toplev.h.
5086         * diagnostic.c: Don't include toplev.h.
5087         (progname): Define.  Moved from toplev.c.
5088         (seen_error): New function.
5089         * diagnostic.h: Include diagnostic-core.h.
5090         (diagnostic_t, emit_diagnostic): Don't declare here.
5091         * toplev.c (progname): Move to toplev.c.
5092         (emit_debug_global_declarations, compile_file, finalize,
5093         do_compile, toplev_main): Use seen_error.
5094         * toplev.h: Include diagnostic-core.h.
5095         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
5096         internal_error, warning, warning_at, error, error_n, error_at,
5097         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
5098         verbatim, fnotice, progname): Move to diagnostic-core.h.
5099         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
5100         (expand_builtin_expect): Use seen_error.
5101         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
5102         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
5103         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
5104         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
5105         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
5106         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
5107         errorcount for errors.
5108         * c-opts.c (c_common_finish): Use seen_error.
5109         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
5110         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
5111         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
5112         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
5113         (get_coverage_counts): Use seen_error.
5114         * dwarf2out.c (dwarf2out_finish): Use seen_error.
5115         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
5116         gimplify_body): Use seen_error.
5117         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
5118         * ipa-pure-const.c (gate_pure_const): Use seen_error.
5119         * ipa-reference.c (gate_reference): Use seen_error.
5120         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
5121         * lambda-code.c: Include diagnostic-core.h instead of
5122         diagnostic.h.
5123         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
5124         * lto-compress.c: Include diagnostic-core.h instead of
5125         diagnostic.h.
5126         * lto-section-in.c: Include diagnostic-core.h instead of
5127         diagnostic.h.
5128         * lto-streamer-out.c: Include diagnostic-core.h instead of
5129         diagnostic.h.
5130         * lto-streamer.c: Include diagnostic-core.h instead of
5131         diagnostic.h.
5132         (gate_lto_out): Use seen_error.
5133         * matrix-reorg.c: Include diagnostic-core.h instead of
5134         diagnostic.h.
5135         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
5136         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
5137         (gate_expand_omp, lower_omp_1): Use seen_error.
5138         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
5139         (rest_of_decl_compilation, rest_of_type_compilation,
5140         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
5141         * tree-cfg.c (label_to_block_fn): Use seen_error.
5142         * tree-inline.c (optimize_inline_calls): Use seen_error.
5143         * tree-mudflap.c (mudflap_finish_file): Use
5144         seen_error.
5145         * tree-optimize.c (gate_all_optimizations,
5146         gate_all_early_local_passes, gate_all_early_optimizations): Use
5147         seen_error.
5148         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
5149         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
5150         (varpool_remove_unreferenced_decls,
5151         varpool_assemble_pending_decls): Use seen_error.
5152         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
5153         (TOPLEV_H, DIAGNOSTIC_H): Update.
5154         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
5155         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
5156         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
5157         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
5158         coverage.o, lambda-code.o): Update dependencies.
5160 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
5162         PR c++/44188
5163         * c-common.c (is_typedef_decl): Move this definition ...
5164         * tree.c (is_typedef_decl): ... here.
5165         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
5166         * c-common.h (is_typedef_decl): Move this declaration ...
5167         * tree.h (is_typedef_decl): ... here.
5168         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
5169         * dwarf2out.c (is_naming_typedef_decl): New function.
5170         (gen_tagged_type_die): Split out of ...
5171         (gen_type_die_with_usage): ... this function. When an anonymous
5172         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
5173         is emitted for the typedef.
5174         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
5175         anonymous tagged types.
5177 2010-05-27  Jason Merrill  <jason@redhat.com>
5179         * print-tree.c (debug_vec_tree): New fn.
5180         (print_vec_tree): New fn.
5181         * tree.h: Declare them.
5182         * gdbinit.in (pvt): New command.
5184         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
5186         * gdbinit.in (pdd): New command.
5188 2010-05-27  Jan Hubicka  <jh@suse.cz>
5190         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
5191         (update_caller_keys): Return early if there are no callers;
5192         only update fibheap when decresing the key.
5193         (update_callee_keys): Avoid recursion.
5194         (decide_inlining_of_small_functions): When badness does not match;
5195         re-insert into fibheap.
5197 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
5199         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
5200         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
5201         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
5202         (ALL_HOST_OBJS): Now a union of the above two.
5203         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
5204         all files in ALL_HOST_FRONTEND_OBJS.
5205         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
5207         * c-common.c: Pretend to be a backend file by undefining
5208         IN_GCC_FRONTEND (still need rtl.h here).
5210 2010-05-27  Jan Hubicka  <jh@suse.cz>
5212         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
5213         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
5215 2010-05-27  Jan Hubicka  <jh@suse.cz>
5217         * sched-ebb.c: Rename struct deps to struct deps_desc.
5218         * ddg.c: Likewise.
5219         * sel-sched-ir.c: Likewise.
5220         * sched-deps.c: Likewise.
5221         * sched-int.h: Likewise.
5222         * sched-rgn.c: Likewise.
5224 2010-05-27  Jon Beniston <jon@beniston.com>
5226         PR 43726
5227         * config/lm32/lm32.h: Remove definition of
5228         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
5230 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5232         PR lto/44230
5233         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
5235 2010-05-27  Richard Guenther  <rguenther@suse.de>
5237         PR tree-optimization/44284
5238         * tree-vect-stmts.c (vectorizable_assignment): Handle
5239         sign-changing conversions as simple copy.
5241 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5243         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
5244         Bionic C library.
5245         (__gthread_active_p): Check for pthread_create if compiling against
5246         Bionic C library.
5248 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5250         Support compilation for Android platform.  Reimplement -mandroid.
5252         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
5253         (*android*): Set ANDROID_DEFAULT.
5254         (arm*-*-linux*): Include linux-android.h.
5255         (arm*-*-eabi*): Don't include previous -mandroid implementation.
5256         * config/arm/eabi.h: Remove, move Android-specific parts ...
5257         * config/linux-android.h: ... here.  New file.
5258         * config/arm/eabi.opt: Rename to ...
5259         * config/linux-android.opt: ... this.
5260         (mandroid): Allow -mno-android option.  Initialize based on
5261         ANDROID_DEFAULT.
5262         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
5263         Move logic to corresponding LINUX_TARGET_* macros.
5264         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
5265         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
5266         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
5267         Android definitions.
5268         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
5269         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
5270         Document.
5272 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5274         Add support for Bionic C library
5276         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
5277         macro.
5278         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
5279         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
5281         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
5282         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
5283         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
5284         to support multiple C libraries.  Handle Bionic.
5285         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
5286         (BIONIC_DYNAMIC_LINKER64): Define.
5287         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
5288         Update.
5289         (TARGET_HAS_SINCOS): Enable for Bionic.
5291         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
5292         the last option specified on command line take effect.
5293         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
5294         (mbionic): New.
5295         (mglibc, muclibc): Update.
5297         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
5298         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
5299         DEFAULT_LIBC.
5301         * doc/invoke.texi (-mglibc, -muclibc): Update.
5302         (-mbionic): Document.
5304 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5306         * c-common.h (c_register_addr_space): Add prototype.
5307         (ADDR_SPACE_KEYWORD): Remove.
5308         * c-common.c (c_register_addr_space): New function.
5309         (c_addr_space_name): Reimplement.
5310         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
5312         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
5313         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
5315         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
5316         Remove TARGET_ADDR_SPACE_KEYWORDS.
5318 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
5320         * input.c: New file.
5321         * input.h (main_input_filename): Move declaration to toplev.h.
5322         * toplev.c (input_location, line_table): Move to input.c
5323         * toplev.h (main_input_filename): Move declaration from input.h.
5324         * tree.c (expand_location): Move to input.c.
5325         * Makefile.in (OBJS-common): Add input.o.
5326         (input.o): Add dependencies.
5328 2010-05-27  Richard Guenther  <rguenther@suse.de>
5330         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
5331         for non-existant files.
5332         (fork_execute): Mark args_name file as deleted.
5334 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
5336         PR bootstrp/44287
5337         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
5338         (narrow_signed_type): Likewise.
5340 2010-05-26  Jan Hubicka  <jh@suse.cz>
5342         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
5343         edge only when checking is enabled; check using former_clone_of;
5344         check inline clones too.
5345         (cgraph_materialize_clone): Record former_clone_of pointer.
5346         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
5347         combining redirections; dump args_to_skip bitmap
5348         (cgraph_materialize_all_clones): Do no redirection here.
5349         * ipa-inline.c (inline_transform): Do redirection here.
5350         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
5351         cheking only).
5353 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5355         * config/avr/avr-c.c: Do not include regs.h.
5356         Include cpplib.h for cpp_define and tree.h for c-common.h.
5357         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
5358         * config/avr/t-avr: Fix dependencies for avr-c.o.
5360 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5362         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
5363         string instead of SYMBOL_REF rtx.
5364         * rtl.h (set_stack_check_libfunc): Move prototype from here...
5365         * libfuncs.h: ...to here.  Adjust for explow.c change.
5367 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
5369         * pretty-print.c: Don't include ggc.h.
5370         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
5371         (identifier_to_locale): Use them for allocation.
5372         * pretty-print.h (identifier_to_locale_alloc,
5373         identifier_to_locale_free): Declare.
5374         * toplev.c (alloc_for_identifier_to_locale): New.
5375         (general_init): Set identifier_to_locale_alloc and
5376         identifier_to_locale_free.
5377         * Makefile.in (pretty-print.o): Update dependencies.
5379 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5381         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
5382         pointer types if they have different alignment or mode.
5384 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
5386         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
5387         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
5388         * config/sparc/sparc-protos.h (function_value): Remove declaration.
5389         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
5390         sparc_function_value_regno_p): New functions.
5391         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5392         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5393         (function_value): Rename to...
5394         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
5395         argument to 'outgoing'.
5396         (function_arg_record_value, function_arg_union_value,
5397         function_arg_vector_value): Update comment.
5399 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5401         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
5402         (fde_needed_for_eh_p): New predicate.
5403         (output_call_frame_info): Use it throughout to decide whether FDEs
5404         are needed for EH purpose.
5405         (dwarf2out_begin_prologue): Reorder assignments.
5407 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5409         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
5410         special case loop->header.
5411         (is_predicated): New.
5412         (if_convertible_loop_p): Call it.
5414 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5416         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
5417         iterator in parameter.  Do not generate code during the analysis.
5418         (tree_if_convert_cond_stmt): Removed.
5419         (tree_if_convert_stmt): Removed.
5420         (predicate_bbs): New.
5421         (if_convertible_loop_p): Call predicate_bbs.
5422         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
5423         now contains all the analysis part.
5425 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5427         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
5428         statements in the analysis part.
5429         (tree_if_convert_stmt): Update comment.
5430         (remove_conditions_and_labels): New.
5431         (combine_blocks): Call remove_conditions_and_labels.
5432         (tree_if_conversion): Update comment.
5434 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5436         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
5437         than 2 predecessors or more than 2 successors.
5439 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5441         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
5442         of loops in which the data dependence analysis fails.
5444 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5446         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
5447         CDI_POST_DOMINATORS.
5448         (tree_if_conversion): Same.
5450 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5452         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
5454 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5456         * tree-if-conv.c: Update copyright years.  Fix comments.
5457         Fix indentation.
5459 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
5461         * builtin-types.def (BT_INT128): New primitive type.
5462         (BT_UINT128): Likewise.
5463         * c-common.c (c_common_r): Add __int128 keyword.
5464         (c_common_type_for_size): Handle __int128.
5465         (c_common_type_for_mode): Likewise.
5466         (c_common_signed_or_unsigned_type): Likewise.
5467         (c_common_nodes_and_builtins): Add builtin type
5468         if target supports 128-bit integer scalar.
5469         * c-common.h (enum rid): Add RID_INT128.
5470         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
5471         if target supports 128-bit integer scalar.
5472         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
5473         (finish_declspecs): Likewise.
5474         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
5475         (c_token_starts_declspecs): Likewise.
5476         (c_parser_declspecs): Likewise.
5477         (c_parser_attributes): Likewise.
5478         (c_parser_objc_selector): Likewise.
5479         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
5480         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
5481         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
5482         * tree.c (make_or_reuse_type): Likewise.
5483         (make_unsigned_type): Likewise.
5484         (build_common_tree_nodes_2): Likewise.
5485         * tree.h (enum integer_type_kind): Add itk_int128 and
5486         itk_unsigned_int128.
5487         (int128_integer_type_node): New define.
5488         (int128_unsigned_type_node): New define.
5489         * doc/extend.texi: Add documentation about __int128 type.
5491 2010-05-26  Richard Guenther  <rguenther@suse.de>
5493         * tree-ssa-sccvn.c (copy_nary): Adjust.
5494         (copy_phis): Rename to ...
5495         (copy_phi): ... this.  Adjust.
5496         (copy_references): Rename to ...
5497         (copy_reference): ... this.  Adjust.
5498         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
5499         result into the valid table.
5501 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5503         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
5504         insn-config.h, insn-codes.h, recog.h, and optabs.h.
5506 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5508         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
5510 2010-05-26  Richard Guenther  <rguenther@suse.de>
5512         * opts.c (common_handle_option): Handle OPT_Ofast.
5514 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
5516         * diagnostic.c: Don't include opts.h.
5517         (permissive_error_option): Define.
5518         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
5519         for classify_diagnostic.  Don't use memset for
5520         classify_diagnostic.  Initialize new and recently added fields.
5521         (diagnostic_classify_diagnostic): Use context->n_opts instead of
5522         N_OPTS.
5523         (diagnostic_report_diagnostic): Pass context parameter to
5524         diagnostic_report_warnings_p.  Use option_enabled and option_name
5525         hooks from context.
5526         (emit_diagnostic): Use permissive_error_option.
5527         (permerror): Likewise.
5528         * diagnostic.h: Don't include options.h.
5529         (struct diagnostic_context): Add n_opts, opt_permissive,
5530         inhibit_warnings, warn_system_headers, option_enabled and
5531         option_name fields.  Change classify_diagnostic to a pointer.
5532         * opts-diagnostic.h: New file.
5533         * opts.c: Include opts-diagnostic.h.
5534         (common_handle_option): Set global_dc fields for -Wfatal-errors,
5535         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
5536         (option_name): New function.
5537         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
5538         (c_common_handle_option): Set global_dc->permissive for
5539         -fpermissive.
5540         * c-common.c (c_cpp_error): Save and restore
5541         global_dc->warn_system_headers, not variable warn_system_headers.
5542         * toplev.c: Include opts-diagnostic.h.
5543         (general_init): Update call to diagnostic_initialize.  Set
5544         global_dc->show_column, global_dc->option_enabled and
5545         global_dc->option_name.
5546         (process_options): Don't set global_dc fields here.
5547         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
5548         (diagnostic.o, opts.o, toplev.o): Update dependencies.
5550 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5552         * config/picochip/picochip.md (movsi): Split a movsi from a
5553         const after reload.
5555 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5557         * ggc-zone.c: Update copyright year.
5558         (poison_region): Mark memory for Valgrind as undefined before
5559         memset () call and inaccessible afterwards.
5560         (ggc_pch_total_size): Change type of i to int.
5562 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5564         * ggc-common.c (ggc_free_overhead): Allow empty slot.
5566 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5568         * ggc-common.c: Update copyright year.
5569         (ggc_rlimit_bound): Remove prototype.  Compile only if
5570         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
5571         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
5572         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
5573         (ggc_min_heapsize_heuristic): Likewise.
5575 2010-05-26  Richard Guenther  <rguenther@suse.de>
5577         PR rtl-optimization/44164
5578         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
5579         no-common access-path disambiguation.
5580         (indirect_ref_may_alias_decl_p): Adjust.
5581         (indirect_refs_may_alias_p): Likewise.
5582         (refs_may_alias_p_1): Likewise.
5584 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5586         * c-typeck.c: Do not include expr.h.
5588 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5590         * rtl.h (decl_default_tls_model): Move prototype from here...
5591         * output.h: ...to here.
5592         * c-decl.c: Do not include rtl.h.
5593         * c-pragma.c: Likewise.
5594         * c-parser.c: Likewise.
5595         * c-gimplify.c: Likewise.  And also not hard-reg-set.
5596         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
5597         FIXME note for it.  Add a FIXME note for expr.h.
5598         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
5599         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
5600         defined.
5602 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
5604         PR target/44199
5605         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
5606         or total_size is larger than red zone size for non-V4 ABI, emit a
5607         stack_tie resp. frame_tie insn before stack pointer restore.
5608         * config/rs6000/rs6000.md (frame_tie): New insn.
5610 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5612         * function.h (struct function): Add can_throw_non_call_exceptions bit.
5613         * lto-streamer-in.c (input_function): Stream it in.
5614         * lto-streamer-out.c (output_function): Stream it out.
5615         * function.c (allocate_struct_function): Set it.
5616         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
5617         for flag_non_call_exceptions.
5618         * cfgbuild.c (control_flow_insn_p): Likewise.
5619         (make_edges): Likewise.
5620         * cfgexpand.c (expand_stack_alignment): Likewise.
5621         * combine.c (distribute_notes): Likewise.
5622         * cse.c (cse_extended_basic_block): Likewise.
5623         * except.c (insn_could_throw_p): Likewise.
5624         * gcse.c (simple_mem): Likewise.
5625         * ipa-pure-const.c (check_call): Likewise.
5626         (check_stmt ): Likewise.
5627         * lower-subreg.c (lower-subreg.c): Likewise.
5628         * optabs.c (emit_libcall_block): Likewise.
5629         (prepare_cmp_insn): Likewise.
5630         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
5631         * postreload.c (rest_of_handle_postreload): Likewise.
5632         * reload1.c (reload_as_needed): Likewise.
5633         (emit_input_reload_insns): Likewise.
5634         (emit_output_reload_insns): Likewise.
5635         (fixup_abnormal_edges): Likewise.
5636         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
5637         * store-motion.c (find_moveable_store): Likewise.
5638         * tree-eh.c (stmt_could_throw_p): Likewise.
5639         (tree_could_throw_p): Likewise.
5640         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5641         * config/arm/arm.c (arm_expand_prologue): Likewise.
5642         (thumb1_expand_prologue): Likewise.
5643         * config/rx/rx.md (cbranchsf4): Likewise.
5644         (cmpsf): Likewise.
5645         * config/s390/s390.c (s390_emit_prologue): Likewise.
5646         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
5647         (inline_forbidden_into_p): New predicate.
5648         (expand_call_inline): Use it to forbid inlining.
5649         (tree_can_inline_p): Likewise.
5651 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5653         * config/i386/i386-c.c: Do not include rtl.h.
5654         * config/i386/t-i386: Update dependencies.
5656 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5658         * attribs.c: Do not include rtl.h.
5659         * Makefile.in: Update dependencies.
5661 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
5663         * double-int.h (double_int_and): New.
5664         * combine.c (try_combine): Clean up, use double_int_* and
5665         immed_double_int_const functions.
5667 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5669         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
5670         stderr to /dev/null instead of grep -q.
5671         * configure: Regenerate.
5673 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5675         * Makefile.in (EXCEPT_H): Fix typo.
5677 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
5679         * ira-build.c (update_conflict_hard_reg_costs): New.
5680         (ira_build): Call update_conflict_hard_reg_costs.
5682 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5684         PR debug/41371
5685         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
5686         ENABLE_CHECKING.
5687         (intersect_loc_chains): Walk the s2var's loc_chain together
5688         with s1node chain as long as the locations are equal, don't
5689         call find_loc_in_1pdv in that case.
5691         PR debug/42801
5692         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
5693         (copy_bind_expr): ... instead of here.
5694         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
5695         if the block hasn't been remapped.
5696         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
5697         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
5699 2010-05-25  Richard Guenther  <rguenther@suse.de>
5701         PR middle-end/44069
5702         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
5703         out-of-bounds array accesses.
5705 2010-05-25  Richard Guenther  <rguenther@suse.de>
5707         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
5708         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
5709         (run_gcc): Re-organize to make cleanup easier.
5711 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5713         * config/s390/s390.c (optimization_options): Fix and move the
5714         flag_prefetch_loop_arrays override ...
5715         (override_options): ... here.
5717 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
5719         * diagnostic.c: Don't include plugin.h.
5720         (diagnostic_report_diagnostic): Don't handle plugins specially
5721         here.  Pass context to internal_error callback.
5722         * diagnostic.h (struct diagnostic_context): Add context parameter
5723         to internal_error callback.
5724         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
5725         * plugin.h (struct diagnostic_context): Declare.
5726         (warn_if_plugins, plugins_internal_error_function): Declare.
5727         * toplev.c (general_init): Set global_dc->internal_error.
5728         * Makefile.in (diagnostic.o): Update dependencies.
5730 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
5732         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
5733         * config/rs6000/t-darwin64: New.
5734         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
5735         build crt2.
5737 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
5739         PR 44203
5740         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
5741         match the original (and intended) behaviour before r159557.  This
5742         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
5743         in two ways.
5745 2010-05-25  Richard Guenther  <rguenther@suse.de>
5747         * doc/invoke.texi: Document -Ofast.
5748         * target.h (struct gcc_target): Add handle_ofast.
5749         * target-def.h (TARGET_HANDLE_OFAST): Add.
5750         (TARGET_INITIALIZER): Adjust.
5751         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
5752         * common.opt (Ofast): Add.
5754 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5756         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
5757         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
5759 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5761         PR target/43610
5762         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
5763         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
5764         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
5765         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
5767 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5769         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
5770         DW_OP_minus with negated offset instead of DW_OP_plus.
5771         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
5773 2010-05-25  Wei Guozhi  <carrot@google.com>
5775         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
5776         tst instruction and a new alternative.
5777         * config/arm/constraints.md (Pu): New constraint.
5779 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
5781         * function.c (assign_stack_local_1): Initialize variable
5782         to avoid warning when bootstrapping at -O3.
5784 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
5786         * configure.ac (all_lang_makefiles): Remove everything related to it.
5787         * configure: Regenerate.
5788         * Makefile.in: Fix reference to ada Make-lang.in.
5789         Remove support for LANG_MAKEFILES.
5791 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
5792             Sandra Loosemore  <sandra@codesourcery.com>
5794         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
5795         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
5796         description.  Add arm_neon_fp16_ok.
5797         (Add Options): Add arm_neon and arm_neon_fp16.
5799 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
5801         * diagnostic.c: Don't include flags.h.
5802         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
5803         context parameters.  Check flags in the context passed as a parameter.
5804         (diagnostic_build_prefix): Add context parameter.  Check
5805         show_column flag in context.
5806         (diagnostic_action_after_output): Check fatal_errors flag in context.
5807         (diagnostic_report_current_module): Check show_column flag in context.
5808         (default_diagnostic_starter): Update call to
5809         diagnostic_build_prefix.
5810         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
5811         (emit_diagnostic): Pass context to permissive_error_kind.
5812         (permerror): Pass context to permissive_error_kind.
5813         * diagnostic.h (struct diagnostic_context): Add show_column,
5814         pedantic_errors, permissive and fatal_errors fields.
5815         (diagnostic_build_prefix): Update prototype.
5816         * langhooks.c
5817         * toplev.c (process_options): Set flags in global_dc from
5818         flag_show_column, flag_pedantic_errors, flag_permissive,
5819         flag_fatal_errors.
5820         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
5821         to diagnostic_build_prefix.
5822         * Makefile.in (diagnostic.o): Update dependencies.
5824 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5826         * config/i386/ia32intrin.h (__crc32q): Define only if
5827         __SSE4_2__ is defined.
5829 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
5831         PR target/44132
5832         PR middle-end/43602
5833         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
5834         DECL_VISIBILITY_SPECIFIED.
5835         (emutls_decl): Set DECL_PRESERVE_P and copy
5836         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
5837         (emutls_finalize_control_var): New callback.
5838         (emutls_finish): Finalize emutls control variables.
5839         * toplev.c (compile_file): Move the call to emutls_finish ()
5840         before varpool_assemble_pending_decls ().
5842 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
5844         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
5845         added to the preprocessor condition.
5847 2010-05-24  Paul Brook  <paul@codesourcery.com>
5849         * gengtype-lex.l: Add HARD_REG_SET.
5850         * expr.c (expand_expr_real_1): Record writes to hard registers.
5851         * function.c (rtl_data): Add asm_clobbers.
5852         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
5853         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
5854         Use crtl->asm_clobbers.
5856 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5858         * doc/makefile.texi (Makefile): Mention stages 'profile'
5859         and 'feedback' for profiledbootstrap.
5861 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
5863         PR target/44245
5864         * config/i386/i386.c (def_builtin): Properly check
5865         OPTION_MASK_ISA_64BIT.
5867 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
5869         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
5870         typedefs with different but compatible types.  Allow duplicate
5871         typedefs with the same type except for pedantic non-C1X, but give
5872         warning for variably modified types.
5873         * c-typeck.c (tagged_types_tu_compatible_p,
5874         function_types_compatible_p, type_lists_compatible_p,
5875         comptypes_internal): Add parameter different_types_p; set
5876         *different_types_p for different but compatible types.  All
5877         callers changed.
5878         (comptypes_check_different_types): New.
5879         * c-tree.h (comptypes_check_different_types): Declare.
5881 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5883         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
5884         * jump.c: Include basic-block.h.
5885         * profile.c: Likewise.
5886         * tree-profile.c: Likewise.
5887         * coverage.c: Likewise.
5888         * basic-block.h (optimize_function_for_size_p): Move to function.h.
5889         (optimize_function_for_speed_p): Likewise.
5890         * function.h (optimize_function_for_size_p,
5891         optimize_function_for_speed_p): Moved here from basic-block.h.
5892         * Makefile.in: Update dependencies.
5894 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5896         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
5897         before calling make; allow override through $MAKE.
5898         * doc/invoke.texi (Optimize Options): Document override.
5900 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
5902         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
5903         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5904         (rs6000_mode_dependent_address_ptr): Make static.
5905         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5906         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
5907         Remove.
5909 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
5911         PR target/43869
5912         * config/i386/i386.c: Make sure that the correct regparm is passed.
5914 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5916         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
5917         * sbitmap.c: ...to here to internalize sbitmap element access.
5918         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
5919         Explain why basic-block.h is included.
5920         * function.h: Include tm.h for CUMULATIVE_ARGS.
5921         * Makefile.in: Update dependencies.
5923 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5925         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
5926         New core types.
5927         * sbitmap.h (struct sbitmap_def): Do not typedef here.
5928         * sbitmap.c: Include sbitmap.h.
5929         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
5930         hard-reg-set.h.  Split everything related to regsets out from here...
5931         * regset.h: ...to here.  New file.
5932         * df.h: Include regset.h and sbitmap.h.
5933         * tree-flow.h: Likewise.
5934         * cfgloop.h: Likewise.
5935         * except.h: Do not include sbitmap.h.  Include hashtab.h.
5936         * cgraph.h: Include vec.h and function.h.
5937         * reload.h (struct insn_chain): Change types of live_throughout
5938         and dead_or_set from regset_head to bitmap_head.
5939         (compute_use_by_pseudos): Be defined also if regset.h is not included.
5940         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
5941         spilled_regs from regset_head to bitmap_head to avoid dependency
5942         in regset.h.
5943         * sel-sched-ir.h: Include regset.h.
5944         * reload.c: Include df.h before reload.h.
5945         * caller-save.c: Likewise.
5946         * reload1.c: Likewise.
5947         * ira.c: Likewise.
5948         (mark_elimination): Update type of r to bitmap, consistent with
5949         DF_LR_IN.
5950         * dominance.c: Include bitmap.h.
5951         * modulo-sched.c: Include df.h.
5952         * cfganal.c: Include bitmap.h and sbitmap.h.
5953         * cfgbuild.c: Include sbitmap.h.
5954         * lcm.c: Include sbitmap.h.
5955         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
5956         * domwalk.c: Include sbitmap.h, exclude ggc.h.
5957         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
5958         * cselib.c: Include bitmap.h.
5959         * tree-optimize.c: Include regset.h.
5960         * stmt.c: Include bitmap.h.
5961         * Makefile.in: Update dependencies.
5963 2010-05-22  Jan Hubicka  <jh@suse.cz>
5965         * cgraph.h (struct varpool_node): Add same_comdat_group.
5966         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
5967         pointer.
5968         (output_varpool): Update call of lto_output_varpool_node.
5969         (input_varpool): Read same_comdat_group pointer.
5970         (input_varpool_1): Fixup same_comdat_group pointer.
5971         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
5972         group is needed, all are.
5973         * varpool.c (varpool_remove_node): Remove node from same comdat group
5974         linklist too.
5975         (varpool_analyze_pending_decls): Walk same comdat groups.
5977 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5979         * rtl.h (union rtunion_def): Remove rt_bit member.
5980         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
5981         * print-rtl (print_rtx): Do not print the member.
5982         * gengtype.c (adjust_field_rtx_def): Do not handle it.
5983         * gengenrtl.c (type_from_format): Likewise.
5984         (accessor_from_format): Likewise.
5986 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
5988         * dbgcnt.c: Include toplev.h instead of errors.h.
5989         * ira-emit.c: Don't include errors.h.
5990         * ira.c: Include toplev.h instead of errors.h.
5991         * lto-compress.c: Include toplev.h instead of errors.h.
5992         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
5993         ira.o, dbgcnt.o): Update dependencies.
5995 2010-05-22  Richard Guenther  <rguenther@suse.de>
5997         * gimple.c (gimple_types_compatible_p): Check type qualifications
5998         before merging pointer to complete and pointer to incomplete type.
5999         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
6000         we use our own resolution algorithm.  The gold linker plugin
6001         doesn't do the job we want it to do here.
6003 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
6005         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6006         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6007         (sparc_mode_dependent_address_p): New function.
6009 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
6011         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
6013         * timevar.c: Do not include any core headers.
6014         (timevar_print): De-i18n-ize.
6015         (print_time): Likewise.
6016         * timevar.h (timevar_push, timevar_pop): Make inline functions.
6018 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
6020         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
6021         langhooks-def.h.
6022         (diagnostic_initialize): Initialize x_data not last_function.
6023         (diagnostic_report_current_function): Move to tree-diagnostic.c.
6024         (default_diagnostic_starter): Call
6025         diagnostic_report_current_module not
6026         diagnostic_report_current_function.
6027         (diagnostic_report_diagnostic): Initialize x_data not
6028         abstract_origin.
6029         (verbatim): Likewise.
6030         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
6031         x_data.
6032         (struct diagnostic_context): Change last_function to x_data.
6033         (diagnostic_auxiliary_data): Replace with
6034         diagnostic_context_auxiliary_data and
6035         diagnostic_info_auxiliary_data.
6036         (diagnostic_last_function_changed, diagnostic_set_last_function,
6037         diagnostic_report_current_function): Move to tree-diagnostic.h.
6038         (print_declaration, dump_generic_node, print_generic_stmt,
6039         print_generic_stmt_indented, print_generic_expr,
6040         print_generic_decl, debug_c_tree, dump_omp_clauses,
6041         print_call_name, debug_generic_expr, debug_generic_stmt,
6042         debug_tree_chain, default_tree_printer): Move to
6043         tree-pretty-print.h.
6044         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
6045         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
6046         gimple-pretty-print.h.
6047         * pretty-print.c: Don't include tree.h
6048         (pp_base_format): Don't handle %K here.
6049         (pp_base_tree_identifier): Move to tree-pretty-print.c.
6050         * pretty-print.h (text_info): Change abstract_origin to x_data.
6051         (pp_tree_identifier, pp_unsupported_tree,
6052         pp_base_tree_identifier): Move to tree-pretty-print.h.
6053         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
6054         tree-pretty-print.h: New files.
6055         * tree-pretty-print.c: Include tree-pretty-print.h.
6056         (percent_K_format): New.  Moved from pretty-print.c.
6057         (pp_base_tree_identifier): Move from pretty-print.c.
6058         * c-objc-common.c: Include tree-pretty-print.h.
6059         (c_tree_printer): Handle %K here.
6060         * langhooks.c: Include tree-diagnostic.h.
6061         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
6062         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
6063         (default_tree_printer): Handle %K using percent_K_format.
6064         (general_init): Use default_tree_diagnostic_starter.
6065         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
6066         (free_lang_data): Use default_tree_diagnostic_starter.
6067         * c-pretty-print.c: Include tree-pretty-print.h.
6068         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
6069         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
6070         * dwarf2out.c: Include tree-pretty-print.h.
6071         * except.c: Include tree-pretty-print.h.
6072         * gimple-pretty-print.c: Include tree-pretty-print.h and
6073         gimple-pretty-print.h.
6074         * gimplify.c: Include tree-pretty-print.h.
6075         * graphite-poly.c: Include tree-pretty-print.h and
6076         gimple-pretty-print.h.
6077         * ipa-cp.c: Include tree-pretty-print.h.
6078         * ipa-inline.c: Include gimple-pretty-print.h.
6079         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
6080         * ipa-pure-const.c: Include gimple-pretty-print.h.
6081         * ipa-struct-reorg.c: Include tree-pretty-print.h and
6082         gimple-pretty-print.h.
6083         * ipa-type-escape.c: Include tree-pretty-print.h.
6084         * print-rtl.c: Include tree-pretty-print.h.
6085         * print-tree.c: Include gimple-pretty-print.h.
6086         * sese.c: Include tree-pretty-print.h.
6087         * tree-affine.c: Include tree-pretty-print.h.
6088         * tree-browser.c: Include tree-pretty-print.h.
6089         * tree-call-cdce.c: Include gimple-pretty-print.h.
6090         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
6091         * tree-chrec.c: Include tree-pretty-print.h.
6092         * tree-data-ref.c: Include tree-pretty-print.h and
6093         gimple-pretty-print.h.
6094         * tree-dfa.c: Include tree-pretty-print.h.
6095         * tree-if-conv.c: Include tree-pretty-print.h and
6096         gimple-pretty-print.h.
6097         * tree-inline.c: Include tree-pretty-print.h.
6098         * tree-into-ssa.c: Include tree-pretty-print.h and
6099         gimple-pretty-print.h.
6100         * tree-nrv.c: Include tree-pretty-print.h.
6101         * tree-object-size.c: Include tree-pretty-print.h and
6102         gimple-pretty-print.h.
6103         * tree-outof-ssa.c: Include tree-pretty-print.h and
6104         gimple-pretty-print.h.
6105         * tree-parloops.c: Include tree-pretty-print.h and
6106         gimple-pretty-print.h.
6107         * tree-predcom.c: Include tree-pretty-print.h and
6108         gimple-pretty-print.h.
6109         * tree-scalar-evolution.c: Include tree-pretty-print.h and
6110         gimple-pretty-print.h.
6111         * tree-sra.c: Include tree-pretty-print.h.
6112         * tree-ssa-address.c: Include tree-pretty-print.h.
6113         * tree-ssa-alias.c: Include tree-pretty-print.h.
6114         * tree-ssa-ccp.c: Include tree-pretty-print.h and
6115         gimple-pretty-print.h.
6116         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
6117         * tree-ssa-copy.c: Include tree-pretty-print.h and
6118         gimple-pretty-print.h.
6119         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
6120         * tree-ssa-dce.c: Include tree-pretty-print.h and
6121         gimple-pretty-print.h.
6122         * tree-ssa-dom.c: Include tree-pretty-print.h and
6123         gimple-pretty-print.h.
6124         * tree-ssa-dse.c: Include gimple-pretty-print.h.
6125         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
6126         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
6127         * tree-ssa-live.c: Include tree-pretty-print.h and
6128         gimple-pretty-print.h.
6129         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
6130         gimple-pretty-print.h.
6131         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
6132         gimple-pretty-print.h.
6133         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
6134         gimple-pretty-print.h.
6135         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
6136         gimple-pretty-print.h.
6137         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
6138         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
6139         * tree-ssa-operands.c: Include tree-pretty-print.h and
6140         gimple-pretty-print.h.
6141         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
6142         gimple-pretty-print.h.
6143         * tree-ssa-pre.c: Include tree-pretty-print.h and
6144         gimple-pretty-print.h.
6145         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
6146         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
6147         gimple-pretty-print.h.
6148         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
6149         gimple-pretty-print.h.
6150         * tree-ssa-sink.c: Include gimple-pretty-print.h.
6151         * tree-ssa-ter.c: Include tree-pretty-print.h and
6152         gimple-pretty-print.h.
6153         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
6154         * tree-ssa.c: Include tree-pretty-print.h and
6155         gimple-pretty-print.h.
6156         * tree-stdarg.c: Include gimple-pretty-print.h.
6157         * tree-switch-conversion.c: Include gimple-pretty-print.h.
6158         * tree-tailcall.c: Include tree-pretty-print.h and
6159         gimple-pretty-print.h.
6160         * tree-vect-data-refs.c: Include tree-pretty-print.h and
6161         gimple-pretty-print.h.
6162         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
6163         gimple-pretty-print.h.
6164         * tree-vect-loop.c: Include tree-pretty-print.h and
6165         gimple-pretty-print.h.
6166         * tree-vect-patterns.c: Include gimple-pretty-print.h.
6167         * tree-vect-slp.c: Include tree-pretty-print.h and
6168         gimple-pretty-print.h.
6169         * tree-vect-stmts.c: Include tree-pretty-print.h and
6170         gimple-pretty-print.h.
6171         * tree-vectorizer.c: Include tree-pretty-print.h.
6172         * tree-vrp.c: Include tree-pretty-print.h and
6173         gimple-pretty-print.h.
6174         * value-prof.c: Include tree-pretty-print.h and
6175         gimple-pretty-print.h.
6176         * var-tracking.c: Include tree-pretty-print.h.
6177         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
6178         (tree-diagnostic.o): New dependencies.
6179         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
6180         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
6181         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
6182         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
6183         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
6184         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
6185         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
6186         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
6187         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
6188         tree-ssa-address.o, tree-ssa-loop-niter.o,
6189         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
6190         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
6191         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
6192         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
6193         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
6194         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
6195         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
6196         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
6197         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
6198         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
6199         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
6200         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
6201         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
6202         tree-switch-conversion.o, var-tracking.o, value-prof.o,
6203         cfgexpand.o, pretty-print.o): Update dependencies.
6205 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
6207         * tree-ssa-structalias.c: Remove tm_p.h from include.
6209 2010-05-21  Jeff Law  <law@redhat.com>
6211         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
6213 2010-05-21  Jason Merrill  <jason@redhat.com>
6215         * tree-eh.c (cleanup_is_dead_in): New.
6216         (lower_try_finally): Don't generate a dead cleanup region.
6217         (lower_cleanup): Likewise.
6219 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
6221         PR debug/44223
6222         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
6223         unchain each use from the cyclic next_regno_use chain first.
6225 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
6227         * real: Do not include gmp.h, mpfr.h, and mpc.h.
6228         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
6229         (real_value_negate, real_value_abs): New prototypes.
6230         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
6231         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
6232         new include file for interface between MPFR and REAL_VALUE_TYPE.
6233         * real.c: Include realmpfr.h.
6234         (real_arithmetic2): Remove legacy function.
6235         (real_value_negate): New.
6236         (real_value_abs): New.
6237         (mfpr_from_real, real_from_mpfr): Move from here...
6238         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
6239         * builtins.c: Include realmpfr.h.
6240         * fold-const.c: Include realmpfr.h.
6241         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
6242         (fold_negate_const): Likewise.
6243         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
6244         * toplev.c: Include realmpfr.h.
6245         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
6246         and real_value_negate.
6247         * fixed-value.c (check_real_for_fixed_mode): Likewise.
6248         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
6249         (vfp3_const_double_index): Likewise.
6250         (arm_print_operand): Likewise.
6251         * Makefile.in: Update dependencies.
6253 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6255         * config/s390/s390.c (override_options): Increase the default
6256         of max-completely-peel-times.
6258 2010-05-21  Julian Brown  <julian@codesourcery.com>
6259             Mark Mitchell  <mark@codesourcery.com>
6261         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
6262         sibling calls for Thumb-1.
6263         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
6264         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
6265         Thumb-2.
6266         (*call_insn, *call_value_insn): Don't use for Thumb-2.
6267         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
6268         for Thumb-2.
6269         (return): New expander.
6270         (*arm_return): New name for ARM return insn.
6271         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
6273 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
6275         * config.gcc (sparc64-*-rtems*): New target.
6277 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
6279         * tree.c (build_function_decl_skip_args): Fix grammar.
6280         (build_function_type_list_1): Fix typos, adjust formatting.
6282 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
6284         * tree.h: Include real.h and fixed-value.h as basic datatypes.
6285         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
6286         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
6287         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
6288         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
6289         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
6290         tree-pretty-print.c, tree-loop-distribution.c,
6291         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
6292         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
6293         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
6294         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
6295         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
6296         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
6297         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
6298         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
6299         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
6300         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
6301         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
6302         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
6303         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
6304         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
6305         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
6306         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
6307         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
6308         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
6309         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
6310         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
6311         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
6312         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
6313         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
6314         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
6315         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
6316         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
6317         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
6318         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
6319         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
6320         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
6321         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
6322         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
6323         config/score/score7.c, config/score/score.c, config/arm/arm.c,
6324         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
6325         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
6326         config/bfin/bfin.c: Clean up redundant includes.
6327         * Makefile.in: Update accordingly.
6329 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
6331         PR middle-end/44204
6332         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
6333         statement has no arguments.
6335 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
6337         PR/44139
6338         * varasm.c (emutls_decl): Merge attributes to new decl.
6340 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6342         PR middle-end/44101
6343         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
6344         around the uniquized constructor if its type requires a conversion.
6346 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
6348         PR debug/44205
6349         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
6350         at -O0 goto_locus of any of the incoming edges differs from
6351         goto_locus of outgoing edge, or gimple_location of any of the
6352         labels differs.
6354 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
6356         * ira.c (ira_non_ordered_class_hard_regs): Define.
6357         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
6358         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
6359         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
6360         cost of unaligned hard regs when allocating multi-reg pseudos.
6362 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
6364         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
6365         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
6366         for TARGET_NO_FLOAT.
6367         * config/mips/mips.c (mips_file_start): Expand conditional expression
6368         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
6369         (mips_override_options): Move -mno-float override -msoft-float and
6370         -mhard-float.
6371         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
6372         Condition(TARGET_SUPPORTS_NO_FLOAT).
6373         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
6374         __mips_no_float here.
6375         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
6376         (TARGET_SUPPORTS_NO_FLOAT): Define.
6377         * config/mips/sdemtk.opt: Delete.
6379 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
6381         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
6383 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
6385         PR target/43733
6386         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
6387         * configure: Regenerate.
6388         * config.in: Regenerate.
6389         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
6390         instead of sahf only for 64bit targets.
6392 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
6394         PR debug/44178
6395         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
6396         setup_ref_regs for DEBUG_INSNs.
6398 2010-05-20  Jan Hubicka  <jh@suse.cz>
6400         PR middle-end/44197
6401         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
6403 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
6405         PR bootstrap/43870
6406         * df-scan.c (df_ref_compare): Stabilize sort.
6408 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
6410         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
6411         argument.  Don't use DW_OP_piece if offset is non-zero,
6412         put offset into second DW_OP_bit_piece argument.
6413         (dw_sra_loc_expr): Adjust callers.  For memory expressions
6414         compute offset.
6416 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
6418         PR target/44202
6419         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
6420         settings for 16-bit-constant "addo" alternative.
6422 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
6424         * config/mips/mips-dsp.md (add<DSPV:mode>3,
6425         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
6427         PR target/43764
6428         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
6429         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
6430         Use it.
6432 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
6434         * diagnostic.c (FLOAT, FFS): Don't undefine.
6435         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
6436         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
6437         include ordering.
6439 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
6441         * combine.c (propagate_for_debug): Call make_compound_operation
6442         on the source value.
6443         (try_combine): When implementing a split chosen by find_split_point,
6444         either copy i2src or set it to null.  Assert that i2src is not null
6445         before substituting into CALL_INSN_FUNCTION_USAGE.
6447 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
6449         * double-int.h (double_int_ior): New function.
6450         * tree.h (build_int_cst_wide_type): Remove.
6451         * tree.c (build_int_cst_wide_type): Remove.
6452         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
6453         of build_int_cst_wide_type.
6454         * stor-layout.c (set_sizetype): (Ditto.).
6455         * dojump.c (do_jump): Use build_int_cstu instead of
6456         build_int_cst_wide_type.
6458 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6460         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
6461         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
6462         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
6463         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
6464         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
6465         propagate the 'data' argument to copy_tree_r.
6466         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
6467         Propagate 'data' argument to walk_tree.
6468         (copy_if_shared): New function.
6469         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
6470         (unmark_visited): New function.
6471         (unshare_body): Call copy_if_shared instead of doing it manually.
6472         (unvisit_body): Call unmark_visited instead of doing it manually.
6474 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
6476         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
6477         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
6478         * hooks.c: Likewise.
6479         * target-def.h (TARGET_FOLD_BUILTIN): Define to
6480         hook_tree_tree_int_treep_bool_null.
6481         * target.h (struct gcc_target): Update signature of fold_builtin
6482         field.
6483         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
6484         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
6485         instead of the call expression.
6486         (fold_builtin_call_array): Pass n and argarray directly.
6487         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
6488         consing a list.
6489         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
6490         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
6491         `i' and use it in place of `arity'.
6492         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
6493         Dereference `args' directly.
6494         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
6496 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6498         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6499         3dnow, sse3, sse2.
6500         (Directives): Document optional dg-require-effective-target
6501         selector.
6503 2010-05-19  Richard Guenther  <rguenther@suse.de>
6505         PR lto/44196
6506         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
6508 2010-05-19  Richard Guenther  <rguenther@suse.de>
6510         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
6511         * common.opt (fwhopr=): New.
6512         * opts.c (common_handle_option): Handle OPT_fwhopr.
6513         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
6514         * collect2.c (main): Match -fwhopr*.
6515         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
6516         Execute ltrans stage in parallel when jobs is bigger than 1.
6518 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6520         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6521         pentiumpro on Solaris 8/x86 with Sun as.
6522         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
6523         hidden alias bug.
6524         (gcc_cv_as_ix86_quad): Check for .quad directive.
6525         * configure: Regenerate.
6526         * config.in: Regenerate.
6527         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
6529 2010-05-19  Martin Jambor  <mjambor@suse.cz>
6531         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
6532         also for indirect edges.  Actual printing moved...
6533         (ipa_print_node_jump_functions_for_edge): ...here.
6534         (ipa_compute_jump_functions): Renamed to
6535         ipa_compute_jump_functions_for_edge and made static.
6536         (ipa_compute_jump_functions): New function.
6537         (make_edge_direct_to_target): Check if the number of arguments on
6538         the newly direct edge is the same as the number of parametrs of
6539         the callee.
6540         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
6541         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
6542         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6543         analysis functions unconditionally, call the new
6544         ipa_analyze_params_uses on the node instead of every edge.
6546 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
6548         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
6549         to tree.
6550         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
6551         also checks for a constant int vs.  non-constant but
6552         loop-invariant steps.
6553         (find_or_create_group): Change the sort algorithm to only consider
6554         steps that are constant ints.
6555         (idx_analyze_ref): Adopt code to handle a tree instead of a
6556         HOST_WIDE_INT for step.
6557         (gather_memory_references_ref): Handle tree instead of int and be
6558         prepared to see a NULL_TREE.
6559         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
6560         prefetches if the step cannot be calculated at compile time.
6561         (issue_prefetch_ref): Issue prefetches for non-constant but
6562         loop-invariant steps.
6564 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6566         Revert:
6567         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6569         * tree.h (build_call_list): Remove.
6570         * tree.c (build_call_list): Remove.
6572 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6574         * tree.h (build_call_list): Remove.
6575         * tree.c (build_call_list): Remove.
6577 2010-05-18  Jan Hubicka  <jh@suse.cz>
6579         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
6581 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
6583         PR rtl-optimization/43332
6584         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
6586 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
6588         * tree.h (build_int_cstu): Implement as static inline.
6589         * tree.c (build_int_cstu): Remove function.
6590         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
6591         sign extended.
6593 2010-05-18  Richard Guenther  <rguenther@suse.de>
6595         PR lto/44143
6596         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
6597         (debug): Initialize from -save-temps.
6598         (collect_execute): Print command-line when verbose.
6599         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
6600         for ltrans invocation.  Produce -dumpbase flag again.
6601         (process_args): Remove.
6602         (main): Simplify.
6603         * collect2.c (maybe_run_lto_and_relink): Only pass object
6604         files to lto-wrapper.
6605         * gcc.c (LINK_COMMAND_SPEC): Likewise.
6607 2010-05-18  Jan Hubicka  <jh@suse.cz>
6609         * opts.c (decode_options): Do not disable whopr at ipa_cp.
6610         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
6612 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6614         PR lto/44184
6615         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
6616         in a GIMPLE_ASM.
6617         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
6618         in a GIMPLE_ASM.
6620 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
6622         PR debug/41371
6623         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
6624         rtx_equal_p inline.
6626 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6628         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
6629         lto-macho as lto_binary_reader.
6631         * darwin.c (darwin_asm_named_section): Do not add assembler comment
6632         after .section directive; just print it before the directive instead.
6634 2010-05-17  Jan Hubicka  <jh@suse.cz>
6636         * cgraph.c (cgraph_create_virtual_clone): Only check
6637         versionable_function_p when not in wpa and checking is enabled.
6638         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
6639         there are no more functions to materialize.
6641 2010-05-17  Jan Hubicka  <jh@suse.cz>
6643         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
6644         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
6645         New functions.
6646         (output_cgraph): Call output_cgraph_opt_summary.
6647         (input_cgrpah): Call input_cgraph_opt_summary.
6648         (output_cgraph_opt_summary_p, output_node_opt_summary,
6649         input_node_opt_summary, input_cgraph_opt_section): New functions.
6650         * lto-section-in.c (lto_section_name): Add cgraphopt.
6651         * tree-inline.c (tree_function_versioning): Handle parm_num.
6652         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
6653         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
6655 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6657         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
6658         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
6659         the insn to prefetch ratio heuristic to loops with known trip count.
6661 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6663         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
6664         (schedule_prefetches): Do not generate a prefetch if the unroll factor
6665         is far from what is required by the prefetch.
6667 2010-05-17  Jan Hubicka  <jh@suse.cz>
6669         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
6670         (ipcp_estimate_growth): Likewise.
6671         (ipcp_const_param_count): Likewise.
6672         (ipcp_insert_stage): Likewise.
6673         * ipa-prop.c (visit_load_for_mod_analysis): New function.
6674         (visit_store_addr_for_mod_analysis): Set used flag.
6675         (ipa_detect_param_modifications): Set used flag for SSE params;
6676         update use of walk_stmt_load_store_addr_ops.
6677         (ipa_print_node_params): Print used flag.
6678         (ipa_write_node_info): Stream used flag.
6679         (ipa_read_node_info): Likewise.
6680         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
6681         (ipa_is_param_used): New function.
6682         (lto_ipa_fixup_call_notes): Remove unused declaration.
6684 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6686         PR target/44074
6687         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
6688         * configure: Regenerate.
6689         * config.in: Regenerate.
6690         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
6691         !HAVE_AS_IX86_REP_LOCK_PREFIX.
6692         Don't emit whitespace.
6693         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
6694         (*rep_movsi): Likewise.
6695         (*rep_movsi_rex64): Likewise.
6696         (*rep_movqi): Likewise.
6697         (*rep_movqi_rex64): Likewise.
6698         (*rep_stosdi_rex64): Likewise.
6699         (*rep_stossi): Likewise.
6700         (*rep_stossi_rex64): Likewise.
6701         (*rep_stosqi): Likewise.
6702         (*rep_stosqi_rex64): Likewise.
6703         (*cmpstrnqi_nz_1): Use {%;} after repz.
6704         (*cmpstrnqi_nz_rex_1): Likewise.
6705         (*cmpstrnqi_1): Likewise.
6706         (*cmpstrnqi_rex_1): Likewise.
6707         (*strlenqi_1): Use {%;} after repnz.
6708         (*strlenqi_rex_1): Likewise.
6709         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
6710         (*sync_compare_and_swap<mode>): Likewise.
6711         (sync_double_compare_and_swap<mode>): Likewise.
6712         (*sync_double_compare_and_swapdi_pic): Likewise.
6713         (sync_old_add<mode>): Likewise.
6714         (sync_add<mode>): Likewise.
6715         (sync_sub<mode>): Likewise.
6716         (sync_<code><mode>): Likewise.
6718 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6720         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
6721         otr_token and polymorphic.
6722         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
6723         (cgraph_clone_edge): Copy the above fields.
6724         * tree.c (get_binfo_at_offset): New function.
6725         * tree.h (get_binfo_at_offset): Declare.
6726         * ipa-prop.h (enum jump_func_type): Added known_type jump function
6727         type, reordered items, updated comments.
6728         (union jump_func_value): Added base_type field, reordered fields.
6729         (enum ipa_lattice_type): Moved down in the file.
6730         (struct ipa_param_descriptor): New field polymorphic.
6731         (ipa_is_param_polymorphic): New function.
6732         * ipa-prop.c: Include gimple.h and gimple-fold.h.
6733         (ipa_print_node_jump_functions): Print known type jump functions.
6734         (compute_complex_pass_through): Renamed to...
6735         (compute_complex_assign_jump_func): this.
6736         (compute_complex_ancestor_jump_func): New function.
6737         (compute_known_type_jump_func): Likewise.
6738         (compute_scalar_jump_functions): Create known type and complex ancestor
6739         jump functions.
6740         (ipa_note_param_call): New parameter polymorphic, set the corresponding
6741         flag in the call note accordingly.
6742         (ipa_analyze_call_uses): Renamed to...
6743         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
6744         variable var only in the block where it is used.
6745         (ipa_analyze_virtual_call_uses): New function.
6746         (ipa_analyze_call_uses): Likewise.
6747         (combine_known_type_and_ancestor_jfs): Likewise.
6748         (update_jump_functions_after_inlining): Implemented handling of a
6749         number of new jump function types combination.
6750         (print_edge_addition_message): Removed.
6751         (make_edge_direct_to_target): New function.
6752         (try_make_edge_direct_simple_call): Likewise.
6753         (try_make_edge_direct_virtual_call): Likewise.
6754         (update_call_notes_after_inlining): Renamed to...
6755         (update_indirect_edges_after_inlining): this.  Moved edge creation for
6756         indirect calls to try_make_edge_direct_simple_call, also calls
6757         try_make_edge_direct_virtual_call for virtual calls.
6758         (ipa_print_node_params): Changed the header message.
6759         (ipa_write_jump_function): Stream also known type jump functions.
6760         (ipa_read_jump_function): Likewise.
6761         (ipa_write_indirect_edge_info): Stream new fields in
6762         cgraph_indirect_call_info.
6763         (ipa_read_indirect_edge_info): Likewise.
6764         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
6765         GIMPLE_FOLD_H.
6767 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6769         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
6771 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6773         * tree.h (CALL_EXPR_ARGS): Delete.
6774         (call_expr_arglist): Delete.
6775         * tree.c (call_expr_arglist): Delete.
6776         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
6777         targetm.fold_builtin.
6778         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
6779         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
6780         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
6781         arglist parameter.  Use CALL_EXPR_ARG.
6782         (picochip_expand_builtin_3op): Likewise.
6783         (picochip_expand_builtin_2opvoid): Likewise.
6784         (picochip_expand_array_get): Likewise.
6785         (picochip_expand_array_put): Likewise.
6786         (picochip_expand_array_testport): Likewise.
6787         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
6788         rather than arglist.
6789         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
6790         CALL_EXPR_ARGS.
6791         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
6792         than TREE_VALUE and TREE_CHAIN.
6793         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
6794         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
6795         the arglist.
6797 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6799         PR bootstrap/42347
6800         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
6801         to have no fallthru edge.
6803         PR middle-end/44102
6804         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
6805         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
6806         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
6807         add BARRIER after previous bb if needed.
6809 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6811         * tree.c (build_function_type_list_1): Remove bogus assert condition.
6813 2010-05-17  Alan Modra  <amodra@gmail.com>
6815         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
6816         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
6817         with copy_reg rtx param.
6818         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
6819         Correct cases where code for ABI_V4 did not initialise the reg
6820         used to access frame.  Also leave frame_reg_rtx as sp for large
6821         frames that save no regs.
6823 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6825         PR middle-end/44133
6826         * tree-sra.c (create_access_replacement): New parameter rename, mark
6827         the replaement for renaming only when it is true.
6828         (get_access_replacement): Pass true in the rename parameter of
6829         create_access_replacement.
6830         (get_unrenamed_access_replacement): New function.
6831         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
6832         replacement declaration from it.
6834 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
6836         * function.c (try_fit_stack_local, add_frame_space): New static
6837         functions.
6838         (assign_stack_local_1): Use them.  Look for opportunities to use
6839         space previously wasted on alignment.
6840         * function.h (struct frame_space): New.
6841         (struct rtl_data): Add FRAME_SPACE_LIST member.
6842         * reload1.c (something_was_spilled): New static variable.
6843         (alter_reg): Set it.
6844         (reload): Test it in addition to testing if the frame size changed.
6846 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
6848         * config/s390/s390.c: Define sane prefetch settings and activate
6849         flag_prefetch_loop_arrays on -O3.
6850         * config/s390/s390.h: Declare that read can use write prefetch.
6852 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6854         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
6855         build.
6857 2010-05-16  Jan Hubicka  <jh@suse.cz>
6859         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
6860         function body; do not check stdarg field of struct function.
6862 2010-05-16  Jan Hubicka  <jh@suse.cz>
6864         * cgraph.c (dump_cgraph_node): Dump versionable flag.
6865         * cgraph.h (cgraph_local_info): Add versionable flag.
6866         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
6867         (ipcp_versionable_function_p): Use it.
6868         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
6869         versionable flag.
6871 2010-05-16  Jan Hubicka  <jh@suse.cz>
6873         * cgraph.c (cgraph_clone_node): Take decl argument and insert
6874         clone into hash when it is different from orig.
6875         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
6876         * cgraph.h (cgraph_clone_node): Update prototype.
6877         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
6878         (lto_cgraph_encoder_delete): Delete body map.
6879         (lto_cgraph_encoder_size): Move to header.
6880         (lto_cgraph_encoder_encode_body_p,
6881         lto_set_cgraph_encoder_encode_body): New.
6882         (lto_output_node): Do not take written_decls argument; output clone_of
6883         pointer.
6884         (add_node_to): Add include_body_argument; call
6885         lto_set_cgraph_encoder_encode_body on master of the clone.
6886         (add_references): Update use of add_node_to.
6887         (compute_ltrans_boundary): Likewise.
6888         (output_cgraph): Do not create written_decls bitmap.
6889         (input_node): Take nodes argument; stream in clone_of correctly.
6890         (input_cgraph_1): Update use of input_node.
6891         * lto-streamer-out.c (lto_output): Use encoder info to decide
6892         what bodies to output.
6893         * ipa-inline.c (cgraph_clone_inlined_nodes,
6894         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
6895         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
6896         (lto_cgraph_encoder_size): Define here.
6897         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
6898         Declare.
6900 2010-05-16  Richard Guenther  <rguenther@suse.de>
6902         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
6903         -fipa-type-escape.
6904         * ipa-type-escape.c (gate_type_escape_vars): Run when
6905         -fipa-struct-reorg runs.
6906         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
6907         * common.opt (fipa-type-escape): Remove.
6909 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6911         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
6912         (decode_options): Likewise.
6913         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
6915 2010-05-16  Jan Hubicka  <jh@suse.cz>
6917         * ipa.c (function_and_variable_visibility): Also bring local all
6918         aliases.
6920 2010-05-16  Richard Guenther  <rguenther@suse.de>
6922         * alias.c (nonoverlapping_memrefs_p): Remove use of
6923         IPA type-escape information.
6925 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
6927         * c-common.c (c_common_reswords): Add _Static_assert for C.
6928         * c-parser.c (c_token_starts_declaration,
6929         c_parser_next_token_starts_declaration,
6930         c_parser_static_assert_declaration_no_semi,
6931         c_parser_static_assert_declaration): New.
6932         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
6933         Handle static assertions if static_assert_ok.
6934         (c_parser_external_declaration, c_parser_declaration_or_fndef,
6935         c_parser_compound_statement_nostart, c_parser_label,
6936         c_parser_for_statement, c_parser_objc_methodprotolist,
6937         c_parser_omp_for_loop): All callers of
6938         c_parser_declaration_or_fndef changed.
6939         (c_parser_struct_declaration): Handle static assertions.
6940         (c_parser_compound_statement_nostart): Use
6941         c_parser_next_token_starts_declaration and
6942         c_token_starts_declaration to detect start of declarations.
6943         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
6944         Likewise.
6946 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
6948         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6949         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6950         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6951         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6952         (mmix_function_outgoing_value): Rename to...
6953         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
6954         (mmix_function_value_regno_p): Make static.
6955         (mmix_libcall_value): New function.
6956         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
6957         mmix_function_value_regno_p): Remove declaration.
6959 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6961         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
6962         BUILT_IN_ALLOCA if stack checking is enabled.
6964 2010-05-16  Richard Guenther  <rguenther@suse.de>
6966         * var-tracking.c (vars_copy_1): Inline ...
6967         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6968         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
6969         (variable_merge_over_cur): Adjust.  Merge asserts.
6970         (variable_merge_over_src): Likewise.
6971         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
6972         (variable_post_merge_new_vals): Merge asserts.
6973         (variable_post_merge_perm_vals): Likewise.
6974         (find_mem_expr_in_1pdv): Likewise.
6975         (dataflow_set_different_value): Remove.
6976         (onepart_variable_different_p): Merge asserts.
6977         (variable_different_p): Likewise.
6978         (dataflow_set_different_1): Inline ...
6979         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6980         (emit_notes_for_differences_1): Merge asserts.
6982 2010-05-16  Richard Guenther  <rguenther@suse.de>
6984         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
6985         * optabs.c (libfunc_decl_hash): Likewise.
6986         * varasm.c (emutls_decl): Likewise.
6988 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
6990         * c-decl.c: Don't include gimple.h.
6991         (merge_decls): Do not copy gimple_body.
6993 2010-05-15  Jason Merrill  <jason@redhat.com>
6995         * c.opt: Add -fnothrow-opt.
6997 2010-05-15  Jan Hubicka  <jh@suse.cz>
6999         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
7000         analyzed.
7001         * passes.c (ipa_write_summaries): Write all analyzed nodes.
7003 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
7005         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
7006         * Makefile.in: Add it.
7007         Fix all other Makefile dependencies for changes below.
7008         * tree.h: Include it instead of defining VEC primitives here.
7009         * gimple.h: Likewise.
7010         * rtl.h: Likewise.
7011         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
7012         * except.h: Include vecir.h, break dependence on tree.h.
7014         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
7015         Move from here...
7016         * tree-iterator.c: ...to here.
7017         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
7019         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
7020         tm_p.h.
7021         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
7022         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
7023         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
7024         tree-mudflap.h, and target.h.
7025         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
7026         predict.h, tree-inline.h, gimple.h, and langhooks.h.
7027         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
7028         Add FIXME for why gimple.h is still included (should be unnecessary
7029         since GCC 4.5 gimplification unit-at-a-time).
7030         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
7031         * c-pragma.c: Add FIXME for why function.h needs to be included just
7032         for cfun, at front-end level.
7033         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
7034         Do not include ggc.h, but include vecprim.h for VEC(char).
7035         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
7036         Explain why target.h is included.
7037         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
7038         Explain why gimple.h is included.
7039         * c-ppoutput.c: Do not include tm.h.
7040         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
7041         * c-parses.c: Explain why rtl.h is included, and that this (and only
7042         this) is also why tm.h must be included.
7043         Do not include except.h.
7044         * c-lang.c: Do not include ggc.h.
7046 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
7048         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
7050 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
7052         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
7053         unions by default if those structs and unions have no tags.  Do
7054         not condition anonymous struct and unions handling on flag_iso.
7055         Allow anonymous structs and unions for C1X.
7056         (finish_struct): Do not diagnose lack of named fields when
7057         anonymous structs and unions present for C1X.  Accept flexible
7058         array members in structure with anonymous structs or unions but no
7059         directly named fields.
7060         * doc/extend.texi (Unnamed Fields): Update.
7062 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
7064         * gimple.h (compare_field_offset): Rename into...
7065         (gimple_compare_field_offset): ...this.
7066         * gimple.c (compare_field_offset): Rename into...
7067         (gimple_compare_field_offset): ...this.  Compare the full access if
7068         the offset is self-referential.
7069         (gimple_types_compatible_p): Adjust for above renaming.
7070         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
7071         DECL_NONADDRESSABLE_P flag of fields before merging them.
7073 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
7075         * tree.h (ctor_to_list): Delete.
7076         * tree.c (ctor_to_list): Delete.
7078 2010-05-15  Jan Hubicka  <jh@suse.cz>
7080         * ipa-reference.c: Include toplev.h
7081         (is_proper_for_analysis): Only add to all_module_statics
7082         if it is allocated.
7083         (write_node_summary_p, stream_out_bitmap,
7084         ipa_reference_write_optimization_summary,
7085         ipa_reference_read_optimization_summary): New.
7086         (struct ipa_opt_pass_d pass_ipa_reference): Add
7087         optimization summary streaming.
7088         * lto-cgraph.c (referenced_from_this_partition_p,
7089         reachable_from_this_partition_p): New functions.
7090         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
7091         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
7092         * opts.c (decode_options): Enable ipa_reference.
7093         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
7094         * lto-streamer.h (referenced_from_this_partition_p,
7095         reachable_from_this_partition_p): Declare.
7097 2010-05-15  Richard Guenther  <rguenther@suse.de>
7099         PR tree-optimization/44038
7100         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
7101         taking the address of a V_C_E of a constant.
7103 2010-05-14  Jan Hubicka  <jh@suse.cz>
7105         * tree.h (memory_identifier_string): Remove.
7106         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
7107         (ipa_reference_global_vars_info_d): Remove statics_not_read and
7108         statics_not_written.
7109         (ipa_reference_optimization_summary_d): New structure.
7110         (ipa_reference_optimization_summary_t): New type and vector.
7111         (ipa_reference_vars_info_d): Embedd structures instead of using
7112         pointers.
7113         (reference_vars_to_consider): Remove out of GGC space.
7114         (module_statics_escape): Remove.
7115         (global_info_obstack): Rename to ...
7116         (optimization_summary_obstack): ... this one.
7117         (initialization_status_t): Remove.
7118         (memory_identifier_string): Remove.
7119         (get_reference_vars_info): Fix indenting.
7120         (set_reference_vars_info): Likewise.
7121         (get_reference_optimization_summary): New.
7122         (set_reference_optimization_summary): New.
7123         (get_global_reference_vars_info): Remove.
7124         (ipa_reference_get_read_global): Remove.
7125         (ipa_reference_get_written_global): Remove.
7126         (ipa_reference_get_not_read_global): Update.
7127         (ipa_reference_get_not_written_global): Update.
7128         (is_proper_for_analysis): Outlaw addressable.
7129         (propagate_bits): Update for new datastructures.
7130         (analyze_variable): Remove.
7131         (init_function_info): Update for new datastructures.
7132         (clean_function_local_data): Remove.
7133         (clean_function): Remove.
7134         (copy_global_bitmap): Use optimizations_summary_obstack.
7135         (duplicate_node_data): Duplicate optimization summary only.
7136         (remove_node_data): Remove optimization summary only.
7137         (generate_summary): Do not analyze variables; do not compute
7138         module_statics_escape; do not prune solutions by it.
7139         (read_write_all_from_decl): Fix typos in comments.
7140         (propagate): Doscover readonly and nonaddressable first;
7141         update for new datastructures; share global bitmaps.
7142         * ipa-reference.h (ipa_reference_get_read_global,
7143         ipa_reference_get_written_global): Remove.
7144         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
7145         * Makefile.in: Remove ipa-refereference from GT files.
7147 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
7149         PR debug/44112
7150         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
7151         for all SYMBOL_REF_DECLs.
7153 2010-05-14  Jan Hubicka  <jh@suse.cz>
7155         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
7156         (varpool_all_refs_explicit_p): New inline function.
7157         * ipa-reference.c: Update comment.
7158         (module_statics_written): Remove.
7159         (get_static_decl): Remove.
7160         (ipa_init): Do not initialize module_statics_written.
7161         (analyze_function): Likewise.
7162         (generate_summary): Likewise; do not compute module_statics_readonly
7163         and do not update variable flags.
7164         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
7165         * ipa.c: Inlucde flags.h
7166         (cgraph_local_node_p): New.
7167         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
7168         promote functions to local.
7169         (ipa_discover_readonly_nonaddressable_vars): New function.
7170         (function_and_variable_visibility): Use cgraph_local_node_p.
7171         * varpool.c (varpool_finalize_decl): Set force_output for
7172         DECL_PRESERVE_P vars.
7174 2010-05-14  Jan Hubicka  <jh@suse.cz>
7176         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
7178 2010-05-14  Richard Guenther  <rguenther@suse.de>
7180         PR tree-optimization/44119
7181         * tree-ssa-pre.c (eliminate): Properly mark replacement of
7182         a PHI node necessary.
7184 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7186         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
7188 2010-05-14  Jason Merrill  <jason@redhat.com>
7190         PR c++/44127
7191         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
7192         (gimple_call_set_nothrow): New.
7193         * gimple.c (gimple_build_call_from_tree): Call it.
7194         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
7196         PR c++/44127
7197         * gimplify.c (gimplify_seq_add_stmt): No longer static.
7198         * gimple.h: Declare it.
7199         * gimple.c (gimple_build_eh_filter): No ops.
7201 2010-05-14  Jan Hubicka  <jh@suse.cz>
7203         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
7204         nodes already in queue.
7205         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
7206         re-enqueueing node.
7208 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
7210         PR debug/44136
7211         * cfgexpand.c (expand_debug_expr): If non-memory op0
7212         has BLKmode, return NULL.
7214 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
7216         * config.gcc: Add support for --with-cpu option for bdver1.
7217         * config/i386/i386.h (TARGET_BDVER1): New macro.
7218         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
7219         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
7220         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
7221         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
7222         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
7223         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
7224         (processor_type): Add PROCESSOR_BDVER1.
7225         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
7226         processor_type in config/i386/i386.h.
7227         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
7228         movaps <reg, reg> instead of movapd <reg, reg> when replacing
7229         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
7230         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
7231         to emit packed xor instead of packed double/packed integer
7232         xor for SSE and AVX when moving a zero value.
7233         * config/i386/sse.md: Add check for
7234         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
7235         movapd/movdqa for SSE and AVX.
7236         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
7237         single logical operations i.e and, or and xor instead of packed double
7238         logical operations for SSE and AVX.
7239         * config/i386/i386-c.c (ix86_target_macros_internal):
7240         Add PROCESSOR_BDVER1.
7241         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
7242         (has_fma4, has_xop): New.
7243         * config/i386/i386.c (bdver1_cost): New variable.
7244         (m_BDVER1): New macro.
7245         (m_AMD_MULTIPLE): Add m_BDVER1.
7246         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
7247         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
7248         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
7249         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
7250         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
7251         x86_tune_sse_partial_reg_dependency,
7252         x86_tune_sse_unaligned_load_optimal,
7253         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
7254         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
7255         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
7256         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
7257         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
7258         Enable/disable for bdver1.
7259         (processor_target_table): Add bdver1_cost.
7260         (cpu_names): Add bdver1.
7261         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
7262          processor_alias_table.
7263         (ix86_expand_vector_move_misalign): Change.
7264         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
7265         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
7266         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
7267         of movupd/movdqu for SSE and AVX.
7268         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
7269         (ix86_tune_adjust_cost): Add code for bdver1.
7270         (standard_sse_constant_opcode): Add check for
7271         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
7272         of packed double xor for SSE and AVX.
7274 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
7276         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
7277         result to unsigned.
7279 2010-05-14  Tristan Gingold  <gingold@adacore.com>
7281         * toplev.c (default_debug_hooks): Remove this variable.
7282         (process_options): Remove assignments to default_debug_hooks.
7284 2010-05-14  Martin Jambor  <mjambor@suse.cz>
7286         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
7287         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
7288         * langhooks.h (struct lang_hooks_for_decls): Removed field
7289         fold_obj_type_ref.
7290         * tree.c (free_lang_data): Remove assignment to
7291         lang_hooks.fold_obj_type_ref.
7292         * tree.def (OBJ_TYPE_REF): Update comment.
7294 2010-05-14  Richard Guenther  <rguenther@suse.de>
7296         PR tree-optimization/44124
7297         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
7299 2010-05-14  Alan Modra  <amodra@gmail.com>
7301         PR target/44075
7302         * config/rs6000/rs6000.c (struct machine_function): Reorder
7303         fields for better packing.  Add lr_save_state.
7304         (rs6000_ra_ever_killed): Return lr_save_state if set.
7305         (rs6000_emit_eh_reg_restore): Set lr_save_state.
7307 2010-05-13  Jan Hubicka  <jh@suse.cz>
7309         * varpool.c (decide_is_variable_needed): Drop code checking
7310         TREE_SYMBOL_REFERENCED.
7312 2010-05-13  Jan Hubicka  <jh@suse.cz>
7314         * final.c (output_addr_const): Do not call mark_decl_referenced.
7315         * cgraphunit.c (process_function_and_variable_attributes): Use
7316         mark_needed_node dirrectly.
7317         (assemble_thunk): Do not call mark_decl_referenced.
7319 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
7321         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
7323 2010-05-13  Jeff Law  <law@redhat.com>
7325         * ira-conflicts.c (print_allocno_conflicts): New function broken out
7326         from...
7327         (print_conflicts): Call print_allocno_conflicts.
7329 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
7331         PR debug/44104
7332         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
7333         if it is NULL.
7335 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
7337         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
7338         t-mingw-w64 or t-mingw-w32 for multilib configuration.
7339         * config/i386/t-mingw-w32: New.
7340         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
7342 2010-05-13  Martin Jambor  <mjambor@suse.cz>
7344         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
7345         gimple-fold.c).
7346         * gimple-fold.c (get_base_binfo_for_type): New function.
7347         (gimple_get_relevant_ref_binfo): Likewise.
7348         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7349         (gimple_fold_obj_type_ref): Likewise.
7350         (fold_gimple_call): Simplify condition for folding virtual calls
7351         and call gimple_fold_obj_type_ref.
7352         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
7353         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7355 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
7357         * config/rs6000/rs6000-protos.h
7358         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
7359         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
7360         (rs6000_debug_mode_dependent_address)
7361         (rs6000_mode_dependent_address_ptr): Likewise.
7363 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
7365         PR debug/43983
7366         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
7367         by SRA.
7368         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
7369         * tree-sra.c (create_access_replacement): Call unshare_expr before
7370         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
7371         * dwarf2out.c: Include tree-flow.h.
7372         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
7373         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
7374         Handle DW_OP_bit_piece.
7375         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
7376         construct_piece_list, adjust_piece_list): New functions.
7377         (add_var_loc_to_decl): Handle SRA optimized variables.
7378         Adjust for var_loc_note to loc field renaming.
7379         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
7380         in VAR_LOCATION note.
7381         (new_loc_descr_op_bit_piece): New function.
7382         (dw_sra_loc_expr): New function.
7383         (dw_loc_list): Use it.  Don't handle the last range after the
7384         loop, handle it inside of the loop.  Adjust for var_loc_note
7385         to loc field renaming.
7386         (add_location_or_const_value_attribute): Only special case
7387         single entry loc lists if loc is NOTE_P.  Adjust for
7388         var_loc_note to loc field renaming.
7389         (dwarf2out_var_location): Don't set newloc->var_loc_note
7390         and newloc->next here.
7392 2010-05-12  Jan Hubicka  <jh@suse.cz>
7394         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
7395         flag.
7396         * cgraph.h (cgraph_only_called_directly_p,
7397         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
7398         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
7399         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
7400         (assemble
7401         * ipa.c (cgraph_remove_unreachable_nodes): Use
7402         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
7403         flags.
7404         * tree-inline.c (copy_bb): Check address_taken flag.
7405         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
7406         externally_visible flag.
7408 2010-05-12  Jason Merrill  <jason@redhat.com>
7410         PR bootstrap/44048
7411         PR target/44099
7412         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
7413         * sdbout.c (plain_type_1): Likewise.
7414         * dwarf2out.c (is_base_type): Likewise.
7415         (gen_type_die_with_usage): Likewise.  Generate
7416         DW_TAG_unspecified_type for any LANG_TYPE.
7418 2010-05-12  Jan Hubicka  <jh@suse.cz>
7420         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
7421         indrect edges too.
7422         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
7423         (cgraph_clone_edge): Update.
7424         (cgraph_node_remove_callees): Remove indirect calls too.
7425         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
7426         (cgraph_create_indirect_edge): Update prototype.
7427         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
7428         is_proper_for_analysis.
7429         (add_new_function, visited_nodes, function_insertion_hook_holder,
7430         get_local_reference_vars_info, mark_address_taken, mark_address,
7431         mark_load, mark_store, check_asm_memory_clobber, check_call,
7432         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
7433         (ipa_init): Do not initialize visited_nodes;
7434         function_insertion_hook_holder.
7435         (analyze_variable): Rewrite.
7436         (analyze_function): Rewrite.
7437         (copy_local_bitmap): Remove.
7438         (duplicate_node_dat): Do not duplicate local info.
7439         (generate_summary): Simplify to only walk cgraph.
7440         (write_node_summary_p, ipa_reference_write_summary,
7441         ipa_reference_read_summary): Remove.
7442         (propagate): Do not remove function insertion;
7443         generate summary.
7444         (pass_ipa_reference): NULLify summary handling fields.
7445         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
7446         (input_edge): Input ecf_flags.
7447         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
7448         (update_indirect_edges_after_inlining): Ignore edges with unknown
7449         param.
7451 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
7453         * implicit-zee.c: New file.
7454         * tree-pass.h (pass_implicit_zee): Declare.
7455         * passes.c (init_optimization_passes): Add zee pass.
7456         * common.opt (fzee): New flag.
7457         * timevar.def (TV_ZEE): Define.
7458         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
7459         and beyond.
7460         * Makefile.in (implicit-zee.o): Add new build file.
7462 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7463             Nathan Froyd  <froydnj@codesourcery.com>
7465         * c-common.c (sync_resolve_params): Remove write-only variable.
7467 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
7469         * target.h (struct gcc_target): Add mode_dependent_address_p field.
7470         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
7471         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
7472         * targhooks.c (default_mode_dependent_address_p): New function.
7473         * targhooks.h (default_mode_dependent_address_p): Declare function.
7474         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
7475         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
7476         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
7477         target hook. Change return type to bool.
7478         * recog.h (mode_dependent_address_p): Change return type to bool.
7480 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7481             Nathan Froyd  <froydnj@codesourcery.com>
7483         * tree-mudflap.c (build_function_type_0, build_function_type_1,
7484         build_function_type_2, build_function_type_3): Remove.
7485         (mudflap_init): Use build_function_type_list.
7487 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7488             Nathan Froyd  <froydnj@codesourcery.com>
7490         * coverage.c (build_fn_info_value): Call build_constructor instead of
7491         build_constructor_from_list.
7492         (build_ctr_info_value): Likewise.
7493         (build_gcov_info): Likewise.
7495 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
7497         * tree.c (build_constructor): Compute TREE_CONSTANT for the
7498         resultant constructor.
7499         (build_constructor_single): Don't set TREE_CONSTANT.
7500         (build_constructor_from_list): Don't compute TREE_CONSTANT.
7502 2010-05-12  Jan Hubicka  <jh@suse.cz>
7504         * cgraph.h (struct varpool_node): Add aux.
7505         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
7506         * varpool.c (varpool_remove_node): Do not remove initializer.
7507         (varpool_reset_queue): Export.
7508         (varpool_finalize_decl): Volatile vars are forced to be output.
7509         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
7510         replaced decl.
7511         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
7512         process_references, varpool_can_remove_if_no_refs): New functions.
7513         (cgraph_remove_unreachable_nodes): Handle variables too.
7515 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7517         PR target/44088
7518         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
7520 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
7522         PR middle-end/44085
7523         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
7524         change value of ORT_TASK.
7525         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
7526         (omp_notice_threadprivate_variable): New function.
7527         (omp_notice_variable): Call it for threadprivate variables.
7528         If enclosing ctx is a task, print enclosing task rather than
7529         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
7530         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
7531         if task has untied clause.
7533         PR debug/42278
7534         * dwarf2out.c (base_type_die): Don't add name attribute here.
7535         (modified_type_die): Instead of sizetype use
7536         its underlying original type.  If a DW_TAG_base_type doesn't
7537         have name added, add __unknown__.
7538         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
7539         always call force_type_die instead.
7541 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
7543         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
7544         for __stack_chk_guard.
7546 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7548         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
7549         don't call start_source_file debug hook here...
7550         (finish_options): ... but here, after outputting predefined and
7551         command line defines and undefs.
7553         PR middle-end/44071
7554         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
7555         no fallthru edge.
7556         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
7557         optimizing away empty bb with no successors, move over its
7558         footer chain to fallthru predecessor.
7559         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
7560         (rtl_split_edge): For asm goto call patch_jump_insn even if
7561         splitting fallthru edge.
7563         PR c++/44059
7564         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
7565         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
7566         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
7567         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
7568         on DW.ref.* decls.
7570         PR c++/44062
7571         * c-parser.c (c_parser_expression): Mark LHS of a comma
7572         expression as read if it is a decl, handled component or
7573         COMPOUND_EXPR with that on the RHS.
7574         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
7575         if it is a decl or handled component.
7577 2010-05-11  Jan Hubicka  <jh@suse.cz>
7579         * lto-symtab.c (lto_symtab_free): New function.
7580         * lto-streamer.h (lto_symtab_free): Declare.
7582 2010-05-11  Jan Hubicka  <jh@suse.cz>
7584         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
7585         that if function is needed it is reachable.
7586         (lto_output_node): See if it the function is reachable or referenced.
7587         (output_cgraph): Update call of lto_output_node.
7588         * lto-streamer.h (reachable_from_other_partition_p): Declare.
7590 2010-05-11  Jan Hubicka  <jh@suse.cz>
7592         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
7593         Mark as used.
7595 2010-05-11  Jan Hubicka  <jh@suse.cz>
7597         PR tree-optimize/44063
7598         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
7599         queue.
7600         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
7601         limits.
7602         (estimate_function_body_sizes): Compute sizes even when disregarding.
7604 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
7606         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
7608 2010-05-11  Jan Hubicka  <jh@suse.cz>
7610         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
7611         into every boundary.
7613 2010-05-11  Jan Hubicka  <jh@suse.cz>
7615         * matrix-reorg.c (matrix_reorg): Rebuild edges.
7617 2010-05-11  Jan Hubicka  <jh@suse.cz>
7619         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
7620         lto_streamer_cache_delete): Put nodes into heap.
7621         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
7622         heap.
7624 2010-05-11  Jan Hubicka  <jh@suse.cz>
7626         * cgraphbuild.c (cgraph_rebuild_references): New.
7627         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
7628         out extern inlines.
7629         * cgraph.h (cgraph_rebuild_references): Declare.
7630         * tree-inline.c (tree_function_versioning): Use it.
7631         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
7633 2010-05-11  Jan Hubicka  <jh@suse.cz>
7635         * cgraph.c: Include ipa-utils.h
7636         (cgraph_create_virtual_clone): Update references.
7637         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
7639 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7641         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
7642         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
7643         cache size.
7645 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7647         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
7649 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7651         * gcc.c (execute): For -### don't quote arguments that
7652         contain just alphanumerics and _/-. characters.
7653         * doc/invoke.texi: Document that change for -###.
7655         PR debug/44023
7656         * df-problems.c (struct dead_debug): Add to_rescan field.
7657         (dead_debug_init): Clear to_rescan field.
7658         (dead_debug_finish): Rescan all debug insns in to_rescan
7659         bitmap and free the bitmap.
7660         (dead_debug_insert_before): Instead of rescanning debug insns
7661         immediately queue their rescanning until dead_debug_finish.
7662         (df_note_bb_compute): After dead_debug_add do continue instead
7663         of break.
7665 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
7667         PR debug/44028
7668         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
7669         clear also INSN_REG_USE_LIST.
7671 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7673         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
7675 2010-05-10  Jan Hubicka  <jh@suse.cz>
7677         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
7678         commited change.
7680 2010-05-10  Jan Hubicka  <jh@suse.cz>
7682         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
7683         Allocate encoders.
7684         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
7685         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
7686         (lto_streamer_cache_create): Init alloc pool.
7687         (lto_streamer_cache_delete): Free alloc pool.
7688         * lto-streamer.h: Include alloc pool.
7689         (lto_streamer_cache_d): Use alloc pool.
7690         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
7692 2010-05-10  Jan Hubicka  <jh@suse.cz>
7694         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
7695         * cgraphbuild.c: Include except.h
7696         (record_type_list, record_eh_tables): New function.
7697         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
7699 2010-05-10  Jan Hubicka  <jh@suse.cz>
7701         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
7702         __frame_dummy_init_array_entry, force_to_data): Attribute as used
7703         rather than unused.
7705 2010-05-10  Michael Matz  <matz@suse.de>
7707         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
7708         (can_reassociate_p): Use FLOAT_TYPE_P.
7709         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
7710         (vect_force_simple_reduction): ... this.
7711         * tree-parloops.c (gather_scalar_reductions): Use
7712         vect_force_simple_reduction.
7713         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
7714         vect_is_simple_reduction, add modify argument, if true rewrite
7715         "a-b" into "a+(-b)".
7716         (vect_is_simple_reduction, vect_force_simple_reduction): New
7717         functions.
7718         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
7720 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7721             Vladimir Makarov  <vmakarov@redhat.com>
7723         PR rtl-optimization/44012
7724         * ira-build.c (remove_unnecessary_allocnos): Nullify
7725         regno_allocno_map of the removed allocno.
7727 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7729         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
7730         to /dev/null.
7731         * configure: Regenerate.
7733 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7735         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
7736         unused.
7737         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
7738         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
7739         support in Sun ld.
7740         * configure: Regenerate.
7742 2010-05-10  Richard Guenther  <rguenther@suse.de>
7744         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
7745         marked if the entry identifier is marked.
7747 2010-05-10  Richard Guenther  <rguenther@suse.de>
7749         * c-common.c (struct c_common_attributes): Add fnspec attribute.
7750         (handle_fnspec_attribute): New function.
7751         * gimple.h (gimple_call_return_flags): Declare.
7752         (gimple_call_arg_flags): Likewise.
7753         * gimple.c (gimple_call_arg_flags): New function.
7754         (gimple_call_return_flags): Likewise.
7755         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
7756         New argument flags.
7757         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
7758         return value flags.
7759         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
7760         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
7761         main work to ...
7762         (make_heapvar_for): ... this new function.
7763         (handle_rhs_call): Handle fnspec attribute argument specifiers.
7764         (handle_lhs_call): Likewise.
7765         (find_func_aliases): Adjust.
7767 2010-05-10  Richard Guenther  <rguenther@suse.de>
7769         PR tree-optimization/44050
7770         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
7772 2010-05-10  Wei Guozhi  <carrot@google.com>
7774         PR target/42879
7775         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
7777 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7779         PR c/10676
7780         * c-typeck.c (lookup_field): Take a type directly.  Update
7781         recursive calls.
7782         (build_component_ref): Update call to lookup_field.
7783         (set_init_label): Use lookup_field to find initialized field.
7784         Handle returned list of fields like a sequence of designators.
7786 2010-05-09  Richard Guenther  <rguenther@suse.de>
7788         PR middle-end/44024
7789         * fold-const.c (tree_single_nonzero_warnv_p): Properly
7790         handle &FUNCTION_DECL.
7792 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7794         PR c/4784
7795         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
7796         structures and unions recursively.
7797         (detect_field_duplicates): Move duplicate detection with a hash to
7798         detect_field_duplicates_hash.  Always use a hash if anonymous
7799         structures or unions are present.
7800         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
7801         give errors.
7803 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7805         PR target/44046
7806         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
7807         detect Atom, Core 2 and Core i7.
7809 2010-05-09  Richard Guenther  <rguenther@suse.de>
7811         * gcc.c (store_arg): Handle temporary file deletion for
7812         joined arguments.
7814 2010-05-09  Richard Guenther  <rguenther@suse.de>
7816         PR middle-end/44043
7817         * ipa-inline.c (estimate_function_body_sizes): Return after
7818         disregarding inline limits.
7820 2010-05-09  Richard Guenther  <rguenther@suse.de>
7822         * gcc.c (store_arg): Revert last change.
7824 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
7826         PR middle-end/28685
7827         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
7828         (optimize_ops_list): Call it.
7830 2010-05-08  Richard Guenther  <rguenther@suse.de>
7832         PR tree-optimization/44030
7833         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
7834         NECESSARY flag if we propagate from a inserted expression.
7836 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7838         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
7839         domain types as equal if they are both PLACEHOLDER_EXPRs.
7841 2010-05-08  Richard Guenther  <rguenther@suse.de>
7843         * lto-wrapper.c (run_gcc): Remove linker output from
7844         command line for LTRANS invocation.
7846 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7848         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7849         lto-macho as lto_binary_reader.
7850         * target.h (struct gcc_target): New hooks lto_start and lto_end.
7851         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
7852         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
7853         in lto_start and lto_end calls.
7854         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
7855         magic numbers.
7856         (scan_prog_file): Update is_elf_or_coff call.
7857         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
7859         * collect2.c (main): Fix enum comparison.
7861         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
7862         Add prototypes.
7863         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
7864         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
7865         and TARGET_ASM_LTO_END.
7866         * darwin.c: Include obstack.h and lto-streamer.h.
7867         (lto_section_names_offset, lto_section_names_obstack,
7868         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
7869         global variables.
7870         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
7871         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
7872         to a temporary file.
7873         (darwin_asm_lto_end): New function.  Restore asm_out_file.
7874         (darwin_asm_named_section): For LTO sections, replace the name with
7875         the offset of the section name in a string table, and build this
7876         table.
7877         (darwin_file_start): Initialize global vars for LTO support.
7878         (darwin_file_end): If output to asm_out_file was redirected, append it
7879         to the proper asm_out_file here.  Add the section names section.
7881 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7883         * c-pragma.c (pending_weak_d, pending_weak): New.
7884         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
7885         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
7886         handle_pragma_weak): Update the uses of pending_weaks.
7888 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7890         PR documentation/44016
7891         * doc/standards.texi (Standards): Link to unversioned
7892         cxx0x_status.html page.
7894 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
7896         PR target/43708
7897         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
7898         in addition to TREE_USED, to avoid "set but unused" warnings.
7900 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7902         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
7903         (is_loop_prefetching_profitable): Do not insert prefetches
7904         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
7905         times the prefetch ahead distance.
7907 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7909         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
7910         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
7911         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
7912         the unroll_factor.
7914 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7916         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
7917         a diagnostic info when the insn-to-mem ratio is too small.
7919 2010-05-07  Richard Guenther <rguenther@suse.de>
7921         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
7922         the linker plugin.
7923         (store_arg): Queue temp_filename for deletion instead of
7924         the whole argument.
7926 2010-05-07  Richard Guenther  <rguenther@suse.de>
7928         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
7929         (run_gcc): Handle LTRANS phase invocation.
7930         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
7932 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
7934         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
7935         this is also meaningful on PARM_DECLs and RESULT_DECLs.
7937 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7939         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
7941 2010-05-07  Richard Guenther  <rguenther@suse.de>
7943         PR tree-optimization/44020
7944         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
7945         code when PRE is not yet initialized.
7947 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7949         * config/mips/dbxmdebug.h: Remove.
7950         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
7952 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
7954         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
7955         with null pointer and also warn about ordered comparison of zero with
7956         pointer if -Wextra.
7958 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7960         * graphite-blocking.c
7961         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
7962         * graphite-clast-to-gimple.c
7963         (clast_to_gcc_expression): Same.
7964         (precision_for_value): Same.
7965         (precision_for_interval): Same.
7966         (gcc_type_for_interval): Same.
7967         (graphite_create_new_guard): Same.
7968         (compute_bounds_for_level): Same.
7969         (graphite_create_new_loop_guard): Same.
7970         * graphite-interchange.c
7971         (build_linearized_memory_access): Same.
7972         (pdr_stride_in_loop): Same.
7973         (memory_strides_in_loop_1): Same.
7974         (memory_strides_in_loop): Same.
7975         (extend_scattering): Same.
7976         (psct_scattering_dim_for_loop_depth): Same.
7977         (pbb_number_of_iterations): Same.
7978         * graphite-poly.h
7979         (debug_iteration_domains): Same.
7980         * graphite-ppl.c
7981         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7982         (ppl_set_inhomogeneous_gmp): Same.
7983         (ppl_strip_loop): Same.
7984         (ppl_lexico_compare_linear_expressions): Same.
7985         (ppl_read_polyhedron_matrix): Same.
7986         (ppl_max_for_le_pointset): Same.
7987         * graphite-ppl.h
7988         (ppl_read_polyhedron_matrix): Same.
7989         (tree_int_to_gmp): Same.
7990         (gmp_cst_to_tree): Same.
7991         (ppl_set_inhomogeneous): Same.
7992         (ppl_set_inhomogeneous_tree): Same.
7993         (ppl_set_coef): Same.
7994         (ppl_set_coef_tree): Same.
7995         * graphite-sese-to-poly.c
7996         (build_pbb_scattering_polyhedrons): Same.
7997         (build_scop_scattering): Same.
7998         (scan_tree_for_params_right_scev): Same.
7999         (scan_tree_for_params): Same.
8000         (find_params_in_bb): Same.
8001         (find_scop_parameters): Same.
8002         (add_upper_bounds_from_estimated_nit): Same.
8003         (build_loop_iteration_domains): Same.
8004         (add_condition_to_domain): Same.
8005         (pdr_add_memory_accesses): Same.
8007 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8009         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
8010         CLooG's value_* macros to their respective mpz_* counterparts.
8011         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
8012         (graphite_create_new_loop_guard): Same.
8013         * graphite-interchange.c (build_linearized_memory_access): Same.
8014         (pdr_stride_in_loop): Same.
8015         (memory_strides_in_loop_1): Same.
8016         (1st_interchange_profitable_p): Same.
8017         * graphite-poly.c (extend_scattering): Same.
8018         (psct_scattering_dim_for_loop_depth): Same.
8019         (pbb_number_of_iterations): Same.
8020         (pbb_number_of_iterations_at_time): Same.
8021         * graphite-poly.h (new_1st_loop): Same.
8022         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
8023         (oppose_constraint): Same.
8024         (insert_constraint_into_matrix): Same.
8025         (ppl_set_inhomogeneous_gmp): Same.
8026         (ppl_set_coef_gmp): Same.
8027         (ppl_strip_loop): Same.
8028         (ppl_lexico_compare_linear_expressions): Same.
8029         (ppl_max_for_le_pointset): Same.
8030         (ppl_min_for_le_pointset): Same.
8031         (ppl_build_realtion): Same.
8032         * graphite-ppl.h (gmp_cst_to_tree): Same.
8033         (ppl_set_inhomogeneous): Same.
8034         (ppl_set_inhomogeneous_tree): Same.
8035         (ppl_set_coef): Same.
8036         (ppl_set_coef_tree): Same.
8037         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
8038         (build_scop_scattering): Same.
8039         (add_value_to_dim): Same.
8040         (scan_tree_for_params_right_scev): Same.
8041         (scan_tree_for_params_int): Same.
8042         (scan_tree_for_params): Same.
8043         (find_params_in_bb): Same.
8044         (find_scop_parameters): Same.
8045         (add_upper_bounds_from_estimated_nit): Same.
8046         (build_loop_iteration_domains): Same.
8047         (create_linear_expr_from_tree): Same.
8048         (add_condition_to_domain): Same.
8049         (pdr_add_memory_accesses): Same.
8051 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
8052             Jason Merrill  <jason@redhat.com>
8054         * c-common.c (c_common_reswords): Add nullptr.
8055         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
8056         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
8057         (gen_type_die_with_usage): Likewise.
8058         * dbxout.c (dbxout_type): Likewise.
8059         * sdbout.c (plain_type_1): Likewise.
8061 2010-05-06  Jason Merrill  <jason@redhat.com>
8063         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
8064         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
8065         ret appropriately.
8066         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
8068         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
8069         stripping WITH_SIZE_EXPR.
8070         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
8071         change.
8073 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8075         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
8076         list of obsolete configurations.
8077         Disabled check for obsolete configurations.
8078         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
8079         Removed support for previous versions.
8080         * config/mips/iris.h: Removed.
8081         * config/mips/iris5.h: Removed.
8082         * config/mips/iris6.h: Merged old iris.h contents.
8083         (TARGET_IRIX): Removed.
8084         (DRIVER_SELF_SPECS): Removed mabi=32.
8085         (IDENT_ASM_OP): Removed undef.
8086         (STARTFILE_SPEC): Removed mabi=32.
8087         (ENDFILE_SPEC): Likewise.
8088         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
8089         (MACHINE_TYPE): Update for IRIX 6.5.
8090         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
8091         TARGET_IRIX by TARGET_IRIX6.
8092         (mips_file_start): Likewise.
8093         (mips_output_external): Remove IRIX 5/6 O32 support.
8094         (mips_output_function_prologue): Likewise.
8095         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
8096         TARGET_IRIX6.
8097         (TARGET_CPU_CPP_BUILTINS): Likewise.
8098         (TARGET_IRIX): Removed.
8099         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
8100         (MULTILIB_DIRNAMES): Removed 32.
8101         (MULTILIB_OSDIRNAMES): Removed ../lib.
8102         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
8103         (Specific, mips-sgi-irix5): Document removal.
8104         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
8105         Remove references to older IRIX 6 releases and the O32 ABI.
8107 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
8109         PR bootstrap/43994
8110         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
8111         instead of DF_REF_REAL_REG.
8113 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
8115         PR target/43888
8116         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
8117         handling to still return true for x64 targets.
8119 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8121         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
8123 2010-05-06  Jan Hubicka  <jh@suse.cz>
8125         PR tree-optimization/43791
8126         * ipa-inline.c (update_caller_keys): Remove bogus
8127         disregard_inline_limits check.
8129 2010-05-06  Michael Matz  <matz@suse.de>
8131         PR tree-optimization/43984
8132         * tree-ssa-pre.c (inserted_phi_names): Remove.
8133         (inserted_exprs): Change to bitmap.
8134         (create_expression_by_pieces): Set bits, don't append to vector.
8135         (insert_into_preds_of_block): Don't handle inserted_phi_names.
8136         (eliminate): Don't look at inserted_phi_names, remove deleted
8137         insns from inserted_exprs.
8138         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
8139         (init_pre, fini_pre): Allocate and free bitmaps.
8140         (execute_pre): Insert insns on edges before elimination.
8142 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8144         * tree.c (initializer_zerop): Handle STRING_CST.
8146 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8148         PR 40989
8149         * doc/invoke.texi (Wimplicit): Document as C only.
8150         * opts.c (common_handle_option): Add argument kind.
8151         (handle_option): Rename as read_cmdline_option. Factor out code to...
8152         (handle_option): ... here. New.
8153         (handle_options): Rename as read_cmdline_options.
8154         (decode_options): Update call.
8155         (set_option): Use option index instead of option pointer. Classify
8156         diagnostics correctly.
8157         (enable_warning_as_error): Call handle_option.
8158         * opts.h (set_option): Update declaration.
8159         (handle_option): Declare.
8160         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
8161         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
8162         * c-opts.c (set_Wimplicit): Delete.
8163         (c_family_lang_mask): New static constant.
8164         (c_common_handle_option): Add argument kind. Use handle_option
8165         instead of set_Wimplicit.
8166         (c_common_post_options): warn_implicit and warn_implicit_int
8167         are disabled by default.
8168         * c-common.c (warn_implicit): Do not define here.
8169         * c-common.h (warn_implicit): Do not declare here.
8170         (c_common_handle_option): Update declaration.
8171         * lto-opts.c (lto_reissue_options): Update call to set_option.
8173 2010-05-06  Richard Guenther  <rguenther@suse.de>
8175         PR tree-optimization/43571
8176         * domwalk.c (walk_dominator_tree): Walk the dominator
8177         sons in more optimal order.
8179 2010-05-06  Richard Guenther  <rguenther@suse.de>
8181         PR tree-optimization/43934
8182         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
8183         (stmt_cost): Likewise.
8184         (extract_true_false_args_from_phi): New helper.
8185         (determine_max_movement): For PHI nodes verify we can hoist them
8186         and compute their cost.
8187         (determine_invariantness_stmt): Handle PHI nodes.
8188         (move_computations_stmt): Likewise.  Hoist PHI nodes in
8189         if-converted form using COND_EXPRs.
8190         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
8191         (tree_ssa_lim): Likewise.
8192         * tree-flow.h (tree_ssa_lim): Adjust prototype.
8193         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
8195 2010-05-06  Richard Guenther  <rguenther@suse.de>
8197         PR tree-optimization/43987
8198         * tree-ssa-structalias.c (could_have_pointers): For possibly
8199         address-taken variables force pointers to be recorded.
8200         (create_variable_info_for_1): Likewise.
8201         (push_fields_onto_fieldstack): Pass in wheter all fields
8202         must have pointers.
8203         (find_func_aliases): Query types instead of vars whether
8204         they contain pointers where appropriate.
8206 2010-05-06  Jan Hubicka  <jh@suse.cz>
8208         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
8209         (record_reference, mark_address, mark_load, mark_store): Record
8210         references.
8211         (record_references_in_initializer): Update call of record_references.
8212         (rebuild_cgraph_edges): Remove all references before rebuiding.
8213         * cgraph.c (cgraph_create_node): Clear ref list.
8214         (cgraph_remove_node): Remove references.
8215         (dump_cgraph_node): Dump references.
8216         (cgraph_clone_node): Clone references.
8217         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
8218         (struct cgraph_node, varpool_node): Add ref_lst.
8219         * ipa-ref.c: New file.
8220         * ipa-ref.h: New file.
8221         * ipa-ref-inline.h: New file.
8222         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
8223         (referenced_from_other_partition_p): New function.
8224         (lto_output_varpool_node): Take set arugment; call
8225         referenced_from_other_partition.
8226         (lto_output_ref): New.
8227         (add_references): New.
8228         (output_refs): New.
8229         (output_cgraph): Compute boundary based on references; output refs.
8230         (output_varpool): Accept cgraph_node_set argument.
8231         (input_ref): New.
8232         (input_refs): New.
8233         (input_cgraph): Call input_refs.
8234         * lto-section-in.c (lto_section_name): Add refs.
8235         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
8236         (ipa-ref.o): New file.
8237         * varpool.c (varpool_node): Clear ipa ref list.
8238         (varpool_remove_node): Remove references.
8239         (dump_varpool_node): Dump references.
8240         (varpool_assemble_decl): Only compile finalized ones.
8241         (varpool_extra_name_alias): Initialize ref list.
8242         * lto-streamer.c (lto-get_section_name): Add .refs section.
8243         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
8244         (referenced_from_other_partition_p): Declared.
8246 2010-05-06  Ira Rosen  <irar@il.ibm.com>
8248         PR tree-optimization/43901
8249         * tree-vect-stmts.c (vectorizable_call): Assert that vector
8250         type is not NULL if it's transformation phase, and return
8251         FALSE if it's analysis.
8252         (vectorizable_conversion, vectorizable_operation,
8253         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
8255 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
8257         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
8258         Delete.
8259         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
8260         New define.
8261         * config/mips/mips-protos.h
8262         (mips_small_register_classes_for_mode_p): Delete prototype.
8264 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
8266         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
8267         * config/arm/arm.c (multiple_operation_profitable_p,
8268         compute_offset_order): New static functions.
8269         (load_multiple_sequence, store_multiple_sequence): Use them.
8270         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
8271         memory offsets, not register numbers.
8272         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
8274 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
8276         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
8277         (get_pending_sizes, put_pending_size, put_pending_sizes):
8278         Update the uses of pending_sizes.
8279         * c-decl.c (store_parm_decls): Likewise.
8280         * c-tree.h (struct c_arg_info): Likewise.
8281         * tree.h: Update the prototype for get_pending_sizes and
8282         put_pending_sizes.
8284 2010-05-05  Jason Merrill  <jason@redhat.com>
8286         PR debug/43370
8287         * c-common.c (handle_aligned_attribute): Respect
8288         ATTR_FLAG_TYPE_IN_PLACE.
8290         PR testsuite/43758
8291         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
8292         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
8293         (TARGET_INITIALIZER): Use it.
8294         * c-common.c (attribute_takes_identifier_p): Call it.
8295         * c-common.h: Update prototype.
8296         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
8297         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
8299 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
8301         PR debug/43950
8302         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
8303         DW_ID_down_case for Fortran compilation units.
8305 2010-05-05  Jan Hubicka  <jh@suse.cz>
8307         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
8308         handle aliases.
8310 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
8312         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
8313         a variable-sized RESULT_DECL.
8315 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
8317         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
8319 2010-05-05  Jason Merrill  <jason@redhat.com>
8321         PR c++/43787
8322         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
8323         returns GS_OK.
8324         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
8326 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
8327             Jakub Jelinek  <jakub@redhat.com>
8329         PR debug/43478
8330         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
8331         (dead_debug_init, dead_debug_finish): New functions.
8332         (dead_debug_add, dead_debug_insert_before): Likewise.
8333         (df_note_bb_compute): Initialize a dead_debug object, add dead
8334         debug uses to it, insert debug bind insns before death insns,
8335         reset debug insns that refer to pending uses at the end.
8336         * rtl.h (make_debug_expr_from_rtl): New prototype.
8337         * varasm.c (make_debug_expr_from_rtl): New function.
8339 2010-05-05  Jan Hubicka  <jh@suse.cz>
8341         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
8342         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
8343         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
8344         lto_varpool_encoder_deref, lto_varpool_encoder_size,
8345         lto_varpool_encoder_encode_initializer_p,
8346         lto_set_varpool_encoder_encode_initializer): New functions.
8347         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
8348         call output_varpool.
8349         (input_varpool_node): Do not always set analyzed.
8350         (input_cgraph_1): Return vector of cgraph nodes.
8351         (input_varpool_1): Return vector of varpools.
8352         (input_cgraph): Free the vectors.
8353         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8354         output only initializers needed.
8355         (lto_output): Only call output_cgraph.
8356         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
8357         * lto-section-out.c (lto_new_out_decl_state): Initialize
8358         state->varpool_node_encoder.
8359         * lto-streamer.h (lto_varpool_encoder_d): New.
8360         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
8361         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
8362         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
8363         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
8364         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
8365         Declare.
8366         (output_varpool, input_varpool): Remove declarations.
8368 2010-05-05  Jan Hubicka  <jh@suse.cz>
8370         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
8371         with body can prevail.
8373 2010-05-05  Jan Hubicka  <jh@suse.cz>
8375         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
8376         size.
8378 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8380         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
8382         * gengtype.h (erro_at_line): Constify pos argument.
8384         * gengtype.c: Include hashtab.h.
8385         (enum gc_used): Document GC_MAYBE_POINTED_TO.
8386         (error_at_line): Constify pos argument.
8387         (do_typedef): Initialize p->opt field.
8388         (get_file_gtfilename): Fix comment typo.
8389         (struct walk_type_data): Constify line field.
8390         (get_output_file_for_structure): New function.
8391         (write_local_func_for_structure): Constify orig_s argument.
8392         Use get_output_file_for_structure.
8393         (write_func_for_structure): Use get_output_file_for_structure.
8394         (INDENT): New define.
8395         (dump_pair, dump_type, dump_type_list, dump_typekind)
8396         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
8397         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
8398         functions.
8399         (seen_types): New variable.
8400         (main): New variable do_dump.  Process "-d" command line option.
8401         Call dump_everything if dump requested.
8403 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
8405         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
8406         in a temporary instead of invoking the macro multiple times.
8407         (track_expr_p): Likewise.
8409 2010-05-04  Neil Vachharajani <nvachhar@google.com>
8411         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
8412         per new semantics.
8413         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
8414         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
8415         conditions for printing notes.
8416         * common.opt (-Wcoverage-mismatch): Allow negative, default to
8417         true, update documentation.
8418         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
8420 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
8422         PR c/43981
8423         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
8424         on dimen.
8426 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8428         PR target/43799
8429         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
8430         (*sse_prologue_save_insn1): Likewise.
8431         (SSE prologue save splitter): Likewise.
8433 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8435         * tree.c (free_lang_data_in_one_sizepos): New inline function.
8436         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
8437         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
8438         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
8439         all decls.  Call it on DECL_FIELD_OFFSET of fields.
8440         (find_decls_types_r): Follow DECL_VALUE_EXPR.
8441         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
8443 2010-05-04  Martin Jambor  <mjambor@suse.cz>
8445         * tree-sra.c (build_access_from_expr_1): The first parameter type
8446         changed to simple tree.
8447         (build_access_from_expr): Likewise, gsi parameter was eliminated.
8448         (scan_assign_result): Renamed to assignment_mod_result, enum elements
8449         renamed as well.
8450         (build_accesses_from_assign): Removed all parameters except for a
8451         simple gimple statement.  Now returns a simple bool.
8452         (scan_function): All non-analysis parts moved to separate functions
8453         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
8454         parameters and updated both callers.
8455         (sra_modify_expr): Removed parameter data.
8456         (sra_modify_function_body): New function.
8457         (perform_intra_sra): Call sra_modify_function_body to modify the
8458         function body.
8459         (replace_removed_params_ssa_names): Parameter data changed into
8460         adjustments vector.
8461         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
8462         changed the parameter dont_convert to convert with the opposite
8463         meaning.
8464         (sra_ipa_modify_assign): Parameter data changed into adjustments
8465         vector, return value changed to bool.
8466         (ipa_sra_modify_function_body): New function.
8467         (sra_ipa_reset_debug_stmts): Updated a comment.
8468         (modify_function): Use ipa_sra_modify_function_body to modify function
8469         body.
8471 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8473         PR middle-end/43671
8474         * alias.c (true_dependence): Handle the same VALUE in x and mem.
8475         (canon_true_dependence): Likewise.
8476         (write_dependence_p): Likewise.
8478 2010-05-04  Jan Hubicka  <jh@suse.cz>
8480         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
8481         * cgraphbuild.c: Include ipa-utils.h
8482         (record_reference_ctx): New struct.
8483         (record_reference): Simplify to work on initializers; not statements.
8484         (mark_address, mark_load, mark_store): New.
8485         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8486         walk PHI nodes too.
8487         (record_references_in_initializer): Update use of record_reference.
8488         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8489         walk PHI nodes too.
8491 2010-05-04  Jan Hubicka  <jh@suse.cz>
8493         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
8494         node will be removed anyway.
8495         (lto_varpool_replace_node): Allow also unanalyzed nodes;
8496         relink aliases of node into prevailing node.
8497         * varpool.c (varpool_remove_node): Remove aliases properly;
8498         when removing node, remove all its aliases too; remove DECL_INITIAL
8499         of removed node; ggc_free the varpool node.
8501 2010-05-04  Richard Guenther  <rguenther@suse.de>
8503         PR tree-optimization/43879
8504         * tree-ssa-structalias.c (alias_get_name): Use
8505         DECL_ASSEMBLER_NAME if available.
8506         (create_function_info_for): Return the varinfo node.
8507         (ipa_pta_execute): Associate same-body aliases and extra names
8508         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
8510 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8512         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
8514 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
8516         PR bootstrap/43964
8517         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
8518         only if HONOR_REG_ALLOC_ORDER is not defined.
8520 2010-05-04  Richard Guenther  <rguenther@suse.de>
8522         PR tree-optimization/43949
8523         * tree-vrp.c (extract_range_from_binary_expr): Only handle
8524         TRUNC_MOD_EXPR.
8526 2010-04-26  Jason Merrill  <jason@redhat.com>
8528         * c.opt (-fstrict-enums): New.
8529         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
8531 2010-05-03  David Ung <davidu@mips.com>
8532             James E. Wilson  <wilson@codesourcery.com>
8534         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
8535         emit the trap instruction before the divide for TUNE_74K.
8537 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
8539         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
8540         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
8541         based on the above, for new target hook.
8543         * hooks.c (hook_bool_mode_true): New generic hook.
8544         * hooks.h (hook_bool_mode_true): Add prototype.
8546         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
8547         target hook.
8548         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
8549         target hook, set to hook_bool_mode_false.
8550         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
8551         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
8552         with targetm.small_register_classes_for_mode_p.
8553         (find_reusable_reload): Likewise.
8554         (combine_reloads): Likewise.
8555         * reload1.c (reload_as_needed): Likewise.
8556         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
8557         * ifcvt.c (noce_process_if_block, check_cond_move_block,
8558         dead_or_predicable): Likewise.
8559         * regmove.c (optimize_reg_copy_1): Likewise.
8560         * calls.c (prepare_call_address): Likewise.
8561         (precompute_register_parameters): Likewise.
8563         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
8564         hook definition.
8565         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
8566         implementation of the hook that considers all register classes
8567         small except for SH64.
8568         (sh_override_options): Use the new hook.
8569         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
8570         Add prototype.
8572         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
8573         hook definition.
8574         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
8575         implementation of the hook that considers all register classes
8576         small for THUMB1.
8577         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
8578         Add prototype.
8580         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
8581         hook definition.
8582         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
8583         implementation of the hook that considers all register classes
8584         small for MIPS16.
8585         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
8586         Add prototype.
8588         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
8589         hook definition.
8590         * config/m32c/m32c.h: Likewise.
8591         * config/pdp11/pdp11.h: Likewise.
8592         * config/avr/avr.h: Likewise.
8593         * config/xtensa/xtensa.h: Likewise.
8594         * config/m68hc11/m68hc11.h: Likewise.
8595         * config/mn10300/mn10300.h: Likewise.
8596         * config/mcore/mcore.h: Likewise.
8597         * config/h8300/h8300.h: Likewise.
8598         * config/bfin/bfin.h: Likewise.
8600         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
8601         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
8603 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
8605         * double-int.h (tree_to_double_int): Remove macro.
8606         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
8607         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8608         (tree_to_double_int): New function.
8609         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
8610         Move ...
8611         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8613 2010-05-03  Richard Guenther  <rguenther@suse.de>
8615         PR tree-optimization/43971
8616         * tree-ssa-structalias.c (get_constraint_for_1): Fix
8617         constraints in the !flag_delete_null_pointer_checks case.
8619 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
8621         PR debug/43972
8622         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
8623         result mode matches original rtl mode.
8625 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
8627         PR target/43888
8628         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
8630 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8632         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
8633         when processing flag options.
8635 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8637         * gcov-iov.c (main): Change format string placeholder
8638         from %#08x to 0x%08x.
8639         * genchecksum.c (dosum): Change format string placeholder
8640         from %#02x to 0x%02x.
8642 2010-05-02  Richard Guenther  <rguenther@suse.de>
8644         PR tree-optimization/43879
8645         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
8647 2010-05-02  Bruno Haible  <bruno@clisp.org>
8649         * doc/extend.texi (Function Attributes): Fix a typo.
8651 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8653         Revert:
8654         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
8655         placeholder from 0x%x to %#x.
8656         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8657         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
8658         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
8659         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
8660         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
8661         * config/i386/i386.c (ix86_target_string): Ditto.
8662         * config/i386/i386.c (output_pic_addr_const): Ditto.
8663         (print_operand): Ditto.
8665 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8667         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
8668         placeholder from 0x%x to %#x.
8669         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
8670         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
8671         (ASM_OUTPUT_DEBUG_DATA): Ditto.
8672         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
8673         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
8674         * optc-gen.awk: Ditto.
8675         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
8676         (HOST_WIDE_INT_PRINT_HEX): Ditto.
8677         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
8678         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8680 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8682         * target.h (struct calls): Add function_value_regno_p field.
8683         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
8684         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
8685         * targhooks.c (default_function_value_regno_p): New function.
8686         * targhooks.h (default_function_value_regno_p): Declare function.
8687         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
8688         * builtins.c. (apply_result_size): (Ditto.).
8689         * combine.c. (likely_spilled_retval_p): (Ditto.).
8690         * mode-switching.c. Include 'target.h'.
8691         (create_pre_exit): Use function_value_regno_p hook.
8692         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
8693         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
8694         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
8696         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
8697         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
8698         (ix86_function_value_regno_p): Declare as static, change argument
8699         type to const unsigned int.
8700         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
8702 2010-05-01  Richard Guenther  <rguenther@suse.de>
8704         PR tree-optimization/43949
8705         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
8706         types.
8707         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
8709 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8711         * rtl.h (CONST_DOUBLE_P): Define.
8712         (rtx_to_double_int): Declare.
8713         * emit-rtl.c (rtx_to_double_int): New function.
8714         * dwarf2out.c (insert_double): New function.
8715         (loc_descriptor, add_const_value_attribute): Clean up, use
8716         rtx_to_double_int and insert_double functions.
8718 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
8720         * doc/extend.texi (Inline): Add missing return keyword to examples.
8721         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
8722         "command-line".
8724 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
8726         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
8727         the variable part of the offset as well.  Use highest_pow2_factor for
8728         all alignment checks.
8730 2010-04-30  Richard Guenther  <rguenther@suse.de>
8732         PR tree-optimization/43879
8733         * tree-ssa-structalias.c (type_could_have_pointers): Functions
8734         can have pointers.
8736 2010-04-30  Jan Hubicka  <jh@suse.cz>
8738         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
8739         varpool.
8740         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
8742 2010-04-30  Jan Hubicka  <jh@suse.cz>
8744         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
8745         New.
8746         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
8747         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
8748         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
8749         cgraph_node_set_needs_ltrans_p): Remove.
8751 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8753         * sdbout.c: Include vec.h, do not include varray.h.
8754         (deferred_global_decls, sdbout_global_decl,
8755         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
8756         * toplev.c: Do not include varray.h.
8757         (dump_memory_report): Do not dump VARRAY statistics.
8758         * gengtype.c (open_base_file): Ignore varray.h.
8759         * Makefile.in: Update for abovementioned changes.
8760         Remove all traces of varray.c and varray.h.
8761         * varray.c: Remove file.
8762         * varray.h: Remove file.
8764 2010-04-30  Jan Hubicka  <jh@suse.cz>
8766         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
8767         references.
8769 2010-04-30  Jan Hubicka  <jh@suse.cz>
8771         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
8772         needed.
8774 2010-04-30  Richard Guenther  <rguenther@suse.de>
8776         * tree-ssa-structalias.c (get_constraint_for_1): Generate
8777         constraints for CONSTRUCTOR.
8779 2010-04-30  Richard Guenther  <rguenther@suse.de>
8781         PR lto/43946
8782         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
8783         first after all lowering passes.
8785 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8787         * toplev.c: Include varray.h for statistics dumping.
8788         * tree.h: Do not declare varray_head_tag.
8789         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
8790         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
8791         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
8792         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
8793         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
8794         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
8795         c-common.c, c-common.h, reg-stack.c, basic-block.h,
8796         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
8797         include varray.h.
8798         * Makefile.in: Update for abovementioned changes.
8800 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
8802         PR debug/43942
8803         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
8805 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8807         * config/picochip/picochip.c (picochip_legitimize_address): Define.
8808         Use this function to do machine-specific conversion.
8809         (picochip_legitimize_reload_address): Likewise.
8810         (picochip_legitimate_address_p): Check valid base register only if
8811         strict.
8812         (picochip_check_conditional_copy): Check for modw only if opnd is
8813         register.
8814         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
8815         to call the function in c.
8816         * config/picochip/picochip-protos.h
8817         (picochip_legitimize_reload_address): Define.
8818         * config/picochip/picochip.md (supported_compare1): Define.
8820 2010-04-30  Jan Hubicka  <jh@suse.cz>
8822         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
8823         (cgraph_global_info): Remove inlined.
8824         (LTO_cgraph_tag_names): Remove.
8825         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
8826         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
8827         simplify cgraph tags and document.
8828         (lto_output_node): Use only LTO_cgraph_unavail_node and
8829         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
8830         for_functions_valid, global info, process and output flags.
8831         (input_overwrite_node): Initialize estimated stack size and
8832         estimated growth.  Do not read flags we no longer store.
8833         (input_node): Likewise do not read info no longer stored.
8834         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
8835         flag.
8837 2010-04-30  Richard Guenther  <rguenther@suse.de>
8839         PR tree-optimization/43879
8840         * tree-ssa-structalias.c (get_constraint_for_1): Properly
8841         handle non-zero initializers.
8843 2010-04-30  Richard Guenther  <rguenther@suse.de>
8845         * builtins.c (fold_builtin_1): Delete free (0).
8847 2010-04-29  Jan Hubicka  <jh@suse.cz>
8849         * gengtype.c (open_base_files): Add lto-streamer.h
8850         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
8851         (pass_ipa_cp): GGC collect.
8852         * toplev. (compile_file): Do not output symbols.
8853         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
8854         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
8855         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
8856         * lto-section-in.c: Include ggc.h
8857         (lto_new_in_decl_state): Alloc in GGC.
8858         (lto_delete_in_decl_state): Likewise.
8859         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
8860         Collect.
8862 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8864         PR target/42895
8865         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
8866         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
8867         (HONOR_REG_ALLOC_ORDER): Describe new macro.
8868         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
8869         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
8870         account only if HONOR_REG_ALLOC_ORDER is not defined.
8871         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
8872         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
8874 2010-04-29  Jon Grant  <04@jguk.org>
8876         * collect2.c (vflag): Change type from int to bool.
8877         (debug): Likewise.
8878         (helpflag): New global bool.
8879         (main): Set vflag and debug with boolean, not integer truth values.
8880         Accept new "--help" option and output usage text if found.
8881         * collect2.h (vflag): Update prototype.
8882         (debug): Likewise.
8884 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8886         PR bootstrap/43936
8887         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
8889 2010-04-29  Richard Guenther  <rguenther@suse.de>
8891         PR bootstrap/43935
8892         * plugin.h (invoke_plugin_callbacks): Annotate arguments
8893         with ATTRIBUTE_UNUSED.
8895 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8897         PR target/43921
8898         * config/i386/i386.c (get_some_local_dynamic_name): Replace
8899         INSN_P with NONDEBUG_INSN_P.
8900         (distance_non_agu_define): Likewise.
8901         (distance_agu_use): Likewise.
8903 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8905         From Dominique d'Humieres <dominiq@lps.ens.fr>
8906         PR bootstrap/43858
8907         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
8908         test_set.
8910 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
8912         * plugin.h (invoke_plugin_callbacks): New inline function.
8913         * plugin.c (flag_plugin_added): New global flag.
8914         (add_new_plugin): Initialize above flag.
8915         (invoke_plugin_callbacks): Rename to ...
8916         (invoke_plugin_callbacks_full): ... this.
8918 2010-04-28  Jan Hubicka  <jh@suse.cz>
8920         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
8921         (lto_varpool_replace_node): New.
8922         (lto_symtab_resolve_symbols): Resolve varpool nodes.
8923         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
8924         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
8925         * cgraph.h (varpool_node_ptr): New type.
8926         (varpool_node_ptr): New vector.
8927         (varpool_node_set_def): New structure.
8928         (varpool_node_set): New type.
8929         (varpool_node_set): New vector.
8930         (varpool_node_set_element_def): New structure.
8931         (varpool_node_set_element, const_varpool_node_set_element): New types.
8932         (varpool_node_set_iterator): New type.
8933         (varpool_node): Add prev pointers, add used_from_other_partition,
8934         in_other_partition.
8935         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
8936         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
8937         varpool_get_node, varpool_remove_node): Declare.
8938         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
8939         varpool_node_set_size): New inlines.
8940         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
8941         * tree-pass.h (varpool_node_set_def): Forward declare.
8942         (ipa_opt_pass_d): Summary writting takes vnode sets too.
8943         (ipa_write_optimization_summaries): Update prototype.
8944         * ipa-cp.c (ipcp_write_summary): Update.
8945         * ipa-reference.c (ipa_reference_write_summary): Update.
8946         * lto-cgraph.c (lto_output_varpool_node): New static function.
8947         (output_varpool): New function.
8948         (input_varpool_node): New static function.
8949         (input_varpool_1): New function.
8950         (input_cgraph): Input varpool.
8951         * ipa-pure-const.c (pure_const_write_summary): Update.
8952         * lto-streamer-out.c (lto_output): Update, output varpool too.
8953         (write_global_stream): Kill WPA hack.
8954         (produce_asm_for_decls): Update.
8955         (output_alias_pair_p): Handle variables.
8956         (output_unreferenced_globals): Output only needed partition of varpool.
8957         * ipa-inline.c (inline_write_summary): Update.
8958         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
8959         cgraph.
8960         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
8961         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
8962         varpool_node_set_new, varpool_node_set_add,
8963         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
8964         debug_varpool_node_set): New functions.
8965         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
8966         (execute_one_pass): Process new decls too.
8967         (ipa_write_summaries_2): Pass around vsets.
8968         (ipa_write_summaries_1): Likewise.
8969         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
8970         to add.
8971         (ipa_write_optimization_summaries_1): Pass around vsets.
8972         (ipa_write_optimization_summaries): Likewise.
8973         * varpool.c (varpool_get_node): New.
8974         (varpool_node): Update doubly linked lists.
8975         (varpool_remove_node): New.
8976         (dump_varpool_node): More dumping.
8977         (varpool_enqueue_needed_node): Update doubly linked lists.
8978         (decide_is_variable_needed): Kill ltrans hack.
8979         (varpool_finalize_decl): Kill lto hack.
8980         (varpool_assemble_decl): Skip decls in other partitions.
8981         (varpool_assemble_pending_decls): Update doubly linkes lists.
8982         (varpool_empty_needed_queue): Likewise.
8983         (varpool_extra_name_alias): Likewise.
8984         * lto-streamer.c (lto_get_section_name): Add vars section.
8985         * lto-streamer.h (lto_section_type): Update.
8986         (output_varpool, input_varpool): Declare.
8988 2010-04-28  Mike Stump  <mikestump@comcast.net>
8990         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
8992 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8994         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
8995         record or union type with RECORD_OR_UNION_TYPE_P predicate.
8996         (lto_input_ts_type_tree_pointers): Likewise.
8997         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
8998         (lto_output_ts_type_tree_pointers): Likewise.
9000 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9002         Uniquization of constants at the Tree level
9003         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
9004         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
9005         bit to the end.
9006         (tree_output_constant_def): Declare.
9007         * gimplify.c (gimplify_init_constructor): When using block copy, first
9008         uniquize the constant constructor on the RHS.
9009         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
9010         DECL_IN_CONSTANT_POOL flag.
9011         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
9012         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
9013         constant pool.
9014         (assemble_variable): Deal with symbols belonging to the tree constant
9015         pool.
9016         (get_constant_section): Add ALIGN parameter and simplify.
9017         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
9018         (assemble_constant_contents): Use the expression of the VAR_DECL.
9019         (output_constant_def_contents): Use the alignment of the VAR_DECL.
9020         (tree_output_constant_def): New global function.
9021         (mark_constant): Use the expression of the VAR_DECL.
9022         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
9023         its expression.
9024         (output_object_block): Likewise and assemble the expression.
9026 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9028         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
9029         hash_tree, eq_tree): New tree hash table.
9030         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
9031         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
9032         lto_orig_address_remove): Reimplement.
9034 2010-04-28  Xinliang David Li  <davidxl@google.com>
9036         PR c/42643
9037         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
9038         (compute_uninit_opnds_pos): New function.
9039         (is_non_loop_exit_postdominating): New function.
9040         (compute_control_dep_chain): New function.
9041         (find_pdom): New function.
9042         (convert_control_dep_chain_into_preds): New function.
9043         (find_predicates): New function.
9044         (find_control_equiv_block): New function.
9045         (collect_phi_def_edges): New function.
9046         (find_def_preds): New function.
9047         (find_dom): New function.
9048         (dump_predicates): New function.
9049         (get_cmp_code): New function.
9050         (is_value_included_in): New function.
9051         (find_matching_predicate_in_rest_chains): New function.
9052         (use_pred_not_overlap_with_undef_path_pred): New function.
9053         (is_use_properly_guarded): New function.
9054         (normalize_cond_1): New function.
9055         (is_and_or_or): New function.
9056         (normalize_cond): New function.
9057         (is_gcond_subset_of): New function.
9058         (is_subset_of_any): New function.
9059         (is_or_set_subset_of): New function.
9060         (is_and_set_subset_of): New function.
9061         (is_norm_cond_subset_of): New function.
9062         (is_pred_expr_subset_of): New function.
9063         (is_pred_chain_subset_of): New function.
9064         (is_included_in): New function.
9065         (is_superset_of): New function.
9066         (find_uninit_use): New function.
9067         (warn_uninitialized_phi): New function.
9068         (compute_possibly_undefined_names): New function.
9069         (ssa_undefined_value_p): New function.
9070         (execute_late_warn_uninitialized): New function.
9071         * tree-ssa.c (ssa_undefined_value_p): Removed.
9072         (warn_uninit): Changed to extern.
9073         (warn_uninitialized_phi): Removed.
9074         (warn_uninitialized_vars): Changed to extern.
9075         (execute_late_warn_uninitialized): Removed
9076         * tree-flow.h: Add new prototypes.
9077         * timevar.def: Add new time variable.
9078         * Makefile.in: Add new build file.
9080 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
9082         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
9083         type if available.
9085 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9087         PR target/22224
9088         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
9090 2010-04-28  Martin Jambor  <mjambor@suse.cz>
9092         * cgraph.h (struct cgraph_node): New field indirect_calls.
9093         (struct cgraph_indirect_call_info): New type.
9094         (struct cgraph_edge): Removed field indirect_call. New fields
9095         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
9096         (cgraph_create_indirect_edge): Declare.
9097         (cgraph_make_edge_direct): Likewise.
9098         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
9099         * ipa-prop.h (struct ipa_param_call_note): Removed.
9100         (struct ipa_node_params): Removed field param_calls.
9101         (ipa_create_all_structures_for_iinln): Declare.
9102         * cgraph.c: Described indirect edges and uids in initial comment.
9103         (cgraph_add_edge_to_call_site_hash): New function.
9104         (cgraph_edge): Search also among the indirect edges, use
9105         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
9106         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
9107         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
9108         site hash.
9109         (initialize_inline_failed): Assign a reason to indirect edges.
9110         (cgraph_create_edge_1): New function.
9111         (cgraph_create_edge): Moved some functionality to
9112         cgraph_create_edge_1.
9113         (cgraph_create_indirect_edge): New function.
9114         (cgraph_edge_remove_callee): Add an assert checking for
9115         non-indirectness.
9116         (cgraph_edge_remove_caller): Special-case indirect edges.
9117         (cgraph_remove_edge): Likewise.
9118         (cgraph_set_edge_callee): New function.
9119         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
9120         (cgraph_make_edge_direct): New function.
9121         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
9122         the declaration of the call statement matches.
9123         (cgraph_node_remove_callees): Special-case indirect edges.
9124         (cgraph_clone_edge): Likewise.
9125         (cgraph_clone_node): Clone also the indirect edges.
9126         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
9127         indirect_call, dump count of indirect_calls edges.
9128         * ipa-prop.c (iinlining_processed_edges): New variable.
9129         (ipa_note_param_call): Create indirect edges instead of
9130         creating notes.  New parameter node.
9131         (ipa_analyze_call_uses): New parameter node, pass it on to
9132         ipa_note_param_call.
9133         (ipa_analyze_stmt_uses): Likewise.
9134         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
9135         (print_edge_addition_message): Work on edges rather than on notes.
9136         (update_call_notes_after_inlining): Likewise, renamed to
9137         update_indirect_edges_after_inlining.
9138         (ipa_create_all_structures_for_iinln): New function.
9139         (ipa_free_node_params_substructures): Do not free notes.
9140         (ipa_edge_duplication_hook): Propagate bits within
9141         iinlining_processed_edges bitmap.
9142         (ipa_node_duplication_hook): Do not duplicate notes.
9143         (free_all_ipa_structures_after_ipa_cp): Renamed to
9144         ipa_free_all_structures_after_ipa_cp.
9145         (free_all_ipa_structures_after_iinln): Renamed to
9146         ipa_free_all_structures_after_iinln.
9147         (ipa_write_param_call_note): Removed.
9148         (ipa_read_param_call_note): Removed.
9149         (ipa_write_indirect_edge_info): New function.
9150         (ipa_read_indirect_edge_info): Likewise.
9151         (ipa_write_node_info): Do not stream notes, do stream information
9152         in indirect edges.
9153         (ipa_read_node_info): Likewise.
9154         (lto_ipa_fixup_call_notes): Removed.
9155         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
9156         * ipa-inline.c (pass_ipa_inline): Likewise.
9157         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
9158         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
9159         * tree-inline.c (copy_bb): Removed an unnecessary double check for
9160         is_gimple_call.
9161         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
9162         edges.
9163         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
9164         (output_cgraph): Stream also indirect edges.
9165         (lto_output_edge): Added capability to stream indirect edges.
9166         (input_edge): Likewise.
9167         (input_cgraph_1): Likewise.
9168         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
9169         of indirect edges.
9171 2010-04-28  Richard Guenther  <rguenther@suse.de>
9173         PR tree-optimization/43879
9174         PR tree-optimization/43909
9175         * tree-ssa-structalias.c (struct variable_info): Add
9176         only_restrict_pointers flag.
9177         (new_var_info): Initialize it.  Increment stats.total_vars here.
9178         (create_function_info_for): Do not increment stats.total_vars here.
9179         (get_function_part_constraint): Fix build with C++.
9180         (insert_into_field_list): Remove.
9181         (push_fields_onto_fieldstack): Properly merge fields.
9182         (create_variable_info_for): Split and simplify.
9183         (create_variable_info_for_1): New piece.
9184         (intra_create_variable_infos): Properly make restrict constraints
9185         from parameters.
9187 2010-04-28  Richard Guenther  <rguenther@suse.de>
9189         PR c++/43880
9190         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
9192 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9193             Jan Hubicka <hubicka@ucw.cz>
9195         * doc/invoke.texi (-Wsuggest-attribute=const,
9196         -Wsuggest-attribute=pure): Document.
9197         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
9198         (function_always_visible_to_compiler_p,
9199         suggest_attribute, warn_function_pure, warn_function_const):
9200         New functions.
9201         (check_call): Improve debug info.
9202         (analyze_function): Do not check availability.
9203         (add_new_function): Check availability.
9204         (propagate): Output warnings.
9205         (skip_function_for_local_pure_const): New function.
9206         (local_pure_const): Use it; output warnings.
9207         * common.opt (Wsuggest-attribute=const,
9208         Wsuggest-attribute=pure): New.
9210 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
9212         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
9213         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
9214         or DW_CFA_def_cfa_offset{,_sf}.
9216 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9218         * tree.h: Fix truncated long macros.
9220 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
9222         * collect2.c (TARGET_64BIT): Redefine to target's default.
9223         * tlink.c: Likewise.
9224         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
9225         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
9226         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
9227         for underscoring __USER_LABEL_PREFIX__.
9228         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
9229         (SUB_LINK_ENTRY32): New.
9230         (SUB_LINK_ENTRY64): New.
9231         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
9232         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
9233         (SUB_LINK_ENTRY64): New.
9234         (SUB_LINK_ENTRY): New.
9235         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
9236         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
9237         x64 target is choosen.
9238         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
9239         * configure: Regenerated.
9240         * configure.ac (leading-mingw64-underscores): Option added.
9242 2010-04-27  Jan Hubicka  <jh@suse.cz>
9244         * doc/invoke.texi (-fipa-profile): Document.
9245         * opts.c (decode_options): Enable ipa-profile at -O1.
9246         * timevar.def (TV_IPA_PROFILE): Define.
9247         * common.opt (fipa-profile): Add.
9248         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
9249         flag for clones.
9250         (cgraph_propagate_frequency): Handle only local ones.
9251         * tree-pass.h (pass_ipa_profile): Declare.
9252         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
9253         (pass_ipa_profile): Use TV_IPA_PROFILE.
9254         * ipa.c (ipa_profile): New function.
9255         (gate_ipa_profile): Likewise.
9256         (pass_ipa_profile): New global variable.
9257         * passes.c (pass_ipa_profile): New.
9259 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
9261         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
9263 2010-04-27  Martin Jambor  <mjambor@suse.cz>
9265         PR middle-end/43812
9266         * ipa.c (dissolve_same_comdat_group_list): New function.
9267         (function_and_variable_visibility): Call
9268         dissolve_same_comdat_group_list when comdat group contains external or
9269         newly local nodes.
9270         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
9271         lists are circular and that they contain only DECL_ONE_ONLY nodes.
9273 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9275         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
9276         (const_hash_1) <VECTOR_CST>: New case.
9277         (compare_constant) <VECTOR_CST>: Likewise.
9278         <ADDR_EXPR>: Deal with LABEL_REFs.
9279         (copy_constant) <VECTOR_CST>: New case.
9281 2010-04-27  Jan Hubicka  <jh@suse.cz>
9283         * cgraph.c (cgraph_propagate_frequency): New function.
9284         * cgraph.h (cgraph_propagate_frequency): Declare.
9285         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
9286         cgraph_propagate_frequency.
9288 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
9290         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
9292 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
9294         PR target/40657
9295         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
9296         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
9297         here to determine which regs to push and how much stack to reserve.
9299 2010-04-27  Jie Zhang  <jie@codesourcery.com>
9301         * doc/gimple.texi (gimple_statement_with_ops): Remove
9302         addresses_taken field.
9303         (gimple_statement_with_memory_ops): Likewise.
9305 2010-04-27  Jan Hubicka  <jh@suse.cz>
9307         * tree-inline.c (eni_inlining_weights): Remove.
9308         (estimate_num_insns): Special case more builtins.
9310 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
9312         PR c/32207
9313         * c-typeck.c (build_binary_op): Move forward check for comparison
9314         pointer with null pointer constant and adjust the diagnostic message.
9316 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
9318         PR lto/42776
9319         * configure.ac (gcc_cv_as_section_has_align): Set if installed
9320         binutils supports extended .section directive needed by LTO, or
9321         warn if older binutils found.
9322         (LTO_BINARY_READER): New AC_SUBST'd variable.
9323         (LTO_USE_LIBELF): Likewise.
9324         * gcc/config.gcc (lto_binary_reader): New target-specific configure
9325         variable.
9326         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
9327         (LTO_USE_LIBELF): Likewise.
9328         * configure: Regenerate.
9330         * collect2.c (is_elf): Rename from this ...
9331         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
9332          object files in addition to ELF-formatted ones.
9333         (scan_prog_file): Caller updated.  Also allow for LTO info marker
9334         symbol to be prefixed or not by an extra underscore.
9336         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
9337         * config/i386/winnt.c: Also #include lto-streamer.h
9338         (i386_pe_asm_named_section): Specify 1-byte section alignment for
9339         LTO named sections.
9340         (i386_pe_asm_output_aligned_decl_common): Add comment.
9341         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
9343 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
9345         PR target/43889
9346         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
9347         Add missing earlyclobber for second alternative.
9349 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
9351         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
9352         bits for artificial defs at the top of the block.
9353         * fwprop.c (single_def_use_enter_block): Don't call it.
9355 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
9357         PR 43715
9358         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
9359         instead of "$gcc_cv_objdump -T".
9360         Use "-undefined dynamic_lookup" on darwin.
9361         * gcc/configure: Regenerate.
9363 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
9365         PR c/43893
9366         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
9368 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
9370         * c-parser.c (struct c_token): Move location field up.
9371         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
9372         (struct c_declspecs): Convert typespec_word, storage_class, and
9373         default_int_p into bitfields.
9374         (struct c_declarator): Move loc field up.
9376 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
9378         * cfgloop.h (struct loop): Move can_be_parallel field up.
9379         * ipa-prop.h (struct ip_node_params): Move bitfields up.
9380         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
9381         down.
9382         (struct iv_cand): Convert pos field into a bitfield.
9383         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
9384         field up.
9385         (struct _stmt_vec_info): Shuffle fields for better packing.
9387 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
9389         * varasm.c (IN_NAMED_SECTION): Remove guard.
9390         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
9391         (IN_NAMED_SECTION_P): ...this.
9392         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
9393         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
9395 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
9397         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
9398         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
9399         of shadowing it.  Fix comments.
9401 2010-04-26  Jan Hubicka  <jh@suse.cz>
9403         * cgraph.c (cgraph_create_node): Set node frequency to normal.
9404         (cgraph_clone_node): Copy function frequency.
9405         * cgraph.h (node_frequency): New enum
9406         (struct cgraph_node): Add.
9407         * final.c (rest_of_clean_state): Update.
9408         * lto-cgraph.c (lto_output_node): Output node frequency.
9409         (input_overwrite_node): Input node frequency.
9410         * tre-ssa-loop-ivopts (computation_cost): Update.
9411         * lto-streamer-out.c (output_function): Do not output function
9412         frequency.
9413         * predict.c (maybe_hot_frequency_p): Update and handle functions
9414         executed once.
9415         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
9416         attribute lookup.
9417         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
9418         (compute_function_frequency): Set noreturn functions to be executed
9419         once.
9420         (choose_function_section): Update.
9421         * lto-streamer-in.c (input_function): Do not input function frequency.
9422         * function.c (allocate_struct_function): Do not initialize function
9423         frequency.
9424         * function.h (function_frequency): Remove.
9425         (struct function): Remove function frequency.
9426         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
9427         (try_update): Update.
9428         * tree-inline.c (initialize_cfun): Do not update function frequency.
9429         * passes.c (pass_init_dump_file): Update.
9430         * i386.c (ix86_compute_frame_layout): Update.
9431         (ix86_pad_returns): Update.
9433 2010-04-26  Jie Zhang  <jie@codesourcery.com>
9435         PR tree-optimization/43833
9436         * tree-vrp.c (range_int_cst_p): New.
9437         (range_int_cst_singleton_p): New.
9438         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
9439         when both operands are constants.  Use range_int_cst_p in
9440         BIT_IOR_EXPR case.
9442 2010-04-26  Jan Hubicka  <jh@suse.cz>
9444         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
9446 2010-04-26  Richard Guenther  <rguenther@suse.de>
9448         PR lto/43080
9449         * gimple.c (gimple_decl_printable_name): Deal gracefully
9450         with a NULL DECL_NAME.
9452 2010-04-26  Richard Guenther  <rguenther@suse.de>
9454         PR lto/42425
9455         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
9456         if emitting debug information and it is either a function
9457         or a namespace decl.
9459 2010-04-26  Ira Rosen  <irar@il.ibm.com>
9461         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
9462         determine if the statement is vectorizable, and a macro to access it.
9463         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
9464         Skip statements that can't be vectorized. If the analysis fails,
9465         mark the statement as unvectorizable if vectorizing basic block.
9466         (vect_compute_data_refs_alignment): Likewise.
9467         (vect_verify_datarefs_alignment): Skip statements marked as
9468         unvectorizable. Add print.
9469         (vect_analyze_group_access): Skip statements that can't be
9470         vectorized. If the analysis fails, mark the statement as
9471         unvectorizable if vectorizing basic block.
9472         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
9473         * tree-vect-stmts.c (vectorizable_store): Fix the number of
9474         generated stmts for SLP.
9475         (new_stmt_vec_info): Initialize the new field.
9476         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
9477         statements marked as unvectorizable.
9479 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
9481         * c-common.c (flag_isoc1x): New.
9482         (flag_isoc99): Update comment.
9483         * c-common.h (flag_isoc1x): New.
9484         (flag_isoc99): Update comment.
9485         * c-cppbuiltin.c (builtin_define_float_constants): Also define
9486         __<type>_DECIMAL_DIG__.
9487         * c-opts.c (set_std_c1x): New.
9488         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
9489         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
9490         * c.opt (-std=c1x, -std=gnu1x): New options.
9491         * doc/cpp.texi: Mention -std=c1x.
9492         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
9493         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
9494         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
9495         * doc/standards.texi: Mention C1X.
9496         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
9497         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
9498         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
9499         Define for C1X.
9501 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
9503         * config/i386/gmon-sol2.c (_mcleanup): Change format string
9504         placeholder from 0x%x to %#x.
9505         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
9506         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
9507         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
9508         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
9509         * config/i386/i386.c (ix86_target_string): Ditto.
9510         (output_pic_addr_const): Ditto.
9511         (print_operand): Ditto.
9513 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
9515         * combine.c (find_split_point): Add third argument.  Use it
9516         to find nested multiply-accumulate instructions.  Adjust calls.
9517         (try_combine): Adjust call to find_split_point.
9519 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9521         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
9523 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
9525         PR tree-optimization/41442
9526         * fold-const.c (merge_truthop_with_opposite_arm): New function.
9527         (fold_binary_loc): Call it.
9529 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9531         * toplev.c (general_init): Set default for fdiagnostics-show-option.
9532         * opts.c (common_handle_option): Allow disabling it.
9533         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
9535 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
9537         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
9538         between modes if both types are integral.
9540 2010-04-23  Richard Guenther  <rguenther@suse.de>
9542         PR tree-optimization/43572
9543         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
9545 2010-04-23  Richard Guenther  <rguenther@suse.de>
9547         PR lto/43455
9548         * tree-inline.c (tree_can_inline_p): Also check compatibility
9549         of return types.
9551 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9553         PR tree-optimization/43846
9554         * tree-sra.c (struct access): New flag grp_assignment_read.
9555         (build_accesses_from_assign): Set grp_assignment_read.
9556         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
9557         (enum mark_read_status): New type.
9558         (analyze_access_subtree): Propagate grp_assignment_read, create
9559         accesses also if both direct_read and root->grp_assignment_read.
9561 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9563         PR middle-end/43835
9564         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
9565         function does not have type attributes.
9567 2010-04-23  Richard Guenther  <rguenther@suse.de>
9569         PR lto/42653
9570         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
9571         of FUNCTION_DECLs.
9573 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9575         * sese.h (create_if_region_on_edge): Remove.
9577         * sese.c (create_if_region_on_edge): Make static.
9579         * tree-inline.c: Do not include ggc.h.
9581         * expr.c: Do not include ggc.h.
9583         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
9584         dependencies.
9586 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
9588         PR target/43744
9589         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9590         in the middle of insns for casesi_worker_2.
9592 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
9594         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
9596 2010-04-22  Ira Rosen  <irar@il.ibm.com>
9598         PR tree-optimization/43842
9599         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
9600         loop unrolling in update of exit phis. Fix comment.
9601         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
9602         least two reduction statements in the loop before starting SLP
9603         analysis.
9605 2010-04-22  Nick Clifton  <nickc@redhat.com>
9607         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
9609 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
9611         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
9612         to simplify a + ~a.
9614 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9616         * tree-parloops.c (loop_parallel_p): New argument
9617         parloop_obstack.  Pass it down.
9618         (parallelize_loops): New variable parloop_obstack.  Initialize it,
9619         pass it down, free it.
9621         * tree-loop-linear.c (linear_transform_loops): Pass down
9622         lambda_obstack.
9624         * tree-data-ref.h (lambda_compute_access_matrices): New argument
9625         of type struct obstack *.
9627         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
9628         scratch_obstack.  Initialize it, pass down, free it.
9630         * lambda.h (lambda_loop_new): Remove.
9631         (lambda_matrix_new, lambda_matrix_inverse)
9632         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
9633         argument of type struct obstack *.
9635         * lambda-trans.c (lambda_trans_matrix_new): New argument
9636         lambda_obstack.  Pass it down, use obstack allocation for ret.
9637         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
9638         it down.
9640         * lambda-mat.c (lambda_matrix_get_column)
9641         (lambda_matrix_project_to_null): Remove.
9642         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
9643         allocation for mat.
9644         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
9645         lambda_obstack.
9647         * lambda-code.c (lambda_loop_new): New function.
9648         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
9649         (lambda_compute_auxillary_space, lambda_compute_target_space)
9650         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
9651         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
9652         (build_access_matrix): New argument lambda_obstack.  Use obstack
9653         allocation for am.
9654         (lambda_compute_step_signs, lambda_compute_access_matrices): New
9655         argument lambda_obstack.  Pass it down.
9657 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9659         * optabs.h (expand_widening_mult): Declare.
9661 2010-04-22  Richard Guenther  <rguenther@suse.de>
9663         PR tree-optimization/43845
9664         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
9665         lookup the CALL_EXPR function and arguments.
9667 2010-04-22  Nick Clifton  <nickc@redhat.com>
9669         * config/stormy16/stormy16.c
9670         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
9671         * config/stormy16/stormy16.h: Tidy up formatting.
9672         (DONT_USE_BUILTIN_SETJMP): Remove definition.
9673         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
9674         (ineqbranchsi): Delete pattern.
9675         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
9676         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
9677         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
9678         stormy16-lib2-ucmpsi2.c.
9680 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9682         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
9683         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
9684         extra set merge_set_noclobber, and use it to relax the final test
9685         slightly.
9686         * df.h (df_simulate_find_noclobber_defs): Declare.
9687         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
9688         conditional defs.
9689         (df_simulate_find_noclobber_defs): New function.
9691 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
9693         * config/i386/i386.md: Use {} around multi-line preparation statements.
9695 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9697         * c-tree.h (push_init_level, pop_init_level, set_init_index)
9698         (process_init_element): New argument of type struct obstack *.
9700         * c-typeck.c (push_init_level, pop_init_level, set_designator)
9701         (set_init_index, set_init_label, set_nonincremental_init)
9702         (set_nonincremental_init_from_string, find_init_member)
9703         (output_init_element, output_pending_init_elements)
9704         (process_init_element): New argument braced_init_obstack.  Pass it
9705         down.
9706         (push_range_stack, add_pending_init): New argument
9707         braced_init_obstack.  Use obstack allocation.
9709         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
9710         braced_init_obstack.  Pass it down.
9711         (c_parser_braced_init): New variables ret, braced_init_obstack.
9712         Initialize obstack, pass it down and finally free it.
9714 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9716         PR middle-end/29274
9717         * tree-pass.h (pass_optimize_widening_mul): Declare.
9718         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
9719         gate_optimize_widening_mul): New static functions.
9720         (pass_optimize_widening_mul): New.
9721         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
9722         <case MULT_EXPR>: Remove support for widening multiplies.
9723         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
9724         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
9725         simplify_gen_unary rather than directly building extensions.
9726         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
9727         WIDEN_MULT_EXPR.
9728         * expmed.c (expand_widening_mult): New function.
9729         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
9731 2010-04-21  Jan Hubicka  <jh@suse.cz>
9733         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
9734         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
9735         * lto-wpa-fixup.c: Remove.
9736         * Makefile.in (lto-wpa-fixup.o): Remove.
9737         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
9738         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
9739         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
9741 2010-04-21  Jan Hubicka  <jh@suse.cz>
9743         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
9744         add write_optimization_summary, read_optimization_summary.
9745         (ipa_write_summaries_of_cgraph_node_set): Remove.
9746         (ipa_write_optimization_summaries): Declare.
9747         (ipa_read_optimization_summaries): Declare.
9748         * ipa-cp.c (pass_ipa_cp): Update.
9749         * ipa-reference.c (pass_ipa_reference): Update.
9750         * ipa-pure-const.c (pass_ipa_pure_const): Update.
9751         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
9752         Update.
9753         * ipa-inline.c (pass_ipa_inline): Update.
9754         * ipa.c (pass_ipa_whole_program): Update.
9755         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
9756         * passes.c (ipa_write_summaries_1): Do not test wpa.
9757         (ipa_write_optimization_summaries_1): New.
9758         (ipa_write_optimization_summaries): New.
9759         (ipa_read_summaries): Do not test ltrans.
9760         (ipa_read_optimization_summaries_1): New.
9761         (ipa_read_optimization_summaries): New.
9763 2010-04-21  Jan Hubicka  <jh@suse.cz>
9765         * lto-cgraph.c (lto_output_node): Do not output comdat groups
9766         for boundary nodes.
9767         (output_cgraph): Do not arrange comdat groups for boundary nodes.
9769 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9771         PR debug/40040
9772         * dwarf2out.c (add_name_and_src_coords_attributes): Add
9773         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
9775 2010-04-21  Jan Hubicka  <jh@suse.cz>
9777         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
9779 2010-04-21  Jan Hubicka  <jh@suse.cz>
9781         * varpool.c (decide_is_variable_needed): Variable is always needed
9782         during ltrans.
9784 2010-04-21  Jan Hubicka  <jh@suse.cz>
9786         * opts.c (decode_options): Enable pure-const pass for whopr.
9788 2010-04-21  Jan Hubicka  <jh@suse.cz>
9790         * cgraph.c (dump_cgraph_node): Dump also assembler name.
9791         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
9792         at WPA dumping.
9793         (cgraph_decide_inlining): Do not expect callee to be removed in all
9794         cases.
9796 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
9798         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
9800 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9802         * config/i386/i386.md (x86_shrd): Add athlon_decode and
9803         amdfam10_decode attributes.
9805 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9807         PR middle-end/43570
9808         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
9809         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
9810         (lower_copyprivate_clauses): Use private var in outer
9811         context instead of original var.  Make sure the types
9812         are correct for VLAs.
9814 2010-04-21  Richard Guenther  <rguenther@suse.de>
9816         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
9817         to non-pointer objects.
9819 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9821         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
9822         last chain entry if it starts with the still current label.
9823         (add_location_or_const_value_attribute): Check that
9824         loc_list->first->next is NULL instead of comparing ->first with ->last.
9825         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
9826         to add_var_loc_to_decl.
9828         * dwarf2out.c (output_call_frame_info): For dw_cie_version
9829         >= 4 add also address size and segment size fields into CIE header.
9831         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
9832         long as address size is the same as sizeof (void *) and
9833         segment size is 0.
9834         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
9835         address size or segment size is unexpected, return DW_EH_PE_omit.
9836         (classify_object_over_fdes): If get_cie_encoding returned
9837         DW_EH_PE_omit, return -1.
9838         (init_object): If classify_object_over_fdes returned -1,
9839         pretend there were no FDEs at all.
9841 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9843         * config/i386/i386.md (bswap<mode>2): Macroize expander from
9844         bswap{si,di}2 using SWI48 mode iterator.
9845         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
9846         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
9847         set modrm attribute of bswap insn to 0 and remove length attribute.
9848         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
9849         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
9850         set mode attribute to <MODE> and remove length attribute.
9852 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
9854         PR rtl-optimization/43520
9855         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
9856         zero available registers.
9858 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9860         * builtins.c (fold_builtin_cproj): Fold more cases.
9862 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9864         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
9865         (fold_builtin_1): Fold builtin cproj.
9866         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
9867         Use ATTR_CONST_NOTHROW_LIST.
9869 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
9871         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
9872         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
9873         ffsi2_no_cmove for !TARGET_CMOVE.
9874         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
9875         (ffssi2): Remove expander.
9876         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
9877         mode iterator.
9878         (ctz<mode>2): Ditto from ctz{si,di}2.
9879         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
9880         mode iterator.
9881         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
9882         mode iterator.
9884 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9886         * dwarf2out.c (AT_linkage_name): Define.
9887         (clone_as_declaration): Handle DW_AT_linkage_name.
9888         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
9889         of DW_AT_MIPS_linkage_name.
9890         (move_linkage_attr): Likewise.
9891         (dwarf2out_finish): Likewise.
9893 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
9895         PR middle-end/41952
9896         * fold-const.c (fold_comparison): New folding rule.
9898 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
9900         * double-int.h (double_int_setbit): Declare.
9901         * double-int.c (double_int_setbit): New function.
9902         * rtl.h (immed_double_int_const): Declare.
9903         * emit-rtl.c (immed_double_int_const): New function.
9904         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
9905         and immed_double_int_const functions.
9906         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
9907         expand_copysign_bit):  (Ditto.).
9908         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
9909         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
9910         * dojump.c (prefer_and_bit_test): (Ditto.).
9911         * expr.c (convert_modes, reduce_to_bit_field_precision,
9912         const_vector_from_tree): (Ditto.).
9913         * expmed.c (mask_rtx, lshift_value): (Ditto.).
9915 2010-04-20  Jan Hubicka  <jh@suse.cz>
9917         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
9918         (dump_cgraph_node): Dump new flags.
9919         * cgraph.h (struct cgraph_node): Add flags
9920         reachable_from_other_partition and in_other_partition.
9921         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
9922         other partition can not be removed.
9923         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
9924         the other partition must be output; silence sanity checking on
9925         leaking functions bodies from other paritition.
9926         * lto-cgraph.c (reachable_from_other_partition_p): New function.
9927         (lto_output_node): Output new flags; do not sanity check that inline
9928         clones are output; drop lto_forced_extern_inline_p code; do not mock
9929         visibility flags at partition boundaries.
9930         (add_node_to): New function.
9931         (output_cgraph): Use it to sort functions so masters appear before
9932         clones.
9933         (input_overwrite_node): Input new flags.
9934         * passes.c (ipa_write_summaries): Do not call
9935         lto_new_extern_inline_states.
9936         * lto-section-out.c (forced_extern_inline,
9937         lto_new_extern_inline_states lto_delete_extern_inline_states,
9938         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
9939         * lto-streamer.h (lto_new_extern_inline_states,
9940         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
9941         lto_forced_extern_inline_p): Kill.
9943 2010-04-20  Richard Guenther  <rguenther@suse.de>
9945         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
9946         from vars that can have pointers.
9947         (process_constraint): Dump useless constraints.
9949 2010-04-20  Richard Guenther  <rguenther@suse.de>
9951         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
9952         (dump_sa_points_to_info): Remove asserts.
9953         (init_base_vars): nothing_id isn't an escape point nor does it
9954         have pointers.
9956 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9958         * tree.h (TYPE_REF_IS_RVALUE): Define.
9959         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
9960         should_move_die_to_comdat, prune_unused_types_walk): Handle
9961         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
9962         (modified_type_die, gen_reference_type_die): Emit
9963         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
9964         if TYPE_REF_IS_RVALUE and -gdwarf-4.
9966 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9968         PR target/43635
9969         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
9970         calls for -fpic -m31 if they have been sibcall optimized.
9972 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
9974         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
9975         ar.lc fixed and call-used.
9977         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
9979 2010-04-19  Jan Hubicka  <jh@suse.cz>
9981         * opts.c (decode_options): Disable whpr incompatible passes.
9982         * lto/lto.c (lto_1_to_1_map): Skip clones.
9983         (read_cgraph_and_symbols): Do not mark everything as needed.
9984         (do_whole_program_analysis): Do map only after optimizing;
9985         set proper cgraph_state; use passmanager.
9987 2010-04-19  DJ Delorie  <dj@redhat.com>
9989         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
9990         POINTER_PLUS_EXPR and fix them.
9992 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
9994         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
9995         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
9996         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
9997         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
9998         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
9999         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
10000         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
10001         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
10002         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
10003         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
10004         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
10006 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10008         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
10009         (check_cond_move_block): Likewise.
10010         (cond_move_process_if_block): Likewise.
10011         (noce_find_if_block): Improve formatting.
10012         (find_if_header): Pass 0 to memset and tweak conditions.
10013         (cond_exec_find_if_block): Fix long lines and tweak conditions.
10015 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
10017         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
10018         for -gdwarf-4.
10020         PR middle-end/43337
10021         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
10022         with non-local decl doesn't need chain.
10024 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
10026         * ira-color.c (allocno_reload_assign): Avoid accumulating
10027         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
10029 2010-04-19  Martin Jambor  <mjambor@suse.cz>
10031         * gimple.h (create_tmp_reg): Declare.
10032         * gimplify.c (create_tmp_reg): New function.
10033         (gimplify_return_expr): Use create_tmp_reg.
10034         (gimplify_omp_atomic): Likewise.
10035         (gimple_regimplify_operands): Likewise.
10036         * tree-dfa.c (make_rename_temp): Likewise.
10037         * tree-predcom.c (predcom_tmp_var): Likewise.
10038         (reassociate_to_the_same_stmt): Likewise.
10039         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
10040         (get_replaced_param_substitute): Likewise.
10041         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
10042         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
10043         * tree-ssa-pre.c (get_representative_for): Likewise.
10044         (create_expression_by_pieces): Likewise.
10045         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
10046         (create_tailcall_accumulator): Likewise.
10048 2010-04-19  Martin Jambor  <mjambor@suse.cz>
10050         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
10051         new_stmt.
10052         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
10054 2010-04-19  Richard Guenther  <rguenther@suse.de>
10056         PR tree-optimization/43796
10057         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
10058         from SCEV in the lattice.
10059         (vrp_visit_phi_node): Dump change.
10061 2010-04-19  Richard Guenther  <rguenther@suse.de>
10063         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
10064         * configure: Re-generated.
10066 2010-04-19  Richard Guenther  <rguenther@suse.de>
10068         PR tree-optimization/43783
10069         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
10070         constant ARRAY_REF operands two and three if possible.
10072 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
10074         PR target/43766
10075         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
10077 2010-04-19  Jie Zhang  <jie@codesourcery.com>
10079         PR target/43662
10080         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
10082 2010-04-19  Ira Rosen  <irar@il.ibm.com>
10084         PR tree-optimization/37027
10085         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
10086         and macro to access it.
10087         (vectorizable_reduction): Add argument.
10088         (vect_get_slp_defs): Likewise.
10089         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
10090         statements for possible use in SLP.
10091         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
10092         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
10093         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
10094         add new argument.
10095         (vectorizable_reduction): Likewise.
10096         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
10097         vect_get_slp_defs.
10098         (vectorizable_type_demotion, vectorizable_type_promotion,
10099         vectorizable_store): Likewise.
10100         (vect_analyze_stmt): Update call to vectorizable_reduction.
10101         (vect_transform_stmt): Likewise.
10102         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
10103         (vect_build_slp_tree): Fix indentation. Check that there are no loads
10104         from different interleaving chains in same node.
10105         (vect_slp_rearrange_stmts): New function.
10106         (vect_supported_load_permutation_p): Allow load permutations for
10107         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
10108         inside SLP nodes if necessary.
10109         (vect_analyze_slp_instance): Handle reductions.
10110         (vect_analyze_slp): Try to build SLP instances originating from groups
10111         of reductions.
10112         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
10113         (vect_get_constant_vectors): Create initial vectors for reductions
10114         according to reduction code. Add new argument.
10115         (vect_get_slp_defs): Add new argument, pass it to
10116         vect_get_constant_vectors.
10117         (vect_schedule_slp_instance): Remove SLP tree root statements.
10119 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
10121         * tree.h (ENUM_IS_SCOPED): Define.
10122         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
10123         for ENUM_IS_SCOPED enums.
10125 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10127         * fold-const.c (fold_comparison): Use ssizetype.
10128         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10129         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
10130         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
10131         * tree-object-size.c (compute_object_sizes): Use size_type_node.
10133         * tree.h (initialize_sizetypes): Remove parameter.
10134         (build_common_tree_nodes): Remove second parameter.
10135         * stor-layout.c (initialize_sizetypes): Remove parameter.
10136         Always create an unsigned type.
10137         (set_sizetype): Assert that the passed type is unsigned and simplify.
10138         * tree.c (build_common_tree_nodes): Remove second parameter.
10139         Adjust call to initialize_sizetypes.
10140         * c-decl.c (c_init_decl_processing): Remove second argument in call to
10141         build_common_tree_nodes.
10143 2010-04-18  Matthias Klose  <doko@ubuntu.com>
10145         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
10147 2010-04-18  Ira Rosen  <irar@il.ibm.com>
10149         PR tree-optimization/43771
10150         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
10151         load permutation doesn't have gaps.
10153 2010-04-18  Jan Hubicka  <jh@suse.cz>
10155         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
10156         (sse_prologue_save_insn expander): Use new pattern.
10157         (sse_prologue_save_insn1): New pattern and splitter.
10158         (sse_prologue_save_insn): Update to deal also with 64bit aligned
10159         blocks.
10160         * i386.c (setup_incoming_varargs_64): Do not compute jump
10161         destination here.
10162         (ix86_gimplify_va_arg): Update alignment needed.
10163         (ix86_local_alignment): Do not align all local arrays to 128bit.
10165 2010-04-17  Jan Hubicka  <jh@suse.cz>
10167         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
10169 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
10171         * arm.md (negdi2): Remove redundant code to force values into a
10172         register.
10174 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
10176         * arm/bpabi.S: Add EABI alignment attributes to objects.
10177         * arm/bpabi-v6m.S: Likewise.
10178         * arm/crti.asm: Likewise.
10179         * arm/crtn.asm: Likewise.
10180         * arm/lib1funcs.asm: Likewise.
10181         * arm/libunwind.S: Likewise.
10183 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
10185         * arm-protos.h (tune_params): New structure.
10186         * arm.c (current_tune): New variable.
10187         (arm_constant_limit): Delete.
10188         (struct processors): Add pointer to the tune parameters.
10189         (arm_slowmul_tune): New tuning option.
10190         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
10191         (all_cores): Adjust to pick up the tuning model.
10192         (arm_constant_limit): New function.
10193         (arm_override_options): Select the appropriate tuning model.  Delete
10194         initialization of arm_const_limit.
10195         (arm_split_constant): Use the new constant-limit model.
10196         (arm_rtx_costs): Pick up the current tuning model.
10197         * arm.md (is_strongarm, is_xscale): Delete.
10198         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
10199         for Xscale variant architectures.
10200         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
10202 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10204         * config/arm/arm.c (arm_gen_constant): Remove unused variable
10205         can_shift.
10206         (arm_rtx_costs_1): Remove unused variable extra_cost.
10207         (arm_unwind_emit_set): Use variable offset.
10208         (thumb1_output_casesi): Remove unused variable flags.
10210 2010-04-16  Jeff Law  <law@redhat.com>
10212         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
10213         needing assignment rather than doing a two-phase assignment.  Remove
10214         unused variable 'm'.
10216 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
10218         PR bootstrap/43767
10219         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
10221 2010-04-16  Doug Kwan  <dougkwan@google.com>
10223         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
10224         (next_operand_entry_id): New static variable.
10225         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
10226         (add_to_ops_vec): Assigned unique ID to operand entry.
10227         (struct oecount_s): New field ID.
10228         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
10229         (undistribute_ops_list): Assign unique IDs to oecounts.
10230         (init_reassoc): reset next_operand_entry_id.
10232 2010-04-16  Doug Kwan  <dougkwan@google.com>
10234         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
10235         missing left parenthesis.
10237 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
10239         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
10240         *btdi_rex64 using SWI48 mode iterator.
10241         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
10242         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
10243         *jcc_btdi_mask_rex64.
10245 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
10247         * double-int.h (tree_to_double_int): Convert to macro.
10248         * double-int.c (tree_to_double_int): Remove.
10250 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
10252         PR debug/43762
10253         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
10254         with want_address 2 and in case a single element list might be
10255         possible, call it again with want_address 0.
10257 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10259         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
10260         case 'W' print operands for HI mode.
10261         * config/h8300/h8300.h (Y0, Y2) : New constraints.
10262         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
10263         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
10264         * config/h8300/predicate.md (bit_register_indirect_operand): New.
10266         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
10268         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
10269         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
10270         #xx:3 and #xx:4 mode.
10272         * config/h8300/h8300.md (inverted load with HImode dest): Add
10273         support for H8300SX.
10275         * config/h8300/predicate.md (bit_operand): Allow immediate values that
10276         satisfy 'U' constraint.
10278 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10280         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
10281         * configure: Regenerate.
10282         * config.in: Regenerate.
10283         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
10284         works.
10286 2010-04-16  Richard Guenther  <rguenther@suse.de>
10288         * tree.h (struct tree_decl_minimal): Move pt_uid ...
10289         (struct tree_decl_common): ... here.
10290         (DECL_PT_UID): Adjust.
10291         (SET_DECL_PT_UID): Likewise.
10292         (DECL_PT_UID_SET_P): Likewise.
10294 2010-04-16  Richard Guenther  <rguenther@suse.de>
10296         PR tree-optimization/43572
10297         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
10298         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
10299         * tree-flow.h (is_call_clobbered): Remove.
10300         * tree-flow-inline.h (is_call_clobbered): Likewise.
10301         * tree-dfa.c (dump_variable): Do not dump call clobber state.
10302         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
10303         (execute_return_slot_opt): Adjust.
10304         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
10305         check for call clobbered vars here.
10306         (find_tail_calls): Move tailcall verification to the
10307         proper place.
10309 2010-04-16  Diego Novillo  <dnovillo@google.com>
10311         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
10313 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
10315         PR target/40603
10316         * config/arm/arm.md (cbranchqi4): New pattern.
10317         * config/arm/predicates.md (const0_operand,
10318         cbranchqi4_comparison_operator): New predicates.
10320 2010-04-16  Richard Guenther  <rguenther@suse.de>
10322         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
10323         (dump_gimple_stmt): Likewise.
10325 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
10327         * recog.h (struct recog_data): New field is_operator.
10328         (struct insn_operand_data): New field is_operator.
10329         * recog.c (extract_insn): Set recog_data.is_operator.
10330         * genoutput.c (output_operand_data): Emit code to set the
10331         is_operator field.
10332         * reload.c (find_reloads): Use it rather than testing for an
10333         empty constraint string.
10335         PR target/41514
10336         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
10337         If the previous insn is a cbranchsi4_insn with the same arguments,
10338         omit the compare instruction.
10340         * config/arm/arm.md (addsi3_cbranch): If destination is a high
10341         register, inputs must be low registers and we need a low register
10342         scratch.  Handle alternative 2 like alternative 3.
10344 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
10346         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
10347         don't call get_addr on both.  If one expression is a VALUE and
10348         the other a REG, check VALUE's locs if the REG isn't among them.
10350 2010-04-16  Christian Bruel  <christian.bruel@st.com>
10352         * config/sh/sh.h (sh_frame_pointer_required): New function.
10353         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
10354         (flag_omit_frame_pointer) Set.
10355         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
10356         (rounded_frame_size): Adjust size with outgoing_args_size.
10357         (sh_set_return_address): Must return from stack pointer.
10358         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
10359         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
10360         (ACCUMULATE_OUTGOING_ARGS): Define.
10361         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
10362         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
10364 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10366         PR target/43471
10367         * config/sh/sh.c (sh_legitimize_reload_address): Use
10368         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
10369         Remove a unneeded check for offset_base.
10371 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
10373         * configure: Regenerated.
10375 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10377         * config/s390/s390.c (s390_call_save_register_used): Switch back
10378         to HARD_REGNO_NREGS.
10380 2010-04-15  Richard Guenther  <rguenther@suse.de>
10382         * alias.c (alias_set_subset_of): Handle alias-set zero
10383         child properly.
10385 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
10386             Julian Brown  <julian@codesourcery.com>
10388         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
10389         alternatives according to use of high and low regs.
10390         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
10391         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
10392         optimizing for size on Thumb-2.
10394 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
10396         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
10398 2010-04-15  Richard Guenther  <rguenther@suse.de>
10400         * tree-ssa-structalias.c (struct variable_info): Add
10401         is_fn_info flag.
10402         (new_var_info): Initialize it.
10403         (dump_constraints): Support printing last added constraints.
10404         (debug_constraints): Adjust.
10405         (dump_constraint_graph): Likewise.
10406         (make_heapvar_for): Check for NULL cfun.
10407         (get_function_part_constraint): New function.
10408         (get_fi_for_callee): Likewise.
10409         (find_func_aliases): Properly implement IPA PTA constraints.
10410         (process_ipa_clobber): New function.
10411         (find_func_clobbers): Likewise.
10412         (insert_into_field_list_sorted): Remove.
10413         (create_function_info_for): Properly allocate vars for IPA mode.
10414         Do not use insert_into_field_list_sorted.
10415         (create_variable_info_for): Properly generate constraints for
10416         global vars in IPA mode.
10417         (dump_solution_for_var): Always dump the solution.
10418         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
10419         (find_what_var_points_to): Adjust.
10420         (pt_solution_set): Change.
10421         (pt_solution_ior_into): New function.
10422         (pt_solution_empty_p): Export.
10423         (pt_solution_includes_global): Adjust.
10424         (pt_solution_includes_1): Likewise.
10425         (pt_solutions_intersect_1): Likewise.
10426         (dump_sa_points_to_info): Check some invariants.
10427         (solve_constraints): Move constraint dumping ...
10428         (compute_points_to_sets): ... here.
10429         (ipa_pta_execute): ... and here.
10430         (compute_may_aliases): Do not re-compute points-to info
10431         locally if IPA info is available.
10432         (ipa_escaped_pt): New global var.
10433         (ipa_pta_execute): Properly implement IPA PTA.
10434         * tree-into-ssa.c (dump_decl_set): Support dumping
10435         decls not in referenced-vars.
10436         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
10437         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
10438         (dump_points_to_solution): Likewise.
10439         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
10440         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
10441         (remap_gimple_stmt): Reset call clobber/use information if necessary.
10442         (copy_decl_to_var): Copy DECL_PT_UID.
10443         (copy_result_decl_to_var): Likewise.
10444         * tree.c (make_node_stat): Initialize DECL_PT_UID.
10445         (copy_node_stat): Copy it.
10446         * tree.h (DECL_PT_UID): New macro.
10447         (SET_DECL_PT_UID): Likewise.
10448         (DECL_PT_UID_SET_P): Likewise.
10449         (struct tree_decl_minimal): Add pt_uid member.
10450         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
10451         (pt_solution_empty_p): Declare.
10452         (pt_solution_set): Adjust.
10453         (ipa_escaped_pt): Declare.
10454         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
10455         * gimple-pretty-print.c (pp_points_to_solution): New function.
10456         (dump_gimple_call): Dump call clobber/use information.
10457         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
10458         * tree-pass.h (TDF_ALIAS): New dump option.
10459         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
10460         * doc/invoke.texi (-fipa-pta): Update documentation.
10462 2010-04-15  Richard Guenther  <rguenther@suse.de>
10464         * Makefile.in (OBJS-common): Add gimple-fold.o.
10465         (gimple-fold.o): New rule.
10466         * tree.h (maybe_fold_offset_to_reference,
10467         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
10468         prototypes ...
10469         * gimple.h: ... here.
10470         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
10471         may_propagate_address_into_dereference): Move prototypes ...
10472         * gimple.h: ... here.
10473         * tree-ssa-ccp.c (get_symbol_constant_value,
10474         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
10475         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
10476         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
10477         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
10478         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
10479         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
10480         gimplify_and_update_call_from_tree): Move ...
10481         * gimple-fold.c: ... here.  New file.
10482         (ccp_fold_builtin): Rename to ...
10483         (gimple_fold_builtin): ... this.
10484         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
10486 2010-04-15  Richard Guenther  <rguenther@suse.de>
10488         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
10489         fit_double_type, force_fit_type_double, add_double_with_sign,
10490         neg_double, mul_double_with_sign, lshift_double, rshift_double,
10491         lrotate_double, rrotate_double, div_and_round_double): Move ...
10492         * double-int.c: ... here.
10493         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
10494         add_double, neg_double, mul_double_with_sign, mul_double,
10495         lshift_double, rshift_double, lrotate_double, rrotate_double,
10496         div_and_round_double): Move prototypes ...
10497         * double-int.h: ... here.
10499 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
10501         PR target/43742
10502         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
10503         matching constraints to ensure inputs match the output.
10505 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10507         PR target/43742
10508         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
10509         in an input-only operand.
10511 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
10513         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
10514         (double_int_not, double_int_lshift, double_int_rshift): Declare.
10515         (double_int_negative_p): Convert to static inline function.
10516         * double-int.c (double_int_lshift, double_int_lshift): New functions.
10517         (double_int_negative_p): Remove.
10518         * tree.h (lshift_double, rshift_double):
10519         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
10520         * fold-const.c (fold_convert_const_int_from_real,
10521         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
10522         (lshift_double): Change type of arith argument to bool.
10523         (rshift_double): Change type of arith argument to bool. Correct
10524         comment.
10525         * expmed.c (mask_rtx, lshift_value): (Ditto.).
10527 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
10529         PR target/21803
10530         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
10531         at the start and end of the then/else blocks, and omit them from the
10532         conversion.
10533         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
10534         argument; all callers changed.  Pass zero to old_insns_match_p instead.
10535         (flow_find_head_matching_sequence): New function.
10536         (old_insns_match_p): Check REG_EH_REGION notes for calls.
10537         * basic-block.h (flow_find_cross_jump,
10538         flow_find_head_matching_sequence): Declare functions.
10540 2010-04-14  Jason Merrill  <jason@redhat.com>
10542         PR c++/36625
10543         * c-common.c (attribute_takes_identifier_p): New fn.
10544         * c-common.h: Declare it.
10546 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10548         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
10549         splitter condition.
10550         (*udivmod<mode>4): Ditto.
10552 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10554         * config/i386/i386.md (maxmin_int): Rename code attribute from
10555         maxminiprefix and update all users.
10556         (maxmin_float): Ditto from maxminfprefix.
10557         (logic): Ditto from logicprefix.
10558         (absneg_mnemonic): Ditto from absnegprefix.
10559         * config/i386/mmx.md: Update all users of maxminiprefix,
10560         maxminfprefix and logicprefix for rename.
10561         * config/i386/sse.md: Ditto.
10562         * config/i386/sync.md (sync_<code><mode>): Update for
10563         logicprefix rename.
10565 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10567         PR 42966
10568         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
10569         warnings converted to errors.
10571 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10573         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
10574         used insn_type variable.
10575         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
10576         to avoid set-but-not-used warning.
10578 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10580         * df-core.c (df_ref_debug): Change format string placeholder
10581         from 0x%x to %#x.
10582         * dwarf2asm.c (dw2_asm_output_data_raw,
10583         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
10584         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
10585         * dwarf2out.c (output_cfi, output_cfi_directive,
10586         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
10587         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
10588         Ditto.
10589         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
10590         * print-rtl.c (print_rtx): Ditto.
10592 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10594         PR middle-end/42694
10595         * builtins.c (expand_builtin_pow_root): New function to expand pow
10596         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
10597         series of sqrt and cbrt calls under -ffast-math.
10598         (expand_builtin_pow): Call it.
10600 2010-04-14  Michael Matz  <matz@suse.de>
10602         PR tree-optimization/42963
10603         * tree-cfg.c (touched_switch_bbs): New static variable.
10604         (group_case_labels_stmt): New function broken out from ...
10605         (group_case_labels): ... here, use the above.
10606         (start_recording_case_labels): Allocate touched_switch_bbs.
10607         (end_recording_case_labels): Deallocate it, call
10608         group_case_labels_stmt.
10609         (gimple_redirect_edge_and_branch): Remember index of affected BB.
10611 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10613         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
10614         from insn template.
10616 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10618         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
10620 2010-04-13  Jan Hubicka  <jh@suse.cz>
10622         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
10623         of optimized out static functions.
10624         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
10625         cost computation.  Also sanity check for overflows.
10626         (update_caller_keys): Update cgraph_edge_badness call; properly
10627         update fibheap and sanity check that it is up to date.
10628         (add_new_edges_to_heap): Update cgraph_edge_badness.
10629         (cgraph_decide_inlining_of_small_function): Likewise;
10630         add sanity checking that badness in heap is up to date;
10631         improve dumping of reason; Update badness of calls to the
10632         offline copy of function currently inlined; dump badness
10633         of functions not inlined because of unit growth limits.
10635 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10637         PR middle-end/32628
10638         * c-common.c (pointer_int_sum): Disregard overflow that occured only
10639         because of sign-extension change when converting to sizetype here...
10640         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
10642         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
10643         the folding to constants.  Remove redundant final conversion.
10644         (fold_binary) <associate>: Do not associate if the re-association of
10645         constants alone overflows.
10646         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
10647         to the end of the list.
10648         (multiple_of_p) <COND_EXPR>: New case.
10650 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10652         * opt-functions.awk (opt_sanitized_name): New.
10653         (opt_enum): New.
10654         * optc-gen.awk: Use it
10655         * opth-gen.awk: Use it.
10657 2010-04-13  Martin Jambor  <mjambor@suse.cz>
10659         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
10660         (sra_modify_assign): Delete stmts loading dead data even if racc has no
10661         children.  Call replace_uses_with_default_def_ssa_name to handle
10662         SSA_NAES on lhs.
10664 2010-04-13  Michael Matz  <matz@suse.de>
10666         PR middle-end/43730
10667         * builtins.c (expand_builtin_interclass_mathfn): Also create
10668         a register if the predicate doesn't match.
10670 2010-04-13  Diego Novillo  <dnovillo@google.com>
10672         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
10673         * c-pch.c: Include timevar.h.
10674         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
10675         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
10676         * ggc-common.c: Include timevar.h.
10677         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
10678         * timevar.def (TV_PCH_SAVE): Define.
10679         (TV_PCH_CPP_SAVE): Define.
10680         (TV_PCH_PTR_REALLOC): Define.
10681         (TV_PCH_PTR_SORT): Define.
10682         (TV_PCH_RESTORE): Define.
10683         (TV_PCH_CPP_RESTORE): Define.
10685 2010-04-13  Michael Matz  <matz@suse.de>
10687         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
10688         into MINUS_EXPRs.
10689         (can_reassociate_p): New function.
10690         (break_up_subtract_bb, reassociate_bb): Use it.
10692 2010-04-13  Richard Guenther  <rguenther@suse.de>
10694         PR bootstrap/43737
10695         * builtins.c (c_readstr): Fix assert.
10697 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
10699         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
10700         when generating cltd insn.
10702         (*ashl<mode>3_1): Remove special handling for register operand 2.
10703         (*ashlsi3_1_zext): Ditto.
10704         (*ashlhi3_1): Ditto.
10705         (*ashlhi3_1_lea): Ditto.
10706         (*ashlqi3_1): Ditto.
10707         (*ashlqi3_1_lea): Ditto.
10708         (*<shiftrt_insn><mode>3_1): Ditto.
10709         (*<shiftrt_insn>si3_1_zext): Ditto.
10710         (*<shiftrt_insn>qi3_1_slp): Ditto.
10711         (*<rotate_insn><mode>3_1): Ditto.
10712         (*<rotate_insn>si3_1_zext): Ditto.
10713         (*<rotate_insn>qi3_1_slp): Ditto.
10715 2010-04-13  Richard Guenther  <rguenther@suse.de>
10717         * tree-ssa-structalias.c (callused_id): Remove.
10718         (call_stmt_vars): New.
10719         (get_call_vi): Likewise.
10720         (lookup_call_use_vi): Likewise.
10721         (lookup_call_clobber_vi): Likewise.
10722         (get_call_use_vi): Likewise.
10723         (get_call_clobber_vi): Likewise.
10724         (make_transitive_closure_constraints): Likewise.
10725         (handle_const_call): Adjust to do per-call call-used handling.
10726         (handle_pure_call): Likewise.
10727         (find_what_var_points_to): Remove general callused handling.
10728         (init_base_vars): Likewise.
10729         (init_alias_vars): Initialize call_stmt_vars.
10730         (compute_points_to_sets): Process call-used and call-clobbered
10731         vars for call statements.
10732         (delete_points_to_sets): Free call_stmt_vars.
10734 2010-04-13  Richard Guenther  <rguenther@suse.de>
10736         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
10737         Only add RW dependence for dependence distance zero.
10738         Adjust maximal vectorization factor according to dependences.
10739         Move alignment handling ...
10740         (vect_find_same_alignment_drs): ... here.  New function.
10741         (vect_analyze_data_ref_dependences): Adjust.
10742         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
10743         (vect_analyze_data_refs): Adjust minimal vectorization factor
10744         according to data references.
10745         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
10746         dependences before determining the vectorization factor.
10747         Analyze alignment after determining the vectorization factor.
10748         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
10749         dependences before alignment.
10750         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
10751         Adjust prototype.
10752         (vect_analyze_data_refs): Likewise.
10753         (MAX_VECTORIZATION_FACTOR): New define.
10755 2010-04-13  Duncan Sands  <baldrick@free.fr>
10757         * except.h (lang_eh_type_covers): Remove.
10758         * except.c (lang_eh_type_covers): Likewise.
10760 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10761             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10763         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
10764         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
10765         UNITS_PER_LONG where it is ABI relevant.
10766         (s390_return_addr_rtx): Likewise.
10767         (s390_back_chain_rtx): Likewise.
10768         (s390_frame_area): Likewise.
10769         (s390_frame_info): Likewise.
10770         (s390_initial_elimination_offset): Likewise.
10771         (save_gprs): Likewise.
10772         (s390_emit_prologue): Likewise.
10773         (s390_emit_epilogue): Likewise.
10774         (s390_function_arg_advance): Likewise.
10775         (s390_function_arg): Likewise.
10776         (s390_va_start): Likewise.
10777         (s390_gimplify_va_arg): Likewise.
10778         (s390_function_profiler): Likewise.
10779         (s390_optimize_prologue): Likewise.
10780         (s390_rtx_costs): Likewise.
10781         (s390_secondary_reload): Likewise.
10782         (s390_promote_function_mode): Likewise.
10783         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
10784         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
10785         registers available.
10786         (s390_unwind_word_mode): New function.
10787         (s390_function_value): Split 64 bit values into register pair if
10788         used as return value.
10789         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
10790         function call parameters.  Handle parallels.
10791         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
10792         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
10793         (DWARF_CIE_DATA_ALIGNMENT): New macro.
10794         (s390_expand_setmem): Remove unused variable src_addr.
10795         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
10796         deal with 64 bit registers.
10797         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
10798         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
10799         (UNITS_PER_LONG): New macro.
10800         * libjava/include/s390-signal.h: Define extended ucontext
10801         structure containing the upper halfs of the 64 bit registers.
10803 2010-04-13  Simon Baldwin  <simonb@google.com>
10805         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
10807 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10809         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
10810         rvalue on the RHS if the LHS is of a non-renamable type.
10811         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
10813 2010-04-13  Matthias Klose  <doko@ubuntu.com>
10815         * gcc.c (cc1_options): Handle -iplugindir before processing
10816         the cc1 spec. Only add -iplugindir once.
10817         (cpp_unique_options): Add -iplugindir option if -fplugin* options
10818         found.
10819         * common.opt (iplugindir): Remove `Separate' property, initialize.
10820         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
10821         option.
10822         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
10823         (distclean): Remove plugin dir.
10824         * doc/invoke.texi: Document -iplugindir.
10826 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
10828         * doc/plugins.texi (Loading Plugins): Document short
10829         -fplugin=foo option.
10830         (Plugin API): Mention default_plugin_dir_name function.
10832         * gcc.c (find_file_spec_function): Add new declaration.
10833         (static_spec_func): Use it for "find-file".
10834         (find_file_spec_function): Add new function.
10835         (cc1_options): Add -iplugindir option if -fplugin* options found.
10837         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
10839         * plugin.c (add_new_plugin): Updated comment, and handle short
10840         plugin name.
10841         (default_plugin_dir_name): Added new function.
10843         * common.opt (iplugindir): New option to set the plugin directory.
10845 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
10847         * config/i386/i386.md (any_rotate): New code iterator.
10848         (rotate_insn): New code attribute.
10849         (rotate): Ditto.
10850         (SWIM124): New mode iterator.
10851         (<rotate_insn>ti3): New expander.
10852         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
10853         any_rotate code iterator.
10854         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
10855         using any_rotate code iterator and SWIM124 mode iterator.
10856         (ix86_rotlti3): New insn_and_split pattern.
10857         (ix86_rotrti3): Ditto.
10858         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
10859         ix86_rotl{di,ti}3 patterns.
10860         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
10861         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
10862         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
10863         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
10864         code iterator and SWI mode iterator.
10865         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
10866         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
10867         code iterator.
10868         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
10869         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
10870         (bswap rotatert splitter): Add splitter.
10871         (bswap splitter): Macroize splitter using any_rotate code iterator.
10872         Add insn predicate to split only for TARGET_USE_XCHGB or when
10873         optimizing function for size.
10875 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10877         * config/pa/pa.c (emit_move_sequence): Remove use of
10878         deleted variable flag_argument_noalias.
10880 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10882         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
10883         configurations.
10884         Add to unsupported targets list.
10885         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
10886         sparc*-sun-solaris2.[567]* from target lists.
10887         * configure: Regenerate.
10888         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
10889         removal.
10890         Remove Solaris 7 patch references.
10891         (Specific, sparc-sun-solaris2.7): Removed.
10892         (sparc-sun-solaris2*): Update Solaris 7 example.
10893         (sparc64-*-solaris2*): Likewise.
10895 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10897         * config.build (alpha*-dec-osf4*): Remove.
10898         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
10899         of obsolete configurations.
10900         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
10901         support.
10902         * config/alpha/t-osf4: Renamed to ...
10903         * config/alpha/t-osf5: ... this.
10904         * config/alpha/osf.h: Renamed to ...
10905         * config/alpha/osf5.h: ... this.
10906         Merged old osf5.h contents.
10907         Update comments.
10908         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
10909         (EXTRA_SPECS): Removed.
10910         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
10911         reflect removal of Tru64 UNIX V4.0/V5.0 support.
10912         Document that.
10914 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10916         * doc/contrib.texi (Contributors, Rainer Orth): Update.
10918 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
10920         PR/43702
10921         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
10922         __thiscall convention.
10924 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10926         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
10927         orig_base.
10928         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
10930 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10932         * function.c (assign_parms_initialize_all): Add unused attribute
10933         to fntype.
10935 2010-04-12  Richard Guenther  <rguenther@suse.de>
10937         * gsstruct.def (GSS_CALL): New.
10938         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
10939         * gimple.h: Include tree-ssa-alias.h.
10940         (struct gimple_statement_call): New.
10941         (union gimple_statement_struct_d): Add gimple_call member.
10942         (gimple_call_reset_alias_info): Declare.
10943         (gimple_call_use_set): New function.
10944         (gimple_call_clobber_set): Likewise.
10945         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
10946         * gimple.c (gimple_call_reset_alias_info): New function.
10947         (gimple_build_call_1): Call it.
10948         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10949         * tree-inline.c (remap_gimple_stmt): Likewise.
10950         (expand_call_inline): Remove callused handling.
10951         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
10952         * tree-dfa.c (dump_variable): Likewise.
10953         * tree-parloops.c (parallelize_loops): Likewise.
10954         * tree-ssa.c (init_tree_ssa): Likewise.
10955         (delete_tree_ssa): Likewise.
10956         * tree-flow-inline.h (is_call_used): Remove.
10957         * tree-flow.h (struct gimple_df): Remove callused member.
10958         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
10959         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
10960         (ref_maybe_used_by_call_p_1): Simplify.
10961         (call_may_clobber_ref_p_1): Likewise.
10962         * tree-ssa-structalias.c (compute_points_to_sets): Set
10963         the call stmt used and clobbered sets.
10964         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
10965         (find_tail_calls): Verify the tail call.
10967 2010-04-12  Richard Guenther  <rguenther@suse.de>
10969         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
10970         single-iteration always-inline inlining.
10971         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
10972         (cgraph_decide_inlining): Do not handle always-inline specially.
10973         (try_inline): Remove always-inline cycle detection special case.
10974         Do not recurse on always-inlines.
10975         (cgraph_early_inlining): Do not iterate if not optimizing.
10976         (cgraph_gate_early_inlining): remove.
10977         (pass_early_inline): Run unconditionally.
10978         (gate_cgraph_decide_inlining): New function.
10979         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
10980         not inlining or optimizing.
10981         (cgraph_decide_inlining_of_small_functions): Also consider
10982         always-inline functions.
10983         (cgraph_default_inline_p): Return true for nodes which should
10984         disregard inline limits.
10985         (estimate_function_body_sizes): Assume zero size and time for
10986         nodes which are marked as disregarding inline limits.
10987         (cgraph_decide_recursive_inlining): Do not perform recursive
10988         inlining on always-inline nodes.
10990 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
10992         PR bootstrap/43699
10993         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
10994         for exprs satisfying handled_component_p.
10996 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10998         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
10999         non-constant aggregate elements.
11001         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
11002         is a real initialization.
11004 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
11006         PR c/36774
11007         * c-decl.c (start_function): Move forward check for nested function.
11009 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11011         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
11012         * config/sh/sh.c: Include reload.h.
11013         (sh_legitimize_reload_address): New.
11014         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
11015         sh_legitimize_reload_address.
11017 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
11019         * config/sh/sh.md (*movqi_pop): New insn pattern.
11020         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
11022 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
11024         * config/i386/i386.md (any_shiftrt): New code iterator.
11025         (shiftrt_insn): New code attribute.
11026         (shiftrt): Ditto.
11027         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
11028         using any_shiftrt code iterator.
11029         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
11030         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
11031         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
11032         pattern from corresponding peephole2 patterns.
11033         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
11034         using any_shiftrt code iterator.
11035         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
11036         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
11037         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
11038         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
11039         *{ashr,lshr}<mode>3_cmp_zext.
11040         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
11042 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
11044         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
11045         scratch register.
11046         (*lshr<mode>3_cconly): Ditto.
11048 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
11050         * config/i386/i386.md (lshr<mode>3): Macroize expander from
11051         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
11052         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
11053         pattern from *lshr{di,ti}3_1 and corresponding splitters using
11054         DWI mode iterator.
11055         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
11056         from corresponding peephole2 patterns.
11057         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
11058         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
11059         and *lshrdi3_1_rex64 using SWI mode iterator.
11060         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
11061         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
11062         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
11063         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
11064         and *lshrdi3_cmp_rex64 using SWI mode iterator.
11065         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
11066         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
11067         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
11068         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
11069         SWI mode iterator.
11071 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
11073         * config/i386/i386.md (ashr<mode>3): Macroize expander from
11074         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
11075         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
11076         pattern from *ashr{di,ti}3_1 and corresponding splitters using
11077         DWI mode iterator.
11078         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
11079         from corresponding peephole2 patterns.
11080         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
11081         (ashrsi3_cvt): Rename from ashrsi3_31.
11082         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
11083         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
11084         and x86_64_shift_adj_3 using SWI48 mode iterator.
11085         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
11086         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
11087         and *ashrdi3_1_rex64 using SWI mode iterator.
11088         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
11089         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
11090         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
11091         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
11092         and *ashrdi3_cmp_rex64 using SWI mode iterator.
11093         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
11094         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
11095         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
11096         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
11097         SWI mode iterator.
11098         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
11099         * config/i386/i386.c (ix86_split_ashr): Update for renamed
11100         x86_shift<mode>_adj_3 expanders.
11102 2010-04-10  Wei Guozhi  <carrot@google.com>
11104         PR target/42601
11105         * config/arm/arm.c (arm_pic_static_addr): New function.
11106         (legitimize_pic_address): Call arm_pic_static_addr when it detects
11107         a static symbol.
11108         (arm_output_addr_const_extra): Output expression for new pattern.
11109         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
11111 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
11113         * ira-costs.c (record_reg_classes): Ignore alternatives that are
11114         not enabled.
11116         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
11117         * web.c: Include "insn-config.h" and "recog.h".
11118         (union_match_dups): New function.
11119         (web_main): Call it.
11120         (union_defs): Don't try to recognize match_dups.
11122         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
11123         if doing so would replace the entire pattern.
11125 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
11127         PR target/43707
11128         PR target/43709
11129         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
11130         and splitter pattern.  Change splitter operand 1 predicate to
11131         nonmemory_operand.
11133 2010-04-09  Martin Jambor  <mjambor@suse.cz>
11135         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
11136         lattices are addresses of CONST_DECLs with the same initial value.
11137         (ipcp_print_all_lattices): Print values of CONST_DECLs.
11138         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
11140 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
11141             Bernd Schmidt  <bernds@codesourcery.com>
11143         * loop-invariant.c (replace_uses): New static function.
11144         (move_invariant_reg): Use it to ensure we can replace the uses.
11146 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11148         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
11149         function template.
11150         (picochip_override_options): Enable section anchors only above -O1.
11151         (picochip_reorg): Fixed a couple of build warnings.
11153 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11155         * configure.ac (plugin -rdynamic test): Log result.
11156         * configure: Regenerate.
11157         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
11158         (RDYNAMIC_SPEC): Define.
11159         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
11161 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11163         * configure.ac: Determine Sun ld version numbers.
11164         (comdat_group): Restrict GNU ld version checks to gld.
11165         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
11166         (enable_comdat): Support --enable-comdat.
11167         * configure: Regenerate.
11168         * doc/install.texi (Configuration): Document --enable-comdat.
11170 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11172         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
11173         * config/sol2-gld.h: ... here.
11174         * config.gcc (sparc*-*-solaris2*): Reflect this.
11175         (i[34567]86-*-solaris2*): Use it.
11177 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
11179         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
11180         setup_clocks_p.
11181         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
11183 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11185         PR 42965
11186         * diagnostic.c (diagnostic_initialize): Initialize
11187         some_warnings_are_errors.
11188         (diagnostic_finish): New.
11189         (diagnostic_action_after_output): Call it before exiting.
11190         (diagnostic_report_diagnostic): Do not print message here. Set
11191         some_warnings_are_errors.
11192         * diagnostic.h (diagnostic_context): Delete
11193         issue_warnings_are_errors_message. Add some_warnings_are_errors.
11194         (diagnostic_finish): Declare.
11195         * toplev.c (toplev_main): Call it before exit.
11197 2010-04-09  Jason Merrill  <jason@redhat.com>
11199         PR c++/42623
11200         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
11201         for incomplete type.
11203         PR c++/41788
11204         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
11205         based on a warning flag.
11207 2010-04-09  Richard Guenther  <rguenther@suse.de>
11209         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
11211 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
11213         PR bootstrap/43684
11214         * varasm.c (default_assemble_visibility): Wrap vars that are
11215         set, but unused, by targets without GAS.
11216         * config/rs6000/rs6000.c (paired_emit_vector_compare):
11217         Remove set, but unused, vars.
11218         (rs6000_legitimize_tls_address): Likewise.
11219         (altivec_expand_dst_builtin): Likewise.
11220         * config/darwin.c (machopic_classify_symbol): Likewise.
11221         (machopic_indirection_name): Likewise.
11223 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
11225         * config/i386/i386.md (DWI): New mode iterator.
11226         (S): New mode attribute.
11227         (shift_operand): Ditto.
11228         (shift_immediate_operand): Ditto.
11229         (ashl_input_operand): Ditto.
11230         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
11231         using SDWIM mode iterator.
11232         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
11233         pattern from *ashl{di,ti}3_1 and corresponding splitters using
11234         DWI mode iterator.
11235         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
11236         from corresponding peephole2 patterns.
11237         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
11238         and x86_64_shift_adj_1 using SWI48 mode iterator.
11239         (x86_shift<mode>_adj_2): Ditto.
11240         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
11241         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
11242         using SWI48 mode iterator.
11243         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
11244         *ashldi3_cmp_rex64 using SWI mode iterator.
11245         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
11246         *ashldi3_cconly_rex64 using SWI mode iterator.
11247         * config/i386/i386.c (ix86_split_ashl): Update for renamed
11248         x86_shift<mode>_adj_{1,2}.
11249         (ix86_split_ashr): Ditto.
11250         (ix86_split_lshr): Ditto.
11252 2010-04-09  Richard Guenther  <rguenther@suse.de>
11254         * target.h (builtin_conversion): Pass in input and output types.
11255         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
11256         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
11257         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
11258         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
11260         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
11261         Handle AVX modes.
11262         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
11264 2010-04-09  Richard Guenther  <rguenther@suse.de>
11266         PR target/43152
11267         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
11269 2010-04-09  Richard Guenther  <rguenther@suse.de>
11271         * tree-vectorizer.h (struct _stmt_vec_info): Document
11272         that vectype is the type of the LHS.
11273         (supportable_widening_operation, supportable_narrowing_operation):
11274         Get both input and output vector types as arguments.
11275         (vect_is_simple_use_1): Declare.
11276         (get_same_sized_vectype): Likewise.
11277         * tree-vect-loop.c (vect_determine_vectorization_factor):
11278         Set STMT_VINFO_VECTYPE to the vector type of the def.
11279         (vectorizable_reduction): Adjust.
11280         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
11281         Adjust.  Specify the output vector type.
11282         (vect_pattern_recog_1): Adjust.
11283         * tree-vect-stmts.c (get_same_sized_vectype): New function.
11284         (vectorizable_call): Adjust.
11285         (vectorizable_conversion): Likewise.
11286         (vectorizable_operation): Likewise.
11287         (vectorizable_type_demotion): Likewise.
11288         (vectorizable_type_promotion): Likewise.
11289         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
11290         the def.
11291         (vect_is_simple_use_1): New function.
11292         (supportable_widening_operation): Get both input and output
11293         vector types.
11294         (supportable_narrowing_operation): Likewise.
11295         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
11297 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
11299         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
11300         __thiscall and _thiscall as predefined macros.
11301         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
11302         thiscall attribute handling.
11303         (ix86_comp_type_attributes): Likewise.
11304         (ix86_function_regparm): Likewise.
11305         (ix86_return_pops_args): Likewise.
11306         (init_cumulative_args): Likewise.
11307         (find_drap_reg): Likewise.
11308         (ix86_static_chain): Likewise.
11309         (x86_this_parameter): Likewise.
11310         (x86_output_mi_thunk): Likewise.
11311         (ix86_attribute_table): Add description for thiscall attribute.
11312         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
11313         * doc/extend.texi: Add documentation for thiscall.
11315 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11317         PR c++/28584
11318         * c.opt (Wint-to-pointer-cast): Available in C++.
11319         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
11321 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
11323         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
11324         * calls.c (expand_call): Pass the function type to aggregate_value_p.
11325         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
11326         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
11327         function type instead.  Reorder and simplify checks.
11329         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
11331 2010-04-08  Jing Yu  <jingyu@google.com>
11332             Zdenek Dvorak  <ook@ucw.cz>
11334         PR tree-optimization/42720
11335         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
11336         loop unswitch conditions here from ...
11337         (tree_unswitch_single_loop): ... here.
11339 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
11341         * tree-if-conv.c: Fix comments and simplify logic.
11343 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
11345         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
11346         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
11347         (main_tree_if_conversion): Update call to tree_if_conversion.
11349 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11351         PR 42485
11352         * doc/invoke.texi (-b,-V): Delete.
11353         * doc/tm.texi: Do not mention -b.
11354         * gcc.c (display_help): Delete -b and -V.
11355         (process_command): Delete -b and -V.
11356         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
11358 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
11359             Wolfgang Gellerich  <gellerich@de.ibm.com>
11361         Implement target hook for loop unrolling
11362         * target.h (loop_unroll_adjust): Add a new target hook function.
11363         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
11364         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
11365         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
11366         (s390_loop_unroll_adjust): Implement the new target hook for s390.
11367         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
11368         target hook.
11369         (decide_unroll_stupid): Likewise.
11371 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11373         PR target/43643
11374         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
11376 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11378         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
11379         (Specific, *-*-solaris2*): Likewise.
11380         Don't prefer Sun as over GNU as.
11382 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
11384         * config/s390/s390.c (override_options): Adjust the z10 defaults
11385         for max-unroll-times, max-completely-peeled-insns
11386         and max-completely-peel-times.
11388 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11390         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
11391         instructions for z10.
11392         (s390_expand_setmem): Likewise.
11393         (s390_expand_cmpmem): Likewise.
11395 2010-04-08  Richard Guenther  <rguenther@suse.de>
11397         PR tree-optimization/43679
11398         * tree-ssa-pre.c (eliminate): Only propagate copies.
11400 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
11402         PR bootstrap/43681
11403         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
11404         set but not used variable warning.
11406 2010-04-08  Wei Guozhi  <carrot@google.com>
11408         PR target/41653
11409         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
11410         (arm_size_rtx_costs): Call the new function when optimized for size.
11412 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
11414         PR debug/43670
11415         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
11416         op0 is not a MEM, just return NULL instead of assertion
11417         failure.
11418         (discover_nonconstant_array_refs): Don't walk debug stmts.
11420 2010-04-08  Doug Kwan  <dougkwan@google.com>
11422         * configure.ac: Recognize gold and do not use its version number
11423         to test ld features.
11424         * configure: Regenerate.
11426 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
11428         PR middle-end/40815
11429         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
11430         (negate_value): Move code to push elements to broken_up_substracts ...
11431         (eliminate_plus_minus_pair): ... here.  Push operands that have no
11432         negative pair to plus_negates.
11433         (repropagate_negates, init_reassoc, fini_reassoc): Update.
11435 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11437         * doc/install.texi (Configuration): Move description of
11438         --enable-lto, --with-libelf*, --enable-gold from Java section to
11439         general section.
11441         * doc/generic.texi (Working with declarations)
11442         (Function Properties, C and C++ Trees): Fix typos.
11443         * doc/sourcebuild.texi (Top Level): Likewise.
11445 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
11447         PR c/18624
11448         * tree.h (DECL_READ_P): Define.
11449         (struct tree_decl_common): Add decl_read_flag.
11450         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
11451         a set but not used warning.
11452         (merge_decls): Merge DECL_READ_P flag.
11453         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
11454         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
11455         * c-common.c (handle_used_attribute, handle_unused_attribute):
11456         Likewise.
11457         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
11458         New prototypes.
11459         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
11460         New functions.
11461         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
11462         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
11463         c_parser_binary_expression, c_parser_cast_expression,
11464         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
11465         Call default_function_array_read_conversion instead of
11466         default_function_array_conversion where needed.
11467         (c_parser_unary_expression, c_parser_conditional_expression,
11468         c_parser_postfix_expression_after_primary, c_parser_initelt):
11469         Likewise.  Call mark_exp_read where needed.
11470         (c_parser_statement_after_labels, c_parser_asm_operands,
11471         c_parser_typeof_specifier, c_parser_sizeof_expression,
11472         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
11473         where needed.
11474         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
11475         New.
11476         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
11477         (warn_unused_but_set_parameter): Default to warn_unused
11478         && extra_warnings.
11479         * doc/invoke.texi: Document -Wunused-but-set-variable and
11480         -Wunused-but-set-parameter.
11482         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
11483         used count variable.
11484         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
11485         when operandN variables aren't used in the body of the expander
11486         or splitter.
11487         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
11488         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
11489         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
11490         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
11491         FOR_EACH_IMM_USE_ON_STMT): Likewise.
11492         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
11493         * tree.c (PROCESS_ARG): Likewise.
11495 2010-04-07  Simon Baldwin  <simonb@google.com>
11497         * diagnostic.h (diagnostic_override_option_index): New macro to
11498         set a diagnostic's option_index.
11499         * c-tree.h (c_cpp_error): Add warning reason argument.
11500         * opts.c (_warning_as_error_callback): New.
11501         (register_warning_as_error_callback): Store callback for
11502         warnings enabled via enable_warning_as_error.
11503         (enable_warning_as_error): Call callback, minor code tidy.
11504         * opts.h (register_warning_as_error_callback): Declare.
11505         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
11506         response to -Werror=.
11507         (c_common_init_options): Register warning_as_error_callback in opts.c.
11508         * common.opt: Add -Wno-cpp option.
11509         * c-common.c (struct reason_option_codes_t): Map cpp warning
11510         reason codes to gcc option indexes.
11511         * (c_option_controlling_cpp_error): New function, lookup the gcc
11512         option index for a cpp warning reason code.
11513         * (c_cpp_error): Add warning reason argument, call
11514         c_option_controlling_cpp_error for diagnostic_override_option_index.
11515         * doc/invoke.texi: Document -Wno-cpp.
11517 2010-04-07  Richard Guenther  <rguenther@suse.de>
11519         * ipa-reference.c (mark_load): Use get_base_address.
11520         (mark_store): Likewise.
11522         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
11523         inserting GIMPLE_NOPs into the IL.
11524         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11525         Explicitly strip handled components and indirect references.
11527         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
11528         folding address expressions.
11529         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
11530         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
11531         operand_equal_p to compare decls.
11532         (ptr_deref_may_alias_decl_p): Likewise.
11533         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
11534         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
11535         Handle reversed comparison ops.
11536         * tree-sra.c (asm_visit_addr): Use get_base_address.
11537         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
11538         * ipa-reference.c (mark_address): Use get_base_address.
11540 2010-04-07  Richard Guenther  <rguenther@suse.de>
11542         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
11543         Propagate constants everywhere.
11545 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
11547         PR debug/43516
11548         * tree.c (MAX_INT_CACHED_PREC): Define.
11549         (nonstandard_integer_type_cache): New array.
11550         (build_nonstandard_integer_type): Cache results for precision
11551         <= MAX_INT_CACHED_PREC.
11553 2010-04-07  Richard Guenther  <rguenther@suse.de>
11555         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
11556         -fargument-noalias-global, -fargument-noalias-anything): Remove.
11557         * common.opt: Likewise.
11558         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
11559         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
11560         (nonoverlapping_memrefs_p): Likewise.
11561         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11562         * opts.c (common_handle_option): Handle OPT_fargument_alias,
11563         OPT_fargument_noalias, OPT_fargument_noalias_anything and
11564         OPT_fargument_noalias_global for backward compatibility.
11566 2010-04-07  Richard Guenther  <rguenther@suse.de>
11568         PR tree-optimization/43270
11569         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
11570         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
11571         * tree-ssa-pre.c (phi_translate_1): Adjust.
11572         (fully_constant_expression): Split out vn_reference handling to ...
11573         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
11574         Fold reads from constant strings.
11575         (vn_reference_lookup): Handle fully constant references.
11576         (vn_reference_lookup_pieces): Likewise.
11577         * Makefile.in (expmed.o-warn): Add -Wno-error.
11579 2010-04-07  Martin Jambor  <mjambor@suse.cz>
11581         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
11583 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
11585         PR driver/41594
11586         * gcc.c: Add -static-libstdc++ to list of recognized options.
11588 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11590         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
11592 2010-04-07  Richard Guenther  <rguenther@suse.de>
11594         PR middle-end/42617
11595         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
11596         bases build simple mem attributes to retain points-to information.
11598 2010-04-07  Richard Guenther  <rguenther@suse.de>
11600         PR middle-end/42617
11601         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
11602         preserve points-to related information.
11604 2010-04-07  Richard Guenther  <rguenther@suse.de>
11606         PR middle-end/42617
11607         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
11608         discard plain indirect references.
11609         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
11610         * tree.c (tree_nop_conversion): Likewise.
11612 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
11614         PR debug/43628
11615         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
11617 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
11619         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
11620         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
11622 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11624         * tree-if-conv.c: Fix indentation and comments.
11626 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11628         * tree-if-conv.c: Sort static functions in topological order.
11630 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11632         * tree-if-conv.c: Fix indentation and comments.
11634 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11636         PR middle-end/43519
11637         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
11638         lang_hooks.types.type_for_size instead of
11639         build_nonstandard_integer_type.
11640         When converting an unsigned type to signed, double its precision.
11641         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
11642         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
11643         (graphite_create_new_loop_guard): When ub + 1 wraps around,
11644         use lb <= ub.
11646 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11648         PR middle-end/43519
11649         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
11650         POINTER_PLUS_EXPR for pointer types.
11652 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11654         PR middle-end/43519
11655         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
11656         * graphite-clast-to-gimple.c: Include langhooks.h.
11657         (max_signed_precision_type): New.
11658         (max_precision_type): Takes two types as arguments.
11659         (precision_for_value): New.
11660         (precision_for_interval): New.
11661         (gcc_type_for_interval): New.
11662         (gcc_type_for_value): New.
11663         (gcc_type_for_clast_term): New.
11664         (gcc_type_for_clast_red): New.
11665         (gcc_type_for_clast_bin): New.
11666         (gcc_type_for_clast_expr): Split up into several functions.
11667         (gcc_type_for_clast_eq): Rewritten.
11668         (compute_bounds_for_level): New.
11669         (compute_type_for_level_1): New.
11670         (compute_type_for_level): New.
11671         (gcc_type_for_cloog_iv): Removed.
11672         (gcc_type_for_iv_of_clast_loop): Rewritten.
11673         (graphite_create_new_loop): Compute the lower and upper bound types
11674         with gcc_type_for_clast_expr.
11675         (graphite_create_new_loop_guard): Same.
11676         (find_cloog_iv_in_expr): Removed.
11677         (compute_cloog_iv_types_1): Removed.
11678         (compute_cloog_iv_types): Removed.
11679         (gloog): Do not call compute_cloog_iv_types.
11680         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
11681         GBB_CLOOG_IV_TYPES.
11682         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
11683         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
11684         (GBB_CLOOG_IV_TYPES): Removed.
11686 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11688         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
11689         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
11690         (detect_commutative_reduction): Same.
11692 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11694         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
11695         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
11696         argument.
11697         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
11698         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
11699         (rewrite_commutative_reductions_out_of_ssa): Same.
11700         * passes.c (execute_function_todo): Call verify_ssa for every pass
11701         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
11702         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
11703         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
11704         with an extra argument.
11705         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
11706         verify_ssa only when the extra argument is true.
11707         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
11708         with an extra argument.
11709         (tree_transform_and_unroll_loop): Same.
11711 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11713         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
11714         for all the passes of the LNO having LOOP_CLOSED_SSA.
11715         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
11716         * tree-loop-distribution.c (pass_loop_distribution): Same.
11717         * tree-pass.h (TODO_verify_loops): Removed.
11718         * tree-ssa-loop.c (pass_tree_loop_init): Same.
11719         (pass_lim): Same.
11720         (pass_tree_unswitch): Same.
11721         (pass_predcom): Same.
11722         (pass_vectorize): Same.
11723         (pass_linear_transform): Same.
11724         (pass_graphite_transforms): Same.
11725         (pass_iv_canon): Same.
11726         (pass_complete_unroll): Same.
11727         (pass_complete_unrolli): Same.
11728         (pass_parallelize_loops): Same.
11729         (pass_loop_prefetch): Same.
11730         (pass_iv_optimize): Same.
11732 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
11734         PR middle-end/32824
11735         * passes.c (init_optimization_passes): Move pass_lim before
11736         pass_copy_prop and pass_dce_loop.
11738 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11740         PR target/43667
11741         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
11742         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
11743         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
11744         MULTI_* defines for 4 argument vpermil2p* builtins.
11746 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11748         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
11749         * config/i386/i386.c (x86_maybe_negate_const_int): New.
11750         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
11751         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
11752         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
11753         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
11754         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
11755         Use x86_maybe_negate_const_int to output insn mnemonic.
11756         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
11757         check from instruction predicate.  Update comments.
11758         * config/i386/sync.md (sync_add<mode>): Use
11759         x86_maybe_negate_const_int to output insn mnemonic.
11761 2010-04-06  Jan Hubicka  <jh@suse.cz>
11763         PR tree-optimization/42906
11764         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
11765         IGNORE_SELF argument.  Set visited_control_parents for fully
11766         processed BBs.
11767         (find_obviously_necessary_stmts): Update call of
11768         mark_control_dependent_edges_necessary.
11769         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
11771 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11773         * config/i386/i386.md: Remove comment about 'e' and 'E'
11774         operand modifier.
11776 2010-04-06  Richard Guenther  <rguenther@suse.de>
11778         PR tree-optimization/43627
11779         * tree-vrp.c (extract_range_from_unary_expr): Widenings
11780         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
11781         not varying.
11783 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11785         * BASE-VER: Change to 4.6.0.
11787         PR target/43638
11788         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
11789         handling.
11791 2010-04-06  Richard Guenther  <rguenther@suse.de>
11793         PR middle-end/43661
11794         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
11796 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11798         * doc/invoke.texi (Optimize Options): Document that LTO
11799         won't remove object access purely due to incompatible
11800         declarations.
11802 2010-04-04  Matthias Klose  <doko@ubuntu.com>
11804         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
11805         Initialize variable.
11807 2010-04-03  Richard Guenther  <rguenther@suse.de>
11809         PR middle-end/42509
11810         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
11811         require a non-NULL MEM_OFFSET.
11813 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
11815         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
11816         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
11817         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
11818         config/alpha/predicates.md, config/arm/arm.md,
11819         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
11820         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
11821         config/darwin9.h, config/darwin.c, config/darwin.h,
11822         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
11823         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
11824         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
11825         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
11826         config/mips/mips.md, config/mn10300/mn10300.c,
11827         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
11828         config/rs6000/aix.h, config/rs6000/dfp.md,
11829         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
11830         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
11831         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
11832         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
11833         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
11834         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
11835         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
11836         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
11837         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
11838         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
11839         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
11840         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
11841         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
11842         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
11843         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
11844         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
11845         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
11846         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
11847         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
11848         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
11849         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
11850         opt-functions.awk, opth-gen.awk, params.def, passes.c,
11851         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
11852         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
11853         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
11854         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
11855         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
11856         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
11857         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
11858         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
11859         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
11860         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
11861         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
11862         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
11863         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
11864         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
11866 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11868         PR other/43620
11869         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
11870         * aclocal.m4: Regenerate.
11872 2010-04-02  Richard Guenther  <rguenther@suse.de>
11874         PR tree-optimization/43629
11875         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
11876         if we have seen a constant value.
11878 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
11880         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
11882 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
11884         PR target/43469
11885         * arm.c (legitimize_tls_address): Adjust call to
11886         gen_tls_load_dot_plus_four.
11887         (arm_note_pic_base): New function.
11888         (arm_cannot_copy_insn_p): Use it.
11889         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
11890         constraint.
11892 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11894         PR bootstrap/43531
11896         Revert:
11897         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11899         * Makefile.in ($(out_object_file)): Depend on
11900         gt-$(basename $(notdir $(out_file))).h.
11902 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
11904         * config.gcc (lm32-*-rtems*): Add t-lm32.
11906 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
11908         * config.gcc: Add lm32-*-rtems*.
11909         * config/lm32/rtems.h: New file.
11911 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
11913         PR target/42609
11914         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
11916 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
11918         * dwarf2out.c (output_compilation_unit_header): For
11919         -gdwarf-4 use version 4 instead of version 3.
11920         (output_line_info): For version 4 and above emit additional
11921         maximum ops per insn header field.
11922         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
11924         * dwarf2out.c (is_c_family, is_java): Remove.
11925         (lower_bound_default): New function.
11926         (add_bound_info, gen_descr_array_type_die): Use it.
11928 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
11930         PR debug/43325
11931         * dwarf2out.c (gen_variable_die): Allow debug info for variable
11932         re-declaration when it happens in a function.
11934 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
11936         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
11937         (cgraph_remove_function_insertion_hook): Same.
11938         (cgraph_call_function_insertion_hooks): Same.
11940 2010-04-01  Richard Guenther  <rguenther@suse.de>
11942         PR middle-end/43614
11943         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
11944         and TREE_THIS_VOLATILE.
11945         (copy_ref_info): Likewise.
11946         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
11947         * tree.c (build6_stat): Ignore side-effects of all but arg5
11948         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
11949         TARGET_MEM_REF.
11951 2010-04-01  Richard Guenther  <rguenther@suse.de>
11953         PR tree-optimization/43607
11954         * ipa-type-escape.c (check_call): Do not access non-existing
11955         arguments.
11957 2010-04-01  Richard Guenther  <rguenther@suse.de>
11959         PR middle-end/43602
11960         Revert
11961         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
11962                     Jack Howarth <howarth@bromo.med.uc.edu>
11964         * tree-profile.c (tree_init_ic_make_global_vars): Make static
11965         variables TLS.
11967 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11969         * doc/install.texi (Prerequisites): Document libelf usability on
11970         IRIX 5/6 and Solaris 2.
11971         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
11972         Update GNU as, GNU ld requirements.
11973         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
11974         Document Sun Studio compiler download.
11975         Update and simplify as, ld recommendations.
11976         (Specific, *-*-solaris2.7): Note obsoletion, removal.
11978 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11980         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
11981         with_tune_32 to pentium4.
11983 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
11985         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
11987 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11989         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
11990         obsoletion, removal.
11991         Update IDO URL.
11992         Document GNU as requirement.
11993         Update configure requirements.
11994         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
11995         Recomment IRIX 6.5.18+.
11996         Document IDF/IDL requirement.
11997         Document GNU as requirement.
11998         Document GNU ld bootstrap failure.
11999         Remove freeware.sgi.com reference.
12001 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12003         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
12004         UNIX V4.0, V5.0 obsoletion, removal.
12005         Remove --with-gc=simple reference.
12006         Update VM requirements during bootstrap.
12007         Remove -oldas bootstrap description.
12008         Update binutils reference.
12009         Remove comparison failure note.
12011 2010-03-31  Richard Guenther  <rguenther@suse.de>
12012             Zdenek Dvorak  <ook@ucw.cz>
12013             Sebastian Pop  <sebastian.pop@amd.com>
12015         PR middle-end/43464
12016         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
12017         with multiple arguments.
12018         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
12020 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
12022         * graphite-dependences.c (print_pddr): Call print_pdr with an
12023         extra argument.
12024         * graphite-poly.c (debug_pdr): Add an extra argument for the
12025         verbosity level.
12026         (print_pdr): Same.
12027         (print_pbb_domain): Same.
12028         (print_pbb): Same.
12029         (print_scop_context): Same.
12030         (print_scop): Same.
12031         (print_cloog): Same.
12032         (debug_pbb_domain): Same.
12033         (debug_pbb): Same.
12034         (print_pdrs): Same.
12035         (debug_pdrs): Same.
12036         (debug_scop_context): Same.
12037         (debug_scop): Same.
12038         (debug_cloog): Same.
12039         (print_scop_params): Same.
12040         (debug_scop_params): Same.
12041         (print_iteration_domain): Same.
12042         (print_iteration_domains): Same.
12043         (debug_iteration_domain): Same.
12044         (debug_iteration_domains): Same.
12045         (print_scattering_function): Same.
12046         (print_scattering_functions): Same.
12047         (debug_scattering_function): Same.
12048         (debug_scattering_functions): Same.
12049         * graphite-poly.h (debug_pdr): Update declaration.
12050         (print_pdr): Same.
12051         (print_pbb_domain): Same.
12052         (print_pbb): Same.
12053         (print_scop_context): Same.
12054         (print_scop): Same.
12055         (print_cloog): Same.
12056         (debug_pbb_domain): Same.
12057         (debug_pbb): Same.
12058         (print_pdrs): Same.
12059         (debug_pdrs): Same.
12060         (debug_scop_context): Same.
12061         (debug_scop): Same.
12062         (debug_cloog): Same.
12063         (print_scop_params): Same.
12064         (debug_scop_params): Same.
12065         (print_iteration_domain): Same.
12066         (print_iteration_domains): Same.
12067         (debug_iteration_domain): Same.
12068         (debug_iteration_domains): Same.
12069         (print_scattering_function): Same.
12070         (print_scattering_functions): Same.
12071         (debug_scattering_function): Same.
12072         (debug_scattering_functions): Same.
12074 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
12076         * graphite-poly.c (print_scattering_function_1): New.
12077         (print_scattering_function): Call it.
12078         (print_scop_params): Remove spaces at the end of lines.
12079         (print_cloog): New.
12080         (debug_cloog): New.
12081         * graphite-poly.h (print_cloog): Declared.
12082         (debug_cloog): Declared.
12084 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
12086         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
12087         in loop->header.
12088         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
12089         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
12090         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
12091         to switch between adding the IV bump in loop->latch or in loop->header.
12093 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
12095         * graphite-poly.c (print_scattering_function): Pretty print following
12096         the scoplib format.
12097         (print_pdr): Same.
12098         (print_pbb_domain): Same.
12099         (dump_gbb_cases): Same.
12100         (dump_gbb_conditions): Same.
12101         (print_pdrs): Same.
12102         (print_pbb): Same.
12103         (print_scop_params): Same.
12104         (print_scop_context): Same.
12105         (print_scop): Same.
12106         (print_pbb_body): New.
12107         (lst_indent_to): New.
12108         (print_lst): Start new lines with a #.
12109         * graphite-poly.h (pbb_bb): New.
12110         (pbb_index): Use pbb_bb.
12111         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
12112         disjuncts.
12113         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
12115 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
12117         * dwarf2out.c (size_of_die): For -gdwarf-4 use
12118         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
12119         and 0 instead of 1 for dw_val_class_flag.
12120         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
12121         dw_val_class_range_list, dw_val_class_loc_list,
12122         dw_val_class_lineptr and dw_val_class_macptr, use
12123         DW_FORM_flag_present for dw_val_class_flag and
12124         DW_FORM_exprloc for dw_val_class_loc.
12125         (output_die): For -gdwarf-4 print dw_val_class_loc
12126         size as uleb128 instead of 1 or 2 bytes and don't print
12127         anything for dw_val_class_flag.
12129         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
12130         instead of cselib_lookup following by tweaking locs->setting_insn.
12132         PR bootstrap/43596
12133         * cselib.c (cselib_process_insn): Clear cselib_current_insn
12134         even before returning from label, setjmp call or volatile asm
12135         handling.
12137 2010-03-31  Richard Guenther  <rguenther@suse.de>
12139         PR middle-end/43600
12140         * cgraphunit.c (cgraph_output_in_order): Do not allocate
12141         temporary data on stack.
12143 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12145         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
12146         (PUSHSECTION_ASM_OP): Remove.
12147         (POPSECTION_ASM_OP): Remove.
12148         (PUSHSECTION_FORMAT): Remove.
12149         * config/sol2.h (PUSHSECTION_FORMAT): Define.
12150         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
12151         * config/sol2.c (solaris_output_init_fini): Use it.
12153 2010-03-31  Jie Zhang  <jie@codesourcery.com>
12155         PR 43574
12156         * opt-functions.awk (var_type_struct): Use signed char type
12157         for simple variables.
12159 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12161         * config/sol2.c: Include output.h.
12162         (solaris_assemble_visibility): New function.
12163         * config/t-sol2 (sol2.o): Add output.h dependency.
12164         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
12165         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
12166         Redefine.
12168 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
12170         PR target/43580
12171         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
12172         V2SImode or XFmode on PRE_DEC.
12174         PR debug/43557
12175         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
12176         BLKmode.
12178 2010-03-31  Jie Zhang  <jie@codesourcery.com>
12180         PR 43562
12181         * reload.h (caller_save_initialized_p): Declare.
12182         * toplev.c (backend_init_target): Don't call
12183         init_caller_save but set caller_save_initialized_p to false.
12184         * caller-save.c (caller_save_initialized_p): Define.
12185         (init_caller_save): Check caller_save_initialized_p.
12186         * ira.c (ira): Call init_caller_save if flag_caller_saves.
12188 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12190         PR target/39048
12191         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
12192         and soft-fp/t-softfp to tmake_file.
12193         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
12194         (LIBGCC2_TF_CEXT): Define.
12195         (TF_SIZE): Define.
12197 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
12199         PR debug/42977
12200         * cselib.c (n_useless_values): Document handling of debug locs.
12201         (n_useless_debug_values, n_debug_values): New variables.
12202         (new_elt_loc_list): Don't add to debug values, keep count.
12203         (promote_debug_loc): New.
12204         (cselib_reset_table): Zero new variables.
12205         (entry_and_rtx_equal_p): Promote debug locs.
12206         (discard_useless_locs): Increment n_useless_debug_values for
12207         debug values.
12208         (remove_useless_values): Adjust n_useless_values and n_debug_values
12209         with n_useless_debug_values.
12210         (add_mem_for_addr): Promote debug locs.
12211         (cselib_lookup_mem): Likewise.
12212         (cselib_lookup_addr): Renamed to...
12213         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
12214         (cselib_log_lookup): ... this.  Turn into...
12215         (cselib_lookup_addr): ... new wrapper.
12216         (cselib_lookup_from_insn): New.
12217         (cselib_invalidate_regno): Increment n_useless_debug_values for
12218         debug values.
12219         (cselib_invalidate_mem): Likewise.
12220         (cselib_process_insn): Take n_deleted and n_debug_values into
12221         account to guard remove_useless_value call.
12222         (cselib_finish): Zero n_useless_debug_values.
12223         * cselib.h (cselib_lookup_from_insn): Declare.
12224         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
12225         (sched_analyze_2): Likewise.
12227 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
12229         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
12230         functions.
12231         (adjust_mems): Replace narrowing SUBREG of expression containing
12232         just PLUS, MINUS, MULT and ASHIFT of registers and constants
12233         with operations in the narrower mode.
12235         PR debug/43593
12236         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
12237         regs_invalidated_by_call instead all call_used_reg_set registers.
12239 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
12241         PR middle-end/43430
12242         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
12243         pointer comparisons with types_compatible_p.
12244         * tree-vect-stmts.c (vectorizable_call): Same.
12245         (vectorizable_condition): Same.
12247 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12249         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
12250         stack check if the mask would be zero.
12252 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
12253             Jack Howarth <howarth@bromo.med.uc.edu>
12255         * tree-profile.c (tree_init_ic_make_global_vars): Make static
12256         variables TLS.
12258 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
12260         PR other/25232
12261         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
12262         and __unordtf2.
12263         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
12264         Include ___unordxf2 and ___unordtf2.
12265         * config/i386/libgcc-glibc.ver: Do not define inheritance from
12266         GCC_4.4.0 here.
12268 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
12270         * config/lm32/t-lm32: New file.
12271         * config.gcc: Use the above file when targetting lm32.
12273 2010-03-28  Duncan Sands  <baldrick@free.fr>
12275         * Makefile.in (PLUGIN_HEADERS): Add except.h.
12277 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
12279         PR middle-end/43431
12280         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
12281         Improve vectorization cost model diagnostic.
12283 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
12285         PR middle-end/43436
12286         * tree-vect-data-refs.c (vect_analyze_data_refs): When
12287         compute_data_dependences_for_loop returns false, early exit
12288         and output an extra diagnostic for the failed data reference
12289         analysis.
12291 2010-03-29  Richard Guenther  <rguenther@suse.de>
12293         PR tree-optimization/43560
12294         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
12295         (can_sm_ref_p): Treat stores to readonly locations as trapping.
12297 2010-03-29  Jie Zhang  <jie@codesourcery.com>
12299         PR 43564
12300         * toplev.c (process_options): Set optimization_default_node
12301         and optimization_current_node.
12302         * opts.c (decode_options): Don't set optimization_default_node
12303         and optimization_current_node.
12305 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
12307         * config/rtems.h: Abandon -qrtems_debug.
12309 2010-03-28  Jan Hubicka  <jh@suse.cz>
12311         PR tree-optimization/43505
12312         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
12313         map should not be copied.
12315 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12317         PR middle-end/41674
12318         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
12319         cdtors, set DECL_PRESERVE_P.
12320         * ipa.c (cgraph_externally_visible_p): Return true if declaration
12321         should be preseved.
12323 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
12325         PR tree-optimization/43528
12326         * stor-layout.c (place_field): Check that constant fits into
12327         unsigned HWI when skipping calculation of MS bitfield layout.
12329 2010-03-27  Jan Hubicka  <jh@suse.cz>
12331         PR middle-end/43391
12332         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
12333         notice_global_symbol work.
12335 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
12337         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
12338         instead of dwarf2out_decl.
12339         (struct var_loc_node): Remove section_label field.
12340         (dwarf2out_function_decl): New function.
12341         (dwarf2out_var_location): Don't set section_label field.
12342         (dwarf2out_begin_function): Don't empty decl_loc_table here.
12344 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12346         PR tree-optimization/43544
12347         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12348         First argument for builtin vectorized function hook is now a
12349         tree to be able to distinguish between machine specific and
12350         standard builtins.
12351         * targhooks.c (default_builtin_vectorized_function): Ditto.
12352         * targhooks.h (default_builtin_vectorized_function): Ditto.
12353         * target.h (struct gcc_target): Ditto.
12354         * tree-vect-stmts.c (vectorizable_function): Ditto.
12355         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
12356         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
12357         Ditto.
12359 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
12361         PR c/43381
12362         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
12363         nested binding iff it is a FUNCTION_DECL.
12364         (store_parm_decls_newstyle): Pass nested=true to bind for
12365         FUNCTION_DECLs amongst parameters.
12367 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
12369         * var-tracking.c (vt_expand_loc_callback): Don't run
12370         cselib_expand_value_rtx_cb in dummy mode if
12371         cselib_dummy_expand_value_rtx_cb returned false.
12373         * var-tracking.c (emit_note_insn_var_location): For one part
12374         notes with offset 0, don't add EXPR_LIST around the location.
12375         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
12376         add_location_or_const_value_attribute): Adjust for that change.
12378         PR debug/43540
12379         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
12380         into first operand and location into second.
12381         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
12382         dw_cfi_oprnd_loc for DW_CFA_expression.
12383         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
12384         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
12385         assume first argument is regnum and second argument is location.
12387 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
12389         PR target/42113
12390         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
12391         of scratch register to DImode.  Split to DImode comparison operator.
12392         Use SImode subreg of scratch register in the multiplication.
12393         (*cmp_sadd_sidi): Ditto.
12394         (*cmp_ssub_si): Ditto.
12395         (*cmp_ssub_sidi): Ditto.
12397 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
12399         PR target/43524
12400         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
12401         Remove invalid assert and wrong comment.
12403 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
12405         PR debug/43516
12406         * flags.h (final_insns_dump_p): New extern.
12407         * final.c (final_insns_dump_p): New variable.
12408         (rest_of_clean_state): Set it before -fdump-final-insns=
12409         dumping, clear afterwards.
12410         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
12411         MEM_ALIAS_SET on MEMs.
12413 2010-03-26  David S. Miller  <davem@davemloft.net>
12415         * configure.ac: Fix sparc GOTDATA_OP bug check.
12416         * configure: Rebuild.
12418 2010-03-26  Alan Modra  <amodra@gmail.com>
12420         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
12422 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12424         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
12425         TLS_SECTION_ASM_FLAG.
12427 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
12429         PR bootstrap/43511
12430         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
12431         Clear first_function_block_is_cold.
12433         PR c/43385
12434         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
12435         argument if the argument is truth_value_p.
12437 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12439         * config/rs6000/constraints.md: Update copyright year for my changes.
12441         PR target/43484
12442         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
12443         used in reg+reg addressing, swap registers.
12445 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
12447         PR debug/43293
12448         * target.h (struct gcc_target): Add code_end hook.
12449         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
12450         if not yet defined.
12451         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
12452         * toplev.c (compile_file): Call targetm.asm_out.code_end
12453         hook before unwind info/debug info output.
12454         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
12455         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
12456         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
12457         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
12458         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
12459         * config/i386/i386.c (ix86_file_end): Renamed to...
12460         (ix86_code_end): ... this.  Make static.  Don't call
12461         file_end_indicate_exec_stack.  Emit unwind info using
12462         final_start_function/final_end_function.
12463         (darwin_x86_file_end): Remove.
12464         (TARGET_ASM_CODE_END): Define.
12465         * config/i386/i386.h (TARGET_ASM_FILE_END,
12466         NEED_INDICATE_EXEC_STACK): Don't define.
12467         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
12468         (TARGET_ASM_FILE_END): Define to darwin_file_end.
12469         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
12470         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
12472         PR target/43498
12473         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
12474         at the beginning and final_end_function at the end.
12475         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
12477 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12479         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
12480         and Sun as TLS syntax.
12481         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
12482         * configure: Regenerate.
12483         * config.in: Regenerate.
12484         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
12485         (default_elf_asm_named_section): Use it.
12486         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
12487         (i386_output_dwarf_dtprel): Likewise.
12488         (output_addr_const_extra): Likewise.
12489         (output_pic_addr_const): Lowercase @GOTTPOFF.
12490         (output_addr_const_extra): Likewise.
12491         (output_pic_addr_const): Lowercase @GOTNTPOFF.
12492         (output_addr_const_extra): Likewise.
12493         (output_pic_addr_const): Lowercase @INDNTPOFF.
12494         (output_addr_const_extra): Likewise.
12495         (output_pic_addr_const): Lowercase @NTPOFF.
12496         (output_addr_const_extra): Likewise.
12497         (output_pic_addr_const): Lowercase @TPOFF.
12498         (output_addr_const_extra): Likewise.
12499         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
12500         (*tls_global_dynamic_64): Likewise.
12501         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
12502         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
12504         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
12505         (ASM_OUTPUT_TLS_COMMON): Use it.
12506         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
12508         PR target/38118
12509         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
12510         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
12511         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
12512         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
12513         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12514         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
12516 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12518         * config/i386/i386.c (override_options): Don't accept
12519         -mtls-dialect=sun any longer.
12520         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
12521         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
12522         (*tls_local_dynamic_base_32_sun): Likewise.
12523         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12525 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
12527         PR debug/43508
12528         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
12529         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
12531         PR debug/43479
12532         * ira.c (adjust_cleared_regs): New function.
12533         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
12535         PR debug/19192
12536         PR debug/43479
12537         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
12538         from gimple_block.
12539         * expr.c (expand_expr_real): Restore previous
12540         curr_insn_source_location and curr_insn_block after
12541         expand_expr_real_1 call.
12542         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
12543         instead of expand_expr_real_1.
12545 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
12547         PR rtl-optimization/43413
12548         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
12549         hard regs too.
12551 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
12553         PR target/43348
12554         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
12555         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
12557 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
12559         * config/i386/i386.c (ix86_target_string): Add -mfma.
12560         Fix a typo in comment.
12562 2010-03-22  Mike Stump  <mikestump@comcast.net>
12564         PR target/23071
12565         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
12566         Don't overly align based upon packed packed fields.
12568 2010-03-22  Jason Merrill  <jason@redhat.com>
12570         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
12571         Use () rather than [], and move before the element type.
12573 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12575         * doc/configfiles.texi (Configuration Files): Removed
12576         fixinc/Makefile*, intl/Makefile.*.
12577         * doc/makefile.texi: Fixed markup. Abstract from version
12578         control system used.
12579         (Makefile): Removed obsolete gcc/java/parse.y example.
12580         * doc/sourcebuild.texi: Likewise.
12581         (Top Level): Added config, gnattools, libdecnumber, libgcc,
12582         libgomp, libssp.  Removed fastjar.
12583         (Miscellaneous Docs): Clarify location.
12584         Added COPYING3, COPYING3.LIB.
12585         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
12587 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12589         PR target/38085
12590         * config/i386/i386.c (x86_function_profiler)
12591         [!NO_PROFILE_COUNTERS]: Fix typo.
12592         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
12593         instead of callq.
12595 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
12596             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12598         * doc/sourcebuild.texi (Test Directives): Split into six
12599         subsections, with most of the current text in new subsections
12600         Directives, Selectors, and Final Actions.
12601         (Directives): Split list of test directives into multiple
12602         subsubsections.
12603         (Selectors): Describe use and syntax of selectors.
12604         (Effective-Target Keywords): Describe all existing keywords.
12605         (Add Options): Describe features for dg-add-options.
12606         (Require Support): Describe variants of dg-require-support.
12607         (Final Actions): Describe commands to use in dg-final.
12609 2010-03-22  Michael Matz  <matz@suse.de>
12611         PR middle-end/43475
12612         * recog.c (validate_replace_rtx_group): Replace also in
12613         REG_EQUAL and REG_EQUIV notes.
12615 2010-03-22  Richard Guenther  <rguenther@suse.de>
12617         PR tree-optimization/43390
12618         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
12619         sure vector extracts are type correct.
12621 2010-03-22  Richard Guenther  <rguenther@suse.de>
12623         PR middle-end/40106
12624         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
12625         x * sqrt (x) even when optimizing for size if the target
12626         has native support for sqrt.
12628 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
12630         * varasm.c (make_decl_rtl_for_debug): Also clear
12631         flag_mudflap for the duration of make_decl_rtl call.
12633         PR debug/43443
12634         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
12635         locs from preserved VALUEs.
12637 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12639         PR middle-end/42718
12640         * pa.md (movmemsi): Set align to one if zero.
12641         (movmemdi): Likewise.
12643 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
12645         PR target/42321
12646         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
12647         with their corresponding prologue pushes.
12649 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
12651         PR target/43156
12652         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
12653         at the begining or end.
12654         (spu_expand_epilogue): Likewise.
12656 2010-03-20  Richard Guenther  <rguenther@suse.de>
12658         PR rtl-optimization/43438
12659         * combine.c (make_extraction): Properly zero-/sign-extend an
12660         extraction of the low part of a CONST_INT.  Also handle
12661         CONST_DOUBLE.
12663 2010-03-19  Mike Stump  <mikestump@comcast.net>
12665         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
12666         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
12667         (override_options): Use SUBTARGET32_DEFAULT_CPU.
12669 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
12671         PR c/43211
12672         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
12673         an error.
12675 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
12677         PR rtl-optimization/42258
12678         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
12679         use that may match DEF.
12681         PR target/40697
12682         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
12683         the cost of loading the constant rather than assuming
12684         COSTS_N_INSNS (1).
12685         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
12686         outer code is AND, do the same tests as the andsi3 expander and
12687         return COSTS_N_INSNS (1) if and is cheap.
12689         * optabs.c (avoid_expensive_constant): Fix formatting.
12691 2010-03-19  Michael Matz  <matz@suse.de>
12693         PR c++/43116
12694         * attribs.c (decl_attributes): When rebuilding a function pointer
12695         type use the same qualifiers as the original pointer type.
12697 2010-03-19  Martin Jambor  <mjambor@suse.cz>
12699         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
12700         and is_gimple_ip_invariant_address.
12702 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12704         Revert
12705         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12707         * config/arm/arm.c (arm_override_options): Turn off
12708         flag_dwarf2_cfi_asm for AAPCS variants.
12710 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12712         PR target/43399
12713         * config/arm/arm.c (emit_multi_reg_push): Update comments.
12714         Use PRE_MODIFY instead of PRE_DEC.
12715         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
12716         (vfp_emit_fstmd): Likewise.
12718 2010-03-19  Michael Matz  <matz@suse.de>
12720         PR target/43305
12721         * builtins.c (expand_builtin_interclass_mathfn,
12722         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
12723         if that fails.
12725 2010-03-19  Richard Guenther  <rguenther@suse.de>
12727         PR tree-optimization/43415
12728         * tree-ssa-pre.c (phi_translate): Split out worker to ...
12729         (phi_translate_1): ... this.
12730         (phi_translate): Move all caching here.  Cache all NARY
12731         and REFERENCE translations.
12733 2010-03-19  David S. Miller  <davem@davemloft.net>
12735         With help from Eric Botcazou.
12736         * config/sparc/sparc.c: Include dwarf2out.h.
12737         (emit_pic_helper): Delete.
12738         (pic_helper_symbol_name): Delete.
12739         (pic_helper_emitted_p): Delete.
12740         (pic_helper_needed): New.
12741         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
12742         (get_pc_thunk_name): New.
12743         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
12744         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
12745         Set pic_helper_needed to true.  Don't call emit_pic_helper.
12746         (sparc_expand_prologue): Update load_pic_register call.
12747         (sparc_output_mi_thunk): Likewise.
12748         (sparc_file_end): Emit a hidden comdat symbol for the PIC
12749         thunk if possible.  Output CFI information as needed.
12751 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
12752             Jack Howarth <howarth@bromo.med.uc.edu>
12754         PR target/36399
12755         * config/i386/i386.h: Fix ABI on darwin x86-32.
12757 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
12759         * tree.h: Declare make_decl_rtl_for_debug.
12760         * varasm.c (make_decl_rtl_for_debug): New.
12761         * dwarf2out.c (rtl_for_decl_location): Call it.
12762         * cfgexpand.c (expand_debug_expr): Call it.
12764 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12766         PR bootstrap/43399
12767         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
12768         mem_mode.
12770         PR bootstrap/43403
12771         * var-tracking.c (vt_init_cfa_base): Do nothing if
12772         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
12774 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
12776         PR debug/42873
12777         * var-tracking.c (canonicalize_vars_star): New.
12778         (dataflow_post_merge_adjust): Use it.
12780 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12782         PR debug/43058
12783         * var-tracking.c (non_suitable_const): New function.
12784         (add_uses): For DEBUG_INSNs with constants, don't record any
12785         value, instead just the constant value itself.
12786         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
12787         is not VAR_LOC_UNKNOWN_P, set var to the constant.
12788         (emit_notes_in_bb): Likewise.
12789         (emit_note_insn_var_location): For onepart variables if
12790         cur_loc is a VOIDmode constant, use DECL_MODE.
12792 2010-03-18  Martin Jambor  <mjambor@suse.cz>
12794         PR middle-end/42450
12795         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
12796         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
12797         all non-clones.  Moved call redirection...
12798         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
12799         (cgraph_materialize_all_clones): Dispose of all
12800         combined_args_to_skip bitmaps.
12801         (verify_cgraph_node): Do not check for edges pointing to wrong
12802         nodes in inline clones.
12803         * tree-inline.c (copy_bb): Call
12804         cgraph_redirect_edge_call_stmt_to_callee.
12805         * ipa.c (cgraph_remove_unreachable_nodes): Call
12806         cgraph_node_remove_callees even when there are used clones.
12808 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12810         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
12812 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12814         PR target/43383
12815         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
12816         for 32bit.
12818 2010-03-18  Michael Matz  <matz@suse.de>
12820         PR middle-end/43419
12821         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
12822         into sqrt(x) if we need to preserve signed zeros.
12824 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
12825             Eric Botcazou  <ebotcazou@adacore.com>
12827         PR rtl-optimization/43360
12828         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
12829         note if we don't know its invariant status.
12831 2010-03-18  Michael Matz  <matz@suse.de>
12833         PR tree-optimization/43402
12834         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
12835         PHI chains of ssa names registered for update.
12837 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
12839         PR target/42427
12840         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
12841         non-offsettable and pre_modify update addressing.
12842         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
12843         and "2" alternatives "#".
12844         (*movdd_softfloat32): Make all alternatives "#";
12845         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
12846         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
12847         (*movdf_softfloat32): Make all alternatives "#";
12848         (movdi): Use the new DIFD mode iterator to create a common splitter
12849         for movdi, movdf and movdd patterns.
12851 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
12853         * common.opt (dumpdir): Remove redundant tab.
12855 2010-03-17  Martin Jambor  <mjambor@suse.cz>
12857         PR tree-optimization/43347
12858         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
12859         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
12861 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
12863         PR rtl-optimization/42216
12864         * regrename.c (create_new_chain): New function, broken out from...
12865         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
12866         appending a use to an empty chain.
12867         (build_def_use): Remove previous changes that convert OP_INOUT to
12868         OP_OUT operands; instead detect the case where an OP_INOUT operand
12869         uses a previously untracked register and create an empty chain for it.
12871 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12873         * doc/extend.texi (Function Attributes): Rewrite unfinished
12874         sentence in ms_abi documentation.
12876 2010-03-17  Alan Modra  <amodra@gmail.com>
12878         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
12879         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
12880         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
12881         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
12883 2010-03-16  Richard Henderson  <rth@redhat.com>
12885         PR middle-end/43365
12886         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
12887         (lower_try_finally): Save and restore eh_seq around the expansion
12888         of the try-finally.
12890 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12892         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
12893         statements before splitting block.
12895 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12897         * doc/sourcebuild.texi (Testsuites): Fix markup.
12898         Use pathnames relative to gcc/testsuite.
12899         (Test Directives): Move description of how timeout is determined.
12900         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
12901         (C Tests): Correct gcc.misc-tests directory.
12902         Framework tests now live in gcc.test-framework.
12904 2010-03-16  Richard Guenther  <rguenther@suse.de>
12906         PR middle-end/43379
12907         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
12908         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
12910 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12911             Alexandre Oliva  <aoliva@redhat.com>
12913         PR tree-optimization/42917
12914         * lambda-code.c (remove_iv): Skip debug statements.
12915         (lambda_loopnest_to_gcc_loopnest): Likewise.
12916         (not_interesting_stmt): Debug statements are not interesting.
12918 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
12920         PR debug/43051
12921         PR debug/43092
12922         * cselib.c (cselib_preserve_constants,
12923         cfa_base_preserved_val): New static variables.
12924         (preserve_only_constants): New function.
12925         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
12926         clear its REG_VALUES.  If cselib_preserve_constants, don't
12927         empty the whole hash table, but preserve there VALUEs with constants,
12928         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
12929         (cselib_preserve_cfa_base_value): New function.
12930         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
12931         (cselib_init): Change argument to int bitfield.  Set
12932         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
12933         is in it.
12934         (cselib_finish): Clear cselib_preserve_constants and
12935         cfa_base_preserved_val.
12936         * cselib.h (enum cselib_record_what): New enum.
12937         (cselib_init): Change argument to int.
12938         (cselib_preserve_cfa_base_value): New prototype.
12939         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
12940         * dse.c (dse_step1): Likewise.
12941         * cfgcleanup.c (thread_jump): Likewise.
12942         * sched-deps.c (sched_analyze): Likewise.
12943         * gcse.c (local_cprop_pass): Likewise.
12944         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
12945         If FN is non-NULL, call the callback always and whenever it returns
12946         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
12947         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
12948         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
12949         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
12950         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
12951         * var-tracking.c: Include recog.h.
12952         (bb_stack_adjust_offset): Remove.
12953         (vt_stack_adjustments): Don't call it, instead just gather the
12954         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
12955         (adjust_stack_reference): Remove.
12956         (compute_cfa_pointer): New function.
12957         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
12958         (struct adjust_mem_data): New type.
12959         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
12960         functions.
12961         (get_address_mode): New function.
12962         (replace_expr_with_values): Use it.
12963         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
12964         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
12965         (adjust_sets): Remove.
12966         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
12967         Use get_address_mode.
12968         (get_adjusted_src): Remove.
12969         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
12970         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
12971         (add_with_sets): Don't call adjust_sets.
12972         (fp_setter, vt_init_cfa_base): New functions.
12973         (vt_initialize): Change return type to bool.  Move most of pool etc.
12974         initialization to the beginning of the function from end.  Pass
12975         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
12976         If !frame_pointer_needed, call vt_stack_adjustment before mos
12977         vector is filled, call vt_init_cfa_base if argp/framep has been
12978         eliminated to sp.  If frame_pointer_needed and argp/framep has
12979         been eliminated to hard frame pointer, set
12980         hard_frame_pointer_adjustment and call vt_init_cfa_base after
12981         encountering fp setter in the prologue.  For MO_ADJUST, call
12982         log_op_type before pusing the op into mos vector, not afterwards.
12983         Call adjust_insn before cselib_process_insn/add_with_sets,
12984         call cancel_changes (0) afterwards.
12985         (variable_tracking_main_1): Adjust for vt_initialize calling
12986         vt_stack_adjustments and returning whether it succeeded or not.
12988 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
12990         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
12991         debug statements.
12993 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
12995         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
12996         has been set.
12997         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
12998         drap_reg has not been set.
13000 2010-03-15  Michael Matz  <matz@suse.de>
13002         PR middle-end/43300
13003         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
13004         use it to expand block copies.
13005         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
13006         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
13007         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
13009 2010-03-15  Richard Guenther  <rguenther@suse.de>
13011         PR tree-optimization/43367
13012         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
13013         elimination check.
13015 2010-03-15  Richard Guenther  <rguenther@suse.de>
13017         PR tree-optimization/43317
13018         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
13020 2010-03-15  Martin Jambor  <mjambor@suse.cz>
13022         PR tree-optimization/43141
13023         * tree-sra.c (create_abstract_origin): New function.
13024         (modify_function): Call create_abstract_origin.
13026 2010-03-15  Chris Demetriou  <cgd@google.com>
13028         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
13029         wasn't copied.
13031 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13033         PR middle-end/43354
13034         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
13035         call insert_out_of_ssa_copy for default definitions.
13037 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13039         * graphite-clast-to-gimple.c (my_long_long): Defined.
13040         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
13041         * graphite-sese-to-poly.c (my_long_long): Defined.
13042         (scop_ivs_can_be_represented): Use it.
13044 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13046         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
13047         graphite-max-bbs-per-function, and loop-block-tile-size.
13048         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
13049         with "maximum".
13050         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
13052 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13054         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
13055         forward declaration.
13056         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
13057         (add_upper_bounds_from_estimated_nit): New.
13058         (build_loop_iteration_domains): Use it.
13060 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13062         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
13064 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13066         PR middle-end/43306
13067         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
13068         should be an INTEGER_CST.  Also handle CASE_CONVERT.
13070 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13072         * graphite.c (graphite_initialize): To bound the number of bbs per
13073         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
13074         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
13075         * doc/invoke.texi: Document it.
13077 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13079         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
13080         * graphite-sese-to-poly.h (build_poly_scop): Same.
13082 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
13084         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
13085         the number of parameters in the scop.  Use as an upper bound
13086         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
13087         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
13088         * doc/invoke.texi: Document it.
13090 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
13092         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
13093         * doc/c-tree.texi: Remove.
13094         * doc/generic.texi: Merge c-tree.texi here.
13095         * doc/gccint.texi (Trees): Remove menu entry.
13096         (c-tree.texi): Remove @include.
13097         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
13098         * doc/languages.texi (Reading RTL): Ditto.
13100 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
13102         PR target/42869
13103         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
13105 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
13107         PR middle-end/42431
13108         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
13109         code added to work around reload clobbering CONST insns.
13111 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
13113         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
13114         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
13115         (cselib_preserve_only_values): Remove retain argument, don't
13116         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
13117         * cselib.h (cselib_preserve_only_values): Remove retain argument.
13118         * var-tracking.c (micro_operation): Move insn field before union.
13119         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
13120         (struct variable_tracking_info_def): Remove n_mos field, change
13121         mos into a vector of micro_operations.
13122         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
13123         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
13124         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
13125         changing into a vector.
13126         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
13127         come before all other uops generated by add_stores.
13128         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
13129         argument removal.
13130         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
13131         a vector.  Run just one pass over the bbs instead of separate counting
13132         and computation phase.
13133         (vt_finalize): Free VTI (bb)->mos vector instead of array.
13135         PR debug/43329
13136         * tree-inline.c (remap_decls): Put old_var rather than origin_var
13137         into *nonlocalized_list vector.
13138         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
13139         even if origin is non-NULL.
13140         (gen_variable_die): Likewise.
13141         (process_scope_var): Don't change origin.
13142         (gen_decl_die): Likewise.
13143         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
13144         before adding new edges instead of after it, fix moving over
13145         debug stmts.
13147 2010-03-11  David S. Miller  <davem@davemloft.net>
13149         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
13150         of four.
13151         * configure: Rebuild.
13153 2010-03-11  Martin Jambor  <mjambor@suse.cz>
13155         PR tree-optimization/43257
13156         * tree.c (assign_assembler_name_if_neeeded): New function.
13157         (free_lang_data_in_cgraph): Assembler name assignment moved to the
13158         above new function.
13159         * tree.h (assign_assembler_name_if_neeeded): Declare.
13160         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
13161         the function if needed.
13163 2010-03-11  Chris Demetriou  <cgd@google.com>
13165         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
13166         include/stdint-gcc.h, and include/stdint.h world-readable.
13168 2010-03-11  Richard Guenther  <rguenther@suse.de>
13170         PR tree-optimization/43255
13171         * tree-vrp.c (process_assert_insertions_for): Do not insert
13172         asserts for trivial conditions.
13174 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13176         PR tree-optimization/43280
13177         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
13178         generation.  Move calculation of size out of the if branch.
13179         (find_bswap): Modify compare number generation.
13181 2010-03-11  Richard Guenther  <rguenther@suse.de>
13183         PR lto/43200
13184         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
13185         (input_gimple_stmt): Fixup handled component types during
13186         operand read.  Also fix up decls in ADDR_EXPRs.
13188 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
13190         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
13191         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
13193 2010-03-10  Jan Hubicka  <jh@suse.cz>
13195         PR c/43288
13196         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
13197         * varasm.c (get_variable_section): Don't do that here...
13198         (make_decl_rtl): ... and here.
13199         (do_assemble_alias): Produce decl RTL.
13200         (assemble_alias): Likewise.
13202 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
13204         PR debug/43290
13205         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
13206         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
13207         of fde->vdrap_reg.
13208         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
13209         (based_loc_descr): Only express drap or vdrap regno based expressions
13210         using DW_OP_fbreg when not optimizing.
13211         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
13212         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
13213         REG_CFA_SET_VDRAP note.
13215 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
13217         PR tree-optimization/43236
13218         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
13219         error in calculation of base address in reverse iteration case.
13220         (generate_builtin): Take number of latch executions if the statement
13221         is in the latch.
13223 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
13225         PR middle-end/42859
13226         * tree-eh.c: Include pointer-set.h.
13227         (lower_eh_dispatch): Filter out duplicate case labels and
13228         remove the unneeded edge when the label is unused.  Return
13229         true when some edges are removed.
13230         (execute_lower_eh_dispatch): When any lowering resulted in
13231         removing an edge, also delete unreachable blocks.
13233 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
13235         PR bootstrap/43287
13236         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13237         UNSPEC_MACHOPIC_OFFSET.
13239 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
13241         PR target/43294
13242         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
13243         (m68k_delegitimize_address): New function.
13245 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
13247         PR debug/43299
13248         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
13250         PR debug/43299
13251         * var-tracking.c (adjust_sets): New function.
13252         (count_with_sets, add_with_sets): Use it.
13253         (get_adjusted_src): New inline function.
13254         (add_stores): Use it.
13256         PR debug/43304
13257         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
13258         call cselib_dummy_expand_value_rtx_cb instead of
13259         cselib_expand_value_rtx_cb.
13261         PR debug/43293
13262         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
13263         * config/i386/i386.c: Include debug.h and dwarf2out.h.
13264         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
13265         and .cfi_endproc around the pic thunks.
13266         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
13267         all queued unwind info register saves are saved before the call.
13268         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
13269         considered as sp-=4 for unwind info and the pop as sp+=4 which
13270         also clobbers dest, but doesn't actually restore it.
13272         PR debug/43290
13273         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
13274         RTX_FRAME_RELATED_P.
13276 2010-03-09  Jie Zhang  <jie@codesourcery.com>
13278         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
13279         whitespaces in output template.
13281 2010-03-09  Jie Zhang  <jie@codesourcery.com>
13283         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
13284         out array boundary.
13286 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
13288         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
13289         builtins.exp in a separate job.
13291 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13293         * graphite-sese-to-poly.c (add_param_constraints): Use
13294         lower_bound_in_type and upper_bound_in_type.
13296 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13298         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
13299         instead of unsigned_type_node.
13301 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13302             Reza Yazdani  <reza.yazdani@amd.com>
13304         PR middle-end/43065
13305         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
13306         on pointer type parameters.
13308 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
13310         PR middle-end/42644
13311         PR middle-end/42130
13312         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
13313         handle conversions from pointer to integers.
13314         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
13315         induction variable, to be able to work with code generated by CLooG.
13316         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
13317         (build_poly_scop): Bail out if we cannot codegen a loop.
13319 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
13321         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
13322         code generation with gloog_error.
13324 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13326         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
13327         Call fold_convert on all the returned values.
13328         (expand_scalar_variables_expr): Pass to
13329         expand_scalar_variables_ssa_name the type of the resulting expression.
13331 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13333         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
13334         ppl_min_for_le_pointset.
13335         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
13336         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
13338 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13340         * graphite-dependences.c (map_into_dep_poly): Removed.
13341         (dependence_polyhedron_1): Use combine_context_id_scat.
13343 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13345         * graphite-poly.h (struct poly_scattering): Add layout documentation.
13346         (struct poly_bb): Same.
13347         (combine_context_id_scat): New.
13349 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13351         PR middle-end/42326
13352         * sese.c (name_defined_in_loop_p): Return false for default
13353         definitions.
13355 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13357         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
13358         and clean up the logic.
13360 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
13362         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
13363         early return.
13365 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
13367         * var-tracking.c (remove_cselib_value_chains): Define only for
13368         ENABLE_CHECKING.
13369         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
13370         delete_slot_part, emit_notes_for_differences_1): Don't call
13371         remove_cselib_value_chains here.
13372         (set_slot_part, emit_notes_for_differences_2): Don't call
13373         add_cselib_value_chains here.
13374         (preserved_values): New vector.
13375         (preserve_value): New function.
13376         (add_uses, add_stores, vt_add_function_parameters): Use it
13377         instead of cselib_preserve_value.
13378         (changed_values_stack): New vector.
13379         (check_changed_vars_0): New function.
13380         (check_changed_vars_1, check_changed_vars_2): Use it.
13381         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
13382         changed_values_stack VALUEs.
13383         (vt_emit_notes): For all preserved_values call
13384         add_cselib_value_chains.  If ENABLE_CHECKING call
13385         remove_cselib_value_chains before verifying value_chains is empty.
13386         Initialize and free changed_values_stack.
13387         (vt_initialize): Initialize preserved_values.
13388         (vt_finalize): Free preserved_values.
13390 2010-03-08  Richard Guenther  <rguenther@suse.de>
13392         PR tree-optimization/43269
13393         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
13394         region detection.
13396 2010-03-08  Martin Jambor  <mjambor@suse.cz>
13398         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
13399         (ipa_is_param_called): Removed.
13400         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
13401         (ipa_print_node_params): Do not print the called flag.
13402         (ipa_write_node_info): Do not stream the called flag.
13403         (ipa_read_node_info): Likewise.
13405 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
13407         PR debug/43176
13408         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
13409         * cselib.c (struct expand_value_data): Add dummy field.
13410         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
13411         dummy to false.
13412         (cselib_dummy_expand_value_rtx_cb): New function.
13413         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
13414         any rtl.
13415         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
13416         * var-tracking.c: Include pointer-set.h.
13417         (variable): Change n_var_parts to char from int.  Add
13418         cur_loc_changed and in_changed_variables fields.
13419         (variable_canonicalize): Remove.
13420         (shared_var_p): New inline function.
13421         (unshare_variable): Maintain cur_loc_changed and
13422         in_changed_variables fields.  If var was in changed_variables,
13423         replace it there with new_var.  Just copy cur_loc instead of
13424         resetting it to something else.
13425         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
13426         (dataflow_set_union): Don't call variable_canonicalize.
13427         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
13428         of their DEBUG_EXPR_TREE_DECLs.
13429         (canonicalize_loc_order_check): Verify that cur_loc is NULL
13430         and in_changed_variables and cur_loc_changed is false.
13431         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
13432         and cur_loc_changed.  Don't update cur_loc here.
13433         (variable_merge_over_src): Don't call variable_canonicalize.
13434         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
13435         removing loc that is equal to cur_loc, clear cur_loc,
13436         set cur_loc_changed and ensure variable_was_changed is called.
13437         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
13438         compare pointers in cur_loc check, if it is equal to loc,
13439         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
13440         (variable_different_p): Remove compare_current_location argument,
13441         don't compare cur_loc.
13442         (dataflow_set_different_1): Adjust variable_different_p caller.
13443         (variable_was_changed): If dv had some var in changed_variables
13444         already, reset in_changed_variables flag for it and propagate
13445         cur_loc_changed over to the new variable.  On empty var
13446         always set cur_loc_changed.  Set in_changed_variables on whatever
13447         var is added to changed_variables.
13448         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
13449         Use shared_var_p.  When removing loc that is equal to cur_loc,
13450         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
13451         end, don't set it to something else, just call variable_was_changed.
13452         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
13453         loc being removed, clear cur_loc and set cur_loc_changed.
13454         Set cur_loc_changed if all locations have been removed.
13455         (struct expand_loc_callback_data): New type.
13456         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
13457         allocated.  Always create SUBREGs if simplify_subreg failed.
13458         Prefer to use cur_loc, when that fails and still in
13459         changed_variables (and seen first time) recompute it.  Set
13460         cur_loc_changed of variables which had to change cur_loc and
13461         compute elcd->cur_loc_changed if any of the subexpressions used
13462         had to change cur_loc.
13463         (vt_expand_loc): Adjust to pass arguments in
13464         expand_loc_callback_data structure.
13465         (vt_expand_loc_dummy): New function.
13466         (emitted_notes): New variable.
13467         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
13468         that weren't used for any other decl in current
13469         emit_notes_for_changes call call vt_expand_loc_dummy to update
13470         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
13471         first loc_chain location if NULL before.  Always use just
13472         cur_loc instead of first loc_chain location.  When cur_loc_changed
13473         is false, when not --enable-checking=rtl just don't emit any note.
13474         When rtl checking, compute the note and assert it is the same
13475         as previous note.  Clear cur_loc_changed and in_changed_variables
13476         at the end before removing from changed_variables.
13477         (check_changed_vars_3): New function.
13478         (emit_notes_for_changes): Traverse changed_vars to call
13479         check_changed_vars_3 on each changed var.
13480         (emit_notes_for_differences_1): Clear cur_loc_changed and
13481         in_changed_variables.  Recompute cur_loc of new_var.
13482         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
13483         (vt_emit_notes): Initialize and destroy emitted_notes.
13485 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
13487         PR rtl-optimization/42220
13488         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
13489         Use verify_reg_tracked to determine if we should use OP_OUT rather
13490         than OP_INOUT.
13491         (build_def_use): If we see an in-out operand for a register that we
13492         know nothing about, treat is an output if possible, fail the block if
13493         not.
13495 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13497         PR debug/42897
13498         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
13499         permanently.
13501 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13503         PR debug/42897
13504         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
13505         uses of relevant DEFs that are dead outside the loop too.
13507 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
13509         * var-tracking.c (dataflow_set_merge): Swap src and src2.
13510         Reverted:
13511         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13512         PR debug/41371
13513         * var-tracking.c (values_to_unmark): New variable.
13514         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13515         values_to_unmark vector.  Moved body to...
13516         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13517         instead queue it into values_to_unmark vector.
13518         (vt_find_locations): Free values_to_unmark vector.
13520 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
13522         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
13523         (site.exp): Export them when plugins are enabled.
13525 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
13527         PR middle-end/42326
13528         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
13529         that contain scevs.
13530         (chrec_fold_multiply): Same.
13532 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
13534         PR c/43248
13535         * c-decl.c (build_compound_literal): Return early if init is
13536         an error_mark_node.
13538 2010-03-04  Martin Jambor  <mjambor@suse.cz>
13540         PR tree-optimization/43164
13541         PR tree-optimization/43191
13542         * tree-sra.c (type_consists_of_records_p): Reject records with
13543         zero-size bit-fields at the end.
13545 2010-03-04  Mike Stump  <mikestump@comcast.net>
13547         * Makefile.in (TAGS): Remove *.y.
13549 2010-03-04  Richard Guenther  <rguenther@suse.de>
13551         PR tree-optimization/40761
13552         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
13553         in reverse order.
13554         (my_rev_post_order_compute): New function.
13555         (init_pre): Call it.
13557 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
13559         PR middle-end/43209
13560         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
13561         decrease the cost of an IV candidate when the cost is infinite.
13563 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13565         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
13566         Use '3DNow!' for the extension of that name, ensure normal space
13567         after the string.
13568         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
13570 2010-03-03  Jeff Law  <law@redhat.com>
13572         * PR middle-end/32693
13573         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
13574         than gen_rtx_SUBREG.
13575         (extract_bit_field_1): Likewise.
13577 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
13579         * doc/sourcebuild.texi (Test directives): Document that arguments
13580         include-opts and exclude-opts are now optional for dg-skip-if,
13581         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
13583 2010-03-03  Jason Merrill  <jason@redhat.com>
13585         PR c++/12909
13586         * cgraph.h (varpool_node): Add extra_name field.
13587         * varpool.c (varpool_extra_name_alias): New.
13588         (varpool_assemble_decl): Emit extra name aliases.
13589         (varpool_mark_needed_node): Look past an extra name alias.
13590         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
13591         * lto-streamer-in.c (lto_input_tree): Read it.
13592         * lto-streamer-out.c (output_unreferenced_globals): Write it.
13594 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
13596         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
13597         (sparc*-*-solaris2*): ...this.
13599 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
13601         PR debug/43229
13602         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
13603         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
13604         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
13605         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
13607         PR debug/43237
13608         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
13609         fallthrough to default handling, just with want_address 0 instead of 2.
13610         For single element lists, add_AT_loc directly, otherwise create an
13611         artificial variable DIE and stick location list to it.
13613         PR debug/43177
13614         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
13615         (VAL_EXPR_HAS_REVERSE): Define.
13616         (reverse_op): New function.
13617         (add_stores): For reversible operations add an extra MO_VAL_USE.
13619 2010-03-02  Jason Merrill  <jason@redhat.com>
13621         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
13623 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13625         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
13626         (sparc64-*-linux*): Likewise.
13627         (sparc64-*-solaris2*): Include assembler files before linker ones.
13628         (sparc-*-solaris2*): Simplify and reorder to match previous case.
13629         * config/sparc/gas.h: Delete.
13630         * config/sparc/sol2-64.h: Add copyright notice.
13631         * config/sparc/sol2-gas-bi.h: Likewise.
13632         * config/sparc/sol2-gld.h: Likewise.
13633         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
13634         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
13635         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
13636         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
13637         (sparc_elf_asm_named_section): Rename into...
13638         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
13640 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
13642         * config/alpha/alpha.c (override_options): Fix -mtune error message.
13644 2010-03-02  Jeff Law  <law@redhat.com>
13646         PR middle-end/42431
13647         * reload1.c (rtx_p, substitute_stack): Declare.
13648         (substitute): Record addresses of changed rtxs.
13649         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
13650         Restore the original rtx when complete.
13651         (reload): Free subsitute_stack when complete.
13653 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
13655         * doc/gccint.texi (menu): Add Testsuites as a chapter.
13656         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
13657         new chapter.
13658         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
13659         LTO Testing, gcov Testing, profopt Testing, compat Testing,
13660         Torture Tests): Change from subsection to section.
13662 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
13663             Steven Bosscher  <steven@gcc.gnu.org>
13665         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
13666         instead of bb.
13668 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
13670         PR middle-end/42640
13671         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
13672         the assignment from the new induction variable to the assignment
13673         of the value from the original loop PHI function.
13675 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
13676             Daniel Jacobowitz  <dan@codesourcery.com>
13678         * doc/sourcebuild.texi (Test directives): Clarify options to
13679         dg-skip-if.
13681 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13683         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
13684         Disable cfi directives unless GCC and gas agree on using read-only
13685         .eh_frame sections for 64-bit.
13686         * configure: Regenerate.
13688 2010-03-01  Richard Guenther  <rguenther@suse.de>
13690         PR tree-optimization/43220
13691         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
13692         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
13694 2010-03-01  Richard Guenther  <rguenther@suse.de>
13695             Martin Jambor  <mjambor@suse.cz>
13697         PR middle-end/41250
13698         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
13699         gimplified parameters.
13701 2010-03-01  Christian Bruel  <christian.bruel@st.com>
13703         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
13705 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
13707         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
13709 2010-03-01  Richard Guenther  <rguenther@suse.de>
13711         PR middle-end/43213
13712         * expr.c (expand_assignment): Use the alias-oracle to tell
13713         if the rhs aliases the result decl.
13715 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13717         PR pch/14940
13718         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
13719         to sol_gt_pch_get_address.
13720         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
13721         64-bit, SPARC and x86.
13722         (sol_gt_pch_get_address): New function.
13724 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
13726         * toplev.h (inform_n, error_n): Declare.
13727         * diagnostic.c (inform_n, error_n): New function.
13729 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
13731         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
13732         has no rtl yet when processing local_decls, queue it and recheck
13733         if deferred stack allocation hasn't assigned it rtl.
13735 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
13737         * config/sh/sh.c (unspec_bbr_uid): New.
13738         (gen_block_redirect): Use it instead of INSN_UID.
13739         (gen_far_branch): Likewise.
13741 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13743         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
13744         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
13746 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13748         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
13749         (Warning Options): -Wno-conversion-null is valid for
13750         Objective-C++ as well.
13751         * doc/tm.texi (Named Address Spaces): Likewise.
13752         * doc/plugins.texi (Plugins): Replace TABs with spaces.
13753         * doc/tree-ssa.texi (Tree SSA): Likewise.
13755 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13757         PR bootstrap/43202
13758         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
13759         by default.  Don't set the default arch for
13760         i[34567]86-*-darwin*|x86_64-*-darwin*.
13762 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13764         PR bootstrap/43202
13765         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
13766         default.  Set the default 32bit/64bit archs with $with_arch
13767         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
13769 2010-02-27  Richard Guenther  <rguenther@suse.de>
13771         PR tree-optimization/43186
13772         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
13773         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
13774         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
13775         unroller iterations.
13777 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13779         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
13780         required and i[34567]86-*-* targets don't support 64bit ISA.
13782 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
13784         PR ada/43096
13785         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
13786         the same alias set.
13788 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13790         * config.gcc: Set the default arch at least to Prescott for
13791         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
13792         if SSE math is enabled.
13794 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13796         * diagnostic.c (diagnostic_initialize): Update.
13797         (diagnostic_report_diagnostic): Test inhibit_notes_p for
13798         informative notes.
13799         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
13800         (diagnostic_inhibit_notes): New.
13801         * toplev.c (process_options): inhibit notes with -fcompare-debug.
13803 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13805         PR c/20631
13806         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
13807         * doc/standards.texi: Likewise.
13808         * doc/extend.texi: Likewise.
13809         * doc/trouble.texi: Likewise.
13810         * doc/cppopts.texi: Likewise.
13811         * doc/install.texi: Likewise.
13812         * c.opt (std=c90,std=gnu90): New options.
13813         * c-opts.c (c_common_handle_option): Handle them.
13815 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13817         PR c/24577
13818         * c-decl.c (undeclared_variable): Use an informative note.
13820 2010-02-26  Richard Guenther  <rguenther@suse.de>
13822         PR tree-optimization/43186
13823         * gimple.h (gimple_fold): Remove.
13824         * gimple.c (gimple_fold): Remove.  Inline into single user ...
13825         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
13826         Try harder for conditions.
13828 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13830         PR debug/43190
13831         * function.c (used_types_insert): Don't skip through named pointer
13832         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
13833         and it is different from the main variant's type.
13835 2010-02-26  Nick Clifton  <nickc@redhat.com>
13837         * config/rx/rx.md (sminsi3): Remove bogus alternative.
13839 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13841         * config.gcc: Support --with-fpmath=sse for x86.
13843         * config/i386/ssemath.h: New.
13845         * doc/install.texi (--with-fpmath=sse): Documented.
13847 2010-02-26  Richard Guenther  <rguenther@suse.de>
13849         PR tree-optimization/43188
13850         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
13851         vector types of over-aligned element type.
13853 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
13855         PR target/43175
13856         * config/i386/i386.c (expand_vec_perm_blend): Use correct
13857         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
13859 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
13861         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
13863 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13865         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
13866         * var-tracking.c: Include diagnostic.h.
13867         (debug_dv): New function.
13868         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
13870         PR debug/43160
13871         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
13872         (add_value_chain, add_value_chains, remove_value_chain,
13873         remove_value_chains): Handle DEBUG_EXPRs.
13874         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
13876         PR debug/43161
13877         * regcprop.c (struct queued_debug_insn_change): New type.
13878         (struct value_data_entry): Add debug_insn_changes field.
13879         (struct value_data): Add n_debug_insn_changes field.
13880         (debug_insn_changes_pool): New variable.
13881         (free_debug_insn_changes, apply_debug_insn_changes,
13882         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
13883         (kill_value_one_regno): Call free_debug_insn_changes if needed.
13884         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
13885         fields.
13886         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
13887         changes for them.
13888         (copyprop_hardreg_forward_1): Don't call apply_change_group for
13889         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
13890         changes, call cprop_find_used_regs via note_stores.
13891         (copyprop_hardreg_forward): When copying vd from predecessor
13892         which has any queued DEBUG_INSN changes, make sure the pointers are
13893         cleared.  At the end call df_analyze and then if there are any
13894         DEBUG_INSN changes queued at the end of some basic block for still
13895         live registers, apply them.
13896         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
13898 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
13900         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
13901         (arm*-*-*): Ditto.
13903 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13905         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
13906         targets.  Set the default with_cpu/with_arch from arch/cpu.
13907         Allow x86-64 and native for with_cpu/with_arch.
13909 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
13911         * ebitmap.c: Change calls to verify_popcount with calls to
13912         sbitmap_verify_popcount.
13913         (ebitmap_clear_bit): Fixed map->cacheindex test and
13914         map>cache update when bit clearing results in an empty
13915         element.
13917 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
13919         PR target/43154
13920         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
13921         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
13922         and support both V2DF and V2DI modes.
13923         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
13924         support both V2DF and V2DI modes.
13925         (general): Delete trailing whitespace from a few patterns.
13927         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13928         V2DF/V2DI interleave high/low builtins.
13930         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
13931         new VSX builtins.
13933         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
13934         interleave high/low functions.
13936 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
13938         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
13939         #pragma extern_prefix.
13941 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
13943         PR debug/43166
13944         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
13945         BLKmode, assert op0 is a MEM and just adjust its mode.
13947         PR debug/43165
13948         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
13949         if bitpos isn't multiple of mode's bitsize.
13951 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13953         * c.opt (-ftemplate-depth=): New.
13954         (-ftemplate-depth-): Deprecate.
13955         * optc-gen.awk: Handle -ftemplate-depth=.
13956         * opth-gen.awk: Likewise.
13957         * c-opts.c (c_common_handle_option): Likewise.
13958         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
13960 2010-02-24  Jason Merrill  <jason@redhat.com>
13962         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
13964 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13966         * cfg.c (alloc_aux_for_block): Remove inline.
13967         (alloc_aux_for_edge): Likewise.
13969 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13971         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
13973 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13975         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
13976         * config/i386/sol2-gas.h: New file.
13977         * config.gcc (i[34567]86-*-solaris2*): Use it.
13979 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13981         PR c/43128
13982         * c-typeck.c (ep_convert_and_check): New.
13983         (build_conditional_expr): Use it.
13984         (build_binary_op): Likewise.
13986 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
13988         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
13990         PR debug/43150
13991         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
13992         bounds even for -O+.
13993         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
13994         expr needs to have DECL_NAME set.
13996 2010-02-24  Nick Clifton  <nickc@redhat.com>
13998         * config/mep/mep.c: Include gimple.h.
13999         (mep_function_uses_sp): Delete unused function.
14000         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
14001         parameters.  Use unsigned integers to count args.  Return a
14002         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
14004 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
14006         PR target/43107
14007         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
14008         greater or equal to nelt instead of 2 * nelt.
14009         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
14010         with nelt - 1.
14012 2010-02-23  Jason Merrill  <jason@redhat.com>
14014         PR debug/42800
14015         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
14016         in cfun->local_decls even if they have register types.
14018         PR c++/42837
14019         * stor-layout.c (place_field): Don't warn about unnecessary
14020         DECL_PACKED if the type is packed.
14022 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
14024         PR target/43139
14025         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
14026         GOTOFF relocs, even when the base reg isn't pic pointer.
14028 2010-02-23  Michael Matz  <matz@suse.de>
14030         PR debug/43077
14031         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
14032         (expand_gimple_basic_block): Generate and use debug temps if there
14033         are debug uses left after the last real use of TERed ssa names.
14034         Unlink debug immediate uses when they are expanded.
14036 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14038         PR 43123
14039         * config/i386/i386.c (override_options): Reorganise to provide
14040         better error messages.
14042 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
14044         PR middle-end/43083
14045         * graphite-scop-detection.c (create_single_exit_edge): Move
14046         the call to find_single_exit_edge to....
14047         (create_sese_edges): ...here.  Don't handle multiple edges
14048         exiting the function.
14049         (build_graphite_scops): Don't handle multiple edges
14050         exiting the function.
14052 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
14054         PR middle-end/43097
14055         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
14056         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
14058 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
14060         PR middle-end/43026
14061         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
14063 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14065         PR c++/43126
14066         * c-typeck.c (convert_arguments): Print declaration location.
14067         * c-common.c (validate_nargs): Rename as
14068         builtin_function_validate_nargs.
14069         (check_builtin_function_arguments): Update.
14071 2010-02-22  Richard Guenther  <rguenther@suse.de>
14073         PR lto/43045
14074         * tree-inline.c (declare_return_variable): Use the type of
14075         the call stmt lhs if available.
14077 2010-02-22  Duncan Sands  <baldrick@free.fr>
14079         * passes.c (register_pass): Always consider all pass lists when
14080         ref_pass_instance_number is zero.
14082 2010-02-22  Richard Guenther  <rguenther@suse.de>
14084         PR tree-optimization/42749
14085         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
14086         parameter.  Do arithmetic in the original type.
14087         (update_accumulator_with_ops): Likewise.
14088         (adjust_accumulator_values): Adjust.
14090 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14092         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
14093         (QI to BLKmode splitter): New splitter.
14095 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
14097         * config/i386/i386.c (initial_ix86_tune_features): Turn on
14098         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
14100 2010-02-22  Richard Guenther  <rguenther@suse.de>
14102         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
14104 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
14106         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
14107         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
14108         ($(T)crti.o, $(T)crtn.o): Remove rules.
14110 2010-02-21  Tobias Burnus  <burnus@net-b.de>
14112         PR fortran/35259
14113         * doc/invoke.texi (-fassociative-math): Document that this
14114         option is automatically enabled for Fortran.
14116 2010-02-20  David S. Miller  <davem@davemloft.net>
14118         * configure.ac: Test if linker and assembler properly support
14119         GOTDATA_OP relocations.
14120         * configure: Rebuild.
14121         * config.in: Likewise.
14122         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
14123         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
14124         (movsi_high_pic): Likewise.
14125         (movdi_lo_sum_pic): Likewise.
14126         (movdi_high_pic): Likewise.
14127         (movsi_pic_gotdata_op): New pattern.
14128         (movdi_pic_gotdata_op): Likewise.
14129         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
14130         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
14132 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
14134         PR target/43067
14135         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
14136         attribute to ssemul.
14137         (xop_mulv2div2di3_high): Ditto.
14139 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14141         PR c++/35669
14142         * c.opt (Wconversion-null): New option.
14143         * doc/invoke.texi (Wconversion-null): Document.
14145 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14147         * common.opt (Wlarger-than-): Add Undocumented.
14149 2010-02-19  Mike Stump  <mikestump@comcast.net>
14151         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
14153 2010-02-19  Jason Merrill  <jason@redhat.com>
14155         PR target/40332
14156         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
14157         * configure: Likewise.
14159 2010-02-20  Alan Modra  <amodra@gmail.com>
14161         PR middle-end/42344
14162         * cgraph.h (cgraph_make_decl_local): Declare.
14163         * cgraph.c (cgraph_make_decl_local): New function.
14164         (cgraph_make_node_local): Use it.
14165         * cgraphunit.c (cgraph_function_versioning): Likewise.
14166         * ipa.c (function_and_variable_visibility): Likewise.
14168 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
14170         PR bootstrap/43121
14171         * except.c (sjlj_emit_function_enter): Don't call
14172         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
14173         directly.
14174         * rtl.h (add_reg_br_prob_note): Remove prototype.
14176 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14178         PR 41779
14179         * c-common.c (conversion_warning): Remove widening conversions
14180         before checking the conversion of integers to reals.
14182 2010-02-19  Mike Stump  <mikestump@comcast.net>
14184         PR middle-end/43125
14185         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
14187         PR objc/43061
14188         * cgraphunit.c (process_function_and_variable_attributes): Check
14189         DECL_PRESERVE_P instead of looking up attribute "used".
14190         * ipa-pure-const.c (check_decl): Likewise.
14191         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
14192         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
14193         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
14194         instead of attribute "used".
14195         * config/sol2-c.c (solaris_pragma_init): Likewise.
14196         (solaris_pragma_fini): Likewise.
14198 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
14200         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
14201         Use XCNEW instead of xcalloc.
14202         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
14203         XNEW instead of xmalloc.
14204         (get_fields): Use XNEWVEC instead of xmalloc.
14206         PR debug/43084
14207         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
14208         populate vars array.
14209         (create_new_general_access): For debug stmts just reset value.
14210         (get_stmt_accesses): For accesses within debug stmts just record them
14211         using add_access_to_acc_sites instead of preventing the peeling or
14212         counting them as accesses.
14214         PR middle-end/42233
14215         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
14217 2010-02-19  Richard Guenther  <rguenther@suse.de>
14219         PR tree-optimization/42916
14220         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
14221         instructions.
14223 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
14225         * configure.ac: Replace all uses of changequote in macro arguments
14226         with proper quoting.
14228 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
14230         PR middle-end/42233
14231         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
14233 2010-02-19  Richard Guenther  <rguenther@suse.de>
14235         PR tree-optimization/42944
14236         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
14237         test for aliasing with errno.
14239 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
14241         PR middle-end/42233
14242         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
14243         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
14244         * dojump.c: Include output.h.
14245         (inv): New inline function.
14246         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
14247         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
14248         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
14249         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
14250         argument, pass it down to other calls.
14251         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
14252         add REG_BR_PROB note to the conditional jump.
14253         * cfgexpand.c (add_reg_br_prob_note): Removed.
14254         (expand_gimple_cond): Don't call it, add the probability
14255         as last argument to jumpif_1/jumpifnot_1.
14256         * Makefile.in (dojump.o): Depend on output.h.
14257         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
14258         callers.
14259         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
14260         * stmt.c (do_jump_if_equal): Likewise.
14261         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
14262         * loop-unswitch.c (compare_and_jump_seq): Likewise.
14263         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
14264         Likewise.
14265         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
14266         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
14267         jumpifnot_1 callers.
14268         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
14269         callers.
14270         (store_expr): Adjust jumpifnot caller.
14271         (store_constructor): Adjust jumpif caller.
14273         PR middle-end/42233
14274         * gimplify.c (gimple_boolify): For __builtin_expect call
14275         gimple_boolify also on its first argument.
14277 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
14279         * configure.ac (gnu-unique-object): Wrap regexps using [] in
14280         changequote block.
14281         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
14282         * configure: Regenerated.
14284 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14286         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
14287         lang_hooks.types_compatible_p instead of comptypes.
14289 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
14291         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
14292         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
14293         if __prefer_thumb__ is defined.
14295 2010-02-18  Martin Jambor  <mjambor@suse.cz>
14297         PR tree-optimization/43066
14298         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
14299         array with zero-sized element type.
14301 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
14303         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
14304         rtx, allocate struct var_loc_node here and return it to the
14305         caller, and only if it is actually needed.
14306         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
14307         move it earlier and return immediately if it returns NULL.
14309 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
14311         * config/sparc/gas.h: New file.  Restore
14312         TARGET_ASM_NAMED_SECTION to its ELF default.
14313         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
14314         check !HAVE_GNU_AS.
14315         * config/sparc/sparc.c (sparc_elf_asm_named_section):
14316         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
14317         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
14318         after sparc/sysv4.h.
14320 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
14322         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
14324 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
14326         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
14327         patterns from predicated pattern.
14329 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
14331         PR target/43103
14332         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
14333         for insn mnemonic suffix.
14335 2010-02-17  Richard Guenther  <rguenther@suse.de>
14337         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
14338         to loop PHI nodes.
14340 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
14342         PR debug/42918
14343         * caller-save.c (save_call_clobbered_regs): If BB ends with
14344         a DEBUG_INSN, move any notes in between last real insn and the last
14345         DEBUG_INSN after the last DEBUG_INSN.
14347 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
14349         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
14350         Fix return type.  Fix argument type.  Explain meaning of return value.
14352 2010-02-16  Richard Guenther  <rguenther@suse.de>
14354         PR tree-optimization/41043
14355         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
14356         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
14357         statements ...
14358         (vrp_visit_phi_node): ... but only for loop PHI nodes.
14360 2010-02-16  Ira Rosen  <irar@il.ibm.com>
14362         PR tree-optimization/43074
14363         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
14364         * tree-vect-loop.c (vect_analyze_loop_operations): Add
14365         vectorizable cycles in hybrid SLP check.
14366         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
14368 2010-02-16  Richard Guenther  <rguenther@suse.de>
14370         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
14371         (true_dependence): If memrefs_conflict_p computes must-alias
14372         trust it.  Move TBAA check after offset-based disambiguation.
14373         (canon_true_dependence): Likewise.
14375 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
14377         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
14378         * doc/invoke.texi: Document it.
14379         * var-tracking.c: Include toplev.h and params.h.
14380         (vt_find_locations): Return bool indicating success.  Compute
14381         hash sizes unconditionally.  Check new parameter, report.
14382         (variable_tracking_main_1): Check vt_find_locations results and
14383         retry.  Renamed from...
14384         (variable_tracking_main): ... this.  New wrapper to preserve
14385         flag_var_tracking_assignments.
14386         * Makefile.in (var-tracking.o): Adjust dependencies.
14388 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
14389             Jakub Jelinek <jakub@redhat.com>
14391         PR target/42854
14392         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
14393         if weak_import attribute is present.
14394         * config/darwin.c (machopic_select_section): Likewise.
14396 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14398         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
14399         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
14400         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
14401         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
14403         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
14404         types.
14406         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
14407         Fix argument types.
14409         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
14410         Rewrite text to refer to the names.
14412 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
14414         * config/i386/i386-builtin-types.def
14415         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
14416         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
14417         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
14418         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
14419         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
14420         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
14421         IX86_BUILTIN_VPERMIL2PS256.
14422         (MULTI_ARG_4_DF2_DI_I): Defined.
14423         (MULTI_ARG_4_DF2_DI_I1): Defined.
14424         (MULTI_ARG_4_SF2_SI_I): Defined.
14425         (MULTI_ARG_4_SF2_SI_I1): Defined.
14426         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
14427         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
14428         __builtin_ia32_vpermil2ps256.
14429         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
14430         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
14431         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
14432         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
14433         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
14434         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
14435         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
14436         CODE_FOR_xop_vpermil2v8sf3.
14437         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
14438         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
14439         * config/i386/xopintrin.h (_mm_permute2_pd): New.
14440         (_mm256_permute2_pd): New.
14441         (_mm_permute2_ps): New.
14442         (_mm256_permute2_ps): New.
14444 2010-02-15  Nick Clifton  <nickc@redhat.com>
14446         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
14447         boolean parameters.  Use emit_jump_insn when emitting a pop
14448         instruction containing a return insn.
14449         (push): Use 'true' rather than '1' as second parameter to F.
14450         (h8300_expand_prologue): Likewise.
14451         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
14452         (h8300_expand_epilogue): Likewise.
14454 2010-02-15  Richard Guenther  <rguenther@suse.de>
14456         PR middle-end/43068
14457         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
14458         if that is zero.
14460 2010-02-15  Nick Clifton  <nickc@redhat.com>
14462         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
14463         delta.
14465 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
14467         * intl.c (fake_ngettext): New function.
14468         * intl.h (fake_ngettext): Declare.
14469         (ngettext): Define macro.
14470         * collect2.c (notice_translated): New function.
14471         (main): Use notice_translated and ngettext.
14472         * collect2.h (notice_translated): Declare.
14474 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
14476         * reorg.c (delete_computation): Comment fixes.
14477         * caller-save.c (setup_save_areas): Idem.
14478         * sel-sched-dump.c (dump_lv_set): Idem.
14479         * rtl.def: Idem.
14481 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14483         * config/s390/s390.c (s390_sched_init): New function.
14484         (TARGET_SCHED_INIT): Target hook defined.
14486 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
14487             Jack Howarth  <howarth@bromo.med.uc.edu>
14488             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14490         PR target/42982
14491         Partial revert of unintended change in fix for PR41605.
14492         * config/darwin.h: Fix typo.
14493         * config/darwin9.h: Same.
14495 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14497         * c-pch.c (pch_init): Clear v.
14499 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14501         PR middle-end/42930
14502         * graphite-scop-detection.c (graphite_can_represent_scev): Call
14503         graphite_can_represent_init for MULT_EXPR.
14505 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14507         PR middle-end/42914
14508         PR middle-end/42530
14509         * graphite-sese-to-poly.c (remove_phi): New.
14510         (translate_scalar_reduction_to_array): Call remove_phi.
14512 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14514         PR middle-end/42771
14515         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
14516         * graphite-clast-to-gimple.h (gloog): Update declaration.
14517         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
14518         * graphite-poly.h (struct poly_bb): Add missing comments.
14519         (struct scop): Add poly_scop_p field.
14520         (POLY_SCOP_P): New.
14521         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
14522         * graphite.c (graphite_transform_loops): Build the polyhedral
14523         representation for each scop before code generation.
14524         * sese.c (rename_variables_in_operand): Removed.
14525         (rename_variables_in_expr): Return the renamed expression.
14526         (rename_sese_parameters): New.
14527         * sese.h (rename_sese_parameters): Declared.
14529 2010-02-11  Richard Guenther  <rguenther@suse.de>
14531         PR tree-optimization/42998
14532         * tree-ssa-pre.c (create_expression_by_pieces): Treat
14533         POINTER_PLUS_EXPR properly.
14535 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14536             Changpeng Fang  <changpeng.fang@amd.com>
14538         PR middle-end/40886
14539         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
14540         the cost of an IV candidate when the IV is used in a test against zero.
14542         * gcc.dg/tree-ssa/ivopts-3.c: New.
14544 2010-02-11  Richard Guenther  <rguenther@suse.de>
14546         PR lto/41664
14547         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
14548         pointer-vs-decl case by swapping refs.  Handle some cases
14549         of pointer-vs-decl disambiguations more conservatively.
14550         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
14551         to false after expanding.
14553 2010-02-11  Richard Guenther  <rguenther@suse.de>
14555         PR driver/43021
14556         * gcc.c (process_command): Handle LTO file@offset case more
14557         appropriately.
14559 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14561         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
14562         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
14563         of DEBUG_INSNs.
14564         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
14566         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
14567         if MEM's mode size isn't DWARF2_ADDR_SIZE.
14568         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
14569         Optimize eq/ne comparisons when both arguments are known to be
14570         zero-extended.
14571         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
14572         Don't mask operands unnecessarily if they are known to be already
14573         zero-extended.
14575 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
14577         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
14578         instead of loop.
14580 2010-02-10  Richard Guenther  <rguenther@suse.de>
14582         PR tree-optimization/43017
14583         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
14584         for wrapping signed arithmetic.
14586 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14588         PR debug/43010
14589         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
14590         if no debug info should be emitted for it.
14592 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14594         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
14595         note when flag_exceptions is set.
14597 2010-02-10  Duncan Sands  <baldrick@free.fr>
14599         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
14601 2010-02-10  Richard Guenther  <rguenther@suse.de>
14603         PR c/43007
14604         * tree.c (get_unwidened): Handle constants.
14605         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
14607 2010-02-10  Martin Jambor  <mjambor@suse.cz>
14609         PR lto/42985
14610         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
14611         check for variable argument counts independently.
14613 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14615         PR target/42841
14616         * config/sh/sh.c (find_barrier): Increase length for non delayed
14617         conditional branches.
14619 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14621         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
14623 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14625         * builtins.c (set_builtin_user_assembler_name): Also handle
14626         ffs if int is smaller than word.
14628 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
14630         PR middle-end/42973
14631         * ira-conflicts.c (get_dup): Remove.
14632         (process_reg_shuffles): Add new parameter.  Use it as an
14633         additional guard for copy generation.
14634         (add_insn_allocno_copies): Rewrite.
14636 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
14638         * common.opt (fsched2-use-traces): Preserved for backward
14639         compatibility.
14640         * doc/invoke.texi: Remove the documentation about option
14641         -fsched2-use-traces.
14642         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
14643         flag_sched2_use_traces.
14644         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
14645         the backward compatibility flag section.
14647 2010-02-09  Richard Guenther  <rguenther@suse.de>
14649         PR tree-optimization/43008
14650         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
14651         make HEAP variables initialized from global memory if they
14652         are not known builtin functions.
14653         (find_func_aliases): Adjust.
14655 2010-02-09  Richard Guenther  <rguenther@suse.de>
14657         PR tree-optimization/43000
14658         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
14659         arithmetic manually.
14661 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
14663         PR tree-optimization/42931
14664         * tree-loop-linear.c (try_interchange_loops): Don't call
14665         double_int_mul if estimated_loop_iterations failed.
14667 2010-02-08  Martin Jambor  <mjambor@suse.cz>
14669         PR middle-end/42898
14670         * tree-sra.c (build_accesses_from_assign): Do not mark in
14671         should_scalarize_away_bitmap if stmt has volatile ops.
14672         (sra_modify_assign): Do not process assigns piecemeal if if stmt
14673         has volatile ops.
14675 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
14677         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
14679 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
14681         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
14682         before the pattern.
14684 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
14686         PR middle-end/42946
14687         * df-core.c (df_finish_pass): Change type of saved_flags to int.
14689 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14691         PR middle-end/42988
14692         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
14693         to unknown_dependence.
14694         (graphite_legal_transform_dr): Handle the unknown_dependence.
14695         (graphite_carried_dependence_level_k): Same.
14697 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14699         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
14701 2010-02-07  Richard Guenther  <rguenther@suse.de>
14703         PR middle-end/42991
14704         * expr.c (get_inner_reference): Always initialize *pbitsize.
14706 2010-02-07  Richard Guenther  <rguenther@suse.de>
14708         PR middle-end/42956
14709         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
14710         new ARRAY_REFs on variable size element or minimal index arrays.
14711         Complete.
14712         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
14713         gimple_fold_indirect_ref.
14715 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
14717         PR target/42957
14718         * arm.c (arm_override_options): Just return if the user has specified
14719         an invalid fpu name.
14721 2010-02-03  Jason Merrill  <jason@redhat.com>
14723         PR c++/42870
14724         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
14725         i386_pe_maybe_record_exported_symbol.
14727 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
14729         PR target/42924
14730         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
14731         (pa_delegitimize_address): New function.
14733 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
14735         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
14736         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
14738 2010-02-05  Richard Guenther  <rguenther@suse.de>
14740         PR lto/42762
14741         * lto-streamer-in.c (get_resolution): Deal with references
14742         to undefined functions.
14744 2010-02-05  Richard Guenther  <rguenther@suse.de>
14746         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
14747         (fold_const_aggregate_ref): Likewise.
14748         (ccp_fold_stmt): Substitute loads.
14749         (maybe_fold_reference): Verify types before substituting.
14750         Unshare properly.
14751         (fold_gimple_assign): Unshare properly.
14752         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
14754 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
14756         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
14757         for rs6000_gen_cell_microcode.
14759 2010-02-04  Richard Guenther  <rguenther@suse.de>
14761         PR rtl-optimization/42952
14762         * dse.c (const_or_frame_p): Remove MEM handling.
14764 2010-02-04  Nick Clifton  <nickc@redhat.com>
14766         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14767         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14768         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
14769         (mn10300_asm_output_mi_thunk): New function.
14770         (mn10300_can_output_mu_thunk): New function.
14771         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
14772         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
14773         (FUNCTION_ARG): Delete incorrect comment.
14775 2010-02-03  Jason Merrill  <jason@redhat.com>
14777         PR c++/40138
14778         * fold-const.c (operand_equal_p): Handle erroneous types.
14780 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14782         * config/h8300/h8300.md (can_delay): Fix attibute condition.
14784 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14786         PR rtl-optimization/42941
14787         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
14788         of xmalloc.
14790 2010-02-03  Jason Merrill  <jason@redhat.com>
14792         PR c++/35652
14793         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
14795 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
14797         PR debug/42896
14798         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
14799         (cselib_reset_table): Renamed from...
14800         (cselib_reset_table_with_next_value): ... this.
14801         (cselib_get_next_uid): Renamed from...
14802         (cselib_get_next_unknown_value): ... this.
14803         * cselib.c (next_uid): Renamed from...
14804         (next_unknown_value): ... this.
14805         (cselib_clear_table): Adjust.
14806         (cselib_reset_table): Adjust.  Renamed from...
14807         (cselib_reset_table_with_next_value): ... this.
14808         (cselib_get_next_uid): Adjust.  Renamed from...
14809         (cselib_get_next_unknown_value): ... this.
14810         (get_value_hash): Use hash.
14811         (cselib_hash_rtx): Likewise.
14812         (new_cselib_val): Adjust.  Set and dump uid.
14813         (cselib_lookup_mem): Pass next_uid as hash.
14814         (cselib_subst_to_values): Likewise.
14815         (cselib_log_lookup): Dump uid.
14816         (cselib_lookup): Pass next_uid as hash.  Adjust.
14817         (cselib_process_insn): Adjust.
14818         (cselib_init): Initialize next_uid.
14819         (cselib_finish): Adjust.
14820         (dump_cselib_table): Likewise.
14821         * dse.c (canon_address): Dump value uid.
14822         * print-rtl.c (print_rtx): Print value uid.
14823         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
14824         (dvuid): New type.
14825         (dv_uid): New function, sort of renamed from...
14826         (dv_htab_hash): ... this, reimplemented in terms of it and...
14827         (dv_uid2hash): ... this.  New.
14828         (variable_htab_eq): Drop excess assertions.
14829         (tie_break_pointers): Removed.
14830         (canon_value_cmp): Compare uids.
14831         (variable_post_merge_New_vals): Print uids.
14832         (vt_add_function_parameters): Adjust.
14833         (vt_initialize): Reset table.  Adjust.
14835 2010-02-03  Richard Guenther  <rguenther@suse.de>
14837         PR tree-optimization/42944
14838         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
14839         (call_may_clobber_ref_p_1): Likewise.  Properly handle
14840         malloc and calloc clobbering errno.
14842 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
14844         * doc/invoke.texi: Fix name of sched1 dump.
14846         * opts.c (decode_options): Set flag_tree_switch_conversion
14847         only conditionally on optimize >= 2.
14849         * gcse.c: Assorted comment fixes in pass description.
14851 2010-02-03  Anthony Green  <green@moxielogic.com>
14853         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
14854         nop padding in order to maintain alignment of storage location of
14855         target function address.
14856         (moxie_trampoline_init): Store target function address at newly
14857         aligned location.
14858         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
14859         to 32.
14860         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
14862 2010-02-03  Richard Guenther  <rguenther@suse.de>
14864         PR middle-end/42927
14865         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
14867 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14869         * config.gcc: Reenable check for obsolete targets.
14870         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
14871         mips-sgi-irix6.[0-4]*.
14873 2010-02-02  Nick Clifton  <nickc@redhat.com>
14875         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
14876         constant size of 4 as being the same as 0.
14877         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
14878         can take values in the range 0..4.
14880 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
14882         PR java/41991
14883         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
14884         as _darwin10_Unwind_FindEnclosingFunction().
14885         * libgcc-libsystem.ver: New.
14887 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
14889         PR target/41399
14890         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
14891         implicitly set registers.
14893 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
14895         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
14896         (arm_override_options): Allow automatic selection of the thread
14897         pointer register if thumb2.
14898         (legitimize_pic_address): Improve code sequences for Thumb2.
14899         (arm_call_tls_get_addr): Likewise.
14900         (legitimize_tls_address): Likewise.
14901         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
14902         (pic_load_addr_32bit): ... this.  New named pattern.
14903         * thumb2.md (pic_load_addr_thumb2): Delete.
14904         (pic_load_dot_plus_four): Delete.
14905         (tls_load_dot_plus_four): New named pattern.
14907 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14909         PR libgomp/29986
14910         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
14911         Document fix for TLS bug.
14913 2010-01-31  Richard Guenther  <rguenther@suse.de>
14915         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
14916         conservatively correct.
14918 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14920         PR target/42850
14921         Revert:
14922         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14924         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14926 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14928         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
14930 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
14932         * config.gcc: Adjust order of makefile fragments for mingw targets.
14934 2010-01-31  Richard Guenther  <rguenther@suse.de>
14936         PR middle-end/42898
14937         * gimplify.c (gimplify_init_constructor): For volatile LHS
14938         initialize a temporary.
14940 2010-01-31  Matthias Klose  <doko@ubuntu.com>
14942         * configure.ac: Fix __stack_chk_fail check for cross builds configured
14943         --with-headers
14944         * configure: Regenerate.
14946 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
14948         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
14949         the same alias set and their sizes different constantness.
14950         (aliasing_component_refs_p): Revert 2009-10-24 change.
14952 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14954         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
14955         unused.
14957 2010-01-29  Richard Guenther  <rguenther@suse.de>
14959         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
14960         Assert we successfully updated the call.
14962 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
14964         PR rtl-optimization/42889
14965         * df.h (df_set_bb_dirty_nonlr): New prototype.
14966         * df-core.c (df_set_bb_dirty_nonlr): New function.
14967         * df-scan.c (df_insn_rescan): Call it instead of
14968         df_set_bb_dirty for DEBUG_INSNs.
14970 2010-01-29  Richard Guenther  <rguenther@suse.de>
14972         PR middle-end/37448
14973         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
14974         quadratic behavior in most cases.
14976 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
14978         PR target/42891
14979         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
14980         in the call to gen_x86_movsicc_0_m1.
14982 2010-01-28  Richard Guenther  <rguenther@suse.de>
14984         PR tree-optimization/42871
14985         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
14987 2010-01-28  Richard Guenther  <rguenther@suse.de>
14989         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
14990         into call arguments.
14992 2010-01-28  Richard Guenther  <rguenther@suse.de>
14994         PR middle-end/42883
14995         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
14996         the forwarder if the destination is an EH landing pad.
14998 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
15000         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
15001         block list passed to gimple_duplicate_sese_tail.
15002         (parallelize_loops): Avoid parallelization when the function
15003         has_nonlocal_label.
15004         Avoid parallelization when the preheader is IRREDUCIBLE.
15005         Try to optimize when estimated_loop_iterations_int is unresolved.
15006         Add the loop's location to the dump file.
15007         * tree-cfg.c (add_phi_args_after_redirect): Remove.
15008         (gimple_duplicate_sese_tail): Remove the check for the latch.
15009         Redirect nexits to the exit block.
15010         Remove handling of the incoming edges to the latch.
15011         Redirect the backedge from the copied latch to the exit bb.
15013 2010-01-28  Michael Matz  <matz@suse.de>
15015         PR target/42881
15016         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
15017         Wrap force_reg into a sequence, emit it before user.
15019 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
15021         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
15022         (arm_rev): New.
15023         (arm_legacy_rev): Likewise.
15024         (thumb_legacy_rev): Likewise.
15026 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
15028         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
15029         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
15030         on MEM's address failed, try avoid_constant_pool_reference and
15031         recurse if it returned something different.
15032         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
15033         address, try avoid_constant_pool_reference and recurse if it
15034         returned something different.
15035         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
15036         address and avoid_constant_pool_reference returned something
15037         different, don't set have_address.
15039 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
15041         PR debug/42861
15042         * var-tracking.c (val_store): Add modified argument, obey it.
15043         Adjust callers.
15044         (count_uses): Move down logging of main.
15045         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
15046         don't need resolution.
15047         (emit_notes_in_bb): Likewise.
15049 2010-01-27  Richard Guenther  <rguenther@suse.de>
15051         PR middle-end/42878
15052         * tree-inline.c (remap_decl): Delay remapping of SSA name
15053         default definitions until we need them.
15055 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
15057         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
15058         (rs6000_delegitimize_address): New function.
15060         * config/s390/s390.c (s390_delegitimize_address): Call
15061         delegitimize_mem_from_attrs.
15063         PR middle-end/42874
15064         * tree-inline.c (cannot_copy_type_1): Removed.
15065         (copy_forbidden): Don't forbid copying of functions containing
15066         records/unions with variable length fields.
15068 2010-01-27  Christian Bruel  <christian.bruel@st.com>
15070         Revert:
15071         PR target/42841
15072         * config/sh/sh.c (find_barrier): Increase length for non delayed
15073         conditional branches.
15075 2010-01-27  Matthias Klose  <doko@ubuntu.com>
15077         * configure.ac (gnu-unique-object): Fix ldd version check.
15078         * configure: Regenerate.
15080 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15082         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
15083         HAVE_GNU_AS value.
15084         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
15085         Test for HAVE_GNU_AS value.
15087 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15089         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
15090         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
15091         INT64_TYPE): Define.
15092         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
15093         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
15094         INT_LEAST64_TYPE): Define.
15095         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
15096         UINT_LEAST64_TYPE): Define.
15097         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
15098         INT_FAST64_TYPE): Define.
15099         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
15100         UINT_FAST64_TYPE): Define.
15101         (INTMAX_TYPE, UINTMAX_TYPE): Define.
15102         (INTPTR_TYPE, UINTPTR_TYPE): Define.
15103         (SIG_ATOMIC_TYPE): Define.
15105 2010-01-26  Richard Guenther  <rguenther@suse.de>
15107         * df-scan.c (df_scan_set_bb_info): Remove assert.
15108         (df_insn_rescan_debug_internal): Merge asserts.
15109         (df_install_ref): Likewise.
15110         (df_mark_reg): Use bitmap_set_range.
15111         (df_hard_reg_used_p): Remove assert.
15112         (df_hard_reg_used_count): Likewise.
15114 2010-01-26  Richard Guenther  <rguenther@suse.de>
15116         PR rtl-optimization/42685
15117         * web.c (web_main): Ignore DEBUG_INSNs.
15119 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
15121         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
15123         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
15124         Fix types of fndecl and arglist parameters.
15126 2010-01-26  Richard Guenther  <rguenther@suse.de>
15128         PR middle-end/42806
15129         * tree-eh.c (unsplit_eh): Skip debug insns.
15131 2010-01-26  Richard Guenther  <rguenther@suse.de>
15133         PR tree-optimization/42250
15134         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
15136 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
15138         PR fortran/42866
15139         * omp-low.c (expand_omp_sections): Only use single_pred if
15140         l2_bb is single_pred_p.
15142 2010-01-25  Christian Bruel  <christian.bruel@st.com>
15144         PR target/42841
15145         * config/sh/sh.c (find_barrier): Increase length for non delayed
15146         conditional branches.
15147         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
15149 2010-01-24  David S. Miller  <davem@davemloft.net>
15151         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
15152         define if not using GAS.
15153         * config/sparc/sparc.c (sparc_elf_asm_named_section):
15154         Likewise.  Delete SECTION_MERGE code, which is only applicable
15155         when using GAS.
15157 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
15159         PR c++/42748
15160         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
15161         mangling of va_list in system headers.
15163 2010-01-23  Toon Moene  <toon@moene.org>
15165         * tree-predcom.c (combine_chains): Return NULL, not false.
15167 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
15169         * tree-loop-distribution.c (distribute_loop): Fix declaration and
15170         initialization of variable res to agree with return type.
15172 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
15174         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
15175         * tree-sra.c: Add include of expr.h.
15177 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
15179         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
15180         insert the debug stmt on the single non-EH edge from the stmt.
15182 2010-01-22  Richard Henderson  <rth@redhat.com>
15184         PR tree-opt/42833
15185         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
15186         the RHS until after generate_subtree_copies has insertted its
15187         code before the current statement.
15189 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
15191         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
15193         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
15195 2010-01-21  Martin Jambor  <mjambor@suse.cz>
15197         PR tree-optimization/42585
15198         * tree-sra.c (struct access): New field grp_total_scalarization.
15199         (dump_access): Dump the new field.
15200         (should_scalarize_away_bitmap): New variable.
15201         (cannot_scalarize_away_bitmap): Likewise.
15202         (sra_initialize): Allocate new bitmaps.
15203         (sra_deinitialize): Free new bitmaps.
15204         (create_access_1): New function.
15205         (create_access): Parts moved to create_access_1.
15206         (type_consists_of_records_p): New function.
15207         (completely_scalarize_record): Likewise.
15208         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
15209         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
15210         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
15211         access.
15212         (analyze_all_variable_accesses): Completely scalarize small eligible
15213         records.
15215 2010-01-21  Martin Jambor  <mjambor@suse.cz>
15217         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
15219 2010-01-21  Andrew Haley  <aph@redhat.com>
15221         * gcc.c (process_command): Move lang_specific_driver before
15222         setting cc_libexec_prefix.
15224 2010-01-21  Richard Guenther  <rguenther@suse.de>
15226         PR middle-end/19988
15227         * fold-const.c (negate_expr_p): Pretend only negative
15228         real constants are easily negatable.
15230 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
15231             Jason Merrill  <jason@redhat.com>
15233         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
15234         (TYPE_TRANSPARENT_AGGR): this, for union and record.
15235         * calls.c (initialize argument_information): Handle it.
15236         * c-common.c (handle_transparent_union_attribute): Use new name.
15237         * c-decl.c (finish_struct): Ditto.
15238         * c-typeck.c (type_lists_compatible_p): Ditto.
15239         (convert_for_assignment): Use new name and also handle record.
15240         * function.c (aggregate_value_p): Handle it.
15241         (pass_by_reference): Ditto.
15242         (assign_parm_data_types): Ditto.
15243         * print-tree.c (print_node): Ditto.
15244         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
15245         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
15246         * tree.c (first_field): New fn.
15248 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
15250         PR target/42818
15251         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
15252         even when linking statically, for now.
15254 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
15256         PR debug/42715
15257         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
15258         without a cselib val.
15259         (count_uses): Accept MO_VAL_SET with no val on stores.
15260         (add_stores): Likewise.
15262 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
15264         * var-tracking.c (check_value_val): Add a compile time assertion.
15265         (dv_is_decl_p): Simplify.
15266         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
15267         gcc_assert if ENABLE_CHECKING.
15269 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
15271         PR debug/42782
15272         * var-tracking.c: Include tree-flow.h.
15273         (mem_dies_at_call): New.
15274         (dataflow_set_preserve_mem_locs): Use it.
15275         (dataflow_set_remove_mem_locs): Likewise.
15276         (dump_var): Renamed from dump_variable.  Adjust all callers.
15277         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
15278         * Makefile.in (var-tracking.o): Adjust deps.
15280 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
15282         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
15284 2010-01-20  Richard Guenther  <rguenther@suse.de>
15286         PR tree-optimization/42717
15287         * tree-ssa-dce.c (get_live_post_dom): Remove.
15288         (forward_edge_to_pdom): Take an arbitrary edge to copy
15289         degenerate PHI args from.
15290         (remove_dead_stmt): Use the first post-dominator even if it
15291         does not contain live statements as redirection destination.
15293 2010-01-20  Richard Guenther  <rguenther@suse.de>
15295         * tree-inline.c (estimate_num_insns): Handle EH builtins.
15297 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
15299         * sel-sched.c (create_speculation_check): Remove set but not used
15300         variable twin.
15301         (try_transformation_cache): Remove set but not used variable ds.
15302         (calculate_privileged_insns): Remove set but not used variables
15303         cur_insn and min_spec_insn.
15304         (find_best_expr): Remove set but not used variable avail_n.
15305         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
15306         variable e.
15307         * cgraphunit.c (assemble_thunk): Remove set but not used variable
15308         false_label.
15309         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
15310         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
15311         new_scop_exit_edge.
15313 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
15315         PR bootstrap/42786
15316         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
15317         cpu types.  Add support for *-sse3 cpu types.
15318         (x86_64-*-*): Ditto.
15320 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
15322         PR middle-end/42803
15323         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
15324         argument, call initializer_constant_valid_p_1 instead of
15325         initializer_constant_valid_p, pass CACHE to it, return NULL
15326         immediately if first call returns NULL.
15327         (initializer_constant_valid_p_1): New function.
15328         (initializer_constant_valid_p): Use it.
15330 2010-01-20  Thomas Quinot  <quinot@adacore.com>
15332         * tree.def (PLACEHOLDER_EXPR): Fix comment.
15334 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
15336         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
15337         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
15338         (loc_list_from_tree): Don't handle unsigned division.  Handle
15339         signed modulo using DW_OP_{over,over,div,mul,minus}.
15340         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
15341         modulo instead of signed.
15343 2010-01-20  DJ Delorie  <dj@redhat.com>
15345         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
15346         (Fpa): Pass it
15347         (h8300_emit_stack_adjustment): Propogate it.
15348         (push): Pass it.
15349         (h8300_expand_prologue): Likewise.
15350         (h8300_expand_epilogue): Likewise.
15352 2010-01-19  Michael Matz  <matz@suse.de>
15354         PR tree-optimization/41783
15355         * tree-data-ref.c (toplevel): Include flags.h.
15356         (dump_data_dependence_relation):  Also dump the inputs if the
15357         result will be unknown.
15358         (split_constant_offset_1): Look through some conversions.
15359         * tree-predcom.c (determine_roots_comp): Restart a new chain if
15360         the offset from last element is too large.
15361         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
15362         (reassociate_to_the_same_stmt): Handle vector registers.
15363         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
15364         (e.g. conversions).
15365         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
15366         wide_prolog_niters argument, emit widening instructions.
15367         (vect_do_peeling_for_alignment): Adjust caller, use widened
15368         variant of the iteration cound.
15369         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
15371 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15373         PR target/38697
15374         * config/arm/neon-testgen.m (emit_automatics): New parameter
15375         features. Adjust for Fixed_return_reg feature.
15376         (test_intrinsic): Call emit_automatics with new feature.
15377         * config/arm/neon.ml: Update copyright years.
15378         (features): New Fixed_return_reg feature.
15379         (ops): Update feature for Vget_low.
15381 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
15383         PR tree-optimization/42719
15384         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
15385         stmt uses.
15387         PR debug/42728
15388         * fwprop.c (all_uses_available_at): Return false if def_set dest
15389         is a REG that is used in def_insn.
15391 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
15393         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
15395         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
15396         Add argument names.
15398         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
15400         * target.h (struct gcc_target) <secondary_reload>: Change type
15401         of last argument to secondary_reload_info *.
15403 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
15405         PR target/42774
15406         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
15407         memory references with unaligned offsets.  Remove CQImode handling.
15408         (unaligned_memory_operand): Return 1 for memory references with
15409         unaligned offsets.  Remove CQImode handling.
15411 2010-01-18  Richard Guenther  <rguenther@suse.de>
15413         PR middle-end/39954
15414         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
15415         builtin calls.
15417 2010-01-18  Richard Guenther  <rguenther@suse.de>
15419         PR tree-optimization/42781
15420         * tree-ssa-structalias.c (find_what_var_points_to): Skip
15421         restrict processing only if the original variable was artificial.
15423 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
15425         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
15426         find number of popped argument bytes.
15428         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
15429         Fix the text that describes the return value for invalid insns.
15431         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
15433         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
15434         Clarify what 'cost of the -dependence' is.  Fix quoting.
15436         * toplev.c (default_get_pch_validity): Rename argument to "sz".
15437         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
15439 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
15441         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
15442         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
15444 2010-01-17  Richard Guenther  <rguenther@suse.de>
15446         PR middle-end/42248
15447         * function.c (split_complex_args): Take a VEC to modify.
15448         (assign_parms_augmented_arg_list): Build a VEC instead of
15449         a chain of PARM_DECLs.
15450         (assign_parms_unsplit_complex): Take a VEC of arguments.
15451         Do not fixup unmodified parms.
15452         (assign_parms): Deal with the VEC.
15453         (gimplify_parameters): Likewise.
15455 2010-01-17  Richard Guenther  <rguenther@suse.de>
15457         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
15458         node existence check.
15459         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
15460         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
15461         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
15462         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
15463         (gimple_execute_on_growing_pred): Likewise.
15465 2010-01-17  Richard Guenther  <rguenther@suse.de>
15467         PR tree-optimization/42773
15468         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
15469         (compute_antic_aux): Likewise.
15470         (compute_partial_antic_aux): Likewise.
15472 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
15474         PR debug/42767
15475         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
15476         and US_TRUNCATE.
15478 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
15480         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
15481         appearance.
15483         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
15484         Fix markup for strict argument.
15486         (TARGET_SCHED_REORDER2): Fix argument types.
15488         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
15489         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
15491         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
15492         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
15494         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
15495         Add argument name.
15497         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
15498         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
15499         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
15500         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
15501         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
15503         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
15505         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
15507         (TARGET_ASM_RELOC_RW_MASK): Add return type.
15508         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
15510         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
15512         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
15513         Use prototype.
15515         (TARGET_ASM_NAMED_SECTION): Fix argument list.
15517         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
15518         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
15520         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
15522         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
15524         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
15525         referring to it.  Fix language.
15527         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
15529         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
15531         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
15533         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
15535         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
15536         '@var{stream}.  Remove stray 'and'.
15538         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
15540         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
15542         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
15544         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
15545         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
15547         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
15548         Fix description of return value.
15549         Rename argument "sz" to "len."
15551         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
15552         Clarify meaning of 'true' return value.
15554         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
15556         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
15557         rep_mode versus mode_rep.
15559         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
15561         (TARGET_BUILTIN_DECL): Fix name.
15563         (TARGET_COMMUTATIVE_P): Fix type of first argument.
15565         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
15567         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
15569         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
15571         (TARGET_RELAXED_ORDERING): Use @deftypevr.
15573         (TARGET_GET_DRAP_RTX): Note that this is a hook.
15574         Clarify language.
15576         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
15577         Rename argument tm_fn to md_fn.
15579         (TARGET_OPTION_PRINT): Fix argument list.
15581 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
15583         PR target/42664
15584         * config/i386/i386.c (ix86_fixup_binary_operands):
15585         Revert FMA4 fixup of operands.
15587 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15589         PR gcc/42525
15590         * Makefile.in (write_entries_to_file, install-plugin):
15591         Use \012 instead of \n with tr.
15593 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
15595         * configure.ac (HAVE_AS_REF): New C macro.
15596         * configure: Regenerate.
15597         * config.in: Likewise.
15598         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
15599         if HAVE_AS_REF.
15600         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
15601         if HAVE_AS_REF.
15603 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
15605         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
15607         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
15609         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
15611         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
15613         (TARGET_IN_SMALL_DATA_P): Fix argument type.
15615         (TARGET_BINDS_LOCAL_P): Fix argument type.
15617         (TARGET_ASM_FILE_END): Use prototype.
15619         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
15621         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
15623         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
15625         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
15627         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
15628         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
15630         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
15631         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
15633         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
15634         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
15635         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
15636         (TARGET_ADDR_SPACE_CONVERT): Likewise.
15638         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
15640         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
15642         (TARGET_INIT_BUILTINS): Use prototype.
15644         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
15645         Put 'const char *' in braces.  Fix parameter types.
15646         (TARGET_INVALID_CONVERSION): Fix parameter types.
15647         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
15648         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
15650         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
15651         Fix argument type.
15653         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
15655         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
15657 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
15659         * doc/tm.texi (TARGET_HELP): Fix return type.
15661         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
15662         in braces.  Fix argument types.
15664         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
15666         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
15668         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
15670         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
15671         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
15673         (TARGET_MANGLE_TYPE): Fix argument types.
15675         (TARGET_IRA_COVER_CLASSES): Use prototype.
15677         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
15679         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
15681         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
15683         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
15685         (TARGET_CALLEE_COPIES): Fix argument types.
15687         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
15689         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
15691         (TARGET_FUNCTION_VALUE): Fix argument types.
15693         (TARGET_RETURN_IN_MSB): Fix argument type.
15695         (TARGET_RETURN_IN_MEMORY): Fix argument types.
15697         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
15699         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
15701         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
15702         agree with return type.
15704         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
15706 2010-01-15  Jing Yu  <jingyu@google.com>
15708         PR rtl-optimization/42691
15709         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
15710         a pseudo to a constant and are merged, and adjust comments.
15712 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15714         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
15716 2010-01-15  Richard Guenther  <rguenther@suse.de>
15718         PR middle-end/42739
15719         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
15720         labels of computed or non-local gotos to the destination.
15721         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
15722         landing pad label is the first label.
15724 2010-01-15  Richard Guenther  <rguenther@suse.de>
15726         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
15728 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15730         PR target/42747
15731         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
15732         to allow generation of the xssqrtdp instruction on power7.
15733         (sqrtdf2_fpr): Ditto.
15735 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15737         PR middle-end/42674
15738         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
15739         functions with noreturn attribute.
15741         PR c++/42608
15742         * varasm.c (declare_weak): Add weak attribute to decl if it
15743         doesn't have one already.
15744         (assemble_external): Only add decls to weak_decls if they also
15745         have weak attribute.
15747 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
15749         * var-tracking.c (var_reg_delete): Don't delete the association
15750         between REGs and values or one-part variables if the register
15751         isn't clobbered.
15753 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15755         PR debug/42657
15756         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
15757         because its first operand is a non-localized variable.
15759 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15761         PR tree-optimization/42706
15762         * tree-sra.c (encountered_recursive_call): New variable.
15763         (encountered_unchangable_recursive_call): Likewise.
15764         (sra_initialize): Initialize both new variables.
15765         (callsite_has_enough_arguments_p): New function.
15766         (scan_function): Call decl and flags check only for IPA-SRA, check
15767         whether there is a recursive call and whether it has enough arguments.
15768         (all_callers_have_enough_arguments_p): New function.
15769         (convert_callers): Look for recursive calls only when
15770         encountered_recursive_call is set.
15771         (ipa_early_sra): Bail out either if
15772         !all_callers_have_enough_arguments_p or
15773         encountered_unchangable_recursive_call.
15775 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15777         * sel-sched.c: Add 2010 to copyright years.
15778         * sel-sched-ir.c: Likewise.
15779         * sel-sched-ir.h: Likewise.
15781 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15783         PR tree-optimization/42714
15784         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
15785         constructors specially.
15787 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15789         * config/i386/drivers-i386.c (detect_caches_intel):
15790         Add l2sizekb parameter and fill in.
15791         (host_detect_local_cpu): Add l2sizekb, fill in.
15792         Add Atom small cache heuristic.
15794 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15796         * config/i386/drivers-i386.c (detect_caches_cpuid4):
15797         Add level3 parameter and fill in.
15798         (detect_caches_intel): Handle level3 cache.
15800 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15802         * config/i386/drivers-i386.c (host_detect_local_cpu):
15803         Fix core duo detection.
15805 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15807         * config/i386/drivers-i386.c (host_detect_local_cpu):
15808         Fix Atom detection.
15810 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15812         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
15813         (rs6000_variable_issue_1): this.  Use...
15814         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
15816 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15818         * sel-sched-ir.c (sel_restore_other_notes): Rename to
15819         sel_restore_notes.  Update all callers.  Call reemit_notes
15820         for all insns.
15822 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15824         PR rtl-optimization/42246
15825         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
15826         loops.
15828 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15830         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
15831         all successors is the same as number of successors in current region.
15833 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15835         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
15836         to rename is not separable.  Otherwise check that its LHS is not NULL.
15838 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15840         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
15842 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15844         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
15845         available registers when failed to discover LHS register class.
15846         Fix indentation.  Update comment.
15848 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15849             Alexander Monakov  <amonakov@ispras.ru>
15851         PR rtl-optimization/42389
15852         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
15853         to can_issue_more.
15854         (advance_state_on_fence): Likewise.
15855         (sel_target_adjust_priority): Print debug output only when
15856         sched_verbose >= 4, not 2.
15857         (get_expr_cost): Do not issue all unique insns on the next cycle.
15858         (fill_insns): Initialize can_issue_more from the value saved
15859         with the fence.
15860         * sel-sched-ir.c (flist_add): New parameter issue_more.
15861         Init FENCE_ISSUE_MORE with it.
15862         (merge_fences): Likewise.
15863         (init_fences): Update call to flist_add.
15864         (add_to_fences, add_clean_fence_to_fences)
15865         (add_dirty_fence_to_fences): Likewise.
15866         (move_fence_to_fences): Update call to merge_fences.
15867         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
15868         sched groups.
15869         * sel-sched-ir.h (struct _fence): New field issue_more.
15870         (FENCE_ISSUE_MORE): New accessor macro.
15872 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15874         PR rtl-optimization/42388
15875         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
15876         that have no predecessors nor successors.  Do not call move_bb_info
15877         for empty blocks outside of current region.
15879 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15881         PR rtl-optimization/42294
15882         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
15883         * sel-sched.c (move_exprs_to_boundary): Transitively add all
15884         originators' originators.
15886 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15888         PR rtl-optimization/39453
15889         PR rtl-optimization/42246
15890         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
15891         for pipelining_p.
15892         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
15894 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15895             Alexander Monakov  <amonakov@ispras.ru>
15897         PR middle-end/42245
15898         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
15899         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
15900         argument.  Update all callers.
15901         (tidy_control_flow): ... and here.  Recompute topological order
15902         of basic blocks in region if necessary.
15903         (sel_redirect_edge_and_branch): Change return type.  Return true
15904         if topological order might have been invalidated.
15905         (purge_empty_blocks): Export and move from...
15906         * sel-sched.c (purge_empty_blocks): ... here.
15907         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
15908         (maybe_tidy_empty_bb): Delete prototype.
15909         (purge_empty_blocks): Declare.
15911 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
15913         PR rtl-optimization/42249
15914         * sel-sched.c (try_replace_dest_reg): When chosen register
15915         and original register is the same, do not bail out early, but
15916         still check all original insns for validity of replacing destination
15917         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
15918         in this case.
15920 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15922         PR c/42721
15923         Port from no-undefined-overflow branch:
15924         2009-03-09  Richard Guenther  <rguenther@suse.de>
15926         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
15928 2010-01-14  Richard Guenther  <rguenther@suse.de>
15930         PR lto/42665
15931         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
15933 2010-01-14  Ira Rosen  <irar@il.ibm.com>
15935         PR tree-optimization/42709
15936         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
15937         as scalar type in creation of constant vector operand.
15939 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15941         PR testsuite/42414
15942         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
15943         (check-parallel-%): Match `testsuite' directory component only
15944         at the end.
15946 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
15948         PR translation/39521
15949         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
15950         strings with _().
15952 2010-01-13  Richard Guenther  <rguenther@suse.de>
15954         PR tree-optimization/42730
15955         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
15956         offset zero.
15958 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
15960         PR target/pr42542
15961         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
15962         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
15963         them signed.
15965 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15967         * config/bfin/libgcc-bfin.ver: Regenerate based on current
15968         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
15969         ___umulsi3_highpart.
15971         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
15972         rather than schedule_insns if the pass is enabled.
15974 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15976         PR tree-optimization/42704
15977         * tree-sra.c (sra_modify_assign): Do not delete assignments to
15978         SSA_NAMEs.
15980 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15982         PR tree-optimization/42703
15983         * tree-sra.c (analyze_access_subtree): Check that we can build a
15984         reference to the original data within the aggregate.
15986 2010-01-13  Richard Guenther  <rguenther@suse.de>
15988         PR tree-optimization/42705
15989         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
15991 2010-01-13  Richard Guenther  <rguenther@suse.de>
15993         PR middle-end/42716
15994         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
15996 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
15998         PR debug/41371
15999         * var-tracking.c (values_to_unmark): New variable.
16000         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
16001         values_to_unmark vector.  Moved body to...
16002         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
16003         instead queue it into values_to_unmark vector.
16004         (vt_find_locations): Free values_to_unmark vector.
16006 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
16008         * config/s390/s390.c (override_options): Set
16009         default of max-pending-list-length to 256
16011 2010-01-13  Richard Guenther  <rguenther@suse.de>
16013         PR lto/42678
16014         * tree-pass.h (PROP_gimple_lcx): New.
16015         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
16016         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
16017         before the final cleanup_eh.
16018         (dump_properties): Dump PROP_gimple_lcx.
16019         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
16020         (tree_lower_complex_O0): Remove.
16021         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
16022         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
16023         tree_lower_complex, schedule TODO_update_ssa.
16024         * lto-streamer-out.c (output_function): Stream the functions
16025         properties.
16026         * lto-streamer-in.c (input_function): Likewise.
16027         (lto_read_body): Do not override them here.
16029 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
16031         PR c/42708
16032         * c-typeck.c (build_c_cast): Fold value cast to union type before
16033         wrapping it in a CONSTRUCTOR.
16035 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
16037         PR rtl-optimization/42699
16038         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
16039         involved.
16041 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16043         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
16044         SUBTARGET_WARN_UNUSED_SPEC): Move ...
16045         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
16046         SUBTARGET_WARN_UNUSED_SPEC): ... here
16047         * config/mips/iris5.h (LIBGCC_SPEC): Define.
16049 2010-01-12  Julian Brown  <julian@codesourcery.com>
16051         * config/arm/neon-schedgen.ml (Utils): Don't try to
16052         open missing module.
16053         (find_with_result): New.
16055 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
16057         PR debug/42662
16058         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
16059         sharing when canonicalizing ({lt,ge}u (plus a b) b).
16061         PR tree-optimization/42645
16062         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
16063         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
16064         decl_map, set processing_debug_stmt to -1 and return name without
16065         any remapping.
16067 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
16069         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
16070         binutils version, and reword target configuration description.
16072 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
16074         * config/avr/avr.h (LINKER_NAME): Remove.
16076 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
16078         PR target/42416
16079         * config/rs6000/rs6000.c (rs6000_override_options): On targets
16080         that support VSX, warn for -mno-altivec if vsx is not disabled,
16081         and disable vsx.
16083 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
16084             Shujing Zhao  <pearly.zhao@oracle.com>
16086         PR translation/42469
16087         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
16088         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
16089         character between option name and help text.
16090         * c.opt (imultilib): Likewise.
16092 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
16094         * lto-streamer-out.c (output_unreferenced_globals): Output static
16095         variables.
16097 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
16099         PR rtl-optimization/42621
16100         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
16101         optimizing for size.
16102         (duplicate_computed_gotos): Remove now-redundant check.
16104 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
16106         PR target/37454
16107         * configure.ac: Save and restore LDFLAGS and LIBS
16108         * configure: Regenerate.
16110 2010-01-10  Richard Guenther  <rguenther@suse.de>
16112         PR middle-end/42667
16113         * builtins.c (fold_builtin_strlen): Add type argument and
16114         convert the resulting length to it.
16115         (fold_builtin_1): Adjust.
16117 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
16119         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
16120         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
16121         1 insn.
16122         (num_insns_constant_wide): Adjust for that change.
16124 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16126         PR debug/42631
16127         * web.c (union_defs): Add used argument, to combine uses of
16128         uninitialized regs.
16129         (entry_register): Adjust type and tests of used argument.
16130         (web_main): Widen used for new use.  Pass it to union_defs.
16131         * df.h (union_defs): Adjust prototype.
16133 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16135         PR debug/42630
16136         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
16137         uses in new incoming argument.  Free body.
16138         (reset_debug_uses_in_loop): New.
16139         (analyze_insn_to_expand_var): Call the latter if the former found
16140         anything.  Fix whitespace.  Reject invalid dest overlaps before
16141         going through all insns in the loop.
16143 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16145         PR debug/42629
16146         * haifa-sched.c (dying_use_p): Debug insns don't count.
16148 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16150         PR middle-end/42363
16151         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
16152         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
16153         (verify_gimple_call): Reject LHS in noreturn calls.
16155 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16157         PR debug/42604
16158         PR debug/42395
16159         * tree-vect-loop-manip.c (adjust_info): New type.
16160         (adjust_vec): New pointer to vector.
16161         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
16162         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
16163         (slpeel_update_phis_for_duplicate_loop): Use them.
16164         (slpeel_update_phi_nodes_for_guard1): Likewise.
16165         (slpeel_update_phi_nodes_for_guard2): Likewise.
16166         (slpeel_tree_peel_loop_to_edge): Likewise.
16167         (vect_update_ivs_after_vectorizer): Likewise.
16169 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16171         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
16172         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
16174 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
16176         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
16177         bogus uninitialized warning.
16179 2010-01-09  Richard Guenther  <rguenther@suse.de>
16181         PR middle-end/42512
16182         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
16183         the evolution is compatible with the initial condition.
16185 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
16187         * gcc.c (process_command): Update copyright notice dates.
16188         * gcov.c (print_version): Likewise.
16189         * gcov-dump.c (print_version): Likewise.
16190         * mips-tfile.c (main): Likewise.
16191         * mips-tdump.c (main): Likewise.
16193 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
16195         PR target/41885
16196         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
16197         (rotlhi3): Delete.
16198         (rotlhi3_8): Delete.
16199         (rotlsi3): Delete.
16200         (rotlsi3_8): Delete.
16201         (rotlsi3_16): Delete.
16202         (rotlsi3_24): Delete.
16203         (rotl<mode>3): New.
16204         (*rotw<mode>3): New.
16205         (*rotb<mode>3): New.
16206         * config/avr/avr.c (avr_rotate_bytes): New function.
16207         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
16209 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
16211         PR target/37454
16212         * configure.ac: Modify -rdynamic check.
16213         * configure: Regenerate.
16215 2010-01-08  DJ Delorie  <dj@redhat.com>
16217         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
16218         register popping order.
16220 2010-01-08  Richard Guenther  <rguenther@suse.de>
16222         PR lto/42528
16223         * c.opt (fsigned-char): Also let LTO handle this option.
16224         (funsigned-char): Likewise.
16226 2010-01-07  Richard Guenther  <rguenther@suse.de>
16228         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
16229         (gimple_op): Likewise.
16230         (gimple_op_ptr): Likewise.
16231         (gimple_assign_set_lhs): Remove gcc_assert.
16232         (gimple_assign_set_rhs1): Likewise.
16233         (gimple_assign_set_rhs2): Likewise.
16234         (gimple_call_set_lhs): Likewise.
16235         (gimple_call_set_fn): Likewise.
16236         (gimple_call_set_fndecl): Likewise.
16237         (gimple_call_fndecl): Likewise.
16238         (gimple_call_return_type): Likewise.
16239         (gimple_call_set_chain): Likewise.
16240         (gimple_call_num_args): Likewise.
16241         (gimple_call_set_arg): Likewise.
16242         (gimple_cond_set_code): Likewise.
16243         (gimple_cond_set_lhs): Likewise.
16244         (gimple_cond_set_rhs): Likewise.
16245         (gimple_cond_set_true_label): Likewise.
16246         (gimple_cond_set_false_label): Likewise.
16247         (gimple_label_set_label): Likewise.
16248         (gimple_goto_set_dest): Likewise.
16249         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
16250         (gimple_debug_bind_get_value): Likewise.
16251         (gimple_debug_bind_get_value_ptr): Likewise.
16252         (gimple_debug_bind_set_var): Likewise.
16253         (gimple_debug_bind_set_value): Likewise.
16254         (gimple_debug_bind_reset_value): Likewise.
16255         (gimple_debug_bind_has_value_p): Likewise.
16256         (gimple_return_retval_ptr): Remove gcc_assert.
16257         (gimple_return_retval): Likewise.
16258         (gimple_return_set_retval): Likewise.
16259         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
16260         (safe_referenced_var_iterator): Remove.
16261         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
16262         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
16263         (fill_referenced_var_vec): Remove.
16264         (first_readonly_imm_use): Remove redundant gcc_assert.
16265         (phi_arg_index_from_use): Combine gcc_asserts.
16266         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
16267         (first_imm_use_stmt): Remove redundant gcc_assert.
16268         * tree-cfg.c (verify_gimple_call): Verify function and chain
16269         operands.  Verify arguments.
16270         (verify_types_in_gimple_stmt): Verify condition code and labels.
16272 2010-01-07  Richard Guenther  <rguenther@suse.de>
16274         PR tree-optimization/42641
16275         * sese.c (rename_map_elt_info): Use the SSA name version, do
16276         not hash pointers.
16278 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
16280         PR tree-optimization/42625
16281         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
16282         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
16284 2010-01-07  Duncan Sands  <baldrick@free.fr>
16286         * Makefile.in (PLUGIN_HEADERS): Add version.h.
16288 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
16290         PR target/42511
16291         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
16292         note itself is not function_invariant_p.
16294 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
16296         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
16297         Do not add the DF_NOTE problem.
16298         * store-motion.c (execute_rtl_store_motion): Likewise.
16300 2010-01-07  Martin Jambor  <mjambor@suse.cz>
16302         PR tree-optimization/42157
16303         * tree-sra.c (compare_access_positions): Stabilize sort if both
16304         accesses have integer types, return zero immediately if they are the
16305         same.
16307 2010-01-06  Richard Henderson  <rth@redhat.com>
16309         PR middle-end/41883
16310         * haifa-sched.c (add_to_note_list): Merge into ...
16311         (concat_note_lists): ... here, and ...
16312         (unlink_other_notes, rm_other_notes): Merge into...
16313         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
16314         NOTE_INSN_EPILOGUE_BEG.
16316 2010-01-06  Richard Guenther  <rguenther@suse.de>
16318         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
16319         not inline regular functions into always-inline functions.
16321 2010-01-06  Nick Clifton  <nickc@redhat.com>
16323         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
16324         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
16325         used together.
16326         (OVERRIDE_OPTIONS): Delete.
16327         (OPTIMIZATION_OPTIONS): Define.
16328         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
16329         * config/rx/rx.c (rx_handle_option): Issue an error message if
16330         -mcpu=rx200 and -fpu are used together.
16331         (rx_set_optimization_options): New function.  Issue an error
16332         message if an optimization attribute attempts to reset the FPU/
16333         math optimization pairing.
16334         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
16335         * config/rx/rx.opt: Set the default to 32-bit doubles.
16336         * config/rx/t-rx: Add multilibs for -nofpu option.
16337         * doc/invoke.texi: Update documentation of RX options.
16339 2010-01-06  Richard Guenther  <rguenther@suse.de>
16341         * tree-ssa-pre.c (name_to_id): New global.
16342         (alloc_expression_id): Simplify SSA name handling.
16343         (lookup_expression_id): Likewise.
16344         (init_pre): Zero name_to_id.
16345         (fini_pre): Free it.
16347 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
16349         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
16351 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16353         PR target/42542
16354         * config/i386/sse.md (smaxv2di3): New.
16355         (umaxv2di3): Likewise.
16356         (sminv2di3): Likewise.
16357         (uminv2di3): Likewise.
16359 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16361         PR target/42564
16362         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
16363         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
16364         (legitimize_tls_address): Likewise.
16365         (sparc_tls_referenced_p): Likewise.
16366         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
16367         and adjust calls to legitimize_pic_address.
16368         (legitimate_constant_p) Use sparc_tls_referenced_p.
16369         (legitimate_pic_operand_p): Likewise.
16370         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
16371         (sparc_tls_symbol_ref_1): Delete.
16372         (sparc_tls_referenced_p): Make static, recognize specific patterns.
16373         (legitimize_tls_address): Make static, handle CONST patterns.
16374         (legitimize_pic_address): Make static, remove unused parameter and
16375         adjust recursive calls.
16376         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
16377         and adjust call to legitimize_pic_address.
16378         (sparc_output_mi_thunk): Likewise.
16380 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
16381             H.J. Lu  <hongjiu.lu@intel.com>
16383         PR target/42542
16384         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
16385         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
16386         operands to make them signed.
16388         Revert:
16389         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16391         PR target/42542
16392         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
16393         GTU to GT for V4SI and V2DI.
16395         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
16396         (umin<mode>3): Removed.
16397         (uminv8hi3): New.
16398         (uminv4si3): Likewise.
16400 2010-01-05  Martin Jambor  <mjambor@suse.cz>
16402         PR tree-optimization/42462
16403         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
16404         current_function_decl to helper functions and macros.
16406 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16408         PR bootstrap/41771
16409         * flags.h: Don't include real.h.
16410         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
16411         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
16412         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
16413         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
16414         * dominance.c: Update copyright.
16415         * gimple.c (walk_gimple_op): Remove inline.
16416         * tree-ssa-reassoc.c: Include real.h.
16417         * Makefile.in (FLAGS_H): Remove $(REAL_H).
16418         (tree-ssa-reassoc.o): Depend on $(REAL_H).
16420 2010-01-05  Nick Clifton  <nickc@redhat.com>
16422         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
16423         register to push into the stack frame when the accumulator has to
16424         be saved during interrupts.
16426 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
16428         * doc/invoke.texi: Remove the documentation about option
16429         -Wunreachable-code.
16430         * common.opt (Wunreachable-code):  Preserved for backward
16431         compatibility.
16432         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
16433         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
16434         the backward compatibility flag section.
16436 2010-01-05  Richard Guenther  <rguenther@suse.de>
16438         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
16440 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
16442         PR other/42611
16443         * cfgexpand.c (expand_one_var): Diagnose too large variables.
16445         PR tree-optimization/42508
16446         * tree-sra.c (convert_callers): Check for recursive call
16447         by comparing cgraph nodes instead of decls.
16448         (modify_function): Call ipa_modify_formal_parameters also
16449         on all same_body aliases.
16451         * cgraphunit.c (cgraph_materialize_all_clones): Compare
16452         cgraph nodes when checking for same_body aliases.
16454 2010-01-05  Richard Guenther  <rguenther@suse.de>
16456         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
16457         allocation and lookup.
16458         (get_or_alloc_expr_for_constant): Likewise.
16459         (phi_translate): Sink allocation.
16461 2010-01-04  Richard Guenther  <rguenther@suse.de>
16463         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
16464         a new entry only if needed.
16465         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
16466         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
16467         hashtable lookup.
16468         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
16469         the result array.
16470         (phi_translate): Handle CONSTANTs early.
16472 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16474         PR tree-optimization/42398
16475         * tree-sra.c (struct access): Removed flag grp_different_types.
16476         (dump_access): Do not dump the removed flag.
16477         (sort_and_splice_var_accesses): Do not set the removed flag.
16478         (sra_modify_expr): Check for type compatibility directly.
16480 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16482         PR tree-optimization/42366
16483         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
16484         edges with variable number of parameters.
16485         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
16486         flag instead of asserting it.
16487         (ipa_read_node_info): Read uses_analysis_done flag.
16489 2010-01-04  Richard Guenther  <rguenther@suse.de>
16491         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
16492         iterative_hash_* as intended.
16493         (vn_reference_compute_hash): Likewise.  Simplify hashing
16494         SSA names.
16495         (vn_reference_lookup_2): Likewise.
16496         (vn_nary_op_compute_hash): Likewise.
16497         (vn_phi_compute_hash): Likewise.
16498         (expressions_equal_p): Remove strange code.
16499         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
16500         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
16501         (bitmap_insert_into_set_1): Take value-id as parameter.
16502         (add_to_value): Pass it.
16503         (bitmap_insert_into_set): Likewise.
16504         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
16506 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
16508         PR driver/42442
16509         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
16510         (do_self_spec): For switches with SWITCH_IGNORE set set also
16511         SWITCH_IGNORE_PERMANENTLY.
16512         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
16513         of SWITCH_IGNORE.
16515 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
16517         * lto-streamer-out.c (output_unreferenced_globals): Output the full
16518         tree of an unreferenced global var.
16520 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16522         PR target/42542
16523         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
16524         GTU to GT for V4SI and V2DI.
16526         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
16527         (umin<mode>3): Removed.
16528         (uminv8hi3): New.
16529         (uminv4si3): Likewise.
16531 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16533         PR lto/42581
16534         * collect2.c (main): Turn on trace in collect2 if -v is passed
16535         to gcc with LTO.
16537 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
16539         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
16540         description of expression operand.
16542 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
16544         * configure.ac: Add install-html to target_list for Make-hooks.
16545         * configure: Regenerate.
16546         * fortran/Make-lang.in (F95_HTMLFILES): New.
16547         (fortran.html): Use it.
16548         (fortran.install-html): New.
16549         * Makefile.in (install-html): Add lang.install-html.
16550         * java/Make-lang.in (JAVA_HTMLFILES): New.
16551         (java.html): Use it.
16552         (java.install-html): New.
16553         * objc/Make-lang.in (objc.install-html): New.
16554         * objcp/Make-lang.in (obj-c++.install-html): New.
16555         * cp/Make-lang.in (c++.install-html): New.
16556         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
16557         * lto/Make-lang.in (lto.install-html): New.
16559 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16561         PR lto/42520
16562         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
16564 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16566         PR rtl-optimization/41862
16567         * store-motion.c (store_killed_in_insn, compute_store_table,
16568         remove_reachable_equiv_notes, replace_store_insn,
16569         build_store_vectors): Ignore all DEBUG_INSNs.
16571 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16573         PR lto/41564
16574         * common.opt: Add dumpdir.
16576         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
16577         isn't specified.
16578         (option_map): Add --dumpdir.
16580         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
16582         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
16584         * opts.c (decode_options): Try dump_dir_name first if
16585         dump_base_name isn't an absolute path.
16586         (common_handle_option): Handle OPT_dumpdir.
16588         * toplev.c (dump_dir_name): New.
16589         (print_switch_values): Also ignore -dumpdir.
16591         * toplev.h (dump_dir_name): New.
16593 2010-01-03  Richard Guenther  <rguenther@suse.de>
16595         PR tree-optimization/42589
16596         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
16597         double-word expansion of bswap32.
16599 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16601         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
16602         with BLOCK_FOR_INSN.
16603         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
16604         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
16605         noce_process_if_block): Likewise.
16606         * gcse.c (compute_local_properties, insert_expr_in_table,
16607         insert_set_in_table, canon_list_insert, find_avail_set,
16608         pre_insert_copy_insn): Likewise.
16610         * basic-block.h (BLOCK_NUM): Move from here...
16611         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
16613 2010-01-03  Richard Guenther  <rguenther@suse.de>
16615         PR tree-optimization/42438
16616         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
16617         contains_may_not_return_call flag.
16618         (BB_MAY_NOTRETURN): New.
16619         (valid_in_sets): Trapping nary operations are not valid
16620         in blocks that may not return.
16621         (insert_into_preds_of_block): Remove check for trapping expressions.
16622         (compute_avail): Compute also BB_MAY_NOTRETURN.
16624 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
16626         * doc/invoke.texi: Add 2010 to copyright years.
16628 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16630         * config/sparc/sparc.c: Fix formatting nits.
16632 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
16633             Alexander Monakov  <amonakov@ispras.ru>
16635         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
16637 2010-01-02  Richard Guenther  <rguenther@suse.de>
16639         PR middle-end/42577
16640         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
16641         (simplify_switch_using_ranges): Mark to be removed edges
16642         as non-executable.
16644 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16646         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
16648         * collect2.c (scan_libraries): Add missing argument in call to
16649         scan_prog_file.
16651 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
16653         PR target/42448
16654         * config/alpha/predicates.md (aligned_memory_operand): Return false
16655         for CQImode.
16656         (unaligned_memory_operand): Return true for CQImode.
16657         * config/alpha/alpha.c (get_aligned_mem): Assert that location
16658         doesn not cross aligned SImode word boundary.
16660 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
16662         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
16663         Remove.
16664         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
16665         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
16667 2010-01-02  Richard Guenther  <rguenther@suse.de>
16669         PR lto/41597
16670         * toplev.c (compile_file): Emit LTO marker properly.  Change
16671         it to __gnu_lto_v1.
16672         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
16674 2010-01-01  Richard Guenther  <rguenther@suse.de>
16676         PR debug/42455
16677         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
16679 2010-01-01  Richard Guenther  <rguenther@suse.de>
16681         PR c/42570
16682         * c-decl.c (grokdeclarator): For zero-size arrays force
16683         structural equality checks as layout_type does.
16685 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16687         * builtins.c: Update copyright to 2010.
16689 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16691         PR lto/42531
16692         * lto-streamer-out.c (produce_asm): Revert the last change.
16693         (copy_function): Likewise.
16695         * lto-streamer.c (lto_get_section_name): Skip any leading
16696         asterisk in name.
16698 2010-01-01  Richard Guenther  <rguenther@suse.de>
16700         PR middle-end/42559
16701         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
16702         for LABEL_DECLs.
16705 Copyright (C) 2010 Free Software Foundation, Inc.
16707 Copying and distribution of this file, with or without modification,
16708 are permitted in any medium without royalty provided the copyright
16709 notice and this notice are preserved.