OSDN Git Service

PR middle-end/44337
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/44337
4         * expr.c (expand_assignment): Don't store anything for out-of-bounds
5         array accesses with non-MEM.
6
7         PR tree-optimization/44182
8         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
9         newly needs to end a bb is followed by debug stmts, instead return
10         true from the function at the end.
11         (maybe_move_debug_stmts_to_successors): New function.
12         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
13
14 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
15
16         PR target/44161
17         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
18         flag_pic.
19
20 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
21
22         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
23         for nested functions in non-optimized compilation.
24
25 2010-05-31  Richard Guenther  <rguenther@suse.de>
26
27         * tree-ssa-structalias.c (find_func_aliases): Handle
28         BUILT_IN_RETURN.
29
30 2010-05-30  Jan Hubicka  <jh@suse.cz>
31
32         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
33
34 2010-05-30  Richard Guenther  <rguenther@suse.de>
35
36         PR lto/42975
37         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
38         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
39         no longer needed.
40
41 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
42
43         * config/darwin.c (output_objc_section_asm_op): Add comment.
44         (name_needs_quotes): Add '_' to list of valid comment chars.
45         (machopic_output_function_base_name): Remove unneeded quotes.
46         (darwin_encode_section_info): Adjust asm whitespace.
47         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
48         (ASM_OUTPUT_LOCAL): Ditto.
49         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
50         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
51         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
52         
53 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
54
55         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
56         RS6000_OUTPUT_BASENAME unconditionally.
57         (rs6000_output_function_epilogue): Likewise.
58
59 2010-05-30  Jan Hubicka  <jh@suse.cz>
60
61         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
62         nodes.
63
64 2010-05-30  Richard Guenther  <rguenther@suse.de>
65
66         * tree-cfg.c (verify_gimple_assign_single): Implement
67         verification for COND_EXPR rhs.
68
69 2010-05-30  Jan Hubicka  <jh@suse.cz>
70
71         * cgraph.h (cgraph_dump_file): Declare.
72         * cgraphunit.c (cgraph_dump_file): Export.
73         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less
74         verbose.
75
76 2010-05-30  Jan Hubicka  <jh@suse.cz>
77
78         * dwarf2out.c (reference_to_unused,
79         premark_types_used_by_global_vars_helper): Avoid creation of new
80         varpool nodes.
81
82 2010-05-30  Jan Hubicka  <jh@suse.cz>
83
84         * cgraph.h (cgraph_node_cannot_return,
85         cgraph_edge_cannot_lead_to_return): New functions.
86         * cgraph.c (cgraph_node_cannot_return,
87         cgraph_edge_cannot_lead_to_return): Use them.
88         * ipa-pure-const.c (pure_const_names): New static var.
89         (check_call): Handle calls not leading to return.
90         (pure_const_read_summary): Dump info read.
91         (propagate): Dump info about propagation process; ignore side
92         effects of functions not leading to exit; fix handling of
93         pure functions.
94
95 2010-05-30  Jan Hubicka  <jh@suse.cz>
96
97         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
98         for tail call epilogues.
99
100 2010-05-30  Jan Hubicka  <jh@suse.cz>
101
102         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
103         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
104         dump files.
105
106 2010-05-29  Jan Hubicka  <jh@suse.cz>
107
108         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
109         node; remove references in node we no longer keep in cgrpah but need
110         body of.
111
112 2010-05-29  Jan Hubicka  <jh@suse.cz>
113
114         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
115
116 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
117
118         PR target/44165
119         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
120
121 2010-05-29  Jan Hubicka  <jh@suse.cz>
122
123         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
124         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
125         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
126         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
127         debug_names_replaced_by, debug_update_ssa): Likewise.   
128         * sbitmap.c (debug_sbitmap): Likewise.
129         * genrecog.c (debug_decision, debug_decision_list): Likewise.
130         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
131         debug_tree_chain): Likewise.
132         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
133         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
134         * optabs.c  (debug_optab_libfuncs): Likewise.
135         (verify_loop_closed_ssa): Likewise.
136         * value-prof.c (verify_histograms): Likewise.
137         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
138         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
139         * cfghooks.c (verify_flow_info): Likewise.
140         * fold-const.c (debug_fold_checksum): Likewise.
141         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
142         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
143         Likewise.
144         * omega.c (debug_omega_problem): Likewise.
145         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
146         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
147         * dominance.c (verify_dominators, debug_dominance_info,
148         debug_dominance_tree): Likewise.
149         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
150         * df_regno_debug, df_ref_debug,
151         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
152         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
153         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
154         * sel-sched.c (debug_state): Likewise.
155         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
156         Likewise.
157         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
158         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
159         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
160         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
161         Likewise.
162         * c-pretty-print.c (debug_c_tree): Likewise.
163         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
164         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
165         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
166         * ebitmap.c (debug_ebitmap): Likewise.
167         * function.c (debug_find_var_in_block_tree): Likewise.
168         * print-rtl.c (debug_rtx): Likewise.
169         (debug_rtx_count): Likewise.
170         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
171         * stor-layout.c (debug_rli): Likewise.
172         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
173         * tree-data-ref.c (debug_data_references,
174         debug_data_dependence_relations, debug_data_reference,
175         debug_data_dependence_relation, debug_rdg_vertex,
176         debug_rdg_component, debug_rdg): Likewise.
177         * tree-affine.c (debug_aff): Likewise.
178         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
179         Likewise.
180         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
181         * emit-rtl.c (verify_rtl_sharing): Likewise.
182         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
183         debug_value_expressions): Likewise.
184         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
185         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
186         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
187         * cfglayout.c (verify_insn_chain): Likewise.
188         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
189         debug_clast_stmt, debug_generated_program): Likewise.
190         * ggc-page.c (debug_print_page_list): Likewise.
191         * tree-ssa-ter.c (debug_ter): Likewise.
192         * graphite-dependences.c (debug_pddr): Likewise.
193         * sched-deps.c (debug_ds): Likewise.
194         * tree-ssa.c (verify_ssa): Likewise.
195         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
196         debug_scattering_functions, debug_iteration_domains, debug_pdr,
197         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
198         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
199         * tree-inline.c (debug_find_tree): Likewise.
200         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
201         debug_ppl_powerset_matrix): Likewise.
202         * var-tracking.c (debug_dv): Likewise.
203         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
204         * cfgloop.c (verify_loop_structure): Likewise.
205         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
206         * c-common.c (verify_sequence_points): Likewise.
207         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
208         debug_candidates, debug_rgn_dependencies): Likewise.
209         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
210         * debug_constraint_graph, debug_solution_for_var,
211         debug_sa_points_to_info): Likewise.
212         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
213         Likewie.
214         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
215         debug_loops, debug_loop, debug_loop_num): Likewise.
216         * passes.c (debug_pass): Likewise.
217         (dump_properties): Likewise; add cfglayout property.
218         (debug_properties): Likewise.
219         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
220         * varpool.c (debug_varpool): Likewise.
221         * regcprop.c (debug_value_data): Likewise.
222         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
223         debug_immediate_uses_for): Likewise.
224
225 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
226
227         PR bootstrap/44315
228         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
229         Filter out insn-flags.h.
230
231 2010-05-29  Jan Hubicka  <jh@suse.cz>
232
233         * cgraph.h (struct varpool_node_set_def,
234         struct cgraph_node_set_def): Remove unused AUX pointer.
235         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
236         VEC_empty macro.
237
238 2010-05-29  Jan Hubicka  <jh@suse.cz>
239
240         PR middle-end/44324
241         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
242
243 2010-05-29  Richard Guenther  <rguenther@suse.de>
244
245         * lto-streamer.c (cached_bp): New global variable.
246         (bitpack_create): Return the cached bitpack, if available.
247         (bitpack_delete): Clear and cache the bitpack, if appropriate.
248         (bp_pack_value): Remove redundant asserts.
249
250 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
251
252         PR middle-end/44306
253         * tree-if-conv.c (is_true_predicate): New.
254         (is_predicated): Use is_true_predicate.
255         (add_to_predicate_list): Same.  Do not use unshare_expr.
256         (add_to_dst_predicate_list): Same.
257
258 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
259
260         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
261         field on edges.
262         (predicate_bbs): Same.
263         (clean_predicate_lists): Same.
264         (find_phi_replacement_condition): Do not AND the predicate from
265         edge->aux.
266
267 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
268
269         PR bootstrap/44315
270         * Makefile.in (build/gencondmd.o): Add a missing `\'.
271
272 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
273
274         PR target/44261
275         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
276         (negdf2): Adjust expander pattern and use negdf2_slow.
277         (negsf2): Likewise.
278
279 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
280
281         * basic-block.h (struct control_flow_graph): Move last_label_uid field
282         up.
283         * df.h (struct df_base_ref): Move regno field up.
284         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
285         * expr.h (struct separate_ops): Move location field up.
286         * optabs.h (struct optab_d): Move libcall_basename field down.
287         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
288         * config/i386/i386.h (struct machine_function): Convert call_abi field
289         into a bitfield.  Move cfa field to the end of the structure.
290
291 2010-05-29  Jan Hubicka  <jh@suse.cz>
292
293         * varpool.c (varpool_get_node): Fix lookup.
294
295 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
296
297         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
298         RTL specific prototypes with #ifdef RTX_CODE.
299         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
300         * config/spu/t-spu-elf: Fix dependencies.
301
302         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
303
304 2010-05-29  Mike Stump  <mikestump@comcast.net>
305
306         PR bootstrap/44315
307         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
308         TM_H when building to avoid dependency loops.
309
310 2010-05-29  Jan Hubicka  <jh@suse.cz>
311
312         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
313         refs and body; not the whole node for masters of materialized
314         clones.
315
316 2010-05-29  Mike Stump  <mikestump@comcast.net>
317
318         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
319
320 2010-05-29  Jan Hubicka  <jh@suse.cz>
321
322         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
323         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
324         use of clone_function_name.
325         * cgraph.h (cgraph_create_virtual_clone, 
326         cgraph_function_versioning): update prototypes.
327         (clone_function_name): Declare.
328         * ipa-cp.c (ipcp_insert_stage): Update call of
329         cgraph_create_virtual_clone.
330         * omp-low.c (create_omp_child_function_name): Use
331         cgraph_create_virtual_clone.
332         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
333         (cgraph_function_versioning): Take SUFFIX argument; produce new name
334         and make decl local.
335
336 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
337
338         * vec.h: Include statistics.h
339         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
340         with VEC_H.
341
342 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
343
344         * c-lex.c: Do not include c-tree.h.
345         * c-pretty-print.c: Likewise.
346         * c-opts.c: Likewise.
347         * c-gimplify.c: Likewise.
348         * c-common.c: Likewise.
349         * c-dump.c: Likewise.  Include c-common.h.
350
351 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
352
353         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
354         before including diagnostic-core.h.
355         (c_cpp_error): New prototype moved from c-tree.h.
356         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
357         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
358         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
359         (c_cpp_error): Prototype moved to c-common.h.
360         * Makefile.in: Update dependency for C_COMMON_H.
361
362 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
363
364         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
365         * c-common.c (c_register_addr_space): Remove here.
366         * c-decl.c (c_register_addr_space): Re-add here.
367
368 2010-05-28  Mike Stump  <mikestump@comcast.net>
369
370         * config/darwin-c.c: Remove c-tree.h include.
371
372 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
373
374         * gcc.c: Include diagnostic.h.
375         (error_count): Remove.  All users changed to use errorcount.
376         (programname): Remove.  All users changed to use progname.
377         (fancy_abort, internal_error, fatal_error, error, warning, inform,
378         fnotice): Remove.
379         (execute): Don't include "Internal error" and bug reporting
380         information in argument of internal_error call.
381         (process_command): Don't increment error_count after calling
382         perror_with_name.
383         (input_filename): Rename to gcc_input_filename.  All users
384         changed.
385         (main): Call diagnostic_initialize.  Register delete_temp_files
386         with atexit.  Use seen_error to test for errors.
387         * gcc.h: Include diagnostic-core.h.
388         (fatal_error, error, warning): Remove.
389         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
390         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
391         (gcc.o): Update dependencies.
392
393 2010-05-28  Jeff Law  <law@redhat.com>
394
395         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
396         functions.
397         * ira.h (ira_bad_reload_regno): Declare
398         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
399
400         * ira-color.c (update_curr_costs): Free updated hard reg costs.
401         (ira_reassign_conflict_allocnos): Remove bogus asserts.
402         (allocno_reload_assign): Likewise.
403
404 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
405
406         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
407         build1_stat.
408
409 2010-05-28  Richard Guenther  <rguenther@suse.de>
410
411         PR lto/44312
412         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
413         Stream fixed-point constants mode.
414         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
415         and TYPE_PRECISION.
416         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
417         Stream fixed-point constants mode.
418         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
419         and TYPE_PRECISION.
420
421 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
422
423         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
424         only place it was called from.
425         (number_of_latch_executions): Do not return chrec_dont_know when the
426         may_be_zero is a runtime condition: instead, return a COND_EXPR
427         including the may_be_zero condition.
428         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
429         of nb_iterations.
430         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
431         COND_EXPRs.
432
433 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
434
435         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
436         generate COND_EXPRs for degenerate_phi_result.
437
438 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
439
440         PR middle-end/44293
441         * tree-if-conv.c (if_convertible_loop_p): Check the
442         if-convertibility of phi nodes in non predicated BBs.
443
444 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
445
446         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
447
448 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
449
450         PR driver/15303
451         * gcc.c (inform, warning, inform): New functions.
452         (fatal_ice): Rename to internal_error; change cmsgid parameter to
453         gmsgid.  All callers changed.
454         (notice): Rename to fnotice; add parameter fp.  All callers
455         changed.
456         (fatal_error): Rename to fatal_signal.  All users changed.
457         (fatal): Rename to fatal_error; change cmsgid parameter to
458         gmsgid.  All callers changed.
459         (process_command): Use warning instead of error for warnings.
460         (end_going_arg): Don't use _() around argument of error.
461         (do_spec_1): Use inform for message from %n specs.  Use warning
462         instead of error for warnings.
463         (main): Use inform for comparison messages.  Use warning for
464         message about unused linker input.
465         (error): Increment error_count.  Print "error: ".
466         * gcc.h (fatal): Change to fatal_error.
467         (warning): Declare.
468         * config/darwin-driver.c (darwin_default_min_version): Use warning
469         instead of fprintf for warnings.
470         * cppspec.c (lang_specific_driver): Use fatal_error instead of
471         fatal.
472
473 2010-05-28  Julian Brown  <julian@codesourcery.com>
474
475         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
476         (*thumb2_addsi3_compare0_scratch): New.
477         * config/arm/constraints.md (Pv): New.
478         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
479         for ARM mode only.
480         (*addsi3_compare0_scratch): Likewise.
481
482 2010-05-28  Jan Hubicka  <jh@suse.cz>
483
484         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
485         check.
486         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
487         only on local statics.
488
489 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
490
491         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
492
493 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
494
495         PR bootstrap/44314
496         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
497         (OPTION_GLIBC): Define.
498
499 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
500
501         PR debug/41048
502         * dwarf2out.c (double_int_type_size_in_bits): New function.
503         (round_up_to_align): Change first argument and return value to
504         double_int.
505         (field_byte_offset): Work internally on double_ints.
506
507         PR target/43636
508         * builtins.c (expand_movstr): Use a temporary pseudo instead
509         of target even when target is not NULL and not const0_rtx, but
510         fails movstr predicate.
511         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
512
513 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
514
515         * final.c (rest_of_clean_state): Use %m in errors instead of
516         strerror (errno).
517         * gengtype.c (read_input_list, close_output_files): Use xstrerror
518         instead of strerror.
519         * toplev.c (process_options): Use %m in errors instead of strerror
520         (errno).
521         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
522         (errno).
523
524 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
525
526         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
527         (ix86_canonical_va_list_type): Make static.  Add declaration.
528         (ix86_enum_va_list): Make static.  Reindent.
529         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
530         (ix86_canonical_va_list_type): Ditto.
531         (ix86_enum_va_list): Ditto.
532
533 2010-05-28  Richard Guenther  <rguenther@suse.de>
534
535         * lto-wrapper.c (run_gcc): With -save-temps generate a
536         user-visible ltrans filename.  Fixup ltrans unit numbering.
537
538 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
539
540         * c-common.c (c_common_nodes_and_builtins): Replace use
541         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
542         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
543         to ix86_enum_va_list.
544         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
545         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
546         (TARGET_ENUM_VA_LIST_P): Add hook description.
547         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
548         * target.h (gcc_target): Add enum_va_list hook.
549
550         PR bootstrap/44299
551         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
552         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
553         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
554
555 2010-05-28  Alan Modra  <amodra@gmail.com>
556
557         PR target/44266
558         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
559         emit_library_call machinery to set up __tls_get_addr calls.
560
561 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
562
563         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
564
565 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
566
567         Revert fix for PR c++/44188
568         * c-common.c (is_typedef_decl): Revert the moving of  this
569         definition ...
570         * tree.c (is_typedef_decl): ... here.
571         (typdef_variant_p): Revert the moving of this  definition
572         here from gcc/cp/tree.c.
573         * c-common.h (is_typedef_decl): Revert the moving of this
574         declaration ...
575         * tree.h (is_typedef_decl): ... here.
576         (typedef_variant_p): Revert the moving of this  declaration here
577         from gcc/cp/cp-tree.h
578         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
579         (gen_tagged_type_die): Revert the splitting out of ...
580         (gen_type_die_with_usage): ... this function. Revert the anonymous
581         tagged type handling.
582         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
583         typedefs naming anonymous tagged types.
584
585 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
586
587         * config/rs6000/rs6000-modes.def (PSImode): Delete.
588
589 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
590
591         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
592         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
593         throughout.
594         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
595         "xer" to "ca".
596         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
597         XER_REGS to CA_REGS throughout.
598         * config/rs6000/rs6000.h: Same.
599         (ADDITIONAL_REGISTER_NAMES): Add "xer".
600         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
601         that mode_iterator "P" is the size for arithmetic carries as well.
602         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
603
604 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
605
606         PR bootstrap/44255
607         * combine.c (struct rtx_subst_pair): Define unconditionally.
608         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
609         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
610         Call make_compound_operation on pair->to.
611         (propagate_for_debug): Don't call make_compound_operation here.
612         Always use simplify_replace_fn_rtx.
613
614 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
615
616         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
617         * config/xtensa/xtensa.c (override_options): Check
618           TARGET_FORCE_NO_PIC and set flag_pic.
619         * config/xtensa/xtensa.opt: Document -mforce-no-pic
620
621 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
622
623         PR bootstrap/44299
624         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
625         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
626
627 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
628
629         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
630         toplev.h.
631         * diagnostic.c: Don't include toplev.h.
632         (progname): Define.  Moved from toplev.c.
633         (seen_error): New function.
634         * diagnostic.h: Include diagnostic-core.h.
635         (diagnostic_t, emit_diagnostic): Don't declare here.
636         * toplev.c (progname): Move to toplev.c.
637         (emit_debug_global_declarations, compile_file, finalize,
638         do_compile, toplev_main): Use seen_error.
639         * toplev.h: Include diagnostic-core.h.
640         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
641         internal_error, warning, warning_at, error, error_n, error_at,
642         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
643         verbatim, fnotice, progname): Move to diagnostic-core.h.
644         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
645         (expand_builtin_expect): Use seen_error.
646         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
647         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
648         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
649         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
650         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
651         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
652         errorcount for errors.
653         * c-opts.c (c_common_finish): Use seen_error.
654         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
655         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
656         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
657         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
658         (get_coverage_counts): Use seen_error.
659         * dwarf2out.c (dwarf2out_finish): Use seen_error.
660         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
661         gimplify_body): Use seen_error.
662         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
663         * ipa-pure-const.c (gate_pure_const): Use seen_error.
664         * ipa-reference.c (gate_reference): Use seen_error.
665         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
666         * lambda-code.c: Include diagnostic-core.h instead of
667         diagnostic.h.
668         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
669         * lto-compress.c: Include diagnostic-core.h instead of
670         diagnostic.h.
671         * lto-section-in.c: Include diagnostic-core.h instead of
672         diagnostic.h.
673         * lto-streamer-out.c: Include diagnostic-core.h instead of
674         diagnostic.h.
675         * lto-streamer.c: Include diagnostic-core.h instead of
676         diagnostic.h.
677         (gate_lto_out): Use seen_error.
678         * matrix-reorg.c: Include diagnostic-core.h instead of
679         diagnostic.h.
680         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
681         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
682         (gate_expand_omp, lower_omp_1): Use seen_error.
683         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
684         (rest_of_decl_compilation, rest_of_type_compilation,
685         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
686         * tree-cfg.c (label_to_block_fn): Use seen_error.
687         * tree-inline.c (optimize_inline_calls): Use seen_error.
688         * tree-mudflap.c (mudflap_finish_file): Use
689         seen_error.
690         * tree-optimize.c (gate_all_optimizations,
691         gate_all_early_local_passes, gate_all_early_optimizations): Use
692         seen_error.
693         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
694         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
695         (varpool_remove_unreferenced_decls,
696         varpool_assemble_pending_decls): Use seen_error.
697         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
698         (TOPLEV_H, DIAGNOSTIC_H): Update.
699         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
700         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
701         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
702         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
703         coverage.o, lambda-code.o): Update dependencies.
704
705 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
706
707         PR c++/44188
708         * c-common.c (is_typedef_decl): Move this definition ...
709         * tree.c (is_typedef_decl): ... here.
710         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
711         * c-common.h (is_typedef_decl): Move this declaration ...
712         * tree.h (is_typedef_decl): ... here.
713         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
714         * dwarf2out.c (is_naming_typedef_decl): New function.
715         (gen_tagged_type_die): Split out of ...
716         (gen_type_die_with_usage): ... this function. When an anonymous
717         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
718         is emitted for the typedef.
719         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
720         anonymous tagged types.
721
722 2010-05-27  Jason Merrill  <jason@redhat.com>
723
724         * print-tree.c (debug_vec_tree): New fn.
725         (print_vec_tree): New fn.
726         * tree.h: Declare them.
727         * gdbinit.in (pvt): New command.
728
729         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
730
731         * gdbinit.in (pdd): New command.
732
733 2010-05-27  Jan Hubicka  <jh@suse.cz>
734
735         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
736         (update_caller_keys): Return early if there are no callers;
737         only update fibheap when decresing the key.
738         (update_callee_keys): Avoid recursion.
739         (decide_inlining_of_small_functions): When badness does not match;
740         re-insert into fibheap.
741
742 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
743
744         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
745         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
746         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
747         (ALL_HOST_OBJS): Now a union of the above two.
748         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
749         all files in ALL_HOST_FRONTEND_OBJS.
750         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
751
752         * c-common.c: Pretend to be a backend file by undefining
753         IN_GCC_FRONTEND (still need rtl.h here).
754
755 2010-05-27  Jan Hubicka  <jh@suse.cz>
756
757         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
758         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
759
760 2010-05-27  Jan Hubicka  <jh@suse.cz>
761
762         * sched-ebb.c: Rename struct deps to struct deps_desc.
763         * ddg.c: Likewise.
764         * sel-sched-ir.c: Likewise.
765         * sched-deps.c: Likewise.
766         * sched-int.h: Likewise.
767         * sched-rgn.c: Likewise.
768
769 2010-05-27  Jon Beniston <jon@beniston.com>
770
771         PR 43726
772         * config/lm32/lm32.h: Remove definition of 
773         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
774
775 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
776
777         PR lto/44230
778         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
779
780 2010-05-27  Richard Guenther  <rguenther@suse.de>
781
782         PR tree-optimization/44284
783         * tree-vect-stmts.c (vectorizable_assignment): Handle
784         sign-changing conversions as simple copy.
785
786 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
787
788         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
789         Bionic C library.
790         (__gthread_active_p): Check for pthread_create if compiling against
791         Bionic C library.
792
793 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
794
795         Support compilation for Android platform.  Reimplement -mandroid.
796
797         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
798         (*android*): Set ANDROID_DEFAULT.
799         (arm*-*-linux*): Include linux-android.h.
800         (arm*-*-eabi*): Don't include previous -mandroid implementation.
801         * config/arm/eabi.h: Remove, move Android-specific parts ...
802         * config/linux-android.h: ... here.  New file.
803         * config/arm/eabi.opt: Rename to ...
804         * config/linux-android.opt: ... this.
805         (mandroid): Allow -mno-android option.  Initialize based on
806         ANDROID_DEFAULT.
807         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
808         Move logic to corresponding LINUX_TARGET_* macros.
809         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
810         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
811         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
812         Android definitions.
813         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
814         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
815         Document.
816
817 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
818
819         Add support for Bionic C library
820
821         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
822         macro.
823         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
824         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
825
826         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
827         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
828         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
829         to support multiple C libraries.  Handle Bionic.
830         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
831         (BIONIC_DYNAMIC_LINKER64): Define.
832         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
833         Update.
834         (TARGET_HAS_SINCOS): Enable for Bionic.
835
836         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
837         the last option specified on command line take effect.
838         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
839         (mbionic): New.
840         (mglibc, muclibc): Update.
841
842         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
843         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
844         DEFAULT_LIBC.
845
846         * doc/invoke.texi (-mglibc, -muclibc): Update.
847         (-mbionic): Document.
848
849 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
850
851         * c-common.h (c_register_addr_space): Add prototype.
852         (ADDR_SPACE_KEYWORD): Remove.
853         * c-common.c (c_register_addr_space): New function.
854         (c_addr_space_name): Reimplement.
855         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
856
857         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
858         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
859
860         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
861         Remove TARGET_ADDR_SPACE_KEYWORDS.
862
863 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
864
865         * input.c: New file.
866         * input.h (main_input_filename): Move declaration to toplev.h.
867         * toplev.c (input_location, line_table): Move to input.c
868         * toplev.h (main_input_filename): Move declaration from input.h.
869         * tree.c (expand_location): Move to input.c.
870         * Makefile.in (OBJS-common): Add input.o.
871         (input.o): Add dependencies.
872
873 2010-05-27  Richard Guenther  <rguenther@suse.de>
874
875         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
876         for non-existant files.
877         (fork_execute): Mark args_name file as deleted.
878
879 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
880
881         PR bootstrp/44287
882         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
883         (narrow_signed_type): Likewise.
884
885 2010-05-26  Jan Hubicka  <jh@suse.cz>
886
887         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
888         edge only when checking is enabled; check using former_clone_of;
889         check inline clones too.
890         (cgraph_materialize_clone): Record former_clone_of pointer.
891         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
892         combining redirections; dump args_to_skip bitmap
893         (cgraph_materialize_all_clones): Do no redirection here.
894         * ipa-inline.c (inline_transform): Do redirection here.
895         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
896         cheking only).
897
898 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
899
900         * config/avr/avr-c.c: Do not include regs.h.
901         Include cpplib.h for cpp_define and tree.h for c-common.h.
902         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
903         * config/avr/t-avr: Fix dependencies for avr-c.o.
904
905 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
906
907         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
908         string instead of SYMBOL_REF rtx.
909         * rtl.h (set_stack_check_libfunc): Move prototype from here...
910         * libfuncs.h: ...to here.  Adjust for explow.c change.
911
912 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
913
914         * pretty-print.c: Don't include ggc.h.
915         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
916         (identifier_to_locale): Use them for allocation.
917         * pretty-print.h (identifier_to_locale_alloc,
918         identifier_to_locale_free): Declare.
919         * toplev.c (alloc_for_identifier_to_locale): New.
920         (general_init): Set identifier_to_locale_alloc and
921         identifier_to_locale_free.
922         * Makefile.in (pretty-print.o): Update dependencies.
923
924 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
925
926         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
927         pointer types if they have different alignment or mode.
928
929 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
930
931         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
932         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
933         * config/sparc/sparc-protos.h (function_value): Remove declaration.
934         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
935         sparc_function_value_regno_p): New functions.
936         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
937         TARGET_FUNCTION_VALUE_REGNO_P): Define.
938         (function_value): Rename to...
939         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
940         argument to 'outgoing'.
941         (function_arg_record_value, function_arg_union_value,
942         function_arg_vector_value): Update comment.
943
944 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
945
946         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
947         (fde_needed_for_eh_p): New predicate.
948         (output_call_frame_info): Use it throughout to decide whether FDEs
949         are needed for EH purpose.
950         (dwarf2out_begin_prologue): Reorder assignments.
951
952 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
953
954         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
955         special case loop->header.
956         (is_predicated): New.
957         (if_convertible_loop_p): Call it.
958
959 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
960
961         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
962         iterator in parameter.  Do not generate code during the analysis.
963         (tree_if_convert_cond_stmt): Removed.
964         (tree_if_convert_stmt): Removed.
965         (predicate_bbs): New.
966         (if_convertible_loop_p): Call predicate_bbs.
967         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
968         now contains all the analysis part.
969
970 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
971
972         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
973         statements in the analysis part.
974         (tree_if_convert_stmt): Update comment.
975         (remove_conditions_and_labels): New.
976         (combine_blocks): Call remove_conditions_and_labels.
977         (tree_if_conversion): Update comment.
978
979 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
980
981         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
982         than 2 predecessors or more than 2 successors.
983
984 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
985
986         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
987         of loops in which the data dependence analysis fails.
988
989 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
990
991         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
992         CDI_POST_DOMINATORS.
993         (tree_if_conversion): Same.
994
995 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
996
997         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
998
999 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1000
1001         * tree-if-conv.c: Update copyright years.  Fix comments.
1002         Fix indentation.
1003
1004 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
1005
1006         * builtin-types.def (BT_INT128): New primitive type.
1007         (BT_UINT128): Likewise.
1008         * c-common.c (c_common_r): Add __int128 keyword.
1009         (c_common_type_for_size): Handle __int128.
1010         (c_common_type_for_mode): Likewise.
1011         (c_common_signed_or_unsigned_type): Likewise.
1012         (c_common_nodes_and_builtins): Add builtin type
1013         if target supports 128-bit integer scalar.
1014         * c-common.h (enum rid): Add RID_INT128.
1015         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
1016         if target supports 128-bit integer scalar.
1017         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
1018         (finish_declspecs): Likewise.
1019         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
1020         (c_token_starts_declspecs): Likewise.
1021         (c_parser_declspecs): Likewise.
1022         (c_parser_attributes): Likewise.
1023         (c_parser_objc_selector): Likewise.
1024         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
1025         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
1026         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
1027         * tree.c (make_or_reuse_type): Likewise.
1028         (make_unsigned_type): Likewise.
1029         (build_common_tree_nodes_2): Likewise.
1030         * tree.h (enum integer_type_kind): Add itk_int128 and
1031         itk_unsigned_int128.
1032         (int128_integer_type_node): New define.
1033         (int128_unsigned_type_node): New define.
1034         * doc/extend.texi: Add documentation about __int128 type.
1035
1036 2010-05-26  Richard Guenther  <rguenther@suse.de>
1037
1038         * tree-ssa-sccvn.c (copy_nary): Adjust.
1039         (copy_phis): Rename to ...
1040         (copy_phi): ... this.  Adjust.
1041         (copy_references): Rename to ...
1042         (copy_reference): ... this.  Adjust.
1043         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
1044         result into the valid table.
1045
1046 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1047
1048         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
1049         insn-config.h, insn-codes.h, recog.h, and optabs.h.
1050
1051 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1052
1053         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
1054
1055 2010-05-26  Richard Guenther  <rguenther@suse.de>
1056
1057         * opts.c (common_handle_option): Handle OPT_Ofast.
1058
1059 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1060
1061         * diagnostic.c: Don't include opts.h.
1062         (permissive_error_option): Define.
1063         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
1064         for classify_diagnostic.  Don't use memset for
1065         classify_diagnostic.  Initialize new and recently added fields.
1066         (diagnostic_classify_diagnostic): Use context->n_opts instead of
1067         N_OPTS.
1068         (diagnostic_report_diagnostic): Pass context parameter to
1069         diagnostic_report_warnings_p.  Use option_enabled and option_name
1070         hooks from context.
1071         (emit_diagnostic): Use permissive_error_option.
1072         (permerror): Likewise.
1073         * diagnostic.h: Don't include options.h.
1074         (struct diagnostic_context): Add n_opts, opt_permissive,
1075         inhibit_warnings, warn_system_headers, option_enabled and
1076         option_name fields.  Change classify_diagnostic to a pointer.
1077         * opts-diagnostic.h: New file.
1078         * opts.c: Include opts-diagnostic.h.
1079         (common_handle_option): Set global_dc fields for -Wfatal-errors,
1080         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
1081         (option_name): New function.
1082         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
1083         (c_common_handle_option): Set global_dc->permissive for
1084         -fpermissive.
1085         * c-common.c (c_cpp_error): Save and restore
1086         global_dc->warn_system_headers, not variable warn_system_headers.
1087         * toplev.c: Include opts-diagnostic.h.
1088         (general_init): Update call to diagnostic_initialize.  Set
1089         global_dc->show_column, global_dc->option_enabled and
1090         global_dc->option_name.
1091         (process_options): Don't set global_dc fields here.
1092         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
1093         (diagnostic.o, opts.o, toplev.o): Update dependencies.
1094
1095 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1096
1097         * config/picochip/picochip.md (movsi): Split a movsi from a
1098         const after reload.
1099
1100 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1101
1102         * ggc-zone.c: Update copyright year.
1103         (poison_region): Mark memory for Valgrind as undefined before
1104         memset () call and inaccessible afterwards.
1105         (ggc_pch_total_size): Change type of i to int.
1106
1107 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1108
1109         * ggc-common.c (ggc_free_overhead): Allow empty slot.
1110
1111 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1112
1113         * ggc-common.c: Update copyright year.
1114         (ggc_rlimit_bound): Remove prototype.  Compile only if
1115         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
1116         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
1117         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
1118         (ggc_min_heapsize_heuristic): Likewise.
1119
1120 2010-05-26  Richard Guenther  <rguenther@suse.de>
1121
1122         PR rtl-optimization/44164
1123         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
1124         no-common access-path disambiguation.
1125         (indirect_ref_may_alias_decl_p): Adjust.
1126         (indirect_refs_may_alias_p): Likewise.
1127         (refs_may_alias_p_1): Likewise.
1128
1129 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1130
1131         * c-typeck.c: Do not include expr.h.
1132
1133 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1134
1135         * rtl.h (decl_default_tls_model): Move prototype from here...
1136         * output.h: ...to here.
1137         * c-decl.c: Do not include rtl.h.
1138         * c-pragma.c: Likewise.
1139         * c-parser.c: Likewise.
1140         * c-gimplify.c: Likewise.  And also not hard-reg-set.
1141         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
1142         FIXME note for it.  Add a FIXME note for expr.h.
1143         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
1144         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
1145         defined.
1146
1147 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
1148
1149         PR target/44199
1150         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
1151         or total_size is larger than red zone size for non-V4 ABI, emit a
1152         stack_tie resp. frame_tie insn before stack pointer restore.
1153         * config/rs6000/rs6000.md (frame_tie): New insn.
1154
1155 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1156
1157         * function.h (struct function): Add can_throw_non_call_exceptions bit.
1158         * lto-streamer-in.c (input_function): Stream it in.
1159         * lto-streamer-out.c (output_function): Stream it out.
1160         * function.c (allocate_struct_function): Set it.
1161         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
1162         for flag_non_call_exceptions.
1163         * cfgbuild.c (control_flow_insn_p): Likewise.
1164         (make_edges): Likewise.
1165         * cfgexpand.c (expand_stack_alignment): Likewise.
1166         * combine.c (distribute_notes): Likewise.
1167         * cse.c (cse_extended_basic_block): Likewise.
1168         * except.c (insn_could_throw_p): Likewise.
1169         * gcse.c (simple_mem): Likewise.
1170         * ipa-pure-const.c (check_call): Likewise.
1171         (check_stmt ): Likewise.
1172         * lower-subreg.c (lower-subreg.c): Likewise.
1173         * optabs.c (emit_libcall_block): Likewise.
1174         (prepare_cmp_insn): Likewise.
1175         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
1176         * postreload.c (rest_of_handle_postreload): Likewise.
1177         * reload1.c (reload_as_needed): Likewise.
1178         (emit_input_reload_insns): Likewise.
1179         (emit_output_reload_insns): Likewise.
1180         (fixup_abnormal_edges): Likewise.
1181         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
1182         * store-motion.c (find_moveable_store): Likewise.
1183         * tree-eh.c (stmt_could_throw_p): Likewise.
1184         (tree_could_throw_p): Likewise.
1185         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1186         * config/arm/arm.c (arm_expand_prologue): Likewise.
1187         (thumb1_expand_prologue): Likewise.
1188         * config/rx/rx.md (cbranchsf4): Likewise.
1189         (cmpsf): Likewise.
1190         * config/s390/s390.c (s390_emit_prologue): Likewise.
1191         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
1192         (inline_forbidden_into_p): New predicate.
1193         (expand_call_inline): Use it to forbid inlining.
1194         (tree_can_inline_p): Likewise.
1195
1196 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1197
1198         * config/i386/i386-c.c: Do not include rtl.h.
1199         * config/i386/t-i386: Update dependencies.
1200
1201 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1202
1203         * attribs.c: Do not include rtl.h.
1204         * Makefile.in: Update dependencies.
1205
1206 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
1207
1208         * double-int.h (double_int_and): New.
1209         * combine.c (try_combine): Clean up, use double_int_* and
1210         immed_double_int_const functions.
1211
1212 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1213
1214         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
1215         stderr to /dev/null instead of grep -q.
1216         * configure: Regenerate.
1217
1218 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1219
1220         * Makefile.in (EXCEPT_H): Fix typo.
1221
1222 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
1223
1224         * ira-build.c (update_conflict_hard_reg_costs): New.
1225         (ira_build): Call update_conflict_hard_reg_costs.
1226
1227 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1228
1229         PR debug/41371
1230         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
1231         ENABLE_CHECKING.
1232         (intersect_loc_chains): Walk the s2var's loc_chain together
1233         with s1node chain as long as the locations are equal, don't
1234         call find_loc_in_1pdv in that case.
1235
1236         PR debug/42801
1237         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
1238         (copy_bind_expr): ... instead of here.
1239         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
1240         if the block hasn't been remapped.
1241         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
1242         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
1243
1244 2010-05-25  Richard Guenther  <rguenther@suse.de>
1245
1246         PR middle-end/44069
1247         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
1248         out-of-bounds array accesses.
1249
1250 2010-05-25  Richard Guenther  <rguenther@suse.de>
1251
1252         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
1253         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
1254         (run_gcc): Re-organize to make cleanup easier.
1255
1256 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1257
1258         * config/s390/s390.c (optimization_options): Fix and move the
1259         flag_prefetch_loop_arrays override ...
1260         (override_options): ... here.
1261
1262 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
1263
1264         * diagnostic.c: Don't include plugin.h.
1265         (diagnostic_report_diagnostic): Don't handle plugins specially
1266         here.  Pass context to internal_error callback.
1267         * diagnostic.h (struct diagnostic_context): Add context parameter
1268         to internal_error callback.
1269         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
1270         * plugin.h (struct diagnostic_context): Declare.
1271         (warn_if_plugins, plugins_internal_error_function): Declare.
1272         * toplev.c (general_init): Set global_dc->internal_error.
1273         * Makefile.in (diagnostic.o): Update dependencies.
1274
1275 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
1276
1277         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
1278         * config/rs6000/t-darwin64: New.
1279         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
1280         build crt2.
1281
1282 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
1283
1284         PR 44203
1285         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
1286         match the original (and intended) behaviour before r159557.  This
1287         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
1288         in two ways.
1289
1290 2010-05-25  Richard Guenther  <rguenther@suse.de>
1291
1292         * doc/invoke.texi: Document -Ofast.
1293         * target.h (struct gcc_target): Add handle_ofast.
1294         * target-def.h (TARGET_HANDLE_OFAST): Add.
1295         (TARGET_INITIALIZER): Adjust.
1296         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
1297         * common.opt (Ofast): Add.
1298
1299 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1300
1301         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
1302         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
1303
1304 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1305
1306         PR target/43610
1307         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
1308         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
1309         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
1310         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
1311
1312 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1313
1314         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
1315         DW_OP_minus with negated offset instead of DW_OP_plus.
1316         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1317
1318 2010-05-25  Wei Guozhi  <carrot@google.com>
1319
1320         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
1321         tst instruction and a new alternative.
1322         * config/arm/constraints.md (Pu): New constraint.
1323
1324 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
1325
1326         * function.c (assign_stack_local_1): Initialize variable
1327         to avoid warning when bootstrapping at -O3.
1328
1329 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
1330
1331         * configure.ac (all_lang_makefiles): Remove everything related to it.
1332         * configure: Regenerate.
1333         * Makefile.in: Fix reference to ada Make-lang.in.
1334         Remove support for LANG_MAKEFILES.
1335
1336 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
1337             Sandra Loosemore  <sandra@codesourcery.com>
1338
1339         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
1340         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
1341         description.  Add arm_neon_fp16_ok.
1342         (Add Options): Add arm_neon and arm_neon_fp16.
1343
1344 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1345
1346         * diagnostic.c: Don't include flags.h.
1347         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
1348         context parameters.  Check flags in the context passed as a parameter.
1349         (diagnostic_build_prefix): Add context parameter.  Check
1350         show_column flag in context.
1351         (diagnostic_action_after_output): Check fatal_errors flag in context.
1352         (diagnostic_report_current_module): Check show_column flag in context.
1353         (default_diagnostic_starter): Update call to
1354         diagnostic_build_prefix.
1355         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
1356         (emit_diagnostic): Pass context to permissive_error_kind.
1357         (permerror): Pass context to permissive_error_kind.
1358         * diagnostic.h (struct diagnostic_context): Add show_column,
1359         pedantic_errors, permissive and fatal_errors fields.
1360         (diagnostic_build_prefix): Update prototype.
1361         * langhooks.c
1362         * toplev.c (process_options): Set flags in global_dc from
1363         flag_show_column, flag_pedantic_errors, flag_permissive,
1364         flag_fatal_errors.
1365         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
1366         to diagnostic_build_prefix.
1367         * Makefile.in (diagnostic.o): Update dependencies.
1368
1369 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1370
1371         * config/i386/ia32intrin.h (__crc32q): Define only if
1372         __SSE4_2__ is defined.
1373
1374 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
1375
1376         PR target/44132
1377         PR middle-end/43602
1378         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
1379         DECL_VISIBILITY_SPECIFIED.
1380         (emutls_decl): Set DECL_PRESERVE_P and copy
1381         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
1382         (emutls_finalize_control_var): New callback.
1383         (emutls_finish): Finalize emutls control variables.
1384         * toplev.c (compile_file): Move the call to emutls_finish ()
1385         before varpool_assemble_pending_decls ().
1386
1387 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
1388
1389         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
1390         added to the preprocessor condition.
1391
1392 2010-05-24  Paul Brook  <paul@codesourcery.com>
1393
1394         * gengtype-lex.l: Add HARD_REG_SET.
1395         * expr.c (expand_expr_real_1): Record writes to hard registers.
1396         * function.c (rtl_data): Add asm_clobbers.
1397         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
1398         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
1399         Use crtl->asm_clobbers.
1400
1401 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1402
1403         * doc/makefile.texi (Makefile): Mention stages 'profile'
1404         and 'feedback' for profiledbootstrap.
1405
1406 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1407
1408         PR target/44245
1409         * config/i386/i386.c (def_builtin): Properly check
1410         OPTION_MASK_ISA_64BIT.
1411
1412 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1413
1414         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1415         typedefs with different but compatible types.  Allow duplicate
1416         typedefs with the same type except for pedantic non-C1X, but give
1417         warning for variably modified types.
1418         * c-typeck.c (tagged_types_tu_compatible_p,
1419         function_types_compatible_p, type_lists_compatible_p,
1420         comptypes_internal): Add parameter different_types_p; set
1421         *different_types_p for different but compatible types.  All
1422         callers changed.
1423         (comptypes_check_different_types): New.
1424         * c-tree.h (comptypes_check_different_types): Declare.
1425
1426 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1427
1428         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1429         * jump.c: Include basic-block.h.
1430         * profile.c: Likewise.
1431         * tree-profile.c: Likewise.
1432         * coverage.c: Likewise.
1433         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1434         (optimize_function_for_speed_p): Likewise.
1435         * function.h (optimize_function_for_size_p,
1436         optimize_function_for_speed_p): Moved here from basic-block.h.
1437         * Makefile.in: Update dependencies.
1438
1439 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1440
1441         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1442         before calling make; allow override through $MAKE.
1443         * doc/invoke.texi (Optimize Options): Document override.
1444
1445 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1446
1447         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1448         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1449         (rs6000_mode_dependent_address_ptr): Make static.
1450         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1451         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1452         Remove.
1453
1454 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1455
1456         PR target/43869
1457         * config/i386/i386.c: Make sure that the correct regparm is passed.
1458
1459 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1460
1461         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1462         * sbitmap.c: ...to here to internalize sbitmap element access.
1463         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1464         Explain why basic-block.h is included.
1465         * function.h: Include tm.h for CUMULATIVE_ARGS.
1466         * Makefile.in: Update dependencies.
1467
1468 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1469
1470         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1471         New core types.
1472         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1473         * sbitmap.c: Include sbitmap.h.
1474         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1475         hard-reg-set.h.  Split everything related to regsets out from here...
1476         * regset.h: ...to here.  New file.
1477         * df.h: Include regset.h and sbitmap.h.
1478         * tree-flow.h: Likewise.
1479         * cfgloop.h: Likewise.
1480         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1481         * cgraph.h: Include vec.h and function.h.
1482         * reload.h (struct insn_chain): Change types of live_throughout
1483         and dead_or_set from regset_head to bitmap_head.
1484         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1485         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1486         spilled_regs from regset_head to bitmap_head to avoid dependency
1487         in regset.h.
1488         * sel-sched-ir.h: Include regset.h.
1489         * reload.c: Include df.h before reload.h.
1490         * caller-save.c: Likewise.
1491         * reload1.c: Likewise.
1492         * ira.c: Likewise.
1493         (mark_elimination): Update type of r to bitmap, consistent with
1494         DF_LR_IN.
1495         * dominance.c: Include bitmap.h.
1496         * modulo-sched.c: Include df.h.
1497         * cfganal.c: Include bitmap.h and sbitmap.h.
1498         * cfgbuild.c: Include sbitmap.h.
1499         * lcm.c: Include sbitmap.h.
1500         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1501         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1502         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1503         * cselib.c: Include bitmap.h.
1504         * tree-optimize.c: Include regset.h.
1505         * stmt.c: Include bitmap.h.
1506         * Makefile.in: Update dependencies.
1507
1508 2010-05-22  Jan Hubicka  <jh@suse.cz>
1509
1510         * cgraph.h (struct varpool_node): Add same_comdat_group.
1511         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1512         pointer.
1513         (output_varpool): Update call of lto_output_varpool_node.
1514         (input_varpool): Read same_comdat_group pointer.
1515         (input_varpool_1): Fixup same_comdat_group pointer.
1516         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1517         group is needed, all are.
1518         * varpool.c (varpool_remove_node): Remove node from same comdat group
1519         linklist too.
1520         (varpool_analyze_pending_decls): Walk same comdat groups.
1521
1522 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1523
1524         * rtl.h (union rtunion_def): Remove rt_bit member.
1525         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1526         * print-rtl (print_rtx): Do not print the member.
1527         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1528         * gengenrtl.c (type_from_format): Likewise.
1529         (accessor_from_format): Likewise.
1530
1531 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1532
1533         * dbgcnt.c: Include toplev.h instead of errors.h.
1534         * ira-emit.c: Don't include errors.h.
1535         * ira.c: Include toplev.h instead of errors.h.
1536         * lto-compress.c: Include toplev.h instead of errors.h.
1537         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1538         ira.o, dbgcnt.o): Update dependencies.
1539
1540 2010-05-22  Richard Guenther  <rguenther@suse.de>
1541
1542         * gimple.c (gimple_types_compatible_p): Check type qualifications
1543         before merging pointer to complete and pointer to incomplete type.
1544         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1545         we use our own resolution algorithm.  The gold linker plugin
1546         doesn't do the job we want it to do here.
1547
1548 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1549
1550         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1551         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1552         (sparc_mode_dependent_address_p): New function.
1553
1554 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1555
1556         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1557
1558         * timevar.c: Do not include any core headers.
1559         (timevar_print): De-i18n-ize.
1560         (print_time): Likewise.
1561         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1562
1563 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1564
1565         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1566         langhooks-def.h.
1567         (diagnostic_initialize): Initialize x_data not last_function.
1568         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1569         (default_diagnostic_starter): Call
1570         diagnostic_report_current_module not
1571         diagnostic_report_current_function.
1572         (diagnostic_report_diagnostic): Initialize x_data not
1573         abstract_origin.
1574         (verbatim): Likewise.
1575         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1576         x_data.
1577         (struct diagnostic_context): Change last_function to x_data.
1578         (diagnostic_auxiliary_data): Replace with
1579         diagnostic_context_auxiliary_data and
1580         diagnostic_info_auxiliary_data.
1581         (diagnostic_last_function_changed, diagnostic_set_last_function,
1582         diagnostic_report_current_function): Move to tree-diagnostic.h.
1583         (print_declaration, dump_generic_node, print_generic_stmt,
1584         print_generic_stmt_indented, print_generic_expr,
1585         print_generic_decl, debug_c_tree, dump_omp_clauses,
1586         print_call_name, debug_generic_expr, debug_generic_stmt,
1587         debug_tree_chain, default_tree_printer): Move to
1588         tree-pretty-print.h.
1589         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1590         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1591         gimple-pretty-print.h.
1592         * pretty-print.c: Don't include tree.h
1593         (pp_base_format): Don't handle %K here.
1594         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1595         * pretty-print.h (text_info): Change abstract_origin to x_data.
1596         (pp_tree_identifier, pp_unsupported_tree,
1597         pp_base_tree_identifier): Move to tree-pretty-print.h.
1598         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1599         tree-pretty-print.h: New files.
1600         * tree-pretty-print.c: Include tree-pretty-print.h.
1601         (percent_K_format): New.  Moved from pretty-print.c.
1602         (pp_base_tree_identifier): Move from pretty-print.c.
1603         * c-objc-common.c: Include tree-pretty-print.h.
1604         (c_tree_printer): Handle %K here.
1605         * langhooks.c: Include tree-diagnostic.h.
1606         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1607         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1608         (default_tree_printer): Handle %K using percent_K_format.
1609         (general_init): Use default_tree_diagnostic_starter.
1610         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1611         (free_lang_data): Use default_tree_diagnostic_starter.
1612         * c-pretty-print.c: Include tree-pretty-print.h.
1613         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1614         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1615         * dwarf2out.c: Include tree-pretty-print.h.
1616         * except.c: Include tree-pretty-print.h.
1617         * gimple-pretty-print.c: Include tree-pretty-print.h and
1618         gimple-pretty-print.h.
1619         * gimplify.c: Include tree-pretty-print.h.
1620         * graphite-poly.c: Include tree-pretty-print.h and
1621         gimple-pretty-print.h.
1622         * ipa-cp.c: Include tree-pretty-print.h.
1623         * ipa-inline.c: Include gimple-pretty-print.h.
1624         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1625         * ipa-pure-const.c: Include gimple-pretty-print.h.
1626         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1627         gimple-pretty-print.h.
1628         * ipa-type-escape.c: Include tree-pretty-print.h.
1629         * print-rtl.c: Include tree-pretty-print.h.
1630         * print-tree.c: Include gimple-pretty-print.h.
1631         * sese.c: Include tree-pretty-print.h.
1632         * tree-affine.c: Include tree-pretty-print.h.
1633         * tree-browser.c: Include tree-pretty-print.h.
1634         * tree-call-cdce.c: Include gimple-pretty-print.h.
1635         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1636         * tree-chrec.c: Include tree-pretty-print.h.
1637         * tree-data-ref.c: Include tree-pretty-print.h and
1638         gimple-pretty-print.h.
1639         * tree-dfa.c: Include tree-pretty-print.h.
1640         * tree-if-conv.c: Include tree-pretty-print.h and
1641         gimple-pretty-print.h.
1642         * tree-inline.c: Include tree-pretty-print.h.
1643         * tree-into-ssa.c: Include tree-pretty-print.h and
1644         gimple-pretty-print.h.
1645         * tree-nrv.c: Include tree-pretty-print.h.
1646         * tree-object-size.c: Include tree-pretty-print.h and
1647         gimple-pretty-print.h.
1648         * tree-outof-ssa.c: Include tree-pretty-print.h and
1649         gimple-pretty-print.h.
1650         * tree-parloops.c: Include tree-pretty-print.h and
1651         gimple-pretty-print.h.
1652         * tree-predcom.c: Include tree-pretty-print.h and
1653         gimple-pretty-print.h.
1654         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1655         gimple-pretty-print.h.
1656         * tree-sra.c: Include tree-pretty-print.h.
1657         * tree-ssa-address.c: Include tree-pretty-print.h.
1658         * tree-ssa-alias.c: Include tree-pretty-print.h.
1659         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1660         gimple-pretty-print.h.
1661         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1662         * tree-ssa-copy.c: Include tree-pretty-print.h and
1663         gimple-pretty-print.h.
1664         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1665         * tree-ssa-dce.c: Include tree-pretty-print.h and
1666         gimple-pretty-print.h.
1667         * tree-ssa-dom.c: Include tree-pretty-print.h and
1668         gimple-pretty-print.h.
1669         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1670         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1671         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1672         * tree-ssa-live.c: Include tree-pretty-print.h and
1673         gimple-pretty-print.h.
1674         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1675         gimple-pretty-print.h.
1676         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1677         gimple-pretty-print.h.
1678         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1679         gimple-pretty-print.h.
1680         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1681         gimple-pretty-print.h.
1682         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1683         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1684         * tree-ssa-operands.c: Include tree-pretty-print.h and
1685         gimple-pretty-print.h.
1686         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1687         gimple-pretty-print.h.
1688         * tree-ssa-pre.c: Include tree-pretty-print.h and
1689         gimple-pretty-print.h.
1690         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1691         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1692         gimple-pretty-print.h.
1693         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1694         gimple-pretty-print.h.
1695         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1696         * tree-ssa-ter.c: Include tree-pretty-print.h and
1697         gimple-pretty-print.h.
1698         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1699         * tree-ssa.c: Include tree-pretty-print.h and
1700         gimple-pretty-print.h.
1701         * tree-stdarg.c: Include gimple-pretty-print.h.
1702         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1703         * tree-tailcall.c: Include tree-pretty-print.h and
1704         gimple-pretty-print.h.
1705         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1706         gimple-pretty-print.h.
1707         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1708         gimple-pretty-print.h.
1709         * tree-vect-loop.c: Include tree-pretty-print.h and
1710         gimple-pretty-print.h.
1711         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1712         * tree-vect-slp.c: Include tree-pretty-print.h and
1713         gimple-pretty-print.h.
1714         * tree-vect-stmts.c: Include tree-pretty-print.h and
1715         gimple-pretty-print.h.
1716         * tree-vectorizer.c: Include tree-pretty-print.h.
1717         * tree-vrp.c: Include tree-pretty-print.h and
1718         gimple-pretty-print.h.
1719         * value-prof.c: Include tree-pretty-print.h and
1720         gimple-pretty-print.h.
1721         * var-tracking.c: Include tree-pretty-print.h.
1722         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1723         (tree-diagnostic.o): New dependencies.
1724         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1725         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1726         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1727         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1728         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1729         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1730         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1731         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1732         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1733         tree-ssa-address.o, tree-ssa-loop-niter.o,
1734         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1735         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1736         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1737         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1738         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1739         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1740         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1741         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1742         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1743         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1744         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1745         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1746         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1747         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1748         cfgexpand.o, pretty-print.o): Update dependencies.
1749
1750 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1751
1752         * tree-ssa-structalias.c: Remove tm_p.h from include.
1753
1754 2010-05-21  Jeff Law  <law@redhat.com>
1755
1756         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1757
1758 2010-05-21  Jason Merrill  <jason@redhat.com>
1759
1760         * tree-eh.c (cleanup_is_dead_in): New.
1761         (lower_try_finally): Don't generate a dead cleanup region.
1762         (lower_cleanup): Likewise.
1763
1764 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1765
1766         PR debug/44223
1767         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1768         unchain each use from the cyclic next_regno_use chain first.
1769
1770 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1771
1772         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1773         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1774         (real_value_negate, real_value_abs): New prototypes.
1775         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1776         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1777         new include file for interface between MPFR and REAL_VALUE_TYPE.
1778         * real.c: Include realmpfr.h.
1779         (real_arithmetic2): Remove legacy function.
1780         (real_value_negate): New.
1781         (real_value_abs): New.
1782         (mfpr_from_real, real_from_mpfr): Move from here...
1783         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1784         * builtins.c: Include realmpfr.h.
1785         * fold-const.c: Include realmpfr.h.
1786         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1787         (fold_negate_const): Likewise.
1788         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1789         * toplev.c: Include realmpfr.h.
1790         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1791         and real_value_negate.
1792         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1793         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1794         (vfp3_const_double_index): Likewise.
1795         (arm_print_operand): Likewise.
1796         * Makefile.in: Update dependencies.
1797
1798 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1799
1800         * config/s390/s390.c (override_options): Increase the default
1801         of max-completely-peel-times.
1802
1803 2010-05-21  Julian Brown  <julian@codesourcery.com>
1804             Mark Mitchell  <mark@codesourcery.com>
1805
1806         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1807         sibling calls for Thumb-1.
1808         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1809         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1810         Thumb-2.
1811         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1812         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1813         for Thumb-2.
1814         (return): New expander.
1815         (*arm_return): New name for ARM return insn.
1816         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1817
1818 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1819
1820         * config.gcc (sparc64-*-rtems*): New target.
1821
1822 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1823
1824         * tree.c (build_function_decl_skip_args): Fix grammar.
1825         (build_function_type_list_1): Fix typos, adjust formatting.
1826
1827 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1828
1829         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1830         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1831         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1832         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1833         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1834         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1835         tree-pretty-print.c, tree-loop-distribution.c,
1836         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1837         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1838         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1839         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1840         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1841         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1842         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1843         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1844         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1845         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1846         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1847         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1848         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1849         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1850         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1851         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1852         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1853         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1854         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1855         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1856         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1857         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1858         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1859         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1860         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1861         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1862         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1863         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1864         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1865         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1866         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1867         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1868         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1869         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1870         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1871         config/bfin/bfin.c: Clean up redundant includes.
1872         * Makefile.in: Update accordingly.
1873
1874 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1875
1876         PR middle-end/44204
1877         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1878         statement has no arguments.
1879
1880 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1881
1882         PR/44139
1883         * varasm.c (emutls_decl): Merge attributes to new decl.
1884
1885 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1886
1887         PR middle-end/44101
1888         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1889         around the uniquized constructor if its type requires a conversion.
1890
1891 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1892
1893         PR debug/44205
1894         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1895         at -O0 goto_locus of any of the incoming edges differs from
1896         goto_locus of outgoing edge, or gimple_location of any of the
1897         labels differs.
1898
1899 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1900
1901         * ira.c (ira_non_ordered_class_hard_regs): Define.
1902         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1903         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1904         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1905         cost of unaligned hard regs when allocating multi-reg pseudos.
1906
1907 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1908
1909         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1910         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1911         for TARGET_NO_FLOAT.
1912         * config/mips/mips.c (mips_file_start): Expand conditional expression
1913         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1914         (mips_override_options): Move -mno-float override -msoft-float and
1915         -mhard-float.
1916         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1917         Condition(TARGET_SUPPORTS_NO_FLOAT).
1918         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1919         __mips_no_float here.
1920         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1921         (TARGET_SUPPORTS_NO_FLOAT): Define.
1922         * config/mips/sdemtk.opt: Delete.
1923
1924 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1925
1926         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1927
1928 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1929
1930         PR target/43733
1931         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1932         * configure: Regenerate.
1933         * config.in: Regenerate.
1934         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1935         instead of sahf only for 64bit targets.
1936
1937 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1938
1939         PR debug/44178
1940         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1941         setup_ref_regs for DEBUG_INSNs.
1942
1943 2010-05-20  Jan Hubicka  <jh@suse.cz>
1944
1945         PR middle-end/44197
1946         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1947
1948 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1949
1950         PR bootstrap/43870
1951         * df-scan.c (df_ref_compare): Stabilize sort.
1952
1953 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1954
1955         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1956         argument.  Don't use DW_OP_piece if offset is non-zero,
1957         put offset into second DW_OP_bit_piece argument.
1958         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1959         compute offset.
1960
1961 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1962
1963         PR target/44202
1964         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1965         settings for 16-bit-constant "addo" alternative.
1966
1967 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1968
1969         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1970         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1971
1972         PR target/43764
1973         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1974         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1975         Use it.
1976
1977 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1978
1979         * diagnostic.c (FLOAT, FFS): Don't undefine.
1980         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1981         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1982         include ordering.
1983
1984 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1985
1986         * combine.c (propagate_for_debug): Call make_compound_operation
1987         on the source value.
1988         (try_combine): When implementing a split chosen by find_split_point,
1989         either copy i2src or set it to null.  Assert that i2src is not null
1990         before substituting into CALL_INSN_FUNCTION_USAGE.
1991
1992 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1993
1994         * double-int.h (double_int_ior): New function.
1995         * tree.h (build_int_cst_wide_type): Remove.
1996         * tree.c (build_int_cst_wide_type): Remove.
1997         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1998         of build_int_cst_wide_type.
1999         * stor-layout.c (set_sizetype): (Ditto.).
2000         * dojump.c (do_jump): Use build_int_cstu instead of
2001         build_int_cst_wide_type.
2002
2003 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2004
2005         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
2006         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
2007         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
2008         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
2009         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
2010         propagate the 'data' argument to copy_tree_r.
2011         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
2012         Propagate 'data' argument to walk_tree.
2013         (copy_if_shared): New function.
2014         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
2015         (unmark_visited): New function.
2016         (unshare_body): Call copy_if_shared instead of doing it manually.
2017         (unvisit_body): Call unmark_visited instead of doing it manually.
2018
2019 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
2020
2021         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
2022         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
2023         * hooks.c: Likewise.
2024         * target-def.h (TARGET_FOLD_BUILTIN): Define to
2025         hook_tree_tree_int_treep_bool_null.
2026         * target.h (struct gcc_target): Update signature of fold_builtin
2027         field.
2028         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
2029         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
2030         instead of the call expression.
2031         (fold_builtin_call_array): Pass n and argarray directly.
2032         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
2033         consing a list.
2034         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
2035         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
2036         `i' and use it in place of `arity'.
2037         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
2038         Dereference `args' directly.
2039         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
2040
2041 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2042
2043         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2044         3dnow, sse3, sse2.
2045         (Directives): Document optional dg-require-effective-target
2046         selector.
2047
2048 2010-05-19  Richard Guenther  <rguenther@suse.de>
2049
2050         PR lto/44196
2051         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
2052
2053 2010-05-19  Richard Guenther  <rguenther@suse.de>
2054
2055         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
2056         * common.opt (fwhopr=): New.
2057         * opts.c (common_handle_option): Handle OPT_fwhopr.
2058         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
2059         * collect2.c (main): Match -fwhopr*.
2060         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
2061         Execute ltrans stage in parallel when jobs is bigger than 1.
2062
2063 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2064
2065         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
2066         pentiumpro on Solaris 8/x86 with Sun as.
2067         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
2068         hidden alias bug.
2069         (gcc_cv_as_ix86_quad): Check for .quad directive.
2070         * configure: Regenerate.
2071         * config.in: Regenerate.
2072         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
2073
2074 2010-05-19  Martin Jambor  <mjambor@suse.cz>
2075
2076         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
2077         also for indirect edges.  Actual printing moved...
2078         (ipa_print_node_jump_functions_for_edge): ...here.
2079         (ipa_compute_jump_functions): Renamed to
2080         ipa_compute_jump_functions_for_edge and made static.
2081         (ipa_compute_jump_functions): New function.
2082         (make_edge_direct_to_target): Check if the number of arguments on
2083         the newly direct edge is the same as the number of parametrs of
2084         the callee.
2085         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
2086         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
2087         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2088         analysis functions unconditionally, call the new
2089         ipa_analyze_params_uses on the node instead of every edge.
2090
2091 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2092
2093         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
2094         to tree.
2095         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
2096         also checks for a constant int vs.  non-constant but
2097         loop-invariant steps.
2098         (find_or_create_group): Change the sort algorithm to only consider
2099         steps that are constant ints.
2100         (idx_analyze_ref): Adopt code to handle a tree instead of a
2101         HOST_WIDE_INT for step.
2102         (gather_memory_references_ref): Handle tree instead of int and be
2103         prepared to see a NULL_TREE.
2104         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
2105         prefetches if the step cannot be calculated at compile time.
2106         (issue_prefetch_ref): Issue prefetches for non-constant but
2107         loop-invariant steps.
2108
2109 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2110
2111         Revert:
2112         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2113
2114         * tree.h (build_call_list): Remove.
2115         * tree.c (build_call_list): Remove.
2116
2117 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2118
2119         * tree.h (build_call_list): Remove.
2120         * tree.c (build_call_list): Remove.
2121
2122 2010-05-18  Jan Hubicka  <jh@suse.cz>
2123
2124         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
2125
2126 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
2127
2128         PR rtl-optimization/43332
2129         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
2130
2131 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
2132
2133         * tree.h (build_int_cstu): Implement as static inline.
2134         * tree.c (build_int_cstu): Remove function.
2135         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
2136         sign extended.
2137
2138 2010-05-18  Richard Guenther  <rguenther@suse.de>
2139
2140         PR lto/44143
2141         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
2142         (debug): Initialize from -save-temps.
2143         (collect_execute): Print command-line when verbose.
2144         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
2145         for ltrans invocation.  Produce -dumpbase flag again.
2146         (process_args): Remove.
2147         (main): Simplify.
2148         * collect2.c (maybe_run_lto_and_relink): Only pass object
2149         files to lto-wrapper.
2150         * gcc.c (LINK_COMMAND_SPEC): Likewise.
2151
2152 2010-05-18  Jan Hubicka  <jh@suse.cz>
2153
2154         * opts.c (decode_options): Do not disable whopr at ipa_cp.
2155         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
2156
2157 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
2158
2159         PR lto/44184
2160         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
2161         in a GIMPLE_ASM.
2162         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
2163         in a GIMPLE_ASM.
2164
2165 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
2166
2167         PR debug/41371
2168         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
2169         rtx_equal_p inline.
2170
2171 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
2172
2173         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
2174         lto-macho as lto_binary_reader.
2175
2176         * darwin.c (darwin_asm_named_section): Do not add assembler comment
2177         after .section directive; just print it before the directive instead.
2178
2179 2010-05-17  Jan Hubicka  <jh@suse.cz>
2180
2181         * cgraph.c (cgraph_create_virtual_clone): Only check
2182         versionable_function_p when not in wpa and checking is enabled.
2183         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
2184         there are no more functions to materialize.
2185
2186 2010-05-17  Jan Hubicka  <jh@suse.cz>
2187
2188         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
2189         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
2190         New functions.
2191         (output_cgraph): Call output_cgraph_opt_summary.
2192         (input_cgrpah): Call input_cgraph_opt_summary.
2193         (output_cgraph_opt_summary_p, output_node_opt_summary,
2194         input_node_opt_summary, input_cgraph_opt_section): New functions.
2195         * lto-section-in.c (lto_section_name): Add cgraphopt.
2196         * tree-inline.c (tree_function_versioning): Handle parm_num.
2197         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
2198         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
2199
2200 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
2201
2202         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
2203         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
2204         the insn to prefetch ratio heuristic to loops with known trip count.
2205
2206 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
2207
2208         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
2209         (schedule_prefetches): Do not generate a prefetch if the unroll factor
2210         is far from what is required by the prefetch.
2211
2212 2010-05-17  Jan Hubicka  <jh@suse.cz>
2213
2214         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
2215         (ipcp_estimate_growth): Likewise.
2216         (ipcp_const_param_count): Likewise.
2217         (ipcp_insert_stage): Likewise.
2218         * ipa-prop.c (visit_load_for_mod_analysis): New function.
2219         (visit_store_addr_for_mod_analysis): Set used flag.
2220         (ipa_detect_param_modifications): Set used flag for SSE params;
2221         update use of walk_stmt_load_store_addr_ops.
2222         (ipa_print_node_params): Print used flag.
2223         (ipa_write_node_info): Stream used flag.
2224         (ipa_read_node_info): Likewise.
2225         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
2226         (ipa_is_param_used): New function.
2227         (lto_ipa_fixup_call_notes): Remove unused declaration.
2228
2229 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2230
2231         PR target/44074
2232         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
2233         * configure: Regenerate.
2234         * config.in: Regenerate.
2235         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
2236         !HAVE_AS_IX86_REP_LOCK_PREFIX.
2237         Don't emit whitespace.
2238         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
2239         (*rep_movsi): Likewise.
2240         (*rep_movsi_rex64): Likewise.
2241         (*rep_movqi): Likewise.
2242         (*rep_movqi_rex64): Likewise.
2243         (*rep_stosdi_rex64): Likewise.
2244         (*rep_stossi): Likewise.
2245         (*rep_stossi_rex64): Likewise.
2246         (*rep_stosqi): Likewise.
2247         (*rep_stosqi_rex64): Likewise.
2248         (*cmpstrnqi_nz_1): Use {%;} after repz.
2249         (*cmpstrnqi_nz_rex_1): Likewise.
2250         (*cmpstrnqi_1): Likewise.
2251         (*cmpstrnqi_rex_1): Likewise.
2252         (*strlenqi_1): Use {%;} after repnz.
2253         (*strlenqi_rex_1): Likewise.
2254         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
2255         (*sync_compare_and_swap<mode>): Likewise.
2256         (sync_double_compare_and_swap<mode>): Likewise.
2257         (*sync_double_compare_and_swapdi_pic): Likewise.
2258         (sync_old_add<mode>): Likewise.
2259         (sync_add<mode>): Likewise.
2260         (sync_sub<mode>): Likewise.
2261         (sync_<code><mode>): Likewise.
2262
2263 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2264
2265         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
2266         otr_token and polymorphic.
2267         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
2268         (cgraph_clone_edge): Copy the above fields.
2269         * tree.c (get_binfo_at_offset): New function.
2270         * tree.h (get_binfo_at_offset): Declare.
2271         * ipa-prop.h (enum jump_func_type): Added known_type jump function
2272         type, reordered items, updated comments.
2273         (union jump_func_value): Added base_type field, reordered fields.
2274         (enum ipa_lattice_type): Moved down in the file.
2275         (struct ipa_param_descriptor): New field polymorphic.
2276         (ipa_is_param_polymorphic): New function.
2277         * ipa-prop.c: Include gimple.h and gimple-fold.h.
2278         (ipa_print_node_jump_functions): Print known type jump functions.
2279         (compute_complex_pass_through): Renamed to...
2280         (compute_complex_assign_jump_func): this.
2281         (compute_complex_ancestor_jump_func): New function.
2282         (compute_known_type_jump_func): Likewise.
2283         (compute_scalar_jump_functions): Create known type and complex ancestor
2284         jump functions.
2285         (ipa_note_param_call): New parameter polymorphic, set the corresponding
2286         flag in the call note accordingly.
2287         (ipa_analyze_call_uses): Renamed to...
2288         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
2289         variable var only in the block where it is used.
2290         (ipa_analyze_virtual_call_uses): New function.
2291         (ipa_analyze_call_uses): Likewise.
2292         (combine_known_type_and_ancestor_jfs): Likewise.
2293         (update_jump_functions_after_inlining): Implemented handling of a
2294         number of new jump function types combination.
2295         (print_edge_addition_message): Removed.
2296         (make_edge_direct_to_target): New function.
2297         (try_make_edge_direct_simple_call): Likewise.
2298         (try_make_edge_direct_virtual_call): Likewise.
2299         (update_call_notes_after_inlining): Renamed to...
2300         (update_indirect_edges_after_inlining): this.  Moved edge creation for
2301         indirect calls to try_make_edge_direct_simple_call, also calls
2302         try_make_edge_direct_virtual_call for virtual calls.
2303         (ipa_print_node_params): Changed the header message.
2304         (ipa_write_jump_function): Stream also known type jump functions.
2305         (ipa_read_jump_function): Likewise.
2306         (ipa_write_indirect_edge_info): Stream new fields in
2307         cgraph_indirect_call_info.
2308         (ipa_read_indirect_edge_info): Likewise.
2309         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
2310         GIMPLE_FOLD_H.
2311
2312 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2313
2314         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
2315
2316 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2317
2318         * tree.h (CALL_EXPR_ARGS): Delete.
2319         (call_expr_arglist): Delete.
2320         * tree.c (call_expr_arglist): Delete.
2321         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
2322         targetm.fold_builtin.
2323         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
2324         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
2325         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
2326         arglist parameter.  Use CALL_EXPR_ARG.
2327         (picochip_expand_builtin_3op): Likewise.
2328         (picochip_expand_builtin_2opvoid): Likewise.
2329         (picochip_expand_array_get): Likewise.
2330         (picochip_expand_array_put): Likewise.
2331         (picochip_expand_array_testport): Likewise.
2332         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
2333         rather than arglist.
2334         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
2335         CALL_EXPR_ARGS.
2336         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
2337         than TREE_VALUE and TREE_CHAIN.
2338         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2339         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
2340         the arglist.
2341
2342 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2343
2344         PR bootstrap/42347
2345         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
2346         to have no fallthru edge.
2347
2348         PR middle-end/44102
2349         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
2350         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
2351         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
2352         add BARRIER after previous bb if needed.
2353
2354 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2355
2356         * tree.c (build_function_type_list_1): Remove bogus assert condition.
2357
2358 2010-05-17  Alan Modra  <amodra@gmail.com>
2359
2360         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
2361         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
2362         with copy_reg rtx param.
2363         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
2364         Correct cases where code for ABI_V4 did not initialise the reg
2365         used to access frame.  Also leave frame_reg_rtx as sp for large
2366         frames that save no regs.
2367
2368 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2369
2370         PR middle-end/44133
2371         * tree-sra.c (create_access_replacement): New parameter rename, mark
2372         the replaement for renaming only when it is true.
2373         (get_access_replacement): Pass true in the rename parameter of
2374         create_access_replacement.
2375         (get_unrenamed_access_replacement): New function.
2376         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
2377         replacement declaration from it.
2378
2379 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
2380
2381         * function.c (try_fit_stack_local, add_frame_space): New static
2382         functions.
2383         (assign_stack_local_1): Use them.  Look for opportunities to use
2384         space previously wasted on alignment.
2385         * function.h (struct frame_space): New.
2386         (struct rtl_data): Add FRAME_SPACE_LIST member.
2387         * reload1.c (something_was_spilled): New static variable.
2388         (alter_reg): Set it.
2389         (reload): Test it in addition to testing if the frame size changed.
2390
2391 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
2392
2393         * config/s390/s390.c: Define sane prefetch settings and activate
2394         flag_prefetch_loop_arrays on -O3.
2395         * config/s390/s390.h: Declare that read can use write prefetch.
2396
2397 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2398
2399         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
2400         build.
2401
2402 2010-05-16  Jan Hubicka  <jh@suse.cz>
2403
2404         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2405         function body; do not check stdarg field of struct function.
2406
2407 2010-05-16  Jan Hubicka  <jh@suse.cz>
2408
2409         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2410         * cgraph.h (cgraph_local_info): Add versionable flag.
2411         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2412         (ipcp_versionable_function_p): Use it.
2413         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2414         versionable flag.
2415
2416 2010-05-16  Jan Hubicka  <jh@suse.cz>
2417
2418         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2419         clone into hash when it is different from orig.
2420         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2421         * cgraph.h (cgraph_clone_node): Update prototype.
2422         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2423         (lto_cgraph_encoder_delete): Delete body map.
2424         (lto_cgraph_encoder_size): Move to header.
2425         (lto_cgraph_encoder_encode_body_p,
2426         lto_set_cgraph_encoder_encode_body): New.
2427         (lto_output_node): Do not take written_decls argument; output clone_of
2428         pointer.
2429         (add_node_to): Add include_body_argument; call
2430         lto_set_cgraph_encoder_encode_body on master of the clone.
2431         (add_references): Update use of add_node_to.
2432         (compute_ltrans_boundary): Likewise.
2433         (output_cgraph): Do not create written_decls bitmap.
2434         (input_node): Take nodes argument; stream in clone_of correctly.
2435         (input_cgraph_1): Update use of input_node.
2436         * lto-streamer-out.c (lto_output): Use encoder info to decide
2437         what bodies to output.
2438         * ipa-inline.c (cgraph_clone_inlined_nodes,
2439         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2440         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2441         (lto_cgraph_encoder_size): Define here.
2442         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2443         Declare.
2444
2445 2010-05-16  Richard Guenther  <rguenther@suse.de>
2446
2447         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2448         -fipa-type-escape.
2449         * ipa-type-escape.c (gate_type_escape_vars): Run when
2450         -fipa-struct-reorg runs.
2451         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2452         * common.opt (fipa-type-escape): Remove.
2453
2454 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2455
2456         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2457         (decode_options): Likewise.
2458         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2459
2460 2010-05-16  Jan Hubicka  <jh@suse.cz>
2461
2462         * ipa.c (function_and_variable_visibility): Also bring local all
2463         aliases.
2464
2465 2010-05-16  Richard Guenther  <rguenther@suse.de>
2466
2467         * alias.c (nonoverlapping_memrefs_p): Remove use of
2468         IPA type-escape information.
2469
2470 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2471
2472         * c-common.c (c_common_reswords): Add _Static_assert for C.
2473         * c-parser.c (c_token_starts_declaration,
2474         c_parser_next_token_starts_declaration,
2475         c_parser_static_assert_declaration_no_semi,
2476         c_parser_static_assert_declaration): New.
2477         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2478         Handle static assertions if static_assert_ok.
2479         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2480         c_parser_compound_statement_nostart, c_parser_label,
2481         c_parser_for_statement, c_parser_objc_methodprotolist,
2482         c_parser_omp_for_loop): All callers of
2483         c_parser_declaration_or_fndef changed.
2484         (c_parser_struct_declaration): Handle static assertions.
2485         (c_parser_compound_statement_nostart): Use
2486         c_parser_next_token_starts_declaration and
2487         c_token_starts_declaration to detect start of declarations.
2488         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2489         Likewise.
2490
2491 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2492
2493         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2494         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2495         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2496         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2497         (mmix_function_outgoing_value): Rename to...
2498         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2499         (mmix_function_value_regno_p): Make static.
2500         (mmix_libcall_value): New function.
2501         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2502         mmix_function_value_regno_p): Remove declaration.
2503
2504 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2505
2506         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2507         BUILT_IN_ALLOCA if stack checking is enabled.
2508
2509 2010-05-16  Richard Guenther  <rguenther@suse.de>
2510
2511         * var-tracking.c (vars_copy_1): Inline ...
2512         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2513         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2514         (variable_merge_over_cur): Adjust.  Merge asserts.
2515         (variable_merge_over_src): Likewise.
2516         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2517         (variable_post_merge_new_vals): Merge asserts.
2518         (variable_post_merge_perm_vals): Likewise.
2519         (find_mem_expr_in_1pdv): Likewise.
2520         (dataflow_set_different_value): Remove.
2521         (onepart_variable_different_p): Merge asserts.
2522         (variable_different_p): Likewise.
2523         (dataflow_set_different_1): Inline ...
2524         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2525         (emit_notes_for_differences_1): Merge asserts.
2526
2527 2010-05-16  Richard Guenther  <rguenther@suse.de>
2528
2529         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2530         * optabs.c (libfunc_decl_hash): Likewise.
2531         * varasm.c (emutls_decl): Likewise.
2532
2533 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2534
2535         * c-decl.c: Don't include gimple.h.
2536         (merge_decls): Do not copy gimple_body.
2537
2538 2010-05-15  Jason Merrill  <jason@redhat.com>
2539
2540         * c.opt: Add -fnothrow-opt.
2541
2542 2010-05-15  Jan Hubicka  <jh@suse.cz>
2543
2544         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2545         analyzed.
2546         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2547
2548 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2549
2550         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2551         * Makefile.in: Add it.
2552         Fix all other Makefile dependencies for changes below.
2553         * tree.h: Include it instead of defining VEC primitives here.
2554         * gimple.h: Likewise.
2555         * rtl.h: Likewise.
2556         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2557         * except.h: Include vecir.h, break dependence on tree.h.
2558
2559         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2560         Move from here...
2561         * tree-iterator.c: ...to here.
2562         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2563
2564         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2565         tm_p.h.
2566         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2567         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2568         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2569         tree-mudflap.h, and target.h.
2570         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2571         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2572         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2573         Add FIXME for why gimple.h is still included (should be unnecessary
2574         since GCC 4.5 gimplification unit-at-a-time).
2575         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2576         * c-pragma.c: Add FIXME for why function.h needs to be included just
2577         for cfun, at front-end level.
2578         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2579         Do not include ggc.h, but include vecprim.h for VEC(char).
2580         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2581         Explain why target.h is included.
2582         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2583         Explain why gimple.h is included.
2584         * c-ppoutput.c: Do not include tm.h.
2585         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2586         * c-parses.c: Explain why rtl.h is included, and that this (and only
2587         this) is also why tm.h must be included.
2588         Do not include except.h.
2589         * c-lang.c: Do not include ggc.h.
2590
2591 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2592
2593         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2594
2595 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2596
2597         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2598         unions by default if those structs and unions have no tags.  Do
2599         not condition anonymous struct and unions handling on flag_iso.
2600         Allow anonymous structs and unions for C1X.
2601         (finish_struct): Do not diagnose lack of named fields when
2602         anonymous structs and unions present for C1X.  Accept flexible
2603         array members in structure with anonymous structs or unions but no
2604         directly named fields.
2605         * doc/extend.texi (Unnamed Fields): Update.
2606
2607 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2608
2609         * gimple.h (compare_field_offset): Rename into...
2610         (gimple_compare_field_offset): ...this.
2611         * gimple.c (compare_field_offset): Rename into...
2612         (gimple_compare_field_offset): ...this.  Compare the full access if
2613         the offset is self-referential.
2614         (gimple_types_compatible_p): Adjust for above renaming.
2615         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2616         DECL_NONADDRESSABLE_P flag of fields before merging them.
2617
2618 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2619
2620         * tree.h (ctor_to_list): Delete.
2621         * tree.c (ctor_to_list): Delete.
2622
2623 2010-05-15  Jan Hubicka  <jh@suse.cz>
2624
2625         * ipa-reference.c: Include toplev.h
2626         (is_proper_for_analysis): Only add to all_module_statics
2627         if it is allocated.
2628         (write_node_summary_p, stream_out_bitmap,
2629         ipa_reference_write_optimization_summary,
2630         ipa_reference_read_optimization_summary): New.
2631         (struct ipa_opt_pass_d pass_ipa_reference): Add
2632         optimization summary streaming.
2633         * lto-cgraph.c (referenced_from_this_partition_p,
2634         reachable_from_this_partition_p): New functions.
2635         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2636         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2637         * opts.c (decode_options): Enable ipa_reference.
2638         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2639         * lto-streamer.h (referenced_from_this_partition_p,
2640         reachable_from_this_partition_p): Declare.
2641
2642 2010-05-15  Richard Guenther  <rguenther@suse.de>
2643
2644         PR tree-optimization/44038
2645         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2646         taking the address of a V_C_E of a constant.
2647
2648 2010-05-14  Jan Hubicka  <jh@suse.cz>
2649
2650         * tree.h (memory_identifier_string): Remove.
2651         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2652         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2653         statics_not_written.
2654         (ipa_reference_optimization_summary_d): New structure.
2655         (ipa_reference_optimization_summary_t): New type and vector.
2656         (ipa_reference_vars_info_d): Embedd structures instead of using
2657         pointers.
2658         (reference_vars_to_consider): Remove out of GGC space.
2659         (module_statics_escape): Remove.
2660         (global_info_obstack): Rename to ...
2661         (optimization_summary_obstack): ... this one.
2662         (initialization_status_t): Remove.
2663         (memory_identifier_string): Remove.
2664         (get_reference_vars_info): Fix indenting.
2665         (set_reference_vars_info): Likewise.
2666         (get_reference_optimization_summary): New.
2667         (set_reference_optimization_summary): New.
2668         (get_global_reference_vars_info): Remove.
2669         (ipa_reference_get_read_global): Remove.
2670         (ipa_reference_get_written_global): Remove.
2671         (ipa_reference_get_not_read_global): Update.
2672         (ipa_reference_get_not_written_global): Update.
2673         (is_proper_for_analysis): Outlaw addressable.
2674         (propagate_bits): Update for new datastructures.
2675         (analyze_variable): Remove.
2676         (init_function_info): Update for new datastructures.
2677         (clean_function_local_data): Remove.
2678         (clean_function): Remove.
2679         (copy_global_bitmap): Use optimizations_summary_obstack.
2680         (duplicate_node_data): Duplicate optimization summary only.
2681         (remove_node_data): Remove optimization summary only.
2682         (generate_summary): Do not analyze variables; do not compute
2683         module_statics_escape; do not prune solutions by it.
2684         (read_write_all_from_decl): Fix typos in comments.
2685         (propagate): Doscover readonly and nonaddressable first;
2686         update for new datastructures; share global bitmaps.
2687         * ipa-reference.h (ipa_reference_get_read_global,
2688         ipa_reference_get_written_global): Remove.
2689         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2690         * Makefile.in: Remove ipa-refereference from GT files.
2691
2692 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2693
2694         PR debug/44112
2695         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2696         for all SYMBOL_REF_DECLs.
2697
2698 2010-05-14  Jan Hubicka  <jh@suse.cz>
2699
2700         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2701         (varpool_all_refs_explicit_p): New inline function.
2702         * ipa-reference.c: Update comment.
2703         (module_statics_written): Remove.
2704         (get_static_decl): Remove.
2705         (ipa_init): Do not initialize module_statics_written.
2706         (analyze_function): Likewise.
2707         (generate_summary): Likewise; do not compute module_statics_readonly
2708         and do not update variable flags.
2709         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2710         * ipa.c: Inlucde flags.h
2711         (cgraph_local_node_p): New.
2712         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2713         promote functions to local.
2714         (ipa_discover_readonly_nonaddressable_vars): New function.
2715         (function_and_variable_visibility): Use cgraph_local_node_p.
2716         * varpool.c (varpool_finalize_decl): Set force_output for
2717         DECL_PRESERVE_P vars.
2718
2719 2010-05-14  Jan Hubicka  <jh@suse.cz>
2720
2721         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2722
2723 2010-05-14  Richard Guenther  <rguenther@suse.de>
2724
2725         PR tree-optimization/44119
2726         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2727         a PHI node necessary.
2728
2729 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2730
2731         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2732
2733 2010-05-14  Jason Merrill  <jason@redhat.com>
2734
2735         PR c++/44127
2736         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2737         (gimple_call_set_nothrow): New.
2738         * gimple.c (gimple_build_call_from_tree): Call it.
2739         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2740
2741         PR c++/44127
2742         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2743         * gimple.h: Declare it.
2744         * gimple.c (gimple_build_eh_filter): No ops.
2745
2746 2010-05-14  Jan Hubicka  <jh@suse.cz>
2747
2748         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2749         nodes already in queue.
2750         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2751         re-enqueueing node.
2752
2753 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2754
2755         PR debug/44136
2756         * cfgexpand.c (expand_debug_expr): If non-memory op0
2757         has BLKmode, return NULL.
2758
2759 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2760
2761         * config.gcc: Add support for --with-cpu option for bdver1.
2762         * config/i386/i386.h (TARGET_BDVER1): New macro.
2763         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2764         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2765         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2766         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2767         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2768         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2769         (processor_type): Add PROCESSOR_BDVER1.
2770         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2771         processor_type in config/i386/i386.h.
2772         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2773         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2774         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2775         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2776         to emit packed xor instead of packed double/packed integer
2777         xor for SSE and AVX when moving a zero value.
2778         * config/i386/sse.md: Add check for
2779         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2780         movapd/movdqa for SSE and AVX.
2781         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2782         single logical operations i.e and, or and xor instead of packed double
2783         logical operations for SSE and AVX.
2784         * config/i386/i386-c.c (ix86_target_macros_internal):
2785         Add PROCESSOR_BDVER1.
2786         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2787         (has_fma4, has_xop): New.
2788         * config/i386/i386.c (bdver1_cost): New variable.
2789         (m_BDVER1): New macro.
2790         (m_AMD_MULTIPLE): Add m_BDVER1.
2791         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2792         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2793         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2794         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2795         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2796         x86_tune_sse_partial_reg_dependency,
2797         x86_tune_sse_unaligned_load_optimal,
2798         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2799         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2800         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2801         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2802         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2803         Enable/disable for bdver1.
2804         (processor_target_table): Add bdver1_cost.
2805         (cpu_names): Add bdver1.
2806         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2807          processor_alias_table.
2808         (ix86_expand_vector_move_misalign): Change.
2809         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2810         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2811         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2812         of movupd/movdqu for SSE and AVX.
2813         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2814         (ix86_tune_adjust_cost): Add code for bdver1.
2815         (standard_sse_constant_opcode): Add check for
2816         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2817         of packed double xor for SSE and AVX.
2818
2819 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2820
2821         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2822         result to unsigned.
2823
2824 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2825
2826         * toplev.c (default_debug_hooks): Remove this variable.
2827         (process_options): Remove assignments to default_debug_hooks.
2828
2829 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2830
2831         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2832         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2833         * langhooks.h (struct lang_hooks_for_decls): Removed field
2834         fold_obj_type_ref.
2835         * tree.c (free_lang_data): Remove assignment to
2836         lang_hooks.fold_obj_type_ref.
2837         * tree.def (OBJ_TYPE_REF): Update comment.
2838
2839 2010-05-14  Richard Guenther  <rguenther@suse.de>
2840
2841         PR tree-optimization/44124
2842         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2843
2844 2010-05-14  Alan Modra  <amodra@gmail.com>
2845
2846         PR target/44075
2847         * config/rs6000/rs6000.c (struct machine_function): Reorder
2848         fields for better packing.  Add lr_save_state.
2849         (rs6000_ra_ever_killed): Return lr_save_state if set.
2850         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2851
2852 2010-05-13  Jan Hubicka  <jh@suse.cz>
2853
2854         * varpool.c (decide_is_variable_needed): Drop code checking
2855         TREE_SYMBOL_REFERENCED.
2856
2857 2010-05-13  Jan Hubicka  <jh@suse.cz>
2858
2859         * final.c (output_addr_const): Do not call mark_decl_referenced.
2860         * cgraphunit.c (process_function_and_variable_attributes): Use
2861         mark_needed_node dirrectly.
2862         (assemble_thunk): Do not call mark_decl_referenced.
2863
2864 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2865
2866         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2867
2868 2010-05-13  Jeff Law  <law@redhat.com>
2869
2870         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2871         from...
2872         (print_conflicts): Call print_allocno_conflicts.
2873
2874 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2875
2876         PR debug/44104
2877         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2878         if it is NULL.
2879
2880 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2881
2882         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2883         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2884         * config/i386/t-mingw-w32: New.
2885         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2886
2887 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2888
2889         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2890         gimple-fold.c).
2891         * gimple-fold.c (get_base_binfo_for_type): New function.
2892         (gimple_get_relevant_ref_binfo): Likewise.
2893         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2894         (gimple_fold_obj_type_ref): Likewise.
2895         (fold_gimple_call): Simplify condition for folding virtual calls
2896         and call gimple_fold_obj_type_ref.
2897         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2898         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2899
2900 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2901
2902         * config/rs6000/rs6000-protos.h
2903         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2904         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2905         (rs6000_debug_mode_dependent_address)
2906         (rs6000_mode_dependent_address_ptr): Likewise.
2907
2908 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2909
2910         PR debug/43983
2911         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2912         by SRA.
2913         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2914         * tree-sra.c (create_access_replacement): Call unshare_expr before
2915         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2916         * dwarf2out.c: Include tree-flow.h.
2917         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2918         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2919         Handle DW_OP_bit_piece.
2920         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2921         construct_piece_list, adjust_piece_list): New functions.
2922         (add_var_loc_to_decl): Handle SRA optimized variables.
2923         Adjust for var_loc_note to loc field renaming.
2924         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2925         in VAR_LOCATION note.
2926         (new_loc_descr_op_bit_piece): New function.
2927         (dw_sra_loc_expr): New function.
2928         (dw_loc_list): Use it.  Don't handle the last range after the
2929         loop, handle it inside of the loop.  Adjust for var_loc_note
2930         to loc field renaming.
2931         (add_location_or_const_value_attribute): Only special case
2932         single entry loc lists if loc is NOTE_P.  Adjust for
2933         var_loc_note to loc field renaming.
2934         (dwarf2out_var_location): Don't set newloc->var_loc_note
2935         and newloc->next here.
2936
2937 2010-05-12  Jan Hubicka  <jh@suse.cz>
2938
2939         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2940         flag.
2941         * cgraph.h (cgraph_only_called_directly_p,
2942         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2943         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2944         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2945         (assemble
2946         * ipa.c (cgraph_remove_unreachable_nodes): Use
2947         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2948         flags.
2949         * tree-inline.c (copy_bb): Check address_taken flag.
2950         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2951         externally_visible flag.
2952
2953 2010-05-12  Jason Merrill  <jason@redhat.com>
2954
2955         PR bootstrap/44048
2956         PR target/44099
2957         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2958         * sdbout.c (plain_type_1): Likewise.
2959         * dwarf2out.c (is_base_type): Likewise.
2960         (gen_type_die_with_usage): Likewise.  Generate
2961         DW_TAG_unspecified_type for any LANG_TYPE.
2962
2963 2010-05-12  Jan Hubicka  <jh@suse.cz>
2964
2965         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2966         indrect edges too.
2967         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2968         (cgraph_clone_edge): Update.
2969         (cgraph_node_remove_callees): Remove indirect calls too.
2970         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2971         (cgraph_create_indirect_edge): Update prototype.
2972         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2973         is_proper_for_analysis.
2974         (add_new_function, visited_nodes, function_insertion_hook_holder,
2975         get_local_reference_vars_info, mark_address_taken, mark_address,
2976         mark_load, mark_store, check_asm_memory_clobber, check_call,
2977         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2978         (ipa_init): Do not initialize visited_nodes;
2979         function_insertion_hook_holder.
2980         (analyze_variable): Rewrite.
2981         (analyze_function): Rewrite.
2982         (copy_local_bitmap): Remove.
2983         (duplicate_node_dat): Do not duplicate local info.
2984         (generate_summary): Simplify to only walk cgraph.
2985         (write_node_summary_p, ipa_reference_write_summary,
2986         ipa_reference_read_summary): Remove.
2987         (propagate): Do not remove function insertion;
2988         generate summary.
2989         (pass_ipa_reference): NULLify summary handling fields.
2990         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2991         (input_edge): Input ecf_flags.
2992         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2993         (update_indirect_edges_after_inlining): Ignore edges with unknown
2994         param.
2995
2996 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2997
2998         * implicit-zee.c: New file.
2999         * tree-pass.h (pass_implicit_zee): Declare.
3000         * passes.c (init_optimization_passes): Add zee pass.
3001         * common.opt (fzee): New flag.
3002         * timevar.def (TV_ZEE): Define.
3003         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
3004         and beyond.
3005         * Makefile.in (implicit-zee.o): Add new build file.
3006
3007 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3008             Nathan Froyd  <froydnj@codesourcery.com>
3009
3010         * c-common.c (sync_resolve_params): Remove write-only variable.
3011
3012 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
3013
3014         * target.h (struct gcc_target): Add mode_dependent_address_p field.
3015         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
3016         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
3017         * targhooks.c (default_mode_dependent_address_p): New function.
3018         * targhooks.h (default_mode_dependent_address_p): Declare function.
3019         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
3020         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
3021         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
3022         target hook. Change return type to bool.
3023         * recog.h (mode_dependent_address_p): Change return type to bool.
3024
3025 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3026             Nathan Froyd  <froydnj@codesourcery.com>
3027
3028         * tree-mudflap.c (build_function_type_0, build_function_type_1,
3029         build_function_type_2, build_function_type_3): Remove.
3030         (mudflap_init): Use build_function_type_list.
3031
3032 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3033             Nathan Froyd  <froydnj@codesourcery.com>
3034
3035         * coverage.c (build_fn_info_value): Call build_constructor instead of
3036         build_constructor_from_list.
3037         (build_ctr_info_value): Likewise.
3038         (build_gcov_info): Likewise.
3039
3040 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
3041
3042         * tree.c (build_constructor): Compute TREE_CONSTANT for the
3043         resultant constructor.
3044         (build_constructor_single): Don't set TREE_CONSTANT.
3045         (build_constructor_from_list): Don't compute TREE_CONSTANT.
3046
3047 2010-05-12  Jan Hubicka  <jh@suse.cz>
3048
3049         * cgraph.h (struct varpool_node): Add aux.
3050         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
3051         * varpool.c (varpool_remove_node): Do not remove initializer.
3052         (varpool_reset_queue): Export.
3053         (varpool_finalize_decl): Volatile vars are forced to be output.
3054         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
3055         replaced decl.
3056         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
3057         process_references, varpool_can_remove_if_no_refs): New functions.
3058         (cgraph_remove_unreachable_nodes): Handle variables too.
3059
3060 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3061
3062         PR target/44088
3063         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
3064
3065 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
3066
3067         PR middle-end/44085
3068         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
3069         change value of ORT_TASK.
3070         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
3071         (omp_notice_threadprivate_variable): New function.
3072         (omp_notice_variable): Call it for threadprivate variables.
3073         If enclosing ctx is a task, print enclosing task rather than
3074         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
3075         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
3076         if task has untied clause.
3077
3078         PR debug/42278
3079         * dwarf2out.c (base_type_die): Don't add name attribute here.
3080         (modified_type_die): Instead of sizetype use
3081         its underlying original type.  If a DW_TAG_base_type doesn't
3082         have name added, add __unknown__.
3083         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
3084         always call force_type_die instead.
3085
3086 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
3087
3088         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
3089         for __stack_chk_guard.
3090
3091 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
3092
3093         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
3094         don't call start_source_file debug hook here...
3095         (finish_options): ... but here, after outputting predefined and
3096         command line defines and undefs.
3097
3098         PR middle-end/44071
3099         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
3100         no fallthru edge.
3101         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
3102         optimizing away empty bb with no successors, move over its
3103         footer chain to fallthru predecessor.
3104         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
3105         (rtl_split_edge): For asm goto call patch_jump_insn even if
3106         splitting fallthru edge.
3107
3108         PR c++/44059
3109         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
3110         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
3111         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
3112         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
3113         on DW.ref.* decls.
3114
3115         PR c++/44062
3116         * c-parser.c (c_parser_expression): Mark LHS of a comma
3117         expression as read if it is a decl, handled component or
3118         COMPOUND_EXPR with that on the RHS.
3119         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
3120         if it is a decl or handled component.
3121
3122 2010-05-11  Jan Hubicka  <jh@suse.cz>
3123
3124         * lto-symtab.c (lto_symtab_free): New function.
3125         * lto-streamer.h (lto_symtab_free): Declare.
3126
3127 2010-05-11  Jan Hubicka  <jh@suse.cz>
3128
3129         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
3130         that if function is needed it is reachable.
3131         (lto_output_node): See if it the function is reachable or referenced.
3132         (output_cgraph): Update call of lto_output_node.
3133         * lto-streamer.h (reachable_from_other_partition_p): Declare.
3134
3135 2010-05-11  Jan Hubicka  <jh@suse.cz>
3136
3137         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
3138         Mark as used.
3139
3140 2010-05-11  Jan Hubicka  <jh@suse.cz>
3141
3142         PR tree-optimize/44063
3143         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
3144         queue.
3145         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
3146         limits.
3147         (estimate_function_body_sizes): Compute sizes even when disregarding.
3148
3149 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
3150
3151         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
3152
3153 2010-05-11  Jan Hubicka  <jh@suse.cz>
3154
3155         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
3156         into every boundary.
3157
3158 2010-05-11  Jan Hubicka  <jh@suse.cz>
3159
3160         * matrix-reorg.c (matrix_reorg): Rebuild edges.
3161
3162 2010-05-11  Jan Hubicka  <jh@suse.cz>
3163
3164         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
3165         lto_streamer_cache_delete): Put nodes into heap.
3166         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
3167         heap.
3168
3169 2010-05-11  Jan Hubicka  <jh@suse.cz>
3170
3171         * cgraphbuild.c (cgraph_rebuild_references): New.
3172         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
3173         out extern inlines.
3174         * cgraph.h (cgraph_rebuild_references): Declare.
3175         * tree-inline.c (tree_function_versioning): Use it.
3176         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
3177
3178 2010-05-11  Jan Hubicka  <jh@suse.cz>
3179
3180         * cgraph.c: Include ipa-utils.h
3181         (cgraph_create_virtual_clone): Update references.
3182         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
3183
3184 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
3185
3186         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
3187         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
3188         cache size.
3189
3190 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
3191
3192         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
3193
3194 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
3195
3196         * gcc.c (execute): For -### don't quote arguments that
3197         contain just alphanumerics and _/-. characters.
3198         * doc/invoke.texi: Document that change for -###.
3199
3200         PR debug/44023
3201         * df-problems.c (struct dead_debug): Add to_rescan field.
3202         (dead_debug_init): Clear to_rescan field.
3203         (dead_debug_finish): Rescan all debug insns in to_rescan
3204         bitmap and free the bitmap.
3205         (dead_debug_insert_before): Instead of rescanning debug insns
3206         immediately queue their rescanning until dead_debug_finish.
3207         (df_note_bb_compute): After dead_debug_add do continue instead
3208         of break.
3209
3210 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR debug/44028
3213         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
3214         clear also INSN_REG_USE_LIST.
3215
3216 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3217
3218         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
3219
3220 2010-05-10  Jan Hubicka  <jh@suse.cz>
3221
3222         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
3223         commited change.
3224
3225 2010-05-10  Jan Hubicka  <jh@suse.cz>
3226
3227         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
3228         Allocate encoders.
3229         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
3230         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
3231         (lto_streamer_cache_create): Init alloc pool.
3232         (lto_streamer_cache_delete): Free alloc pool.
3233         * lto-streamer.h: Include alloc pool.
3234         (lto_streamer_cache_d): Use alloc pool.
3235         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
3236
3237 2010-05-10  Jan Hubicka  <jh@suse.cz>
3238
3239         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
3240         * cgraphbuild.c: Include except.h
3241         (record_type_list, record_eh_tables): New function.
3242         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
3243
3244 2010-05-10  Jan Hubicka  <jh@suse.cz>
3245
3246         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
3247         __frame_dummy_init_array_entry, force_to_data): Attribute as used
3248         rather than unused.
3249
3250 2010-05-10  Michael Matz  <matz@suse.de>
3251
3252         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
3253         (can_reassociate_p): Use FLOAT_TYPE_P.
3254         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
3255         (vect_force_simple_reduction): ... this.
3256         * tree-parloops.c (gather_scalar_reductions): Use
3257         vect_force_simple_reduction.
3258         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
3259         vect_is_simple_reduction, add modify argument, if true rewrite
3260         "a-b" into "a+(-b)".
3261         (vect_is_simple_reduction, vect_force_simple_reduction): New
3262         functions.
3263         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
3264
3265 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3266             Vladimir Makarov  <vmakarov@redhat.com>
3267
3268         PR rtl-optimization/44012
3269         * ira-build.c (remove_unnecessary_allocnos): Nullify
3270         regno_allocno_map of the removed allocno.
3271
3272 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3273
3274         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
3275         to /dev/null.
3276         * configure: Regenerate.
3277
3278 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3279
3280         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
3281         unused.
3282         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
3283         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
3284         support in Sun ld.
3285         * configure: Regenerate.
3286
3287 2010-05-10  Richard Guenther  <rguenther@suse.de>
3288
3289         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
3290         marked if the entry identifier is marked.
3291
3292 2010-05-10  Richard Guenther  <rguenther@suse.de>
3293
3294         * c-common.c (struct c_common_attributes): Add fnspec attribute.
3295         (handle_fnspec_attribute): New function.
3296         * gimple.h (gimple_call_return_flags): Declare.
3297         (gimple_call_arg_flags): Likewise.
3298         * gimple.c (gimple_call_arg_flags): New function.
3299         (gimple_call_return_flags): Likewise.
3300         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
3301         New argument flags.
3302         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
3303         return value flags.
3304         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
3305         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
3306         main work to ...
3307         (make_heapvar_for): ... this new function.
3308         (handle_rhs_call): Handle fnspec attribute argument specifiers.
3309         (handle_lhs_call): Likewise.
3310         (find_func_aliases): Adjust.
3311
3312 2010-05-10  Richard Guenther  <rguenther@suse.de>
3313
3314         PR tree-optimization/44050
3315         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3316
3317 2010-05-10  Wei Guozhi  <carrot@google.com>
3318
3319         PR target/42879
3320         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
3321
3322 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3323
3324         PR c/10676
3325         * c-typeck.c (lookup_field): Take a type directly.  Update
3326         recursive calls.
3327         (build_component_ref): Update call to lookup_field.
3328         (set_init_label): Use lookup_field to find initialized field.
3329         Handle returned list of fields like a sequence of designators.
3330
3331 2010-05-09  Richard Guenther  <rguenther@suse.de>
3332
3333         PR middle-end/44024
3334         * fold-const.c (tree_single_nonzero_warnv_p): Properly
3335         handle &FUNCTION_DECL.
3336
3337 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3338
3339         PR c/4784
3340         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
3341         structures and unions recursively.
3342         (detect_field_duplicates): Move duplicate detection with a hash to
3343         detect_field_duplicates_hash.  Always use a hash if anonymous
3344         structures or unions are present.
3345         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
3346         give errors.
3347
3348 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3349
3350         PR target/44046
3351         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
3352         detect Atom, Core 2 and Core i7.
3353
3354 2010-05-09  Richard Guenther  <rguenther@suse.de>
3355
3356         * gcc.c (store_arg): Handle temporary file deletion for
3357         joined arguments.
3358
3359 2010-05-09  Richard Guenther  <rguenther@suse.de>
3360
3361         PR middle-end/44043
3362         * ipa-inline.c (estimate_function_body_sizes): Return after
3363         disregarding inline limits.
3364
3365 2010-05-09  Richard Guenther  <rguenther@suse.de>
3366
3367         * gcc.c (store_arg): Revert last change.
3368
3369 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3370
3371         PR middle-end/28685
3372         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
3373         (optimize_ops_list): Call it.
3374
3375 2010-05-08  Richard Guenther  <rguenther@suse.de>
3376
3377         PR tree-optimization/44030
3378         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
3379         NECESSARY flag if we propagate from a inserted expression.
3380
3381 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3382
3383         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
3384         domain types as equal if they are both PLACEHOLDER_EXPRs.
3385
3386 2010-05-08  Richard Guenther  <rguenther@suse.de>
3387
3388         * lto-wrapper.c (run_gcc): Remove linker output from
3389         command line for LTRANS invocation.
3390
3391 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3392
3393         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3394         lto-macho as lto_binary_reader.
3395         * target.h (struct gcc_target): New hooks lto_start and lto_end.
3396         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
3397         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
3398         in lto_start and lto_end calls.
3399         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
3400         magic numbers.
3401         (scan_prog_file): Update is_elf_or_coff call.
3402         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3403
3404         * collect2.c (main): Fix enum comparison.
3405
3406         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3407         Add prototypes.
3408         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3409         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3410         and